@c -*- coding: utf-8; mode: texinfo; documentlanguage: it -*-
@ignore
- Translation of GIT committish: 7ba0a22641cb0c7f5949d66a06d1e2e1fd0b3033
+ Translation of GIT committish: c610645cc9a77cba1a2798280965db142d649ac5
When revising a translation, copy the HEAD committish of the
version that you are working on. For details, see the Contributors'
Guide, node Updating translation committishes..
@end ignore
-@c \version "2.13.36"
+@c \version "2.15.18"
@node Eseguire lilypond
@translationof Command-line usage
Questa sezione contiene informazioni aggiuntive sull'uso di LilyPond da linea
-di comando. Questo può essere utile per passare al programma opzioni ulteriori.
+di comando. Questo può essere utile per assegnare opzioni aggiuntive al programma.
Inoltre, ci sono alcuni programmi complementari di @q{aiuto} (come
@code{midi2ly}) che funzionano solo da linea di comando.
-Con @q{linea di comando} intendiamo la linea di comando del sistema operativo.
+Con @q{linea di comando} si intende la linea di comando del sistema operativo.
Gli utenti Windows avranno più familiarità con i termini @q{shell DOS} o
@q{shell dei comandi}. Gli utenti MacOS@tie{}X avranno più familiarità con i termini
@q{terminale} o @q{console}. Una configurazione ulteriore è necessaria
questo argomento se non si conosce la linea di comando.
@menu
-* Invocare lilypond::
-* Opzioni della linea di comando per lilypond::
+* Utilizzo di lilypond::
+* Opzioni di base della linea di comando per LilyPond::
+* Opzioni avanzate della linea di comando per LilyPond::
* Variabili d'ambiente::
-* LilyPond in chroot jail::
+* LilyPond in una gabbia chroot::
@end menu
-@node Invocare lilypond
-@unnumberedsubsec Invocare @command{lilypond}
+@node Utilizzo di lilypond
+@unnumberedsubsec Utilizzo di @command{lilypond}
@translationof Invoking lilypond
-L'eseguibile @command{lilypond} può essere chiamato dalla linea di comando
+L'eseguibile @command{lilypond} può essere lanciato dalla linea di comando
nel seguente modo.
@example
Quando @file{file.ly} viene elaborato, lilypond creerà @file{file.ps}
e @file{file.pdf} come output. Possono essere specificati molti file;
-ognuno di essi sarà elaborati in modo indipendente. @footnote{Lo status di
-GUILE non viene resettato dopo l'elaborazione di un file @code{.ly}, quindi
-fare attenzione a non cambiare alcun valore predefinito dall'interno di Scheme.}
+ognuno di essi sarà elaborato in modo indipendente. @footnote{Lo status di
+GUILE non viene resettato dopo l'elaborazione di un file @code{.ly}:
+attenzione a non cambiare alcun valore predefinito dall'interno di Scheme.}
Se @file{file.ly} contiene più di un blocco @code{\book}, allora tutte le altre
partiture verranno salvate in file numerati, a partire da @file{file-1.pdf}. Inoltre,
e non hanno niente a che fare con lilypond.
-@node Opzioni della linea di comando per lilypond
-@unnumberedsubsec Opzioni della linea di comando per @command{lilypond}
-@translationof Command line options for lilypond
+@node Opzioni di base della linea di comando per LilyPond
+@unnumberedsubsec Opzioni di base della linea di comando per LilyPond
+@translationof Basic command line options for LilyPond
-@cindex Invocare @command{lilypond}
+@cindex Utilizzo di @command{lilypond}
@cindex opzioni della linea di comando per @command{lilypond}
@cindex linea di comando, opzioni di
-@cindex switches
+@cindex switch
Sono contemplate le seguenti opzioni:
@table @code
+@item -d,--define-default=@var{variabile}=@var{valore}
+Si veda @ref{Advanced command line options for LilyPond}.
+
+@cindex Scheme, valutazione dell'espressione
+@cindex valutazione dell'espressione, Scheme
+
@item -e,--evaluate=@var{espressione}
Valuta l'@var{espressione} di Scheme prima di analizzare qualsiasi file @file{.ly}.
-Si possono specificare varie opzioni @code{-e}; verranno valutate in modo
+Si possono specificare varie opzioni @option{-e}; saranno analizzate in modo
sequenziale.
-L'espressione sarà valutata nel modulo @code{guile-user}, dunque se vuoi
+L'espressione sarà analizzata nel modulo @code{guile-user}, dunque se vuoi
usare delle definizioni in @var{espressione}, usa
@example
@noindent
in cima al file @code{.ly}.
+@warning{Gli utenti Windows devono usare i doppi apici invece dei singoli apici.}
+
+@cindex output, formato
+@cindex formato, output
+
@item -f,--format=@var{formato}
Formati di output. Come @code{formato} si può scegliere tra
-@code{ps}, @code{pdf}, e @code{png}.
+@code{ps}, @code{pdf} e @code{png}.
Esempio: @code{lilypond -fpng @var{file}.ly}
+@item -h,--help
+Mostra una sintesi dell'utilizzo.
+@item -H,--header=@var{CAMPO}
+Estrae un campo dell'intestazione nel file @file{NOME.@var{CAMPO}}.
-@item -d,--define-default=@var{variabile}=@var{valore}
-Imposta l'opzione interna del programma, @var{variabile}, al valore di Scheme
-@var{valore}. Se @var{valore} non viene specificato, allora viene usato
-@var{#t}. Per disabilitare un'opzione, si può usare il prefisso @code{no-}
-prima della @var{variabile}, ad esempio
+@item -i,--init=@var{file}
+Imposta il file di inizializzazione su @var{file} (predefinito: @file{init.ly}).
-@cindex punta e clicca, linea di comando
+@cindex ricerca dei file
+@cindex percorso di ricerca
-@example
--dno-point-and-click
-@end example
+@item -I, --include=@var{directory}
+Aggiunge @var{directory} al percorso di ricerca per i file di input.
-@noindent
-è equivalente a
-@example
--dpoint-and-click='#f'
-@end example
+È possibile assegnare più opzioni -I. La ricerca inizierà nella prima
+directory definita, e se il file da includere non viene trovato
+la ricerca continuerà nelle directory seguenti.
-Di seguito alcune opzioni interessanti.
+@cindex gabbia chroot, esecuzione all'interno di
-@cindex aiuto, linea di comando
+@item -j,--jail=@var{utente},@var{gruppo},@var{gabbia},@var{directory}
+Esegue @command{lilypond} in una gabbia chroot.
-@table @samp
-@item help
-L'esecuzione di @code{lilypond -dhelp} mostrerà tutte le opzioni disponibili
-di @code{-d}.
+L'opzione @option{--jail} fornisce un'alternativa più flessibile a
+@option{--safe} quando la formattazione di LilyPond è messa a disposizione attraverso
+un server web o quando LilyPond esegue sorgenti provenienti dall'esterno
+(si veda @ref{Advanced command line options for LilyPond}).
-@cindex paper-size, linea di comando
+L'opzione @option{--jail} modifica la radice di @command{lilypond} in
+@var{gabbia} appena prima di iniziare il vero processo di compilazione. L'utente
+e il gruppo vengono poi modificati per corrispondere a quelli forniti, e la
+directory corrente viene spostata in @var{directory}. Questa configurazione
+garantisce che non sia possibile (almeno in teoria) uscire dalla gabbia. Si noti
+che perché @option{--jail} funzioni @command{lilypond} deve essere eseguito come root;
+di solito questo si fa in modo sicuro col comando @command{sudo}.
-@item paper-size
-Questa opzione imposta la dimensione predefinita del foglio,
-@example
--dpaper-size=\"letter\"
-@end example
+Configurare una gabbia è una questione un po' delicata, perché bisogna essere
+sicuri che LilyPond possa trovare tutto quello di cui ha bisogno per compilare il
+sorgente @emph{dentro la gabbia}. Una configurazione tipica comprende i seguenti
+elementi:
-@noindent
-Si noti che la stringa deve essere compresa tra virgolette precedute dal
-segno di escape ( @code{\"} ).
-@c Match " in previous line to help context-sensitive editors
+@table @asis
-@cindex safe, linea di comando
+@item Impostare un filesystem distinto
+Si dovrebbe creare un filesystem separato LilyPond, così che possa essere
+montato con opzioni di sicurezza come @code{noexec}, @code{nodev}, e
+@code{nosuid}. In questo modo è impossibile lanciare degli eseguibili o
+scrivere su un dispositivo direttamente da LilyPond. Se non si vuole creare
+una partizione separata, si può creare un file di dimensioni ragionevoli e usarlo
+per montare un dispositivo di loop. Un filesystem separato garantisce inoltre
+che LilyPond non possa scrivere su uno spazio maggiore di quanto permesso.
-@item safe
-Non si fida dell'input nel file @code{.ly}.
+@item Impostare un altro utente
+Per eseguire LilyPond in una gabbia si dovrebbe usare un altro utente e gruppo
+(ad esempio, @code{lily}/@code{lily}) con pochi privilegi. Ci dovrebbe essere
+una sola directory scrivibile da questo utente, che dovrebbe essere passata in
+@var{dir}.
-Quando la formattazione di LilyPond viene messa a disposizione tramite un server
-web, si @b{DEVE} passare l'opzione @code{--safe} o l'opzione @code{--jail}. L'opzione
-@code{--safe} impedirà che il codice Scheme presente nell'input possa fare uno
-scempio, ad esempio
+@item Preparare la gabbia
+LilyPond ha bisogno di leggere alcuni file quando viene lanciato. Tutti questi
+file devono essere copiati nella gabbia, sotto lo stesso percorso in cui appaiono
+nel vero filesystem principale. Si deve copiare l'intero contenuto dell'installazione
+LilyPond (ad esempio, @file{/usr/share/lilypond}).
-@quotation
-@verbatim
-#(system "rm -rf /")
-{
- c4^#(ly:export (ly:gulp-file "/etc/passwd"))
-}
-@end verbatim
-@end quotation
+Se c'è un problema, il modo più semplice per individuarlo è lanciare
+LilyPond usando @command{strace}, che permetterà di scoprire quali
+file mancano.
-L'opzione @code{-dsafe} funziona valutando le espressioni Scheme presenti nell'input
-in uno speciale modulo di sicurezza. Questo modulo di sicurezza è derivato dal
-modulo GUILE @file{safe-r5rs}, ma aggiunge alcune funzioni del
-LilyPond API. Queste funzioni sono elencate in @file{scm/safe-lily.scm}.
+@item Eseguire LilyPond
+In una gabbia montata con @code{noexec} è impossibile eseguire qualsiasi
+programma esterno. Dunque LilyPond deve essere eseguito con un backend che
+non richieda tale programma. Come è già stato detto, deve essere eseguito
+con privilegi di superutente (che ovviamente perderà immediatamente),
+possibilmente con l'uso di @command{sudo}. È una buona idea limitare il
+numero di secondi di tempo della CPU che LilyPond può usare (ad esempio con
+@command{ulimit -t}), e, se il sistema operativo lo permette, la quantità di
+memoria che può essere allocata. Si veda anche @ref{LilyPond in chroot jail}.
+@end table
-Inoltre, la modalità sicura non permette le direttive @code{\include} e
-disabilita l'uso del backslash nelle stringhe @TeX{}.
+@cindex loglevel
+@cindex output dettagliato
-In modalità sicura, non è possibile importare le variabili di LilyPond
-in Scheme.
+@item -l,--loglevel=@var{LIVELLO}
+Imposta la verbosità dell'output della console su @var{LIVELLO}. I valori possibili sono:
+@table @code
-@code{-dsafe} @emph{non} rileva il sovrautilizzo di risorse. È ancora possibile
-far sì che il programma rimanga in sospeso per un tempo indefinito, ad esempio
-alimentando il backend con strutture di dati cicliche. Dunque se si vuole usare
-LilyPond su un server web pubblicamente accessibile, si deve limitare il processo
-nell'uso della CPU e della memoria.
+@item NONE
+Nessun output, nemmeno i messaggi di errore.
-La modalità sicura bloccherà la compilazione di molti utili frammenti di codice
-LilyPond. L'opzione @code{--jail} è un'alternativa più sicura, ma richiede
-più lavoro per configurarla.
+@item ERROR
+Solo i messaggi di errore, niente avvisi o messaggi di elaborazione.
-@cindex formato di output, impostare il
-@item backend
-il formato di output da usare per il back-end. Per il @code{formato} si può
-scegliere tra
-@table @code
-@item ps
-@cindex PostScript, output
- per PostScript.
+@item WARN
+Avvisi e nessaggi di errore, nessun messaggio di elaborazione.
- I file Postscript includono i tipi di carattere TTF, Type1 e OTF. Non vengono
- inclusi i sottoinsiemi di questi tipi. Se si usa un set di caratteri orientali,
- si possono ottenere file di grosse dimensioni.
+@item BASIC_PROGRESS
+Messaggi di elaborazione di base (riuscita), avvisi e errori.
-@item eps
+@item PROGRESS
+Tutti i messaggi di elaborazione, avvisi e errori.
-@cindex Postscript, incapsulato
-@cindex EPS (Encapsulated PostScript)
+@item INFO (predefinito)
+Messaggi di elaborazione, avvisi, errori e ulteriori informazioni di esecuzione.
- per PostScript incapsulato. Invia ogni pagina (sistema) in un file
-@file{EPS} separato, senza font, e in un unico file @file{EPS} con
-tutte le pagine (sistemi) inclusi i font.
+@item DEBUG
+Tutti i messaggi possibili, incluso l'output verboso di debug.
-Questa è la modalità predefinita di @command{lilypond-book}.
+@end table
-@item svg
+@cindex directory, dirigere l'output in
+@cindex output, impostare il nome del file
+@cindex output, directory
-@cindex SVG (Scalable Vector Graphics)
+@item -o,--output=@var{FILE} o @var{CARTELLA}
+Imposta il file di output predefinito @var{FILE} oppure, se una cartella con
+quel nome esiste già, dirige l'output in @var{CARTELLA}, prendendo il nome
+del file dal file di input. In entrambi i casi verrà aggiunto il suffisso
+appropriato (ad esempio @code{.pdf} per il pdf).
- per ottenere SVG (Scalable Vector Graphics).
+@cindex PS (Postscript), output
+@cindex Postscript (PS), output
+@cindex output, PS (Postscript)
- Crea un singolo file SVG, senza font incorporati, per ogni pagina
- dell'output. Si raccomanda di installare i font Century
- Schoolbook, inclusi nell'installazione di LilyPond, per una resa
- ottimale. In UNIX basta copiare questi font dalla directory di
- LilyPond (solitamente
- @file{/usr/share/lilypond/VERSION/fonts/otf/}) in
- @file{~/.fonts/}. L'output SVG dovrebbe essere compatibile con qualsiasi
- editor SVG o user agent.
+@item --ps
+Genera PostScript.
-@item scm
+@cindex PNG (Portable Network Graphics), output
+@cindex output, PNG (Portable Network Graphics)
-@cindex Scheme, estrazione di
+@item --png
+Genera immmagini di ogni pagina in formato PNG. Questo implica
+@option{--ps}. La risoluzione in DPI dell'immagine può essere impostata con
+@example
+-dresolution=110
+@end example
- per estrarre i comandi di disegno grezzi e interni, basati su Scheme.
+@cindex PDF (Portable Document Format), output
+@cindex output, PDF (Portable Document Format)
-@item null
- non produce la stampa della partitura; ha lo stesso effetto di @code{-dno-print-pages}.
-@end table
+@item --pdf
+Genera PDF. Questo implica @option{--ps}.
-Esempio: @code{lilypond -dbackend=svg @var{filename}.ly}
+@item -v,--version
+Mostra informazioni sulla versione.
-@item preview
-@cindex preview, linea di comando
-Genera un file di output che contiene i titoli e il primo sistema
-del brano musicale. Se si usano i blocchi @code{\bookpart}, i titoli e il
-primo sistema di ogni @code{\bookpart} apparirà nell'output.
-I backend @code{ps}, @code{eps}, e @code{svg} supportano questa
-opzione.
+@item -V,--verbose
+Aumenta la prolissità: mostra i percorsi completi di tutti i file letti e dà
+informazioni sui tempi.
-@item print-pages
-Genera tutte le pagine, come da impostazione predefinita. @code{-dno-print-pages} è
-utile in combinazione con @code{-dpreview}.
+@item -w,--warranty
+Mostra la garanzia con cui viene distribuito GNU LilyPond. (Distribuito
+con @strong{NESSUNA GARANZIA}!)
@end table
+@node Opzioni avanzate della linea di comando per LilyPond
+@unnumberedsubsec Opzioni avanzate della linea di comando per @command{lilypond}
+@translationof Advanced command line options for LilyPond
-@item -h,--help
-Mostra una sintesi dell'utilizzo.
+@table @code
-@item -H,--header=@var{CAMPO}
-Estrae un campo dell'intestazione nel file @file{NOME.@var{CAMPO}}.
+@item -d@var{[nome-opzione]}=@var{[valore]},--define-default=@var{[nome-opzione]}=@var{[valore]}
+Imposta l'equivalente funzione interna di Scheme su @var{valore}. Se non
+viene specificato un @var{valore}, viene usato il valore predefinito. Per disabilitare
+un'opzione, si può usare il prefisso @code{no-} prima di @var{nome-opzione}, ad esempio
-@cindex ricerca dei file
-@cindex percorso di ricerca
-@item --include, -I=@var{directory}
-Aggiunge @var{directory} al percorso di ricerca per i file di input.
+@cindex punta e clicca, linea di comando
-È possibile assegnare più di un'opzione -I. La ricerca inizierà nella prima
-directory definita, e se il file da includere non viene trovato
-la ricerca continuerà nelle directory seguenti.
+@example
+-dpoint-and-click=#f
+@end example
-@item -i,--init=@var{file}
-Imposta il file di inizializzazione su @var{file} (predefinito: @file{init.ly}).
+@noindent
+è equivalente a
+@example
+-dno-point-and-click
+@end example
+@end table
-@cindex cartella, dirigere l'output in
-@cindex nome del file di output, impostare
+@noindent Sono supportate le seguenti opzioni insieme ai loro rispettivi
+valori predefiniti:
-@item -o,--output=@var{FILE} or @var{CARTELLA}
-Imposta il file di output predefinito @var{FILE} oppure, se una cartella con
-quel nome esiste già, dirige l'output in @var{CARTELLA}, prendendo il nome
-del file dal file di input. Il suffisso appropriato verrà
-aggiunto (ad esempio @code{.pdf} per il pdf) in entrambi i casi.
+@multitable @columnfractions .33 .16 .51
+@item @strong{Simbolo}
+@tab @strong{Valore}
+@tab @strong{Spiegazione/Opzioni}
+@item @code{anti-alias-factor}
+@tab @code{1}
+@tab Elabora a una risoluzione più alta (usando un certo fattore) e ridimensiona
+il risultato per evitare gli @q{artefatti} nelle immagini @code{PNG}.
-@cindex PostScript
+@item @code{aux-files}
+@tab @code{#t}
+@tab Crea i file @code{.tex}, @code{.texi}, @code{.count} nel backend
+@code{EPS}.
-@item --ps
-Genera PostScript.
+@item @code{backend}
+@tab @code{'ps}
+@tab Seleziona il backend. I file Postscript (predefinito) includono i tipi di
+carattere @code{TTF}, @code{Type1} e @code{OTF}. Non vengono inclusi i sottoinsiemi
+di questi tipi. Se si usa un set di caratteri @q{orientali}, si possono ottenere
+file di grosse dimensioni.
-@cindex Portable Network Graphics (PNG)
+@item
+@tab @code{'eps}
+@tab Encapsulated PostScript. Invia ogni pagina (sistema) in un file
+@file{EPS} separato, senza font, e in un unico file @file{EPS} con
+tutte le pagine (sistemi) inclusi i font. Questa è la modalità
+predefinita di @command{lilypond-book}.
-@item --png
-Genera immmagini di ogni pagina in formato PNG. Questo implica
-@code{--ps}. La risoluzione in DPI dell'immagine può essere impostata con
-@example
--dresolution=110
-@end example
+@item
+@tab @code{'null}
+@tab non produce la stampa della partitura; ha lo stesso
+effetto di @code{-dno-print-pages}.
-@cindex Portable Document Format (PDF)
+@item
+@tab @code{'svg}
+@tab Scalable Vector Graphics. Crea un singolo file SVG, senza font
+incorporati, per ogni pagina dell'output. Si raccomanda di installare i
+font Century Schoolbook, inclusi nell'installazione di LilyPond, per una
+resa ottimale. In UNIX basta copiare questi font dalla directory di
+LilyPond (solitamente @file{/usr/share/lilypond/VERSION/fonts/otf/}) in
+@file{~/.fonts/}. L'output SVG dovrebbe essere compatibile con qualsiasi
+editor SVG o user agent. C'è anche un'opzione @code{svg-woff} (sotto) per
+poter usare i file di font woff nel backend SVG.
-@item --pdf
-Genera PDF. Questo implica @code{--ps}.
+@item
+@tab @code{'scm}
+@tab Estrae i comandi di disegno grezzi e interni, basati su Scheme.
+
+@item @code{check-internal-types}
+@tab @code{#f}
+@tab Controlla l'assegnazione di ogni proprietà per i tipi.
+
+@item @code{clip-systems}
+@tab @code{#f}
+@tab Genera frammenti ritagliati di una partitura.
+
+@item @code{datadir}
+@tab
+@tab Prefisso per i file di dati (sola lettura).
+
+@item @code{debug-gc}
+@tab @code{#f}
+@tab Scarica le statistiche sul debug della memoria.
+
+@item @code{debug-gc-assert-parsed-dead}
+@tab @code{#f}
+@tab Per il debug della memoria: Assicura che tutti i riferimenti agli oggetti
+analizzati siano eliminati. Questa è un'opzione interna e viene abilitata
+automaticamente da @code{`-ddebug-gc'}.
+
+@item @code{debug-lexer}
+@tab @code{#f}
+@tab Debug dell'analizzatore lessicale flex.
+
+@item @code{debug-page-breaking-scoring}
+@tab @code{#f}
+@tab Crea le partiture per diverse configurazioni di interruzione di pagina.
+
+@item @code{debug-parser}
+@tab @code{#f}
+@tab Debug dell'analizzatore bison.
+
+@item @code{debug-property-callbacks}
+@tab @code{#f}
+@tab Debug delle catene cicliche di callback.
+
+@item @code{debug-skylines}
+@tab @code{#f}
+@tab Debug skylines.
+
+@item @code{delete-intermediate-files}
+@tab @code{#t}
+@tab Cancella i file @code{.ps} intermedi e inutilizzabili creati durante
+la compilazione.
+
+@item @code{dump-cpu-profile}
+@tab @code{#f}
+@tab Scarica l'informazione sui tempi (dipendente dal sistema).
+
+@item @code{dump-profile}
+@tab @code{#f}
+@tab Scarica l'informazione sulla memoria e il tempo per ogni file.
+
+@item @code{dump-signatures}
+@tab @code{#f}
+@tab Scarica le firme dell'output di ogni sistema. Usato per testare le regressioni.
+
+@item @code{eps-box-padding}
+@tab @code{#f}
+@tab Sposta il margine sinistro della cornice EPS dell'output della quantità
+specificata (in mm).
+
+@item @code{gs-load-fonts}
+@tab @code{#f}
+@tab Carica i font attraverso Ghostscript.
+
+@item @code{gs-load-lily-fonts}
+@tab @code{#f}
+@tab Carica solo i font LilyPond attraverso Ghostscript.
+
+@item @code{gui}
+@tab @code{#f}
+@tab Esegue il programma senza stampare messaggi e redirige tutto l'output in un file di log.
+@end multitable
+@noindent
+@strong{Nota per gli utenti Windows:} Per impostazione predefinita @code{lilypond.exe}
+stampa tutta l'informazione sull'avanzamento nella finestra dei comandi.
+@code{lilypond-windows.exe} non lo fa e riporta un prompt, privo di
+informazioni sull'avanzamento, subito nella linea di comando. L'opzione
+@option{-dgui} può essere usata in questo caso per redirigere l'output in
+un file di log.
+
+@multitable @columnfractions .33 .16 .51
+@item @code{help}
+@tab @code{#f}
+@tab Mostra questo aiuto.
+
+@item @code{include-book-title-preview}
+@tab @code{#t}
+@tab Include i titoli dei libri nelle immagini di anteprima.
+
+@item @code{include-eps-fonts}
+@tab @code{#t}
+@tab Include i font in file EPS con sistemi separati.
+
+@item @code{include-settings}
+@tab @code{#f}
+@tab Include il file per le impostazioni globali, questo viene incluso prima
+che la partitura sia elaborata.
+
+@item @code{job-count}
+@tab @code{#f}
+@tab Elabora in parallelo, usando il dato numero di lavori.
+
+@item @code{log-file}
+@tab @code{#f [file]}
+@tab Se la stringa @code{FOO} viene assegnata come secondo argomento,
+redirige l'output nel file @code{FOO.log}.
+
+@item @code{max-markup-depth}
+@tab @code{1024}
+@tab Maximum depth for the markup tree. If a markup has more levels,
+assume it will not terminate on its own, print a warning and return a
+null markup instead.
+
+@item @code{midi-extension}
+@tab @code{"midi"}
+@tab Imposta l'estensione predefinita per il file MIDI sulla stringa specificata.
+
+@item @code{music-strings-to-paths}
+@tab @code{#f}
+@tab Converte le stringhe di testo in percorsi quando i glifi appartengono a
+un font musicale.
+
+@item @code{old-relative}
+@tab @code{#f}
+@tab Fa sì che il modo @code{\relative} per la musica simultanea funzioni in
+modo simile alla sintassi degli accordi.
+
+@item @code{paper-size}
+@tab @code{\"a4\"}
+@tab Imposta la dimensione predefinita del foglio. Nota che la stringa deve
+essere compresa tra virgolette precedute dal segno di escape.
+
+@item @code{pixmap-format}
+@tab @code{png16m}
+@tab Imposta il formato di output di GhostScript per le immagini raster.
+
+@item @code{point-and-click}
+@tab @code{#f}
+@tab Aggiunge i collegamenti @q{punta e clicca} all'output @code{PDF}. Si veda
+@ref{Point and click}.
+
+@item @code{preview}
+@tab @code{#f}
+@tab Crea immagini di anteprima oltre al normale output.
+@end multitable
+@noindent
+Questa opzione è supportata da tutti i backend; @code{pdf}, @code{png},
+@code{ps}, @code{eps} e @code{svg}, ma non @code{scm}. Genera un file
+di output nella forma @code{mioFile.preview.estensione}, contenente i
+titoli e il primo sistema. Se vengono usati i blocchi @code{\book} o
+@code{\bookpart}, i titoli di @code{\book}, @code{\bookpart} o @code{\score}
+appariranno nell'output, incluso il primo sistema di ogni blocco @code{\score}
+se la variabile @code{print-all-headers} di @code{\paper} è impistata
+su @code{#t}.
+
+Per impedire il normale output, si usano le opzioni @option{-dprint-pages} o
+@option{-dno-print-pages} in base alle proprie esigenze.
+
+@multitable @columnfractions .33 .16 .51
+@item @code{print-pages}
+@tab @code{#t}
+@tab Genera le pagine complete (predefinito). @option{-dno-print-pages} è
+utile in combinazione con @option{-dpreview}.
+
+@item @code{profile-property-accesses}
+@tab @code{#f}
+@tab Mantiene una statistica delle chiamate di funzione @code{get_property()}.
+
+@item @code{protected-scheme-parsing}
+@tab @code{#t}
+@tab Continua se l'analizzatore coglie degli errori nel codice scheme interno
+al file di input. Se impostato su @code{#f}, in caso di errore si ferma e
+mostra la traccia di stack.
+
+@item @code{read-file-list}
+@tab @code{#f [file]}
+@tab Specifica il nome di un file che contiene una lista di file di input da
+elaborare.
+
+@item @code{relative-includes}
+@tab @code{#f}
+@tab Quando elabora un comando @code{\include}, cerca il file incluso
+in posizione relativa al file corrente (invece che in posizione assoluta).
+
+@item @code{resolution}
+@tab @code{101}
+@tab Imposta la risoluzione per generare immagini @code{PNG} su un certo
+valore (in dpi).
+
+@item @code{safe}
+@tab @code{#f}
+@tab Non si fida dell'input nel file @code{.ly}.
+@end multitable
-@item -j,--jail=@var{utente},@var{gruppo},@var{gabbia},@var{directory}
-Esegue @command{lilypond} in una gabbia chroot.
+@noindent
+Quando la formattazione di LilyPond viene messa a disposizione tramite un server
+web, si @b{DEVE} passare l'opzione @option{--safe} o l'opzione @option{--jail}. L'opzione
+@option{--safe} impedirà che il codice Scheme presente nell'input possa fare uno
+scempio, ad esempio
-L'opzione @code{--jail} fornisce un'alternativa più flessibile a
-@code{--safe} quando la formattazione di LilyPond è messa a disposizione attraverso
-un server web o quando LilyPond esegue sorgenti provenienti dall'esterno.
+@quotation
+@verbatim
+#(system "rm -rf /")
+{
+ c4^$(ly:gulp-file "/etc/passwd")
+}
+@end verbatim
+@end quotation
-L'opzione @code{--jail} modifica la radice di @command{lilypond} in
-@var{gabbia} appena prima di iniziare il vero processo di compilazione. L'utente
-e il gruppo vengono poi modificati per corrispondere a quelli forniti, e la
-directory corrente viene spostata in @var{directory}. Questa configurazione
-garantisce che non sia possibile (almeno in teoria) uscire dalla gabbia. Si noti
-che perché @code{--jail} funzioni @command{lilypond} deve essere eseguito come root;
-di solito questo si fa in modo sicuro col comando @command{sudo}.
+L'opzione @option{-dsafe} serve a valutare le espressioni Scheme presenti nell'input
+in uno speciale modulo di sicurezza. Questo modulo di sicurezza è derivato dal
+modulo GUILE @file{safe-r5rs}, ma aggiunge alcune funzioni del
+LilyPond API. Queste funzioni sono elencate in @file{scm/safe-lily.scm}.
-Configurare una gabbia è una questione leggermente delicata, perché bisogna essere
-sicuri che LilyPond possa trovare tutto quello di cui ha bisogno per compilare il
-sorgente @emph{dentro la gabbia}. Una configurazione tipica comprende i seguenti
-elementi:
+Inoltre, la modalità sicura non permette le direttive @code{\include} e
+disabilita l'uso del backslash nelle stringhe @TeX{}. In modalità sicura,
+non è possibile importare le variabili di LilyPond in Scheme.
-@table @asis
-@item Impostare un filesystem distinto
-Si dovrebbe creare un filesystem separato LilyPond, così che possa essere
-montato con opzioni di sicurezza come @code{noexec}, @code{nodev}, e
-@code{nosuid}. In questo modo è impossibile lanciare degli eseguibili o
-scrivere su un dispositivo direttamente da LilyPond. Se non si vuole creare
-una partizione separata, si può creare un file di dimensioni ragionevoli e usarlo
-per montare un dispositivo di loop. Un filesystem separato garantisce anche che
-LilyPond non possa scrivere su uno spazio maggiore di quanto permesso.
+@option{-dsafe} @emph{non} rileva il sovrautilizzo di risorse. È ancora possibile
+far sì che il programma rimanga in sospeso per un tempo indefinito, ad esempio
+alimentando il backend con strutture di dati cicliche. Dunque se si vuole usare
+LilyPond su un server web pubblicamente accessibile, si deve limitare il processo
+nell'uso della CPU e della memoria.
-@item Impostare un altro utente
-Per eseguire LilyPond in una gabbia si dovrebbe usare un altro utente e gruppo
-(ad esempio, @code{lily}/@code{lily}) con pochi privilegi. Ci dovrebbe essere
-una sola directory scrivibile da questo utente, che dovrebbe essere passata in
-@var{dir}.
+La modalità sicura bloccherà la compilazione di molti utili frammenti di codice
+LilyPond.
-@item Preparare la gabbia
-LilyPond ha bisogno di leggere alcuni file quando viene lanciato. Tutti questi
-file devono essere copiati nella gabbia, sotto lo stesso percorso in cui appaiono
-nel vero filesystem principale. Si deve copiare l'intero contenuto dell'installazione
-LilyPond installation (ad esempio, @file{/usr/share/lilypond}).
+L'opzione @option{--jail} è un'alternativa più sicura, ma richiede più lavoro
+per configurarla. Si veda @ref{Basic command line options for LilyPond}.
-Se c'è un problema, il modo più semplice per individuarlo è lanciare
-LilyPond usando @command{strace}, che permetterà di scoprire quali
-file mancano.
+@multitable @columnfractions .33 .16 .51
+@item @code{separate-log-files}
+@tab @code{#f}
+@tab Per i file di input @code{FILE1.ly}, @code{FILE2.ly}, etc. salva i dati di
+log nei file @code{FILE1.log}, @code{FILE2.log}, ...
-@item Eseguire LilyPond
-In una gabbia montata con @code{noexec} è impossibile eseguire qualsiasi
-programma esterno. Dunque LilyPond deve essere eseguito con un backend che
-non richieda tale programma. Come è già stato detto, deve essere eseguito
-con privilegi di superutente (che ovviamente perderà immediatamente),
-possibilmente con l'uso di @command{sudo}. È una buona idea limitare il
-numero di secondi di tempo della CPU che LilyPond può usare (ad esempio con @command{ulimit
--t}), e, se il tuo sistema operativo lo supporta, la quantità di memoria che
-può essere allocata.
-@end table
+@item @code{show-available-fonts}
+@tab @code{#f}
+@tab Elenca i nomi di font disponibili.
+@item @code{strict-infinity-checking}
+@tab @code{#f}
+@tab Forza il blocco del programma quando si incontrano eccezioni @code{Inf} e
+@code{NaN} sui numeri in virgola mobile.
-@item -v,--version
-Mostra informazioni sulla versione.
+@item @code{strip-output-dir}
+@tab @code{#t}
+@tab Non usa le directory dei file di input per costruire i nomi dei file
+di output.
-@item -V,--verbose
-Aumenta la prolissità: mostra i percorsi completi di tutti i file letti, e dà
-informazioni sui tempi.
+@item @code{svg-woff}
+@tab @code{#f}
+@tab Usa i file di font woff nel backend SVG.
-@item -w,--warranty
-Mostra la garanzia con cui viene distribuito GNU LilyPond. (Viene distribuito
-con @strong{NESSUNA GARANZIA}!)
-@end table
+@item @code{trace-memory-frequency}
+@tab @code{#f}
+@tab Registra molte volte al secondo l'uso delle celle da parte di Scheme. Salva i
+risultati in @code{FILE.stacks} e @code{FILE.graph}.
+
+@item @code{trace-scheme-coverage}
+@tab @code{#f}
+@tab Registra la copertura dei file Scheme in @code{FILE.cov}.
+
+@item @code{verbose}
+@tab @code{#f}
+@tab Output dettagliato, ovvero livello di log DEBUG (sola lettura).
+
+@item @code{warning-as-error}
+@tab @code{#f}
+@tab Trasforma tutti i messaggi di avviso e di @q{errore di programmazione} in errori.
+@end multitable
@node Variabili d'ambiente
sottodirectory chiamate @file{ly/}, @file{ps/}, @file{tex/}, etc.
@item LANG
-Determina la lingua per i messaggi di avvertimento.
+Determina la lingua per i messaggi di avviso.
+
+@item LILYPOND_LOGLEVEL
+Il livello di log (loglevel) predefinito. Se LilyPond viene chiamato senza un
+livello di log esplicito (ovvero senza l'opzione @option{--loglevel} della
+linea di comando), viene usato questo valore.
@item LILYPOND_GC_YIELD
-Con questa variabile si possono aggiustare il consumo di memoria e la
-performance. È una percentuale che regola il comportamento di gestione della
-memoria. Con valori più alti il programma usa più memoria, con valori
+Una variabile, in forma di percentuale, che regola il modo in cui viene gestita
+la memoria. Con valori più alti il programma usa più memoria, con valori
più bassi usa più tempo della CPU. Il valore predefinito è @code{70}.
@end table
@translationof LilyPond in chroot jail
Configurare un server perché esegua LilyPond in una gabbia chroot è un lavoro
-complicato. La procedura è spiegata sotto. Gli esempi si riferiscono a
+complesso. La procedura è spiegata sotto. Gli esempi si riferiscono a
Ubuntu Linux e potrebbero richiedere l'uso di @code{sudo} in alcune situazioni.
@itemize
@item Errore fatale
@cindex errore fatale
C'è qualcosa di assolutamente sbagliato e LilyPond non può continuare. Questo
-accade raramente. La causa più tipica è un'errata installazione dei tipi di
+accade raramente. La causa più comune è un'errata installazione dei tipi di
carattere.
@item Errore Scheme
@cindex errore Scheme
Gli errori che capitano mentre si esegue del codice Scheme sono individuati
dall'interprete Scheme. Se si esegue con l'opzione di prolissità (@code{-V} o
-@code{--verbose}), viene stampata una traccia della chiamata di funzione
+@option{--verbose}), viene stampata una traccia della chiamata di funzione
responsabile dell'errore.
@item Errore di programmazione
@cindex Errore di programmazione
-C'è stata una qualche incongruenza interna. Questi messaggi di errore
+Si è verificata una qualche incongruenza interna. Questi messaggi di errore
servono ad aiutare programmatori e debugger. Di solito si possono
ignorare. Talvolta sono talmente numerosi da nascondere il resto
dell'output.
@cindex Sospeso (core dumped)
Segnala un serio errore di programmazione che ha mandato in crash il
programma. Questi errori sono considerati critici. Se ti imbatti in un
-errore simile, invia una segnalazione di errori.
+errore simile, invia una segnalazione di errore.
@end table
@cindex errori, formato del messaggio
5 g' @}
@end example
-Queste posizioni sono la migliore ipotesi di LilyPond a proposito del
+Queste posizioni indicano la migliore ipotesi di LilyPond a proposito del
punto in cui l'avvertimento o l'errore sono comparsi, ma (per loro
stessa natura) avvertimenti ed errori capitano quando succede qualcosa
di imprevisto. Se non riesci a vedere un errore nella riga indicata
@translationof Common errors
Le condizioni di errore descritte di seguito capitano spesso, ma la causa
-non è ovvia né facile da trovare. Una volta che si sono viste e comprese,
-è facile gestirle.
+non è ovvia né facile da trovare. Una volta che sono state individuate e
+comprese, è facile gestirle.
@menu
Se la musica esce dalla pagina al di là del margine destro o appare
eccessivamente compressa, quasi sempre è dovuto all'inserimento di
-una durata sbagliata di una nota, che fa sì che l'ultima nota di una misura si
+una durata errata di una nota, che fa sì che l'ultima nota di una misura si
estenda oltre la barra di divisione. Non è sbagliato se la nota finale di
una misura non termina entro la barra di divisione inserita automaticamente, perché
semplicemente si assume che la nota continui nella misura successiva. Ma se
linea, portando a una linea di musica estremamente compressa o
a musica che esce dalla pagina.}
-La durata sbagliata può essere trovata facilmente se si usano i controlli di
+La durata errata può essere trovata facilmente se si usano i controlli di
battuta, si veda @ruser{Bar and bar number checks}.
-Se si vuole davvero avere una serie di di tali misure sovrapposte
+Se si vuole davvero ottenere una serie di tali misure sovrapposte
bisogna inserire una barra di divisione invisibile nel punto in cui
-si vuole l'interruzione di linea. Per i dettagli si veda @ruser{Bar lines}.
+si desidera l'interruzione di linea. Per i dettagli si veda @ruser{Bar lines}.
@node Appare un rigo in più
@code{\context}, saranno creati senza avviso appena si incontra
un comando che non può essere applicato a un contesto
esistente. Nelle partiture semplici la creazione automatica dei contesti
-è utile: infatti la maggior parte degli esempi nei manuali LilyPond sfruttano
-questa semplificazione. Ma talvolta la creazione silenziosa
-di contesti può causare nuovi righi o partiture non desiderate.
-Ad esempio, si potrebbe pensare che il seguente codice
-colori di rosso tutte le teste delle note nel rigo, ma in realtà
-produce due righi, di cui il più basso conserva il colore nero
-predefinito per le teste delle note.
+è utile: infatti la maggior parte degli esempi nei manuali LilyPond sfrutta
+questa semplificazione. Talvolta, però, la creazione silenziosa di contesti
+può causare la comparsa di nuovi righi o partiture non desiderate. Ad esempio,
+si potrebbe pensare che il seguente codice colori di rosso tutte le teste
+delle note nel rigo, ma in realtà produce due righi, di cui il più basso
+conserva il colore nero predefinito per le teste delle note.
@lilypond[quote,verbatim,relative=2]
\override Staff.NoteHead #'color = #red
@unnumberedsubsec Errore apparente in @code{../ly/init.ly}
@translationof Apparent error in ../ly/init.ly
-Vari oscuri messaggi di errore relativi a errori di sintassi in
-@file{../ly/init.ly} possono apparire se il file di input non ha
-una forma corretta, ad esempio se contiene delle parentesi o
-delle virgolette che non sono chiuse correttamente.
+Possono apparire diversi strani messaggi di errore relativi a errori di
+sintassi in @file{../ly/init.ly} se il file di input non ha una forma corretta,
+ad esempio se contiene delle parentesi o delle virgolette non chiuse
+correttamente.
L'errore più comune è la mancanza di una parentesi graffa, (@code{@}}), alla fine
di un blocco @code{score}. In questo caso la soluzione è ovvia: controlla
Per evitare questi errori conviene usare un editor che evidenzi automaticamente
le parentesi e le graffe corrispondenti.
-Una seconda causa frequente di errore è la mancanza di uno spazio tra l'ultima
+Un'altra causa frequente di errore è la mancanza di uno spazio tra l'ultima
sillaba di un blocco di testo (lyrics) e la parentesi graffa che chiude il
-blocco, (@code{@}}). Senza questa separazione si considera che la graffa
-faccia parte della sillaba. Si consiglia di assicurarsi sempre che ci sia
+blocco, (@code{@}}). Senza questa separazione, la graffa viene considerata
+come parte della sillaba. Si consiglia di assicurarsi sempre che ci sia
uno spazio prima e dopo @emph{ogni} parentesi graffa. Per comprendere l'importanza
di questo quando si usa il testo, si veda @ruser{Entering lyrics}.
Questo messaggio di errore può apparire anche nel caso in cui sia omessa la
-virgoletta che chiude, (@code{"}). In questo caso il messaggio di errore
+virgoletta di chiusura, (@code{"}). In questo caso il messaggio di errore
@c keep "-matching straight in fancy editors
dovrebbe dare un numero di riga vicino alla riga sbagliata. La virgoletta
non chiusa sarà solitamente una o due righe sopra.
@translationof Error message Unbound variable %
Questo messaggio di errore comparirà in fondo alla console di
-output o nel file di log insieme al messaggio @qq{GUILE signalled an error ...}
+output o nel file di log insieme al messaggio @qq{GUILE signalled an error @dots{}}
ogni volta che viene chiamata una routine di Scheme che contenga (erroneamente)
un commento @emph{LilyPond} invece di un commento @emph{Scheme}.