X-Git-Url: https://git.donarmstrong.com/?a=blobdiff_plain;ds=sidebyside;f=Documentation%2Fit%2Fusage%2Frunning.itely;h=a0497410523ea02162deb35361487429747246a1;hb=8848da24e00c75d7de626b2ecc409fb45e87ce4a;hp=be3d3cf0a67955337ae19ebc159d67b5fab00c91;hpb=dd1531e98057fb2179e7dad9b9c027cb16774490;p=lilypond.git diff --git a/Documentation/it/usage/running.itely b/Documentation/it/usage/running.itely index be3d3cf0a6..a049741052 100644 --- a/Documentation/it/usage/running.itely +++ b/Documentation/it/usage/running.itely @@ -1,14 +1,14 @@ @c -*- coding: utf-8; mode: texinfo; documentlanguage: it -*- @ignore - Translation of GIT committish: ccc485525e63f68623bce1c3ca7a2d4fb6e94499 + Translation of GIT committish: ff7d82711b47d3d31f26e1e6fc012c4055a20059 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.15.18" +@c \version "2.17.6" @node Eseguire lilypond @@ -56,7 +56,8 @@ questo argomento se non si conosce la linea di comando. @menu * Utilizzo di lilypond:: -* Opzioni della linea di comando per lilypond:: +* Opzioni di base della linea di comando per LilyPond:: +* Opzioni avanzate della linea di comando per LilyPond:: * Variabili d'ambiente:: * LilyPond in una gabbia chroot:: @end menu @@ -124,20 +125,26 @@ opzioni o se la sintassi è diversa. Nota che questi sono comandi shell 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 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 -e,--evaluate=@var{espressione} +@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 @option{-e}; saranno analizzate in modo sequenziale. @@ -159,194 +166,104 @@ nella linea di comando, e includi @noindent in cima al file @code{.ly}. -@item -f,--format=@var{formato} -Formati di output. Come @code{formato} si può scegliere tra -@code{ps}, @code{pdf}, e @code{png}. - -Esempio: @code{lilypond -fpng @var{file}.ly} - - - -@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 - -@cindex punta e clicca, linea di comando - -@example --dno-point-and-click -@end example - -@noindent -è equivalente a -@example --dpoint-and-click='#f' -@end example - -Di seguito alcune opzioni interessanti. - -@cindex aiuto, linea di comando - -@table @samp -@item help -L'esecuzione di @code{lilypond -dhelp} mostrerà tutte le opzioni disponibili -di @option{-d}. - -@cindex paper-size, linea di comando - -@item paper-size -Questa opzione imposta la dimensione predefinita del foglio, -@example --dpaper-size=\"letter\" -@end example - -@noindent -Nota che la stringa deve essere compresa tra virgolette precedute dal -segno di escape ( @code{\"} ). -@c Match " in previous line to help context-sensitive editors - -@cindex safe, linea di comando - -@item safe -Non si fida dell'input nel file @code{.ly}. - -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 - -@quotation -@verbatim -#(system "rm -rf /") -{ - c4^$(ly:gulp-file "/etc/passwd") -} -@end verbatim -@end quotation - -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}. - -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. - -@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. +@warning{Gli utenti Windows devono usare i doppi apici invece dei singoli apici.} -La modalità sicura bloccherà la compilazione di molti utili frammenti di codice -LilyPond. L'opzione @option{--jail} è un'alternativa più sicura, ma richiede -più lavoro per configurarla. +@cindex output, formato +@cindex formato, output -@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. - - 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 -f, --format=@var{formato} +Formati di output. Come @code{formato} si può scegliere tra +@code{ps}, @code{pdf} e @code{png}. -@item eps +Esempio: @code{lilypond -fpng @var{file}.ly} -@cindex Postscript, incapsulato -@cindex EPS (Encapsulated PostScript) +@item -h, --help +Mostra una sintesi dell'utilizzo. - 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 -H, --header=@var{CAMPO} +Estrae un campo dell'intestazione nel file @file{NOME.@var{CAMPO}}. -Questa è la modalità predefinita di @command{lilypond-book}. +@item -i, --init=@var{file} +Imposta il file di inizializzazione su @var{file} (predefinito: @file{init.ly}). -@item svg +@cindex ricerca dei file +@cindex percorso di ricerca -@cindex SVG (Scalable Vector Graphics) +@item -I, --include=@var{directory} +Aggiunge @var{directory} al percorso di ricerca per i file di input. - per ottenere SVG (Scalable Vector Graphics). +È 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. - 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. +@cindex gabbia chroot, esecuzione all'interno di -@item scm +@item -j, --jail=@var{utente},@var{gruppo},@var{gabbia},@var{directory} +Esegue @command{lilypond} in una gabbia chroot. -@cindex Scheme, estrazione di +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}). - per estrarre i comandi di disegno grezzi e interni, basati su Scheme. +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 null - non produce la stampa della partitura; ha lo stesso effetto di @option{-dno-print-pages}. -@end table +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: -Esempio: @code{lilypond -dbackend=svg @var{filename}.ly} +@table @asis -@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 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 gui -Viene eseguito senza avvisi e redirige tutto l'output verso un file di log. +@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}. -Nota per gli utenti Windows: Per impostazione predefinita @code{lilypond.exe} mostra -tutta l'informazione dell'elaborazione in corso nella finestra dei comandi, @code{lilypond-windows.exe} -invece fa apparire un prompt, privo di informazioni sull'elaborazione, subito -nella linea di comando. In questo caso si può usare l'opzione @option{-dgui} -per redirigere l'output verso un file di log. +@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}). -@item print-pages -Genera tutte le pagine, come da impostazione predefinita. @option{-dno-print-pages} è -utile in combinazione con @option{-dpreview}. +Se c'è un problema, il modo più semplice per individuarlo è lanciare +LilyPond usando @command{strace}, che permetterà di scoprire quali +file mancano. +@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 - - -@item -h,--help -Mostra una sintesi dell'utilizzo. - -@item -H,--header=@var{CAMPO} -Estrae un campo dell'intestazione nel file @file{NOME.@var{CAMPO}}. - -@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. - -È 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. - -@item -i,--init=@var{file} -Imposta il file di inizializzazione su @var{file} (predefinito: @file{init.ly}). - @cindex loglevel -@cindex output verbosity, setting +@cindex output dettagliato -@item -l,--loglevel=@var{LIVELLO} +@item -l, --loglevel=@var{LIVELLO} Imposta la verbosità dell'output della console su @var{LIVELLO}. I valori possibili sono: @table @code + @item NONE Nessun output, nemmeno i messaggi di errore. @@ -354,7 +271,7 @@ Nessun output, nemmeno i messaggi di errore. Solo i messaggi di errore, niente avvisi o messaggi di elaborazione. @item WARN -Avvisi e nessaggi di errore, nessun messaggio di elaborazione. +Avvisi e messaggi di errore, nessun messaggio di elaborazione. @item BASIC_PROGRESS Messaggi di elaborazione di base (riuscita), avvisi e errori. @@ -367,108 +284,410 @@ Messaggi di elaborazione, avvisi, errori e ulteriori informazioni di esecuzione. @item DEBUG Tutti i messaggi possibili, incluso l'output verboso di debug. + @end table -@cindex cartella, dirigere l'output in -@cindex nome del file di output, impostare +@cindex directory, dirigere l'output in +@cindex output, impostare il nome del file +@cindex output, directory -@item -o,--output=@var{FILE} or @var{CARTELLA} +@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). - -@cindex PostScript +@cindex PS (Postscript), output +@cindex Postscript (PS), output +@cindex output, PS (Postscript) @item --ps Genera PostScript. -@cindex Portable Network Graphics (PNG) +@cindex PNG (Portable Network Graphics), output +@cindex output, PNG (Portable Network Graphics) @item --png -Genera immmagini di ogni pagina in formato PNG. Questo implica +Genera immagini 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 -@cindex Portable Document Format (PDF) +@cindex PDF (Portable Document Format), output +@cindex output, PDF (Portable Document Format) @item --pdf Genera PDF. Questo implica @option{--ps}. +@item -v, --version +Mostra informazioni sulla versione. +@item -V, --verbose +Aumenta la prolissità: mostra i percorsi completi di tutti i file letti e dà +informazioni sui tempi. -@item -j,--jail=@var{utente},@var{gruppo},@var{gabbia},@var{directory} -Esegue @command{lilypond} in una gabbia chroot. +@item -w, --warranty +Mostra la garanzia con cui viene distribuito GNU LilyPond. (Distribuito +con @strong{NESSUNA GARANZIA}!) -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. +@end table -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}. -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: +@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 -@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 inoltre -che LilyPond non possa scrivere su uno spazio maggiore di quanto permesso. +@table @code -@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}. +@item -d@var{[nome-opzione]}=@var{[valore]},--define-default=@var{[nome-opzione]}=@var{[valore]} +Imposta l'equivalente funzione interna di Scheme su @var{valore}. -@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}). +@example +-dbackend=svg +@end example -Se c'è un problema, il modo più semplice per individuarlo è lanciare -LilyPond usando @command{strace}, che permetterà di scoprire quali -file mancano. +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 -@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. +@cindex punta e clicca, linea di comando + +@example +-dpoint-and-click=#f +@end example + +@noindent +è equivalente a +@example +-dno-point-and-click +@end example @end table +@noindent Sono supportate le seguenti opzioni insieme ai loro rispettivi +valori predefiniti: -@item -v,--version -Mostra informazioni sulla versione. +@multitable @columnfractions .33 .16 .51 +@item @strong{Simbolo} +@tab @strong{Valore} +@tab @strong{Spiegazione/Opzioni} -@item -V,--verbose -Aumenta la prolissità: mostra i percorsi completi di tutti i file letti, e dà -informazioni sui tempi. +@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}. -@item -w,--warranty -Mostra la garanzia con cui viene distribuito GNU LilyPond. (Distribuito -con @strong{NESSUNA GARANZIA}!) -@end table +@item @code{aux-files} +@tab @code{#t} +@tab Crea i file @code{.tex}, @code{.texi}, @code{.count} nel backend +@code{EPS}. + +@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. + +@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 +@tab @code{null} +@tab non produce la stampa della partitura; ha lo stesso +effetto di @code{-dno-print-pages}. + +@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 +@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 Massima profondità per la struttura del blocco markup. Se un blocco markup ha +più livelli, assume che non terminerà da solo, stampa un avviso e restituisce +al suo posto un markup vuoto. + +@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{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} è impostata +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 + +@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 + +@quotation +@verbatim +#(system "rm -rf /") +{ + c4^$(ly:gulp-file "/etc/passwd") +} +@end verbatim +@end quotation + +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}. + +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. + +@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. + +La modalità sicura bloccherà la compilazione di molti utili frammenti di codice +LilyPond. + +L'opzione @option{--jail} è un'alternativa più sicura, ma richiede più lavoro +per configurarla. Si veda @ref{Basic command line options for LilyPond}. + +@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}, @dots{} + +@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 @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 @code{svg-woff} +@tab @code{#f} +@tab Usa i file di font woff nel backend SVG. + +@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 @@ -507,7 +726,7 @@ più bassi usa più tempo della CPU. Il valore predefinito è @code{70}. Configurare un server perché esegua LilyPond in una gabbia chroot è un lavoro complesso. La procedura è spiegata sotto. Gli esempi si riferiscono a -Ubuntu Linux e potrebbero richiedere l'uso di @code{sudo} in alcune situazioni. +Ubuntu GNU/Linux e potrebbero richiedere l'uso di @code{sudo} in alcune situazioni. @itemize @@ -713,10 +932,10 @@ comprese, è facile gestirle. @menu * La musica esce dalla pagina:: * Appare un rigo in più:: -* Errore apparente in ../ly/init.ly:: * Messaggio di errore Unbound variable %:: * Messaggio di errore FT_Get_Glyph_Name:: * Avvertimento sul fatto che le affinità del rigo devono solo diminuire:: +* Messaggio di errore new inaspettato:: @end menu @node La musica esce dalla pagina @@ -739,11 +958,12 @@ linea, portando a una linea di musica estremamente compressa o a musica che esce dalla pagina.} La durata errata può essere trovata facilmente se si usano i controlli di -battuta, si veda @ruser{Bar and bar number checks}. +battuta, si veda @ruser{Controlli di battuta e del numero di battuta}. Se si vuole davvero ottenere una serie di tali misure sovrapposte bisogna inserire una barra di divisione invisibile nel punto in cui -si desidera l'interruzione di linea. Per i dettagli si veda @ruser{Bar lines}. +si desidera l'interruzione di linea. Per i dettagli si veda +@ruser{Stanghette}. @node Appare un rigo in più @@ -762,7 +982,7 @@ 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 +\override Staff.NoteHead.color = #red \new Staff { a } @end lilypond @@ -774,7 +994,7 @@ corretto per colorare le teste di tutte le note è @lilypond[quote,verbatim,relative=2] \new Staff { - \override Staff.NoteHead #'color = #red + \override Staff.NoteHead.color = #red a } @end lilypond @@ -803,35 +1023,6 @@ Per correggere il problema basta istanziare esplicitamente il contesto @end lilypond -@node Errore apparente in ../ly/init.ly -@unnumberedsubsec Errore apparente in @code{../ly/init.ly} -@translationof Apparent error in ../ly/init.ly - -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 -che il blocco @code{score} sia chiuso correttamente. La struttura corretta -di un file di input è descritta in @rlearning{Come funzionano i file di input di LilyPond}. -Per evitare questi errori conviene usare un editor che evidenzi automaticamente -le parentesi e le graffe corrispondenti. - -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, 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 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. - @node Messaggio di errore Unbound variable % @unnumberedsubsec Messaggio di errore Unbound variable % @translationof Error message Unbound variable % @@ -865,9 +1056,58 @@ messaggi di avvertimento facendo in modo che uno dei contesti si comporti come un rigo inserendo @example -\override VerticalAxisGroup #'staff-affinity = ##f +\override VerticalAxisGroup.staff-affinity = ##f @end example @noindent all'inizio del contesto. Per dettagli si veda @qq{Spacing of non-staff lines} in @ruser{Flexible vertical spacing within systems}. + +@node Messaggio di errore new inaspettato +@unnumberedsubsec Messaggio di errore @code{@bs{}new} inaspettato +@translationof Error message unexpected new + +Un blocco @code{\score} deve contenere una @emph{singola} espressione musicale. +Se invece contiene vari @code{\new Staff}, @code{\new StaffGroup} o simili +contesti introdotti con @code{\new} senza che questi siano racchiusi tra +parentesi graffe, @code{@{ @dots{} @}}, o doppie parentesi uncinate, @code{<< @dots{} >>}, +ovvero così: + +@example +\score @{ + % Invalido! Genera l'errore: errore di sintassi, \new inaspettato + \new Staff @{ @dots{} @} + \new Staff @{ @dots{} @} +@} +@end example + +@noindent +verrà generato questo messaggio di errore. + +Per evitare l'errore, è sufficiente racchiudere tutti i blocchi @code{\new} tra +parentesi graffe o doppie parentesi uncinate. + +Se si usano le parentesi graffe, i blocchi @code{\new} appariranno in +modo sequenziale: + +@lilypond[quote,verbatim] +\score { + { + \new Staff { a' a' a' a' } + \new Staff { g' g' g' g' } + } +} +@end lilypond + +@noindent +ma è più probabile che si debbano usare le doppie parentesi uncinate in modo +che i nuovi righi siano avviati in parallelo, ovvero contemporaneamente: + +@lilypond[quote,verbatim] +\score { + << + \new Staff { a' a' a' a' } + \new Staff { g' g' g' g' } + >> +} +@end lilypond