1 @c -*- coding: utf-8; mode: texinfo; documentlanguage: it -*-
4 Translation of GIT committish: 13da8b27aabc5d5a752d00ed1e2b99ad20f0f264
6 When revising a translation, copy the HEAD committish of the
7 version that you are working on. For details, see the Contributors'
8 Guide, node Updating translation committishes..
14 @node Eseguire lilypond
15 @chapter Eseguire @command{lilypond}
16 @translationof Running LilyPond
18 Questo capitolo descrive dettagliatamente gli aspetti tecnici dell'esecuzione
23 * Uso da linea di comando::
24 * Messaggi di errore::
31 @translationof Normal usage
33 La maggior parte degli utenti esegue LilyPond attraverso un'interfaccia grafica
34 (GUI); se non lo hai già fatto, leggi il @rlearning{Tutorial}. Se usi un editor
35 diverso per scrivere i file lilypond, leggi la documentazione di quel programma.
38 @node Uso da linea di comando
39 @section Uso da linea di comando
40 @translationof Command-line usage
42 Questa sezione contiene informazioni aggiuntive sull'uso di LilyPond da linea
43 di comando. Questo può essere utile per assegnare opzioni aggiuntive al programma.
44 Inoltre, ci sono alcuni programmi complementari di @q{aiuto} (come
45 @code{midi2ly}) che funzionano solo da linea di comando.
47 Con @q{linea di comando} si intende la linea di comando del sistema operativo.
48 Gli utenti Windows avranno più familiarità con i termini @q{shell DOS} o
49 @q{shell dei comandi}. Gli utenti MacOS@tie{}X avranno più familiarità con i termini
50 @q{terminale} o @q{console}. Una configurazione ulteriore è necessaria
51 per gli utenti MacOS@tie{}X; si veda @rweb{MacOS X}.
53 Descrivere come usare questa parte di un sistema operativo non rientra negli
54 obiettivi di questo manuale; si prega di consultare altra documentazione su
55 questo argomento se non si conosce la linea di comando.
58 * Utilizzo di lilypond::
59 * Opzioni di base della linea di comando per LilyPond::
60 * Opzioni avanzate della linea di comando per LilyPond::
61 * Variabili d'ambiente::
62 * LilyPond in una gabbia chroot::
65 @node Utilizzo di lilypond
66 @unnumberedsubsec Utilizzo di @command{lilypond}
67 @translationof Invoking lilypond
69 L'eseguibile @command{lilypond} può essere lanciato dalla linea di comando
73 lilypond [@var{opzione}]@dots{} @var{file}@dots{}
77 Se invocato con un nome di file senza estensione, viene tentata per prima
78 l'estensione @file{.ly}. Per leggere l'input da stdin, usare un
79 trattino (@code{-}) al posto di @var{file}.
81 Quando @file{file.ly} viene elaborato, lilypond creerà @file{file.ps}
82 e @file{file.pdf} come output. Possono essere specificati molti file;
83 ognuno di essi sarà elaborato in modo indipendente. @footnote{Lo status di
84 GUILE non viene resettato dopo l'elaborazione di un file @code{.ly}:
85 attenzione a non cambiare alcun valore predefinito dall'interno di Scheme.}
87 Se @file{file.ly} contiene più di un blocco @code{\book}, allora tutte le altre
88 partiture verranno salvate in file numerati, a partire da @file{file-1.pdf}. Inoltre,
89 il valore di @code{output-suffix} (suffisso di output) sarà inserito tra la base
90 del nome del file e il numero. Un file di input che contiene
93 #(define output-suffix "violin")
95 #(define output-suffix "cello")
100 produrrà come output @var{base}@file{-violin.pdf} e
101 @var{base}@file{-cello-1.pdf}.
104 @unnumberedsubsubsec Comandi standard da shell
106 Se la shell (ovvero la finestra dei comandi) utilizzata supporta le normali
107 redirezioni, potrebbe essere utile usare i seguenti comandi per dirigere
108 l'output di una console in un file:
113 @code{lilypond file.ly 1>stdout.log} per redirigere l'output normale
116 @code{lilypond file.ly 2>stderr.log} per redirigere i messaggi di errore
119 @code{lilypond file.ly &>all.log} per redirigere tutto l'output
123 Consulta la documentazione della tua shell per vedere se supporta queste
124 opzioni o se la sintassi è diversa. Nota che questi sono comandi shell
125 e non hanno niente a che fare con lilypond.
128 @node Opzioni di base della linea di comando per LilyPond
129 @unnumberedsubsec Opzioni di base della linea di comando per LilyPond
130 @translationof Basic command line options for LilyPond
132 @cindex Utilizzo di @command{lilypond}
133 @cindex opzioni della linea di comando per @command{lilypond}
134 @cindex linea di comando, opzioni di
137 Sono contemplate le seguenti opzioni:
141 @item -d,--define-default=@var{variabile}=@var{valore}
142 Si veda @ref{Advanced command line options for LilyPond}.
144 @cindex Scheme, valutazione dell'espressione
145 @cindex valutazione dell'espressione, Scheme
147 @item -e,--evaluate=@var{espressione}
148 Valuta l'@var{espressione} di Scheme prima di analizzare qualsiasi file @file{.ly}.
149 Si possono specificare varie opzioni @option{-e}; saranno analizzate in modo
152 L'espressione sarà analizzata nel modulo @code{guile-user}, dunque se vuoi
153 usare delle definizioni in @var{espressione}, usa
156 lilypond -e '(define-public a 42)'
160 nella linea di comando, e includi
163 #(use-modules (guile-user))
167 in cima al file @code{.ly}.
169 @warning{Gli utenti Windows devono usare i doppi apici invece dei singoli apici.}
171 @cindex output, formato
172 @cindex formato, output
174 @item -f,--format=@var{formato}
175 Formati di output. Come @code{formato} si può scegliere tra
176 @code{ps}, @code{pdf} e @code{png}.
178 Esempio: @code{lilypond -fpng @var{file}.ly}
181 Mostra una sintesi dell'utilizzo.
183 @item -H,--header=@var{CAMPO}
184 Estrae un campo dell'intestazione nel file @file{NOME.@var{CAMPO}}.
186 @item -i,--init=@var{file}
187 Imposta il file di inizializzazione su @var{file} (predefinito: @file{init.ly}).
189 @cindex ricerca dei file
190 @cindex percorso di ricerca
192 @item -I, --include=@var{directory}
193 Aggiunge @var{directory} al percorso di ricerca per i file di input.
195 È possibile assegnare più opzioni -I. La ricerca inizierà nella prima
196 directory definita, e se il file da includere non viene trovato
197 la ricerca continuerà nelle directory seguenti.
199 @cindex gabbia chroot, esecuzione all'interno di
201 @item -j,--jail=@var{utente},@var{gruppo},@var{gabbia},@var{directory}
202 Esegue @command{lilypond} in una gabbia chroot.
204 L'opzione @option{--jail} fornisce un'alternativa più flessibile a
205 @option{--safe} quando la formattazione di LilyPond è messa a disposizione attraverso
206 un server web o quando LilyPond esegue sorgenti provenienti dall'esterno
207 (si veda @ref{Advanced command line options for LilyPond}).
209 L'opzione @option{--jail} modifica la radice di @command{lilypond} in
210 @var{gabbia} appena prima di iniziare il vero processo di compilazione. L'utente
211 e il gruppo vengono poi modificati per corrispondere a quelli forniti, e la
212 directory corrente viene spostata in @var{directory}. Questa configurazione
213 garantisce che non sia possibile (almeno in teoria) uscire dalla gabbia. Si noti
214 che perché @option{--jail} funzioni @command{lilypond} deve essere eseguito come root;
215 di solito questo si fa in modo sicuro col comando @command{sudo}.
217 Configurare una gabbia è una questione un po' delicata, perché bisogna essere
218 sicuri che LilyPond possa trovare tutto quello di cui ha bisogno per compilare il
219 sorgente @emph{dentro la gabbia}. Una configurazione tipica comprende i seguenti
224 @item Impostare un filesystem distinto
225 Si dovrebbe creare un filesystem separato LilyPond, così che possa essere
226 montato con opzioni di sicurezza come @code{noexec}, @code{nodev}, e
227 @code{nosuid}. In questo modo è impossibile lanciare degli eseguibili o
228 scrivere su un dispositivo direttamente da LilyPond. Se non si vuole creare
229 una partizione separata, si può creare un file di dimensioni ragionevoli e usarlo
230 per montare un dispositivo di loop. Un filesystem separato garantisce inoltre
231 che LilyPond non possa scrivere su uno spazio maggiore di quanto permesso.
233 @item Impostare un altro utente
234 Per eseguire LilyPond in una gabbia si dovrebbe usare un altro utente e gruppo
235 (ad esempio, @code{lily}/@code{lily}) con pochi privilegi. Ci dovrebbe essere
236 una sola directory scrivibile da questo utente, che dovrebbe essere passata in
239 @item Preparare la gabbia
240 LilyPond ha bisogno di leggere alcuni file quando viene lanciato. Tutti questi
241 file devono essere copiati nella gabbia, sotto lo stesso percorso in cui appaiono
242 nel vero filesystem principale. Si deve copiare l'intero contenuto dell'installazione
243 LilyPond (ad esempio, @file{/usr/share/lilypond}).
245 Se c'è un problema, il modo più semplice per individuarlo è lanciare
246 LilyPond usando @command{strace}, che permetterà di scoprire quali
249 @item Eseguire LilyPond
250 In una gabbia montata con @code{noexec} è impossibile eseguire qualsiasi
251 programma esterno. Dunque LilyPond deve essere eseguito con un backend che
252 non richieda tale programma. Come è già stato detto, deve essere eseguito
253 con privilegi di superutente (che ovviamente perderà immediatamente),
254 possibilmente con l'uso di @command{sudo}. È una buona idea limitare il
255 numero di secondi di tempo della CPU che LilyPond può usare (ad esempio con
256 @command{ulimit -t}), e, se il sistema operativo lo permette, la quantità di
257 memoria che può essere allocata. Si veda anche @ref{LilyPond in chroot jail}.
261 @cindex output dettagliato
263 @item -l,--loglevel=@var{LIVELLO}
264 Imposta la verbosità dell'output della console su @var{LIVELLO}. I valori possibili sono:
268 Nessun output, nemmeno i messaggi di errore.
271 Solo i messaggi di errore, niente avvisi o messaggi di elaborazione.
274 Avvisi e nessaggi di errore, nessun messaggio di elaborazione.
277 Messaggi di elaborazione di base (riuscita), avvisi e errori.
280 Tutti i messaggi di elaborazione, avvisi e errori.
282 @item INFO (predefinito)
283 Messaggi di elaborazione, avvisi, errori e ulteriori informazioni di esecuzione.
286 Tutti i messaggi possibili, incluso l'output verboso di debug.
290 @cindex directory, dirigere l'output in
291 @cindex output, impostare il nome del file
292 @cindex output, directory
294 @item -o,--output=@var{FILE} o @var{CARTELLA}
295 Imposta il file di output predefinito @var{FILE} oppure, se una cartella con
296 quel nome esiste già, dirige l'output in @var{CARTELLA}, prendendo il nome
297 del file dal file di input. In entrambi i casi verrà aggiunto il suffisso
298 appropriato (ad esempio @code{.pdf} per il pdf).
300 @cindex PS (Postscript), output
301 @cindex Postscript (PS), output
302 @cindex output, PS (Postscript)
307 @cindex PNG (Portable Network Graphics), output
308 @cindex output, PNG (Portable Network Graphics)
311 Genera immmagini di ogni pagina in formato PNG. Questo implica
312 @option{--ps}. La risoluzione in DPI dell'immagine può essere impostata con
317 @cindex PDF (Portable Document Format), output
318 @cindex output, PDF (Portable Document Format)
321 Genera PDF. Questo implica @option{--ps}.
324 Mostra informazioni sulla versione.
327 Aumenta la prolissità: mostra i percorsi completi di tutti i file letti e dà
328 informazioni sui tempi.
331 Mostra la garanzia con cui viene distribuito GNU LilyPond. (Distribuito
332 con @strong{NESSUNA GARANZIA}!)
337 @node Opzioni avanzate della linea di comando per LilyPond
338 @unnumberedsubsec Opzioni avanzate della linea di comando per @command{lilypond}
339 @translationof Advanced command line options for LilyPond
343 @item -d@var{[nome-opzione]}=@var{[valore]},--define-default=@var{[nome-opzione]}=@var{[valore]}
344 Imposta l'equivalente funzione interna di Scheme su @var{valore}. Se non
345 viene specificato un @var{valore}, viene usato il valore predefinito. Per disabilitare
346 un'opzione, si può usare il prefisso @code{no-} prima di @var{nome-opzione}, ad esempio
348 @cindex punta e clicca, linea di comando
361 @noindent Sono supportate le seguenti opzioni insieme ai loro rispettivi
364 @multitable @columnfractions .33 .16 .51
365 @item @strong{Simbolo}
367 @tab @strong{Spiegazione/Opzioni}
369 @item @code{anti-alias-factor}
371 @tab Elabora a una risoluzione più alta (usando un certo fattore) e ridimensiona
372 il risultato per evitare gli @q{artefatti} nelle immagini @code{PNG}.
374 @item @code{aux-files}
376 @tab Crea i file @code{.tex}, @code{.texi}, @code{.count} nel backend
381 @tab Seleziona il backend. I file Postscript (predefinito) includono i tipi di
382 carattere @code{TTF}, @code{Type1} e @code{OTF}. Non vengono inclusi i sottoinsiemi
383 di questi tipi. Se si usa un set di caratteri @q{orientali}, si possono ottenere
384 file di grosse dimensioni.
388 @tab Encapsulated PostScript. Invia ogni pagina (sistema) in un file
389 @file{EPS} separato, senza font, e in un unico file @file{EPS} con
390 tutte le pagine (sistemi) inclusi i font. Questa è la modalità
391 predefinita di @command{lilypond-book}.
395 @tab non produce la stampa della partitura; ha lo stesso
396 effetto di @code{-dno-print-pages}.
400 @tab Scalable Vector Graphics. Crea un singolo file SVG, senza font
401 incorporati, per ogni pagina dell'output. Si raccomanda di installare i
402 font Century Schoolbook, inclusi nell'installazione di LilyPond, per una
403 resa ottimale. In UNIX basta copiare questi font dalla directory di
404 LilyPond (solitamente @file{/usr/share/lilypond/VERSION/fonts/otf/}) in
405 @file{~/.fonts/}. L'output SVG dovrebbe essere compatibile con qualsiasi
406 editor SVG o user agent. C'è anche un'opzione @code{svg-woff} (sotto) per
407 poter usare i file di font woff nel backend SVG.
411 @tab Estrae i comandi di disegno grezzi e interni, basati su Scheme.
413 @item @code{check-internal-types}
415 @tab Controlla l'assegnazione di ogni proprietà per i tipi.
417 @item @code{clip-systems}
419 @tab Genera frammenti ritagliati di una partitura.
423 @tab Prefisso per i file di dati (sola lettura).
425 @item @code{debug-gc}
427 @tab Scarica le statistiche sul debug della memoria.
429 @item @code{debug-gc-assert-parsed-dead}
431 @tab Per il debug della memoria: Assicura che tutti i riferimenti agli oggetti
432 analizzati siano eliminati. Questa è un'opzione interna e viene abilitata
433 automaticamente da @code{`-ddebug-gc'}.
435 @item @code{debug-lexer}
437 @tab Debug dell'analizzatore lessicale flex.
439 @item @code{debug-page-breaking-scoring}
441 @tab Crea le partiture per diverse configurazioni di interruzione di pagina.
443 @item @code{debug-parser}
445 @tab Debug dell'analizzatore bison.
447 @item @code{debug-property-callbacks}
449 @tab Debug delle catene cicliche di callback.
451 @item @code{debug-skylines}
455 @item @code{delete-intermediate-files}
457 @tab Cancella i file @code{.ps} intermedi e inutilizzabili creati durante
460 @item @code{dump-cpu-profile}
462 @tab Scarica l'informazione sui tempi (dipendente dal sistema).
464 @item @code{dump-profile}
466 @tab Scarica l'informazione sulla memoria e il tempo per ogni file.
468 @item @code{dump-signatures}
470 @tab Scarica le firme dell'output di ogni sistema. Usato per testare le regressioni.
472 @item @code{eps-box-padding}
474 @tab Sposta il margine sinistro della cornice EPS dell'output della quantità
477 @item @code{gs-load-fonts}
479 @tab Carica i font attraverso Ghostscript.
481 @item @code{gs-load-lily-fonts}
483 @tab Carica solo i font LilyPond attraverso Ghostscript.
487 @tab Esegue il programma senza stampare messaggi e redirige tutto l'output in un file di log.
491 @strong{Nota per gli utenti Windows:} Per impostazione predefinita @code{lilypond.exe}
492 stampa tutta l'informazione sull'avanzamento nella finestra dei comandi.
493 @code{lilypond-windows.exe} non lo fa e riporta un prompt, privo di
494 informazioni sull'avanzamento, subito nella linea di comando. L'opzione
495 @option{-dgui} può essere usata in questo caso per redirigere l'output in
498 @multitable @columnfractions .33 .16 .51
501 @tab Mostra questo aiuto.
503 @item @code{include-book-title-preview}
505 @tab Include i titoli dei libri nelle immagini di anteprima.
507 @item @code{include-eps-fonts}
509 @tab Include i font in file EPS con sistemi separati.
511 @item @code{include-settings}
513 @tab Include il file per le impostazioni globali, questo viene incluso prima
514 che la partitura sia elaborata.
516 @item @code{job-count}
518 @tab Elabora in parallelo, usando il dato numero di lavori.
520 @item @code{log-file}
521 @tab @code{#f [file]}
522 @tab Se la stringa @code{FOO} viene assegnata come secondo argomento,
523 redirige l'output nel file @code{FOO.log}.
525 @item @code{max-markup-depth}
527 @tab Maximum depth for the markup tree. If a markup has more levels,
528 assume it will not terminate on its own, print a warning and return a
531 @item @code{midi-extension}
533 @tab Imposta l'estensione predefinita per il file MIDI sulla stringa specificata.
535 @item @code{music-strings-to-paths}
537 @tab Converte le stringhe di testo in percorsi quando i glifi appartengono a
540 @item @code{old-relative}
542 @tab Fa sì che il modo @code{\relative} per la musica simultanea funzioni in
543 modo simile alla sintassi degli accordi.
545 @item @code{paper-size}
547 @tab Imposta la dimensione predefinita del foglio. Nota che la stringa deve
548 essere compresa tra virgolette precedute dal segno di escape.
550 @item @code{pixmap-format}
552 @tab Imposta il formato di output di GhostScript per le immagini raster.
554 @item @code{point-and-click}
556 @tab Aggiunge i collegamenti @q{punta e clicca} all'output @code{PDF}. Si veda
557 @ref{Point and click}.
561 @tab Crea immagini di anteprima oltre al normale output.
565 Questa opzione è supportata da tutti i backend; @code{pdf}, @code{png},
566 @code{ps}, @code{eps} e @code{svg}, ma non @code{scm}. Genera un file
567 di output nella forma @code{mioFile.preview.estensione}, contenente i
568 titoli e il primo sistema. Se vengono usati i blocchi @code{\book} o
569 @code{\bookpart}, i titoli di @code{\book}, @code{\bookpart} o @code{\score}
570 appariranno nell'output, incluso il primo sistema di ogni blocco @code{\score}
571 se la variabile @code{print-all-headers} di @code{\paper} è impistata
574 Per impedire il normale output, si usano le opzioni @option{-dprint-pages} o
575 @option{-dno-print-pages} in base alle proprie esigenze.
577 @multitable @columnfractions .33 .16 .51
578 @item @code{print-pages}
580 @tab Genera le pagine complete (predefinito). @option{-dno-print-pages} è
581 utile in combinazione con @option{-dpreview}.
583 @item @code{profile-property-accesses}
585 @tab Mantiene una statistica delle chiamate di funzione @code{get_property()}.
587 @item @code{protected-scheme-parsing}
589 @tab Continua se l'analizzatore coglie degli errori nel codice scheme interno
590 al file di input. Se impostato su @code{#f}, in caso di errore si ferma e
591 mostra la traccia di stack.
593 @item @code{read-file-list}
594 @tab @code{#f [file]}
595 @tab Specifica il nome di un file che contiene una lista di file di input da
598 @item @code{relative-includes}
600 @tab Quando elabora un comando @code{\include}, cerca il file incluso
601 in posizione relativa al file corrente (invece che in posizione assoluta).
603 @item @code{resolution}
605 @tab Imposta la risoluzione per generare immagini @code{PNG} su un certo
610 @tab Non si fida dell'input nel file @code{.ly}.
614 Quando la formattazione di LilyPond viene messa a disposizione tramite un server
615 web, si @b{DEVE} passare l'opzione @option{--safe} o l'opzione @option{--jail}. L'opzione
616 @option{--safe} impedirà che il codice Scheme presente nell'input possa fare uno
623 c4^$(ly:gulp-file "/etc/passwd")
628 L'opzione @option{-dsafe} serve a valutare le espressioni Scheme presenti nell'input
629 in uno speciale modulo di sicurezza. Questo modulo di sicurezza è derivato dal
630 modulo GUILE @file{safe-r5rs}, ma aggiunge alcune funzioni del
631 LilyPond API. Queste funzioni sono elencate in @file{scm/safe-lily.scm}.
633 Inoltre, la modalità sicura non permette le direttive @code{\include} e
634 disabilita l'uso del backslash nelle stringhe @TeX{}. In modalità sicura,
635 non è possibile importare le variabili di LilyPond in Scheme.
637 @option{-dsafe} @emph{non} rileva il sovrautilizzo di risorse. È ancora possibile
638 far sì che il programma rimanga in sospeso per un tempo indefinito, ad esempio
639 alimentando il backend con strutture di dati cicliche. Dunque se si vuole usare
640 LilyPond su un server web pubblicamente accessibile, si deve limitare il processo
641 nell'uso della CPU e della memoria.
643 La modalità sicura bloccherà la compilazione di molti utili frammenti di codice
646 L'opzione @option{--jail} è un'alternativa più sicura, ma richiede più lavoro
647 per configurarla. Si veda @ref{Basic command line options for LilyPond}.
649 @multitable @columnfractions .33 .16 .51
650 @item @code{separate-log-files}
652 @tab Per i file di input @code{FILE1.ly}, @code{FILE2.ly}, etc. salva i dati di
653 log nei file @code{FILE1.log}, @code{FILE2.log}, ...
655 @item @code{show-available-fonts}
657 @tab Elenca i nomi di font disponibili.
659 @item @code{strict-infinity-checking}
661 @tab Forza il blocco del programma quando si incontrano eccezioni @code{Inf} e
662 @code{NaN} sui numeri in virgola mobile.
664 @item @code{strip-output-dir}
666 @tab Non usa le directory dei file di input per costruire i nomi dei file
669 @item @code{svg-woff}
671 @tab Usa i file di font woff nel backend SVG.
673 @item @code{trace-memory-frequency}
675 @tab Registra molte volte al secondo l'uso delle celle da parte di Scheme. Salva i
676 risultati in @code{FILE.stacks} e @code{FILE.graph}.
678 @item @code{trace-scheme-coverage}
680 @tab Registra la copertura dei file Scheme in @code{FILE.cov}.
684 @tab Output dettagliato, ovvero livello di log DEBUG (sola lettura).
686 @item @code{warning-as-error}
688 @tab Trasforma tutti i messaggi di avviso e di @q{errore di programmazione} in errori.
692 @node Variabili d'ambiente
693 @unnumberedsubsec Variabili d'ambiente
694 @translationof Environment variables
697 @cindex LILYPOND_DATADIR
699 @command{lilypond} riconosce le seguenti variabili d'ambiente:
701 @item LILYPOND_DATADIR
702 Specifica la directory predefinita in cui saranno cercati i messaggi della
703 localizzazione e i file di dati. Questa directory deve contenere
704 sottodirectory chiamate @file{ly/}, @file{ps/}, @file{tex/}, etc.
707 Determina la lingua per i messaggi di avviso.
709 @item LILYPOND_LOGLEVEL
710 Il livello di log (loglevel) predefinito. Se LilyPond viene chiamato senza un
711 livello di log esplicito (ovvero senza l'opzione @option{--loglevel} della
712 linea di comando), viene usato questo valore.
714 @item LILYPOND_GC_YIELD
715 Una variabile, in forma di percentuale, che regola il modo in cui viene gestita
716 la memoria. Con valori più alti il programma usa più memoria, con valori
717 più bassi usa più tempo della CPU. Il valore predefinito è @code{70}.
722 @node LilyPond in una gabbia chroot
723 @unnumberedsubsec LilyPond in una gabbia chroot
724 @translationof LilyPond in chroot jail
726 Configurare un server perché esegua LilyPond in una gabbia chroot è un lavoro
727 complesso. La procedura è spiegata sotto. Gli esempi si riferiscono a
728 Ubuntu GNU/Linux e potrebbero richiedere l'uso di @code{sudo} in alcune situazioni.
732 @item Installa i pacchetti necessari: LilyPond, GhostScript e ImageMagick.
734 @item Crea un nuovo utente dal nome @code{lily}:
741 Questo comando creerà anche un nuovo gruppo per l'utente @code{lily}, e una
745 @item Nella cartella home dell'utente @code{lily} crea un file da usare come
749 dd if=/dev/zero of=/home/lily/loopfile bs=1k count= 200000
753 In questo esempio è stato creato un file di 200MB da usare come filesystem della
756 @item Crea un dispositivo di loop, crea e monta un filesystem, quindi crea
757 una cartella scrivibile dall'utente @code{lily}:
761 losetup /dev/loop0 /home/lily/loopfile
762 mkfs -t ext3 /dev/loop0 200000
763 mount -t ext3 /dev/loop0 /mnt/lilyloop
764 mkdir /mnt/lilyloop/lilyhome
765 chown lily /mnt/lilyloop/lilyhome
768 @item Nella configurazione dei server, JAIL sarà @code{/mnt/lilyloop}
769 e DIR sarà @code{/lilyhome}.
771 @item Crea un grande albero delle directory nella gabbia copiando i file
772 necessari, come mostrato nello script di esempio più in basso.
774 Puoi usare @code{sed} per creare i comandi di copia necessari per un certo
778 for i in "/usr/local/lilypond/usr/bin/lilypond" "/bin/sh" "/usr/bin/; \
779 do ldd $i | sed 's/.*=> \/\(.*\/\)\([^(]*\).*/mkdir -p \1 \&\& \
780 cp -L \/\1\2 \1\2/' | sed 's/\t\/\(.*\/\)\(.*\) (.*)$/mkdir -p \
781 \1 \&\& cp -L \/\1\2 \1\2/' | sed '/.*=>.*/d'; done
786 @subheading Script di esempio per Ubuntu 8.04 a 32-bit
794 loopdevice=/dev/loop0
795 jaildir=/mnt/lilyloop
796 # the prefix (without the leading slash!)
798 # the directory where lilypond is installed on the system
799 lilydir=/$lilyprefix/lilypond/
801 userhome=$home/$username
802 loopfile=$userhome/loopfile
804 dd if=/dev/zero of=$loopfile bs=1k count=200000
806 losetup $loopdevice $loopfile
807 mkfs -t ext3 $loopdevice 200000
808 mount -t ext3 $loopdevice $jaildir
809 mkdir $jaildir/lilyhome
810 chown $username $jaildir/lilyhome
813 mkdir -p bin usr/bin usr/share usr/lib usr/share/fonts $lilyprefix tmp
816 cp -r -L $lilydir $lilyprefix
817 cp -L /bin/sh /bin/rm bin
818 cp -L /usr/bin/convert /usr/bin/gs usr/bin
819 cp -L /usr/share/fonts/truetype usr/share/fonts
821 # Now the library copying magic
822 for i in "$lilydir/usr/bin/lilypond" "$lilydir/usr/bin/guile" "/bin/sh" \
823 "/bin/rm" "/usr/bin/gs" "/usr/bin/convert"; do ldd $i | sed 's/.*=> \
824 \/\(.*\/\)\([^(]*\).*/mkdir -p \1 \&\& cp -L \/\1\2 \1\2/' | sed \
825 's/\t\/\(.*\/\)\(.*\) (.*)$/mkdir -p \1 \&\& cp -L \/\1\2 \1\2/' \
826 | sed '/.*=>.*/d'; done | sh -s
828 # The shared files for ghostscript...
829 cp -L -r /usr/share/ghostscript usr/share
830 # The shared files for ImageMagick
831 cp -L -r /usr/lib/ImageMagick* usr/lib
833 ### Now, assuming that you have test.ly in /mnt/lilyloop/lilyhome,
834 ### you should be able to run:
835 ### Note that /$lilyprefix/bin/lilypond is a script, which sets the
836 ### LD_LIBRARY_PATH - this is crucial
837 /$lilyprefix/bin/lilypond -jlily,lily,/mnt/lilyloop,/lilyhome test.ly
840 @c " keep quote signs balanced for context-sensitive editors
842 @node Messaggi di errore
843 @section Messaggi di errore
844 @translationof Error messages
846 @cindex messaggi di errore
847 Quando si compila un file possono apparire vari messaggi di errore:
853 Qualcosa appare sospetto. Se stai cercando di fare qualcosa di insolito
854 allora comprenderai il messaggio e potrai ignorarlo.
855 Tuttavia di solito i messaggi di avvertimento indicano che il file di input ha
860 C'è qualcosa di assolutamente sbagliato. Il passo attualmente in elaborazione
861 (analisi, interpretazione o formattazione) verrà completato, ma il passo
862 successivo verrà saltato.
865 @cindex errore fatale
866 C'è qualcosa di assolutamente sbagliato e LilyPond non può continuare. Questo
867 accade raramente. La causa più comune è un'errata installazione dei tipi di
871 @cindex traccia, Scheme
872 @cindex traccia di chiamata
873 @cindex errore Scheme
874 Gli errori che capitano mentre si esegue del codice Scheme sono individuati
875 dall'interprete Scheme. Se si esegue con l'opzione di prolissità (@code{-V} o
876 @option{--verbose}), viene stampata una traccia della chiamata di funzione
877 responsabile dell'errore.
879 @item Errore di programmazione
880 @cindex Errore di programmazione
881 Si è verificata una qualche incongruenza interna. Questi messaggi di errore
882 servono ad aiutare programmatori e debugger. Di solito si possono
883 ignorare. Talvolta sono talmente numerosi da nascondere il resto
886 @item Sospeso (core dumped)
887 @cindex Sospeso (core dumped)
888 Segnala un serio errore di programmazione che ha mandato in crash il
889 programma. Questi errori sono considerati critici. Se ti imbatti in un
890 errore simile, invia una segnalazione di errore.
893 @cindex errori, formato del messaggio
894 Se gli avvertimenti e gli errori possono essere collegati
895 a una parte specifica del file di input, i messaggi di errore
896 hanno la seguente forma
899 @var{file}:@var{riga}:@var{colonna}: @var{messaggio}
900 @var{riga di input responsabile dell'errore}
903 Nella riga responsabile si inserisce un a capo per indicare la colonna
904 in cui è stato trovato l'errore. Ad esempio,
907 test.ly:2:19: error: not a duration: 5
912 Queste posizioni indicano la migliore ipotesi di LilyPond a proposito del
913 punto in cui l'avvertimento o l'errore sono comparsi, ma (per loro
914 stessa natura) avvertimenti ed errori capitano quando succede qualcosa
915 di imprevisto. Se non riesci a vedere un errore nella riga indicata
916 del file di input, prova a controllare una o due righe sopra la posizione
919 Maggiori informazioni sugli errori si trovano in @ref{Errori comuni}.
923 @section Errori comuni
924 @translationof Common errors
926 Le condizioni di errore descritte di seguito capitano spesso, ma la causa
927 non è ovvia né facile da trovare. Una volta che sono state individuate e
928 comprese, è facile gestirle.
932 * La musica esce dalla pagina::
933 * Appare un rigo in più::
934 * Errore apparente in ../ly/init.ly::
935 * Messaggio di errore Unbound variable %::
936 * Messaggio di errore FT_Get_Glyph_Name::
937 * Avvertimento sul fatto che le affinità del rigo devono solo diminuire::
940 @node La musica esce dalla pagina
941 @unnumberedsubsec La musica esce dalla pagina
942 @translationof Music runs off the page
944 Se la musica esce dalla pagina al di là del margine destro o appare
945 eccessivamente compressa, quasi sempre è dovuto all'inserimento di
946 una durata errata di una nota, che fa sì che l'ultima nota di una misura si
947 estenda oltre la barra di divisione. Non è sbagliato se la nota finale di
948 una misura non termina entro la barra di divisione inserita automaticamente, perché
949 semplicemente si assume che la nota continui nella misura successiva. Ma se
950 si presenta una lunga sequenza di misure simili, la musica può
951 apparire compressa o può uscire dalla pagina perché gli a capo
952 automatici possono essere inseriti soltanto alla fine di misure complete,
953 ovvero quando tutte le note finiscono prima o alla fine della misura.
955 @warning{Una durata sbagliata può inibire l'interruzione di
956 linea, portando a una linea di musica estremamente compressa o
957 a musica che esce dalla pagina.}
959 La durata errata può essere trovata facilmente se si usano i controlli di
960 battuta, si veda @ruser{Bar and bar number checks}.
962 Se si vuole davvero ottenere una serie di tali misure sovrapposte
963 bisogna inserire una barra di divisione invisibile nel punto in cui
964 si desidera l'interruzione di linea. Per i dettagli si veda @ruser{Bar lines}.
967 @node Appare un rigo in più
968 @unnumberedsubsec Appare un rigo in più
969 @translationof An extra staff appears
971 Se i contesti non sono creati esplicitamente con @code{\new} o
972 @code{\context}, saranno creati senza avviso appena si incontra
973 un comando che non può essere applicato a un contesto
974 esistente. Nelle partiture semplici la creazione automatica dei contesti
975 è utile: infatti la maggior parte degli esempi nei manuali LilyPond sfrutta
976 questa semplificazione. Talvolta, però, la creazione silenziosa di contesti
977 può causare la comparsa di nuovi righi o partiture non desiderate. Ad esempio,
978 si potrebbe pensare che il seguente codice colori di rosso tutte le teste
979 delle note nel rigo, ma in realtà produce due righi, di cui il più basso
980 conserva il colore nero predefinito per le teste delle note.
982 @lilypond[quote,verbatim,relative=2]
983 \override Staff.NoteHead.color = #red
987 Questo accade perché non esiste un contesto @code{Staff} quando viene
988 elaborata l'istruzione di override, quindi ne viene implicitamente creato uno e
989 l'override viene applicato ad esso. Ma poi il comando @code{\new Staff} crea
990 un altro rigo separato nel quale vengono inserite le note. Il codice
991 corretto per colorare le teste di tutte le note è
993 @lilypond[quote,verbatim,relative=2]
995 \override Staff.NoteHead.color = #red
1000 Vediamo un secondo esempio. Se un comando @code{\relative} viene posto
1001 dentro un comando @code{\repeat}, vengono generati due righi, il secondo
1002 spostato orizzontalmente rispetto al primo, perché il comando @code{\repeat}
1003 genera due blocchi @code{\relative}, ognuno dei quali crea implicitamente i
1004 blocchi @code{Staff} e @code{Voice}.
1006 @lilypond[quote,verbatim]
1008 \relative c' { c4 d e f }
1012 Per correggere il problema basta istanziare esplicitamente il contesto
1015 @lilypond[quote,verbatim]
1018 \relative c' { c4 d e f }
1024 @node Errore apparente in ../ly/init.ly
1025 @unnumberedsubsec Errore apparente in @code{../ly/init.ly}
1026 @translationof Apparent error in ../ly/init.ly
1028 Possono apparire diversi strani messaggi di errore relativi a errori di
1029 sintassi in @file{../ly/init.ly} se il file di input non ha una forma corretta,
1030 ad esempio se contiene delle parentesi o delle virgolette non chiuse
1033 L'errore più comune è la mancanza di una parentesi graffa, (@code{@}}), alla fine
1034 di un blocco @code{score}. In questo caso la soluzione è ovvia: controlla
1035 che il blocco @code{score} sia chiuso correttamente. La struttura corretta
1036 di un file di input è descritta in @rlearning{Come funzionano i file di input di LilyPond}.
1037 Per evitare questi errori conviene usare un editor che evidenzi automaticamente
1038 le parentesi e le graffe corrispondenti.
1040 Un'altra causa frequente di errore è la mancanza di uno spazio tra l'ultima
1041 sillaba di un blocco di testo (lyrics) e la parentesi graffa che chiude il
1042 blocco, (@code{@}}). Senza questa separazione, la graffa viene considerata
1043 come parte della sillaba. Si consiglia di assicurarsi sempre che ci sia
1044 uno spazio prima e dopo @emph{ogni} parentesi graffa. Per comprendere l'importanza
1045 di questo quando si usa il testo, si veda @ruser{Entering lyrics}.
1047 Questo messaggio di errore può apparire anche nel caso in cui sia omessa la
1048 virgoletta di chiusura, (@code{"}). In questo caso il messaggio di errore
1049 @c keep "-matching straight in fancy editors
1050 dovrebbe dare un numero di riga vicino alla riga sbagliata. La virgoletta
1051 non chiusa sarà solitamente una o due righe sopra.
1053 @node Messaggio di errore Unbound variable %
1054 @unnumberedsubsec Messaggio di errore Unbound variable %
1055 @translationof Error message Unbound variable %
1057 Questo messaggio di errore comparirà in fondo alla console di
1058 output o nel file di log insieme al messaggio @qq{GUILE signalled an error @dots{}}
1059 ogni volta che viene chiamata una routine di Scheme che contenga (erroneamente)
1060 un commento @emph{LilyPond} invece di un commento @emph{Scheme}.
1062 I commenti LilyPond iniziano con un segno di percentuale, (@code{%}), e non
1063 devono essere usati all'interno delle routine di Scheme. I commenti Scheme
1064 iniziano con un punto e virgola, (@code{;}).
1066 @node Messaggio di errore FT_Get_Glyph_Name
1067 @unnumberedsubsec Messaggio di errore FT_Get_Glyph_Name
1068 @translationof Error message FT_Get_Glyph_Name
1070 Questo messaggio di errore compare nella console di output o nel file di log file
1071 se un file di input contiene un carattere non-ASCII e non è stato salvato nella
1072 codifica UTF-8. Per dettagli si veda @ruser{Text encoding}.
1075 @node Avvertimento sul fatto che le affinità del rigo devono solo diminuire
1076 @unnumberedsubsec Avvertimento sul fatto che le affinità del rigo devono solo diminuire
1077 @translationof Warning staff affinities should only decrease
1079 Questo avvertimento può apparire se non ci sono dei righi nell'output,
1080 ad esempio se ci sono solo un contesto @code{ChordName} e un
1081 contesto @code{Lyrics}, come in un lead sheet. Si possono evitare questi
1082 messaggi di avvertimento facendo in modo che uno dei contesti si comporti
1083 come un rigo inserendo
1086 \override VerticalAxisGroup.staff-affinity = ##f
1090 all'inizio del contesto. Per dettagli si veda @qq{Spacing of non-staff lines} in
1091 @ruser{Flexible vertical spacing within systems}.