]> git.donarmstrong.com Git - lilypond.git/blob - Documentation/it/usage/running.itely
e0e7d94e9b2a15919915b2aa30f3b1084a04f7f1
[lilypond.git] / Documentation / it / usage / running.itely
1 @c -*- coding: utf-8; mode: texinfo; documentlanguage: it -*-
2
3 @ignore
4     Translation of GIT committish: cd1ac38996d3de35770ea31f819b392fe686bf39
5
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..
9 @end ignore
10
11 @c \version "2.17.6"
12
13
14 @node Eseguire lilypond
15 @chapter Eseguire @command{lilypond}
16 @translationof Running LilyPond
17
18 Questo capitolo descrive dettagliatamente gli aspetti tecnici dell'esecuzione
19 di LilyPond.
20
21 @menu
22 * Uso normale::
23 * Uso da linea di comando::
24 * Messaggi di errore::
25 * Errori comuni::
26 @end menu
27
28
29 @node Uso normale
30 @section Uso normale
31 @translationof Normal usage
32
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.
36
37
38 @node Uso da linea di comando
39 @section Uso da linea di comando
40 @translationof Command-line usage
41
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.
46
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}.
52
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.
56
57 @menu
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::
63 @end menu
64
65 @node Utilizzo di LilyPond
66 @unnumberedsubsec Utilizzo di @command{lilypond}
67 @translationof Invoking LilyPond
68
69 L'eseguibile @command{lilypond} può essere lanciato dalla linea di comando
70 nel seguente modo.
71
72 @example
73 lilypond [@var{opzione}]@dots{} @var{file}@dots{}
74 @end example
75
76
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}.
80
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.}
86
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
91
92 @example
93 #(define output-suffix "violin")
94 \score @{ @dots{} @}
95 #(define output-suffix "cello")
96 \score @{ @dots{} @}
97 @end example
98
99 @noindent
100 produrrà come output @var{base}@file{-violin.pdf} e
101 @var{base}@file{-cello-1.pdf}.
102
103
104 @unnumberedsubsubsec Usare LilyPond con funzionalità standard della shell
105
106 Dato che LilyPond è un'applicazione a linea di comando, si possono sfruttare
107 le funzionalità della @q{shell} usata per lanciare LilyPond.
108
109 Per esempio:
110
111 @example
112 lilypond *.ly
113 @end example
114
115 @noindent
116 elaborerà tutti i file LilyPond nella directory corrente.
117
118 Potrebbe essere utile anche redirigere l'output della console (per esempio
119 in un file):
120
121 @example
122 lilypond file.ly 1> stdout.txt
123
124 lilypond file.ly 2> stderr.txt
125
126 lilypond file.ly &> all.txt
127 @end example
128
129 @noindent
130 Questi tre comandi redirigono rispettivamente l'output @q{normale}, gli
131 @q{errori} o @q{tutto} in un file di testo.  Consulta la documentazione
132 della tua shell, del prompt dei comandi (Windows), delle applicazioni
133 Terminale o Console (MacOS X), per vedere se la redirezione dell'output
134 è supportata o se la sintassi è diversa.
135
136 L'esempio seguente cerca e elabora tutti i file di input nella directory
137 corrente e in tutte le directory inferiori ricorsivamente.  I file di output
138 saranno salvati nella stessa directory in cui è stato lanciato il comando,
139 invece delle stesse directory in cui si trovano i file di input.
140
141 @example
142 find . -name '*.ly' -exec lilypond '@{@}' \;
143 @end example
144
145 @noindent
146 Questo comando dovrebbe funzionare anche in MacOS@tie{}X.
147
148 Gli utenti Windows devono lanciare questo comando:
149
150 @example
151 forfiles /s /M *.ly /c "cmd /c lilypond @@file"
152 @end example
153
154 @noindent
155 nel @code{prompt dei comandi}, che di solito si trova in
156 @code{Avvio > Accessori > Prompt dei comandi}, oppure, se si usa la
157 versione 8, scrivendo @q{prompt dei comandi} nella finestra di ricerca.
158
159 Altrimenti, si può indicare un percorso esplicito alla cartella che
160 contiene tutte le sottocartelle con i file di input tramite l'opzione
161 @code{/p}:
162
163 @example
164 forfiles /s /p C:\Documents\MyScores /M *.ly /c "cmd /c lilypond @@file"
165 @end example
166
167 Tale percorso, se contiene spazi, deve essere racchiuso tra
168 virgolette doppie:
169
170 @example
171 forfiles /s /p "C:\Documents\My Scores" /M *.ly /c "cmd /c lilypond @@file"
172 @end example
173
174
175 @node Opzioni di base della linea di comando per LilyPond
176 @unnumberedsubsec Opzioni di base della linea di comando per LilyPond
177 @translationof Basic command line options for LilyPond
178
179 @cindex Utilizzo di @command{lilypond}
180 @cindex opzioni della linea di comando per @command{lilypond}
181 @cindex linea di comando, opzioni di
182 @cindex switch
183
184 Sono contemplate le seguenti opzioni:
185
186 @table @code
187
188 @item -b, --bigpdfs
189 @cindex bigpdfs
190
191 I file PDF generati saranno molto più grandi del normale (a causa
192 di un'ottimizzazione dei tipi di carattere scarsa o assente). Tuttavia,
193 due o più file PDF, se inclusi in documenti @w{@code{pdftex}},
194 @w{@code{xetex}} o @w{@code{luatex}}, possono essere ulteriormente
195 elaborati attraverso ghostscript (rimuovendo le duplicazioni dei dati
196 dei tipi di carattere), ottenendo così file PDF @emph{molto} più piccoli.
197
198 @example
199 lilypond -b myfile
200 @end example
201
202 Poi eseguire @code{ghostscript};
203
204 @example
205 gs -q -sDEVICE=pdfwrite -o gsout.pdf myfile.pdf
206 @end example
207
208 Poi si può usare @code{pdfsizeopt.py} per ottimizzare ulteriormente la
209 dimensione del file;
210
211 @example
212 pdfsizeopt.py --use-multivalent=no gsout.pdf final.pdf
213 @end example
214
215 @item -d, --define-default=@var{variabile}=@var{valore}
216 Si veda @ref{Opzioni avanzate della linea di comando per LilyPond}.
217
218 @cindex Scheme, valutazione dell'espressione
219 @cindex valutazione dell'espressione, Scheme
220
221 @item -e, --evaluate=@var{espressione}
222 Valuta l'@var{espressione} di Scheme prima di analizzare qualsiasi file @file{.ly}.
223 Si possono specificare varie opzioni @option{-e}; saranno analizzate in modo
224 sequenziale.
225
226 L'espressione sarà analizzata nel modulo @code{guile-user}, dunque se vuoi
227 usare delle definizioni in @var{espressione}, usa
228
229 @example
230 lilypond -e '(define-public a 42)'
231 @end example
232
233 @noindent
234 nella linea di comando, e includi
235
236 @example
237 #(use-modules (guile-user))
238 @end example
239
240 @noindent
241 in cima al file @code{.ly}.
242
243 @warning{Gli utenti Windows devono usare i doppi apici invece dei singoli apici.}
244
245 @cindex output, formato
246 @cindex formato, output
247
248 @item -f, --format=@var{formato}
249 Formati di output.  Come @code{formato} si può scegliere tra
250 @code{ps}, @code{pdf} e @code{png}.
251
252 Esempio: @code{lilypond -fpng @var{file}.ly}
253
254 @noindent
255 Per i formati @code{svg} e @code{eps} usare l'opzione @code{-dbackend}.
256 Vedi @ref{Opzioni avanzate della linea di comando per LilyPond}.
257
258 @item -h, --help
259 Mostra una sintesi dell'utilizzo.
260
261 @item -H, --header=@var{CAMPO}
262 Estrae un campo dell'intestazione nel file @file{NOME.@var{CAMPO}}.
263
264 @item -i, --init=@var{file}
265 Imposta il file di inizializzazione su @var{file} (predefinito: @file{init.ly}).
266
267 @cindex ricerca dei file
268 @cindex percorso di ricerca
269
270 @item -I, --include=@var{directory}
271
272 È possibile assegnare più opzioni -I.  La ricerca inizierà nella prima
273 Aggiunge @var{directory} al percorso di ricerca per i file di input.
274 directory definita, e se il file da includere non viene trovato
275 la ricerca continuerà nelle directory seguenti.
276
277 @cindex gabbia chroot, esecuzione all'interno di
278
279 @item -j, --jail=@var{utente},@var{gruppo},@var{gabbia},@var{directory}
280 Esegue @command{lilypond} in una gabbia chroot.
281
282 L'opzione @option{--jail} fornisce un'alternativa più flessibile a
283 @option{--safe} quando la formattazione di LilyPond è messa a disposizione attraverso
284 un server web o quando LilyPond esegue sorgenti provenienti dall'esterno
285 (si veda @ref{Opzioni avanzate della linea di comando per LilyPond}).
286
287 L'opzione @option{--jail} modifica la radice di @command{lilypond} in
288 @var{gabbia} appena prima di iniziare il vero processo di compilazione.  L'utente
289 e il gruppo vengono poi modificati per corrispondere a quelli forniti, e la
290 directory corrente viene spostata in @var{directory}.  Questa configurazione
291 garantisce che non sia possibile (almeno in teoria) uscire dalla gabbia.  Si noti
292 che perché @option{--jail} funzioni @command{lilypond} deve essere eseguito come root;
293 di solito questo si fa in modo sicuro col comando @command{sudo}.
294
295 Configurare una gabbia è una questione un po' delicata, perché bisogna essere
296 sicuri che LilyPond possa trovare tutto quello di cui ha bisogno per compilare il
297 sorgente @emph{dentro la gabbia}.  Una configurazione tipica comprende i seguenti
298 elementi:
299
300 @table @asis
301
302 @item Impostare un filesystem distinto
303 Si dovrebbe creare un filesystem separato LilyPond, così che possa essere
304 montato con opzioni di sicurezza come @code{noexec}, @code{nodev}, e
305 @code{nosuid}.  In questo modo è impossibile lanciare degli eseguibili o
306 scrivere su un dispositivo direttamente da LilyPond.  Se non si vuole creare
307 una partizione separata, si può creare un file di dimensioni ragionevoli e usarlo
308 per montare un dispositivo di loop.  Un filesystem separato garantisce inoltre
309 che LilyPond non possa scrivere su uno spazio maggiore di quanto permesso.
310
311 @item Impostare un altro utente
312 Per eseguire LilyPond in una gabbia si dovrebbe usare un altro utente e gruppo
313 (ad esempio, @code{lily}/@code{lily}) con pochi privilegi.  Ci dovrebbe essere
314 una sola directory scrivibile da questo utente, che dovrebbe essere passata in
315 @var{dir}.
316
317 @item Preparare la gabbia
318 LilyPond ha bisogno di leggere alcuni file quando viene lanciato.  Tutti questi
319 file devono essere copiati nella gabbia, sotto lo stesso percorso in cui appaiono
320 nel vero filesystem principale.  Si deve copiare l'intero contenuto dell'installazione
321 LilyPond (ad esempio, @file{/usr/share/lilypond}).
322
323 Se c'è un problema, il modo più semplice per individuarlo è lanciare
324 LilyPond usando @command{strace}, che permetterà di scoprire quali
325 file mancano.
326
327 @item Eseguire LilyPond
328 In una gabbia montata con @code{noexec} è impossibile eseguire qualsiasi
329 programma esterno.  Dunque LilyPond deve essere eseguito con un backend che
330 non richieda tale programma.  Come è già stato detto, deve essere eseguito
331 con privilegi di superutente (che ovviamente perderà immediatamente),
332 possibilmente con l'uso di @command{sudo}.  È una buona idea limitare il
333 numero di secondi di tempo della CPU che LilyPond può usare (ad esempio con
334 @command{ulimit -t}), e, se il sistema operativo lo permette, la quantità di
335 memoria che può essere allocata.  Si veda anche @ref{LilyPond in una gabbia chroot}.
336 @end table
337
338 @cindex loglevel
339 @cindex output dettagliato
340
341 @item -l, --loglevel=@var{LIVELLO}
342 Imposta la verbosità dell'output della console su @var{LIVELLO}. I valori possibili sono:
343 @table @code
344
345 @item NONE
346 Nessun output, nemmeno i messaggi di errore.
347
348 @item ERROR
349 Solo i messaggi di errore, niente avvisi o messaggi di elaborazione.
350
351 @item WARN
352 Avvisi e messaggi di errore, nessun messaggio di elaborazione.
353
354 @item BASIC_PROGRESS
355 Messaggi di elaborazione di base (riuscita), avvisi e errori.
356
357 @item PROGRESS
358 Tutti i messaggi di elaborazione, avvisi e errori.
359
360 @item INFO (predefinito)
361 Messaggi di elaborazione, avvisi, errori e ulteriori informazioni di esecuzione.
362
363 @item DEBUG
364 Tutti i messaggi possibili, incluso l'output verboso di debug.
365
366 @end table
367
368 @cindex directory, dirigere l'output in
369 @cindex output, impostare il nome del file
370 @cindex output, directory
371
372 @item -o, --output=@var{FILE} o @var{CARTELLA}
373 Imposta il file di output predefinito @var{FILE} oppure, se una cartella con
374 quel nome esiste già, dirige l'output in @var{CARTELLA}, prendendo il nome
375 del file dal file di input.  In entrambi i casi verrà aggiunto il suffisso
376 appropriato (ad esempio @code{.pdf} per il pdf).
377
378 @cindex PS (Postscript), output
379 @cindex Postscript (PS), output
380 @cindex output, PS (Postscript)
381
382 @item --ps
383 Genera PostScript.
384
385 @cindex PNG (Portable Network Graphics), output
386 @cindex output, PNG (Portable Network Graphics)
387
388 @item --png
389 Genera immagini di ogni pagina in formato PNG.  Questo implica
390 @option{--ps}.  La risoluzione in DPI dell'immagine può essere impostata con
391 @example
392 -dresolution=110
393 @end example
394
395 @cindex PDF (Portable Document Format), output
396 @cindex output, PDF (Portable Document Format)
397
398 @item --pdf
399 Genera PDF.  Questo implica @option{--ps}.
400
401 @item -v, --version
402 Mostra informazioni sulla versione.
403
404 @item -V, --verbose
405 Aumenta la prolissità: mostra i percorsi completi di tutti i file letti e dà
406 informazioni sui tempi.
407
408 @item -w, --warranty
409 Mostra la garanzia con cui viene distribuito GNU LilyPond.  (Distribuito
410 con @strong{NESSUNA GARANZIA}!)
411
412 @end table
413
414
415 @node Opzioni avanzate della linea di comando per LilyPond
416 @unnumberedsubsec Opzioni avanzate della linea di comando per @command{lilypond}
417 @translationof Advanced command line options for LilyPond
418
419 @table @code
420
421 @item -d@var{[nome-opzione]}=@var{[valore]},
422 --define-default=@var{[nome-opzione]}=@var{[valore]}
423 Imposta l'equivalente funzione interna di Scheme su @var{valore}.  Per esempio:
424
425 @example
426 -dbackend=svg
427 @end example
428
429 Se non viene specificato un @var{valore}, viene usato il valore
430 predefinito.  Per disabilitare un'opzione, si può usare il
431 prefisso @code{no-} prima di @var{nome-opzione}.  Per esempio:
432
433 @cindex punta e clicca, linea di comando
434
435 @example
436 -dpoint-and-click=#f
437 @end example
438
439 @noindent
440 è equivalente a
441 @example
442 -dno-point-and-click
443 @end example
444 @end table
445
446 @noindent Sono supportate le seguenti opzioni insieme ai loro rispettivi
447 valori predefiniti:
448
449 @multitable @columnfractions .33 .16 .51
450 @item @strong{Simbolo}
451 @tab @strong{Valore}
452 @tab @strong{Spiegazione/Opzioni}
453
454 @item @code{anti-alias-factor}
455 @tab @code{1}
456 @tab Elabora a una risoluzione più alta (usando il fattore specificato) e
457 ridimensiona il risultato per evitare gli @q{artefatti} nelle immagini @code{PNG}.
458
459 @item @code{aux-files}
460 @tab @code{#t}
461 @tab Crea i file @code{.tex}, @code{.texi} e @code{.count} se usata con
462 l'opzione del backend @code{eps}.
463
464 @item @code{backend}
465 @tab @code{ps}
466 @tab Questa è l'impostazione predefinita.  I file Postscript (predefinito)
467 includono i tipi di carattere @code{TTF}, @code{Type1} e @code{OTF}.  Non
468 vengono inclusi i @qq{sottoinsiemi} di questi tipi.  Se si usa un set di
469 caratteri @q{orientali}, si possono ottenere file di grosse dimensioni.
470
471 @item
472 @tab @code{eps}
473 @tab Usata come opzione predefinita dal comando @command{lilypond-book}.  Per
474 ogni pagina crea sia un singolo file con tutte le pagine e i tipi di carattere
475 inclusi sia file EPS (Encapsulated PostScript) separati per ogni pagina
476 ma senza i tipi di caratteri inclusi.
477
478 @item
479 @tab @code{null}
480 @tab Non genera la stampa della partitura.  Produce lo stesso effetto
481 di @code{-dno-print-pages}.
482
483 @item
484 @tab @code{scm}
485 @tab Estrae i comandi di disegno grezzi e interni, basati su Scheme.
486
487 @item
488 @tab @code{svg}
489 @tab Scalable Vector Graphics.
490 Viene creato un singolo file SVG per ogni pagina dell'output.  I glifi
491 musicali vengono tradotti in grafica vettoriale, ma i tipi di carattere
492 del testo @emph{non} sono incorporati nei file SVG.  Dunque qualsiasi
493 lettore SVG dovrà avere accesso ai tipi di carattere necessari per
494 rendere in modo adeguato il testo.  Si raccomanda di non usare
495 @q{liste} o @q{alias} dei tipi di carattere se il lettore SVG non è
496 in grado di gestirli.  Se si usano i file @emph{Web Open Font Format} (WOFF),
497 è richiesta anche l'opzione @code{svg-woff}.
498 @end multitable
499
500 @noindent
501 @strong{Nota per l'output del backend svg:}
502 Nell'output svg LilyPond usa i valori generici @code{serif}, @code{sans-serif} o
503 @code{monospace} di @code{font-family}.  Dunque quando si usa il backend
504 @code{svg} è obbligatorio definire esplicitamente specifici tipi di carattere
505 predefiniti nel proprio file di input:
506
507 @quotation
508 @verbatim
509 \paper  {
510   #(define fonts
511     (make-pango-font-tree "TeX Gyre Schola"
512                           "TeX Gyre Heros"
513                           "TeX Gyre Cursor"
514                           (/ staff-height pt 20)))
515 }
516 @end verbatim
517 @end quotation
518
519 Leggere anche @ruser{Tipi di carattere per l'intero documento}.
520
521 @multitable @columnfractions .33 .16 .51
522
523 @item @code{check-internal-types}
524 @tab @code{#f}
525 @tab Controlla l'assegnazione di ogni proprietà per i tipi.
526
527 @item @code{clip-systems}
528 @tab @code{#f}
529 @tab Estrae frammenti musicali da una partitura.  Per far ciò è necessario
530 che sia stata definita la funzione @code{clip-regions} all'interno del blocco
531 @code{\layout}.  Maggiori informazioni in @ruser{Estrarre frammenti musicali}.
532 Nessun frammento verrà estratto se questa opzione è usata insieme
533 all'opzione @option{-dno-print-pages}.
534
535 @item @code{datadir}
536 @tab
537 @tab Prefisso per i file di dati (sola lettura).
538
539 @item @code{debug-gc}
540 @tab @code{#f}
541 @tab Scarica le statistiche sul debug della memoria.
542
543 @item @code{debug-gc-assert-parsed-dead}
544 @tab @code{#f}
545 @tab Per il debug della memoria: Assicura che tutti i riferimenti agli oggetti
546 analizzati siano eliminati. Questa è un'opzione interna e viene abilitata
547 automaticamente da @code{`-ddebug-gc'}.
548
549 @item @code{debug-lexer}
550 @tab @code{#f}
551 @tab Debug dell'analizzatore lessicale flex.
552
553 @item @code{debug-page-breaking-scoring}
554 @tab @code{#f}
555 @tab Crea le partiture per diverse configurazioni di interruzione di pagina.
556
557 @item @code{debug-parser}
558 @tab @code{#f}
559 @tab Debug dell'analizzatore bison.
560
561 @item @code{debug-property-callbacks}
562 @tab @code{#f}
563 @tab Debug delle catene cicliche di callback.
564
565 @item @code{debug-skylines}
566 @tab @code{#f}
567 @tab Debug skylines.
568
569 @item @code{delete-intermediate-files}
570 @tab @code{#t}
571 @tab Cancella i file @code{.ps} intermedi e inutilizzabili creati durante
572 la compilazione.
573
574 @item @code{dump-cpu-profile}
575 @tab @code{#f}
576 @tab Scarica l'informazione sui tempi (dipendente dal sistema).
577
578 @item @code{dump-profile}
579 @tab @code{#f}
580 @tab Scarica l'informazione sulla memoria e il tempo per ogni file.
581
582 @item @code{dump-signatures}
583 @tab @code{#f}
584 @tab Scarica le firme dell'output di ogni sistema. Usato per testare le regressioni.
585
586 @item @code{embed-source-code}
587 @tab @code{#f}
588 @tab Incorpora i file sorgente LilyPond nel documento PDF generato.
589
590 @item @code{eps-box-padding}
591 @tab @code{#f}
592 @tab Sposta il margine sinistro della cornice EPS dell'output della quantità
593 specificata (in mm).
594
595 @item @code{font-export-dir}
596 @tab @code{#f [dir]}
597 @tab Directory per esportare i font come file PostScript.
598
599 @item @code{gs-load-fonts}
600 @tab @code{#f}
601 @tab Carica i font attraverso Ghostscript.
602
603 @item @code{gs-load-lily-fonts}
604 @tab @code{#f}
605 @tab Carica solo i font LilyPond attraverso Ghostscript.
606
607 @item @code{gs-never-embed-fonts}
608 @tab @code{#f}
609 @tab Fa sì che Ghostscript incorpori solo i font TrueType e nessun altro
610 formato per font.
611
612 @item @code{gui}
613 @tab @code{#f}
614 @tab Esegue il programma senza stampare messaggi e redirige tutto l'output in un file di log.
615 @end multitable
616
617 @noindent
618 @strong{Nota per gli utenti Windows:} Per impostazione predefinita @code{lilypond.exe}
619 stampa tutta l'informazione sull'avanzamento nella finestra dei comandi.
620 @code{lilypond-windows.exe} non lo fa e riporta un prompt, privo di
621 informazioni sull'avanzamento, subito nella linea di comando.  L'opzione
622 @option{-dgui} può essere usata in questo caso per redirigere l'output in
623 un file di log.
624
625 @multitable @columnfractions .33 .16 .51
626 @item @code{help}
627 @tab @code{#f}
628 @tab Mostra questo aiuto.
629
630 @item @code{include-book-title-preview}
631 @tab @code{#t}
632 @tab Include i titoli dei libri nelle immagini di anteprima.
633
634 @item @code{include-eps-fonts}
635 @tab @code{#t}
636 @tab Include i font in file EPS con sistemi separati.
637
638 @item @code{include-settings}
639 @tab @code{#f}
640 @tab Include il file per le impostazioni globali, questo viene incluso prima
641 che la partitura sia elaborata.
642
643 @item @code{job-count}
644 @tab @code{#f}
645 @tab Elabora in parallelo, usando il dato numero di lavori.
646
647 @item @code{log-file}
648 @tab @code{#f [file]}
649 @tab Se la stringa @code{FOO} viene assegnata come secondo argomento,
650 redirige l'output nel file @code{FOO.log}.
651
652 @item @code{max-markup-depth}
653 @tab @code{1024}
654 @tab Massima profondità per la struttura del blocco markup. Se un blocco markup ha
655 più livelli, assume che non terminerà da solo, stampa un avviso e restituisce
656 al suo posto un markup vuoto.
657
658 @item @code{midi-extension}
659 @tab @code{"midi"}
660 @tab Imposta l'estensione predefinita per il file MIDI sulla stringa specificata.
661
662 @item @code{music-strings-to-paths}
663 @tab @code{#f}
664 @tab Converte le stringhe di testo in percorsi quando i glifi appartengono a
665 un font musicale.
666
667 @item @code{paper-size}
668 @tab @code{\"a4\"}
669 @tab Imposta la dimensione predefinita del foglio.  Nota che la stringa deve
670 essere compresa tra virgolette precedute dal segno di escape.
671
672 @item @code{pixmap-format}
673 @tab @code{png16m}
674 @tab Imposta il formato di output di GhostScript per le immagini raster.
675
676 @item @code{point-and-click}
677 @tab @code{#t}
678 @tab Aggiunge i collegamenti @q{punta e clicca} all'output PDF e SVG. Si veda
679 @ref{Punta e clicca}.
680
681 @item @code{preview}
682 @tab @code{#f}
683 @tab Crea immagini di anteprima oltre al normale output.
684 @end multitable
685
686 @noindent
687 Questa opzione è supportata da tutti i backend; @code{pdf}, @code{png},
688 @code{ps}, @code{eps} e @code{svg}, ma non @code{scm}.  Genera un file
689 di output nella forma @code{mioFile.preview.estensione}, contenente i
690 titoli e il primo sistema.  Se vengono usati i blocchi @code{\book} o
691 @code{\bookpart}, i titoli di @code{\book}, @code{\bookpart} o @code{\score}
692 appariranno nell'output, incluso il primo sistema di ogni blocco @code{\score}
693 se la variabile @code{print-all-headers} di @code{\paper} è impostata
694 su @code{#t}.
695
696 Per impedire il normale output, si usano le opzioni @option{-dprint-pages} o
697 @option{-dno-print-pages} in base alle proprie esigenze.
698
699 @multitable @columnfractions .33 .16 .51
700 @item @code{print-pages}
701 @tab @code{#t}
702 @tab Genera le pagine complete (predefinito).  @option{-dno-print-pages} è
703 utile in combinazione con @option{-dpreview}.
704
705 @item @code{profile-property-accesses}
706 @tab @code{#f}
707 @tab Mantiene una statistica delle chiamate di funzione @code{get_property()}.
708
709 @item @code{protected-scheme-parsing}
710 @tab @code{#t}
711 @tab Continua se l'analizzatore coglie degli errori nel codice scheme interno
712 al file di input. Se impostato su @code{#f}, in caso di errore si ferma e
713 mostra la traccia di stack.
714
715 @item @code{read-file-list}
716 @tab @code{#f [file]}
717 @tab Specifica il nome di un file che contiene una lista di file di input da
718 elaborare.
719
720 @item @code{relative-includes}
721 @tab @code{#f}
722 @tab Quando elabora un comando @code{\include}, cerca il file incluso
723 in posizione relativa al file corrente (invece che in posizione assoluta).
724
725 @item @code{resolution}
726 @tab @code{101}
727 @tab Imposta la risoluzione per generare immagini @code{PNG} su un certo
728 valore (in dpi).
729
730 @item @code{safe}
731 @tab @code{#f}
732 @tab Non si fida dell'input nel file @code{.ly}.
733 @end multitable
734
735 @noindent
736 Quando la formattazione di LilyPond viene messa a disposizione tramite un server
737 web, si @b{DEVE} passare l'opzione @option{--safe} o l'opzione @option{--jail}.  L'opzione
738 @option{--safe} impedirà che il codice Scheme presente nell'input possa fare uno
739 scempio, ad esempio
740
741 @quotation
742 @verbatim
743 #(s ystem "rm -rf /")  % troppo pericoloso per scriverlo correttamente
744 {
745   c4^$(ly:gulp-file "/etc/passwd") % malvagio ma non distruttivo
746 }
747 @end verbatim
748 @end quotation
749
750 L'opzione @option{-dsafe} serve a valutare le espressioni Scheme presenti nell'input
751 in uno speciale modulo di sicurezza.  Questo modulo di sicurezza è derivato dal
752 modulo GUILE @file{safe-r5rs}, ma aggiunge alcune funzioni del
753 LilyPond API.  Queste funzioni sono elencate in @file{scm/safe-lily.scm}.
754
755 Inoltre, la modalità sicura non permette le direttive @code{\include} e
756 disabilita l'uso del backslash nelle stringhe @TeX{}.  In modalità sicura,
757 non è possibile importare le variabili di LilyPond in Scheme.
758
759 @option{-dsafe} @emph{non} rileva il sovrautilizzo di risorse.  È ancora possibile
760 far sì che il programma rimanga in sospeso per un tempo indefinito, ad esempio
761 alimentando il backend con strutture di dati cicliche.  Dunque se si vuole usare
762 LilyPond su un server web pubblicamente accessibile, si deve limitare il processo
763 nell'uso della CPU e della memoria.
764
765 La modalità sicura bloccherà la compilazione di molti utili frammenti di codice
766 LilyPond.
767
768 L'opzione @option{--jail} è un'alternativa più sicura, ma richiede più lavoro
769 per configurarla.  Si veda @ref{Opzioni di base della linea di comando per LilyPond}.
770
771 @multitable @columnfractions .33 .16 .51
772 @item @code{separate-log-files}
773 @tab @code{#f}
774 @tab Per i file di input @code{FILE1.ly}, @code{FILE2.ly}, etc. salva i dati di
775 log nei file @code{FILE1.log}, @code{FILE2.log}, @dots{}
776
777 @item @code{show-available-fonts}
778 @tab @code{#f}
779 @tab Elenca i nomi di font disponibili.
780
781 @item @code{strict-infinity-checking}
782 @tab @code{#f}
783 @tab Forza il blocco del programma quando si incontrano eccezioni @code{Inf} e
784 @code{NaN} sui numeri in virgola mobile.
785
786 @item @code{strip-output-dir}
787 @tab @code{#t}
788 @tab Non usa le directory dei file di input per costruire i nomi dei file
789 di output.
790
791 @item @code{strokeadjust}
792 @tab @code{#f}
793 @tab Forza l'aggiustamento del tratto da parte di PostScript.  Questa opzione
794 è utile quando il PDF è generato dall'output PostScript (l'aggiustamento
795 del tratto di solito è abilitato automaticamente per gli strumenti bitmap
796 a bassa risoluzione).  Senza questa opzione, i lettori PDF tendono a
797 produrre larghezze dei gambi molto variabili alle risoluzioni tipiche
798 dei monitor.  L'opzione non produce effetti visibili sulla qualità di
799 stampa e causa un notevole aumento della dimensione dei file PDF.
800
801
802 @item @code{svg-woff}
803 @tab @code{#f}
804 @tab Questa opzione è richiesta se si usano i file del formato per font Web Open
805 Font Format (WOFF) col backend SVG.  Viene creato un singolo file SVG per ogni
806 pagina di output.  Eccetto i glifi musicali di LilyPond, nessun altro tipo di
807 carattere verrà incorporato nel file.  Dunque qualsiasi lettore SVG dovrà avere
808 accesso ai tipi di carattere per rendere in modo adeguato il testo.  Si raccomanda
809 di non usare gli @q{alias} o le @q{liste} dei tipi di carattere se il lettore
810 SVG non è in grado di gestirli.
811
812 @item @code{trace-memory-frequency}
813 @tab @code{#f}
814 @tab Registra molte volte al secondo l'uso delle celle da parte di Scheme.  Salva i
815 risultati in @code{FILE.stacks} e @code{FILE.graph}.
816
817 @item @code{trace-scheme-coverage}
818 @tab @code{#f}
819 @tab Registra la copertura dei file Scheme in @code{FILE.cov}.
820
821 @item @code{verbose}
822 @tab @code{#f}
823 @tab Output dettagliato, ovvero livello di log DEBUG (sola lettura).
824
825 @item @code{warning-as-error}
826 @tab @code{#f}
827 @tab Trasforma tutti i messaggi di avviso e di @q{errore di programmazione} in errori.
828 @end multitable
829
830
831 @node Variabili d'ambiente
832 @unnumberedsubsec Variabili d'ambiente
833 @translationof Environment variables
834
835 @cindex LANG
836 @cindex LILYPOND_DATADIR
837
838 @command{lilypond} riconosce le seguenti variabili d'ambiente:
839 @table @code
840 @item LILYPOND_DATADIR
841 Specifica la directory predefinita in cui saranno cercati i messaggi della
842 localizzazione e i file di dati.  Questa directory deve contenere
843 sottodirectory chiamate @file{ly/}, @file{ps/}, @file{tex/}, etc.
844
845 @item LANG
846 Determina la lingua per i messaggi di avviso.
847
848 @item LILYPOND_LOGLEVEL
849 Il livello di log (loglevel) predefinito. Se LilyPond viene chiamato senza un
850 livello di log esplicito (ovvero senza l'opzione @option{--loglevel} della
851 linea di comando), viene usato questo valore.
852
853 @item LILYPOND_GC_YIELD
854 Una variabile, in forma di percentuale, che regola il modo in cui viene gestita
855 la memoria.  Con valori più alti il programma usa più memoria, con valori
856 più bassi usa più tempo della CPU.  Il valore predefinito è @code{70}.
857
858 @end table
859
860
861 @node LilyPond in una gabbia chroot
862 @unnumberedsubsec LilyPond in una gabbia chroot
863 @translationof LilyPond in chroot jail
864
865 Configurare un server perché esegua LilyPond in una gabbia chroot è un lavoro
866 complesso.  La procedura è spiegata sotto.  Gli esempi si riferiscono a
867 Ubuntu GNU/Linux e potrebbero richiedere l'uso di @code{sudo} in alcune situazioni.
868
869 @itemize
870
871 @item Installa i pacchetti necessari: LilyPond, GhostScript e ImageMagick.
872
873 @item Crea un nuovo utente dal nome @code{lily}:
874
875 @example
876 adduser lily
877 @end example
878
879 @noindent
880 Questo comando creerà anche un nuovo gruppo per l'utente @code{lily}, e una
881 cartella home,
882 @code{/home/lily}
883
884 @item Nella cartella home dell'utente @code{lily} crea un file da usare come
885 filesystem separato:
886
887 @example
888 dd if=/dev/zero of=/home/lily/loopfile bs=1k count= 200000
889 @end example
890
891 @noindent
892 In questo esempio è stato creato un file di 200MB da usare come filesystem della
893 gabbia.
894
895 @item Crea un dispositivo di loop, crea e monta un filesystem, quindi crea
896 una cartella scrivibile dall'utente @code{lily}:
897
898 @example
899 mkdir /mnt/lilyloop
900 losetup /dev/loop0 /home/lily/loopfile
901 mkfs -t ext3 /dev/loop0 200000
902 mount -t ext3 /dev/loop0 /mnt/lilyloop
903 mkdir /mnt/lilyloop/lilyhome
904 chown lily /mnt/lilyloop/lilyhome
905 @end example
906
907 @item Nella configurazione dei server, JAIL sarà @code{/mnt/lilyloop}
908 e DIR sarà @code{/lilyhome}.
909
910 @item Crea un grande albero delle directory nella gabbia copiando i file
911 necessari, come mostrato nello script di esempio più in basso.
912
913 Puoi usare @code{sed} per creare i comandi di copia necessari per un certo
914 eseguibile:
915
916 @example
917 for i in "/usr/local/lilypond/usr/bin/lilypond" "/bin/sh" "/usr/bin/;  \
918   do ldd $i | sed 's/.*=> \/\(.*\/\)\([^(]*\).*/mkdir -p \1 \&\&  \
919     cp -L \/\1\2 \1\2/' | sed 's/\t\/\(.*\/\)\(.*\) (.*)$/mkdir -p  \
920       \1 \&\& cp -L \/\1\2 \1\2/' | sed '/.*=>.*/d'; done
921 @end example
922
923 @end itemize
924
925 @subheading Script di esempio per Ubuntu 8.04 a 32-bit
926
927 @example
928 #!/bin/sh
929 ## defaults set here
930
931 username=lily
932 home=/home
933 loopdevice=/dev/loop0
934 jaildir=/mnt/lilyloop
935 # the prefix (without the leading slash!)
936 lilyprefix=usr/local
937 # the directory where lilypond is installed on the system
938 lilydir=/$lilyprefix/lilypond/
939
940 userhome=$home/$username
941 loopfile=$userhome/loopfile
942 adduser $username
943 dd if=/dev/zero of=$loopfile bs=1k count=200000
944 mkdir $jaildir
945 losetup $loopdevice $loopfile
946 mkfs -t ext3 $loopdevice 200000
947 mount -t ext3 $loopdevice $jaildir
948 mkdir $jaildir/lilyhome
949 chown $username $jaildir/lilyhome
950 cd $jaildir
951
952 mkdir -p bin usr/bin usr/share usr/lib usr/share/fonts $lilyprefix tmp
953 chmod a+w tmp
954
955 cp -r -L $lilydir $lilyprefix
956 cp -L /bin/sh /bin/rm bin
957 cp -L /usr/bin/convert /usr/bin/gs usr/bin
958 cp -L /usr/share/fonts/truetype usr/share/fonts
959
960 # Now the library copying magic
961 for i in "$lilydir/usr/bin/lilypond" "$lilydir/usr/bin/guile" "/bin/sh"  \
962   "/bin/rm" "/usr/bin/gs" "/usr/bin/convert"; do ldd $i | sed 's/.*=>  \
963     \/\(.*\/\)\([^(]*\).*/mkdir -p \1 \&\& cp -L \/\1\2 \1\2/' | sed  \
964       's/\t\/\(.*\/\)\(.*\) (.*)$/mkdir -p \1 \&\& cp -L \/\1\2 \1\2/'  \
965         | sed '/.*=>.*/d'; done | sh -s
966
967 # The shared files for ghostscript...
968       cp -L -r /usr/share/ghostscript usr/share
969 # The shared files for ImageMagick
970       cp -L -r /usr/lib/ImageMagick* usr/lib
971
972 ### Now, assuming that you have test.ly in /mnt/lilyloop/lilyhome,
973 ### you should be able to run:
974 ### Note that /$lilyprefix/bin/lilypond is a script, which sets the
975 ### LD_LIBRARY_PATH - this is crucial
976       /$lilyprefix/bin/lilypond -jlily,lily,/mnt/lilyloop,/lilyhome test.ly
977 @end example
978
979 @c " keep quote signs balanced for context-sensitive editors
980
981 @node Messaggi di errore
982 @section Messaggi di errore
983 @translationof Error messages
984
985 @cindex messaggi di errore
986 Quando si compila un file possono apparire vari messaggi di errore:
987
988 @table @emph
989
990 @item Avvertimento
991 @cindex avvertimento
992 Qualcosa appare sospetto.  Se stai cercando di fare qualcosa di insolito
993 allora comprenderai il messaggio e potrai ignorarlo.
994 Tuttavia di solito i messaggi di avvertimento indicano che il file di input ha
995 qualcosa che non va.
996
997 @item Errore
998 @cindex errore
999 C'è qualcosa di assolutamente sbagliato.  Il passo attualmente in elaborazione
1000 (analisi, interpretazione o formattazione) verrà completato, ma il passo
1001 successivo verrà saltato.
1002
1003 @item Errore fatale
1004 @cindex errore fatale
1005 C'è qualcosa di assolutamente sbagliato e LilyPond non può continuare.  Questo
1006 accade raramente.  La causa più comune è un'errata installazione dei tipi di
1007 carattere.
1008
1009 @item Errore Scheme
1010 @cindex traccia, Scheme
1011 @cindex traccia di chiamata
1012 @cindex errore Scheme
1013 Gli errori che capitano mentre si esegue del codice Scheme sono individuati
1014 dall'interprete Scheme.  Se si esegue con l'opzione di prolissità (@code{-V} o
1015 @option{--verbose}), viene stampata una traccia della chiamata di funzione
1016 responsabile dell'errore.
1017
1018 @item Errore di programmazione
1019 @cindex Errore di programmazione
1020 Si è verificata una qualche incongruenza interna.  Questi messaggi di errore
1021 servono ad aiutare programmatori e debugger.  Di solito si possono
1022 ignorare.  Talvolta sono talmente numerosi da nascondere il resto
1023 dell'output.
1024
1025 @item Sospeso (core dumped)
1026 @cindex Sospeso (core dumped)
1027 Segnala un serio errore di programmazione che ha mandato in crash il
1028 programma.  Questi errori sono considerati critici.  Se ti imbatti in un
1029 errore simile, invia una segnalazione di errore.
1030 @end table
1031
1032 @cindex errori, formato del messaggio
1033 Se gli avvertimenti e gli errori possono essere collegati
1034 a una parte specifica del file di input, i messaggi di errore
1035 hanno la seguente forma
1036
1037 @example
1038 @var{file}:@var{riga}:@var{colonna}: @var{messaggio}
1039 @var{riga di input responsabile dell'errore}
1040 @end example
1041
1042 Nella riga responsabile si inserisce un a capo per indicare la colonna
1043 in cui è stato trovato l'errore.  Ad esempio,
1044
1045 @example
1046 test.ly:2:19: error: not a duration: 5
1047   @{ c'4 e'
1048            5 g' @}
1049 @end example
1050
1051 Queste posizioni indicano il punto in cui LilyPond ritiene più probabile
1052 che siano apparsi l'avvertimento o l'errore, ma (per loro
1053 stessa natura) avvertimenti ed errori capitano quando succede qualcosa
1054 di imprevisto.  Se non riesci a vedere un errore nella riga suggerita,
1055 prova a controllare una o due righe sopra la posizione indicata.
1056
1057 Attenzione: l'analisi degli errori è sempre attivata nel corso dei vari
1058 passaggi di elaborazione.  Per esempio, se ci sono parti di input che
1059 sono elaborati varie volte (es: per produrre l'output midi e quello
1060 grafico) oppure se viene usata la stessa variabile musicale in vari
1061 contesti, potrebbe apparire lo stesso messaggio molteplici volte.  Anche
1062 la diagnosi eseguita in uno degli @q{ultimi} passaggi (es: controlli di
1063 battuta) può apparire varie volte.
1064
1065 Maggiori informazioni sugli errori si trovano in @ref{Errori comuni}.
1066
1067
1068 @node Errori comuni
1069 @section Errori comuni
1070 @translationof Common errors
1071
1072 Le condizioni di errore descritte di seguito capitano spesso, ma la causa
1073 non è ovvia né facile da trovare.  Una volta che sono state individuate e
1074 comprese, è facile gestirle.
1075
1076
1077 @menu
1078 * La musica esce dalla pagina::
1079 * Appare un rigo in più::
1080 * Messaggio di errore Unbound variable %::
1081 * Messaggio di errore FT_Get_Glyph_Name::
1082 * Avvertimento sul fatto che le affinità del rigo devono solo diminuire::
1083 * Messaggio di errore new inaspettato::
1084 * Avviso questa voce ha bisogno di un'impostazione voiceXx o shiftXx::
1085 @end menu
1086
1087 @node La musica esce dalla pagina
1088 @unnumberedsubsec La musica esce dalla pagina
1089 @translationof Music runs off the page
1090
1091 Se la musica esce dalla pagina al di là del margine destro o appare
1092 eccessivamente compressa, quasi sempre è dovuto all'inserimento di
1093 una durata errata di una nota, che fa sì che l'ultima nota di una misura si
1094 estenda oltre la barra di divisione.  Non è sbagliato se la nota finale di
1095 una misura non termina entro la barra di divisione inserita automaticamente, perché
1096 semplicemente si assume che la nota continui nella misura successiva.  Ma se
1097 si presenta una lunga sequenza di misure simili, la musica può
1098 apparire compressa o può uscire dalla pagina perché gli a capo
1099 automatici possono essere inseriti soltanto alla fine di misure complete,
1100 ovvero quando tutte le note finiscono prima o alla fine della misura.
1101
1102 @warning{Una durata sbagliata può inibire l'interruzione di
1103 linea, portando a una linea di musica estremamente compressa o
1104 a musica che esce dalla pagina.}
1105
1106 La durata errata può essere trovata facilmente se si usano i controlli di
1107 battuta, si veda @ruser{Controlli di battuta e del numero di battuta}.
1108
1109 Se si vuole davvero ottenere una serie di tali misure sovrapposte
1110 bisogna inserire una barra di divisione invisibile nel punto in cui
1111 si desidera l'interruzione di linea.  Per i dettagli si veda
1112 @ruser{Stanghette}.
1113
1114
1115 @node Appare un rigo in più
1116 @unnumberedsubsec Appare un rigo in più
1117 @translationof An extra staff appears
1118
1119 Se i contesti non sono creati esplicitamente con @code{\new} o
1120 @code{\context}, saranno creati senza avviso appena si incontra
1121 un comando che non può essere applicato a un contesto
1122 esistente.  Nelle partiture semplici la creazione automatica dei contesti
1123 è utile: infatti la maggior parte degli esempi nei manuali LilyPond sfrutta
1124 questa semplificazione.  Talvolta, però, la creazione silenziosa di contesti
1125 può causare la comparsa di nuovi righi o partiture non desiderate.  Ad esempio,
1126 si potrebbe pensare che il seguente codice colori di rosso tutte le teste
1127 delle note nel rigo, ma in realtà produce due righi, di cui il più basso
1128 conserva il colore nero predefinito per le teste delle note.
1129
1130 @lilypond[quote,verbatim,fragment]
1131 \override Staff.NoteHead.color = #red
1132 \new Staff { a' }
1133 @end lilypond
1134
1135 Questo accade perché non esiste un contesto @code{Staff} quando viene
1136 elaborata l'istruzione di override, quindi ne viene implicitamente creato uno e
1137 l'override viene applicato ad esso.  Ma poi il comando @code{\new Staff} crea
1138 un altro rigo separato nel quale vengono inserite le note.  Il codice
1139 corretto per colorare le teste di tutte le note è
1140
1141 @lilypond[quote,verbatim]
1142 \new Staff {
1143   \override Staff.NoteHead.color = #red
1144   a'
1145 }
1146 @end lilypond
1147
1148
1149 @node Messaggio di errore Unbound variable %
1150 @unnumberedsubsec Messaggio di errore Unbound variable %
1151 @translationof Error message Unbound variable %
1152
1153 Questo messaggio di errore comparirà in fondo alla console di
1154 output o nel file di log insieme al messaggio @qq{GUILE signalled an error @dots{}}
1155 ogni volta che viene chiamata una routine di Scheme che contenga (erroneamente)
1156 un commento @emph{LilyPond} invece di un commento @emph{Scheme}.
1157
1158 I commenti LilyPond iniziano con un segno di percentuale, (@code{%}), e non
1159 devono essere usati all'interno delle routine di Scheme.  I commenti Scheme
1160 iniziano con un punto e virgola, (@code{;}).
1161
1162 @node Messaggio di errore FT_Get_Glyph_Name
1163 @unnumberedsubsec Messaggio di errore FT_Get_Glyph_Name
1164 @translationof Error message FT_Get_Glyph_Name
1165
1166 Questo messaggio di errore compare nella console di output o nel file di log file
1167 se un file di input contiene un carattere non-ASCII e non è stato salvato nella
1168 codifica UTF-8.  Per dettagli si veda @ruser{Codifica del testo}.
1169
1170
1171 @node Avvertimento sul fatto che le affinità del rigo devono solo diminuire
1172 @unnumberedsubsec Avvertimento sul fatto che le affinità del rigo devono solo diminuire
1173 @translationof Warning staff affinities should only decrease
1174
1175 Questo avvertimento può apparire se non ci sono dei righi nell'output,
1176 ad esempio se ci sono solo un contesto @code{ChordName} e un
1177 contesto @code{Lyrics}, come in un lead sheet.  Si possono evitare questi
1178 messaggi di avvertimento facendo in modo che uno dei contesti si comporti
1179 come un rigo inserendo
1180
1181 @example
1182 \override VerticalAxisGroup.staff-affinity = ##f
1183 @end example
1184
1185 @noindent
1186 all'inizio del contesto.  Per dettagli si veda @qq{Spacing of non-staff lines} in
1187 @ruser{Spaziatura verticale flessibile all'interno dei sistemi}.
1188
1189 @node Messaggio di errore new inaspettato
1190 @unnumberedsubsec Messaggio di errore @code{@bs{}new} inaspettato
1191 @translationof Error message unexpected new
1192
1193 Un blocco @code{\score} deve contenere una @emph{singola} espressione musicale.
1194 Se invece contiene vari @code{\new Staff}, @code{\new StaffGroup} o simili
1195 contesti introdotti con @code{\new} senza che questi siano racchiusi tra
1196 parentesi graffe, @code{@{ @dots{} @}}, o doppie parentesi uncinate, @code{<< @dots{} >>},
1197 ovvero così:
1198
1199 @example
1200 \score @{
1201   % Invalido! Genera l'errore: errore di sintassi, \new inaspettato
1202   \new Staff @{ @dots{} @}
1203   \new Staff @{ @dots{} @}
1204 @}
1205 @end example
1206
1207 @noindent
1208 verrà generato questo messaggio di errore.
1209
1210 Per evitare l'errore, è sufficiente racchiudere tutti i blocchi @code{\new} tra
1211 parentesi graffe o doppie parentesi uncinate.
1212
1213 Se si usano le parentesi graffe, i blocchi @code{\new} appariranno in
1214 modo sequenziale:
1215
1216 @lilypond[quote,verbatim]
1217 \score {
1218   {
1219     \new Staff { a' a' a' a' }
1220     \new Staff { g' g' g' g' }
1221   }
1222 }
1223 @end lilypond
1224
1225 @noindent
1226 ma è più probabile che si debbano usare le doppie parentesi uncinate in modo
1227 che i nuovi righi siano avviati in parallelo, ovvero contemporaneamente:
1228
1229 @lilypond[quote,verbatim]
1230 \score {
1231   <<
1232     \new Staff { a' a' a' a' }
1233     \new Staff { g' g' g' g' }
1234   >>
1235 }
1236 @end lilypond
1237
1238 @node Avviso questa voce ha bisogno di un'impostazione voiceXx o shiftXx
1239 @unnumberedsubsec Avviso questa voce ha bisogno di un'impostazione @bs{}voiceXx o @bs{}shiftXx
1240 @translationof Warning this voice needs a voiceXx or shiftXx setting
1241
1242 Se note appartenenti a due voci diverse con gambi nella stessa
1243 direzione si trovano nello stesso momento musicale, e per le voci
1244 non è stato specificato alcun spostamento, quando si compila il
1245 file apparirà il messaggio di avviso
1246 @samp{avviso: questa voce ha bisogno di un'impostazione \voiceXx o \shiftXx}.
1247 Tale avviso apparirà anche quando le note non hanno gambi visibili,
1248 come nel caso delle semibrevi, se i gambi di note più brevi della
1249 stessa altezza sono nella stessa direzione.
1250
1251 Ricorda che la direzione del gambo, a meno che non sia specificata, per
1252 esempio tramite @code{\voiceOne}, etc., dipende dalla posizione della
1253 nota sul rigo.  Dunque se la direzione del gambo non è specificata, l'avviso
1254 apparirà solo quando i gambi si trovano nella stessa direzione, ovvero
1255 quando le note si trovano nella stessa metà del rigo.
1256
1257 Si possono evitare questi avvisi mettendo le note in voci in cui siano
1258 indicate le direzioni dei gambi e gli spostamenti, per esempio usando
1259 @code{\voiceOne}, etc.
1260
1261 Le note delle voci con un numero maggiore di due, @code{\voiceThree} etc., sono
1262 spostate automaticamente per avitare la collisione tra colonne di note.  Ciò
1263 causa uno spostamento visibile delle note con gambo, mentre le semibrevi
1264 non sono spostate visibilmente, a meno che non si verifichi una reale collisione
1265 tra teste di nota oppure quando le voci si incrociano rispetto al loro ordine
1266 naturale (quando le note di @code{\voiceThree} sono più alte di quelle di
1267 @code{\voiceOne}, etc.)
1268
1269 @seealso
1270 @rlearning{Definire esplicitamente le voci},
1271 @rlearning{Esempio musicale},
1272 @ruser{Polifonia su un solo rigo},
1273 @ruser{Risoluzione delle collisioni}.
1274