]> git.donarmstrong.com Git - lilypond.git/blob - Documentation/it/usage/running.itely
Web: Removed Duplicate lines from Authors.itexi
[lilypond.git] / Documentation / it / usage / running.itely
1 @c -*- coding: utf-8; mode: texinfo; documentlanguage: it -*-
2
3 @ignore
4     Translation of GIT committish: ccc485525e63f68623bce1c3ca7a2d4fb6e94499
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.15.18"
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 della linea di comando per lilypond::
60 * Variabili d'ambiente::
61 * LilyPond in una gabbia chroot::
62 @end menu
63
64 @node Utilizzo di lilypond
65 @unnumberedsubsec Utilizzo di @command{lilypond}
66 @translationof Invoking lilypond
67
68 L'eseguibile @command{lilypond} può essere lanciato dalla linea di comando
69 nel seguente modo.
70
71 @example
72 lilypond [@var{opzione}]@dots{} @var{file}@dots{}
73 @end example
74
75
76 Se invocato con un nome di file senza estensione, viene tentata per prima
77 l'estensione @file{.ly}.  Per leggere l'input da stdin, usare un
78 trattino (@code{-}) al posto di @var{file}.
79
80 Quando @file{file.ly} viene elaborato, lilypond creerà @file{file.ps}
81 e @file{file.pdf} come output.  Possono essere specificati molti file;
82 ognuno di essi sarà elaborato in modo indipendente.  @footnote{Lo status di
83 GUILE non viene resettato dopo l'elaborazione di un file @code{.ly}:
84 attenzione a non cambiare alcun valore predefinito dall'interno di Scheme.}
85
86 Se @file{file.ly} contiene più di un blocco @code{\book}, allora tutte le altre
87 partiture verranno salvate in file numerati, a partire da @file{file-1.pdf}.  Inoltre,
88 il valore di @code{output-suffix} (suffisso di output) sarà inserito tra la base
89 del nome del file e il numero.  Un file di input che contiene
90
91 @example
92 #(define output-suffix "violin")
93 \score @{ @dots{} @}
94 #(define output-suffix "cello")
95 \score @{ @dots{} @}
96 @end example
97
98 @noindent
99 produrrà come output @var{base}@file{-violin.pdf} e
100 @var{base}@file{-cello-1.pdf}.
101
102
103 @unnumberedsubsubsec Comandi standard da shell
104
105 Se la shell (ovvero la finestra dei comandi) utilizzata supporta le normali
106 redirezioni, potrebbe essere utile usare i seguenti comandi per dirigere
107 l'output di una console in un file:
108
109 @itemize
110
111 @item
112 @code{lilypond file.ly 1>stdout.log} per redirigere l'output normale
113
114 @item
115 @code{lilypond file.ly 2>stderr.log} per redirigere i messaggi di errore
116
117 @item
118 @code{lilypond file.ly &>all.log} per redirigere tutto l'output
119
120 @end itemize
121
122 Consulta la documentazione della tua shell per vedere se supporta queste
123 opzioni o se la sintassi è diversa.  Nota che questi sono comandi shell
124 e non hanno niente a che fare con lilypond.
125
126
127 @node Opzioni della linea di comando per lilypond
128 @unnumberedsubsec Opzioni della linea di comando per @command{lilypond}
129 @translationof Command line options for lilypond
130
131 @cindex Utilizzo di @command{lilypond}
132 @cindex opzioni della linea di comando per @command{lilypond}
133 @cindex linea di comando, opzioni di
134 @cindex switches
135
136 Sono contemplate le seguenti opzioni:
137
138 @table @code
139
140 @item -e,--evaluate=@var{espressione}
141 Valuta l'@var{espressione} di Scheme prima di analizzare qualsiasi file @file{.ly}.
142 Si possono specificare varie opzioni @option{-e}; saranno analizzate in modo
143 sequenziale.
144
145 L'espressione sarà analizzata nel modulo @code{guile-user}, dunque se vuoi
146 usare delle definizioni in @var{espressione}, usa
147
148 @example
149 lilypond -e '(define-public a 42)'
150 @end example
151
152 @noindent
153 nella linea di comando, e includi
154
155 @example
156 #(use-modules (guile-user))
157 @end example
158
159 @noindent
160 in cima al file @code{.ly}.
161
162 @item -f,--format=@var{formato}
163 Formati di output.  Come @code{formato} si può scegliere tra
164 @code{ps}, @code{pdf}, e @code{png}.
165
166 Esempio: @code{lilypond -fpng @var{file}.ly}
167
168
169
170 @item -d,--define-default=@var{variabile}=@var{valore}
171 Imposta l'opzione interna del programma, @var{variabile}, al valore di Scheme
172 @var{valore}.  Se @var{valore} non viene specificato, allora viene usato
173 @var{#t}.  Per disabilitare un'opzione, si può usare il prefisso @code{no-}
174 prima della @var{variabile}, ad esempio
175
176 @cindex punta e clicca, linea di comando
177
178 @example
179 -dno-point-and-click
180 @end example
181
182 @noindent
183 è equivalente a
184 @example
185 -dpoint-and-click='#f'
186 @end example
187
188 Di seguito alcune opzioni interessanti.
189
190 @cindex aiuto, linea di comando
191
192 @table @samp
193 @item help
194 L'esecuzione di @code{lilypond -dhelp} mostrerà tutte le opzioni disponibili
195 di @option{-d}.
196
197 @cindex paper-size, linea di comando
198
199 @item paper-size
200 Questa opzione imposta la dimensione predefinita del foglio,
201 @example
202 -dpaper-size=\"letter\"
203 @end example
204
205 @noindent
206 Nota che la stringa deve essere compresa tra virgolette precedute dal
207 segno di escape ( @code{\"} ).
208 @c Match " in previous line to help context-sensitive editors
209
210 @cindex safe, linea di comando
211
212 @item safe
213 Non si fida dell'input nel file @code{.ly}.
214
215 Quando la formattazione di LilyPond viene messa a disposizione tramite un server
216 web, si @b{DEVE} passare l'opzione @option{--safe} o l'opzione @option{--jail}.  L'opzione
217 @option{--safe} impedirà che il codice Scheme presente nell'input possa fare uno
218 scempio, ad esempio
219
220 @quotation
221 @verbatim
222 #(system "rm -rf /")
223 {
224   c4^$(ly:gulp-file "/etc/passwd")
225 }
226 @end verbatim
227 @end quotation
228
229 L'opzione @option{-dsafe} serve a valutare le espressioni Scheme presenti nell'input
230 in uno speciale modulo di sicurezza.  Questo modulo di sicurezza è derivato dal
231 modulo GUILE @file{safe-r5rs}, ma aggiunge alcune funzioni del
232 LilyPond API.  Queste funzioni sono elencate in @file{scm/safe-lily.scm}.
233
234 Inoltre, la modalità sicura non permette le direttive @code{\include} e
235 disabilita l'uso del backslash nelle stringhe @TeX{}.
236
237 In modalità sicura, non è possibile importare le variabili di LilyPond
238 in Scheme.
239
240 @option{-dsafe} @emph{non} rileva il sovrautilizzo di risorse.  È ancora possibile
241 far sì che il programma rimanga in sospeso per un tempo indefinito, ad esempio
242 alimentando il backend con strutture di dati cicliche.  Dunque se si vuole usare
243 LilyPond su un server web pubblicamente accessibile, si deve limitare il processo
244 nell'uso della CPU e della memoria.
245
246 La modalità sicura bloccherà la compilazione di molti utili frammenti di codice
247 LilyPond.  L'opzione @option{--jail} è un'alternativa più sicura, ma richiede
248 più lavoro per configurarla.
249
250 @cindex formato di output, impostare il
251 @item backend
252 il formato di output da usare per il back-end.  Per il @code{formato} si può
253 scegliere tra
254 @table @code
255 @item ps
256 @cindex PostScript, output
257  per PostScript.
258
259   I file Postscript includono i tipi di carattere TTF, Type1 e OTF.  Non vengono
260   inclusi i sottoinsiemi di questi tipi.  Se si usa un set di caratteri orientali,
261   si possono ottenere file di grosse dimensioni.
262
263 @item eps
264
265 @cindex Postscript, incapsulato
266 @cindex EPS (Encapsulated PostScript)
267
268  per PostScript incapsulato.  Invia ogni pagina (sistema) in un file
269 @file{EPS} separato, senza font, e in un unico file @file{EPS} con
270 tutte le pagine (sistemi) inclusi i font.
271
272 Questa è la modalità predefinita di @command{lilypond-book}.
273
274 @item svg
275
276 @cindex SVG (Scalable Vector Graphics)
277
278  per ottenere SVG (Scalable Vector Graphics).
279
280  Crea un singolo file SVG, senza font incorporati, per ogni pagina
281  dell'output.  Si raccomanda di installare i font Century
282  Schoolbook, inclusi nell'installazione di LilyPond, per una resa
283  ottimale.  In UNIX basta copiare questi font dalla directory di
284  LilyPond (solitamente
285  @file{/usr/share/lilypond/VERSION/fonts/otf/}) in
286  @file{~/.fonts/}.  L'output SVG dovrebbe essere compatibile con qualsiasi
287  editor SVG o user agent.
288
289 @item scm
290
291 @cindex Scheme, estrazione di
292
293  per estrarre i comandi di disegno grezzi e interni, basati su Scheme.
294
295 @item null
296  non produce la stampa della partitura; ha lo stesso effetto di @option{-dno-print-pages}.
297 @end table
298
299 Esempio: @code{lilypond -dbackend=svg @var{filename}.ly}
300
301 @item preview
302 @cindex preview, linea di comando
303 Genera un file di output che contiene i titoli e il primo sistema
304 del brano musicale.  Se si usano i blocchi @code{\bookpart}, i titoli e il
305 primo sistema di ogni @code{\bookpart} apparirà nell'output.
306 I backend @code{ps}, @code{eps}, e @code{svg} supportano questa
307 opzione.
308
309 @item gui
310 Viene eseguito senza avvisi e redirige tutto l'output verso un file di log.
311
312 Nota per gli utenti Windows: Per impostazione predefinita @code{lilypond.exe} mostra
313 tutta l'informazione dell'elaborazione in corso nella finestra dei comandi, @code{lilypond-windows.exe}
314 invece fa apparire un prompt, privo di informazioni sull'elaborazione, subito
315 nella linea di comando.  In questo caso si può usare l'opzione @option{-dgui}
316 per redirigere l'output verso un file di log.
317
318 @item print-pages
319 Genera tutte le pagine, come da impostazione predefinita.  @option{-dno-print-pages} è
320 utile in combinazione con @option{-dpreview}.
321
322 @end table
323
324
325
326 @item -h,--help
327 Mostra una sintesi dell'utilizzo.
328
329 @item -H,--header=@var{CAMPO}
330 Estrae un campo dell'intestazione nel file @file{NOME.@var{CAMPO}}.
331
332 @cindex ricerca dei file
333 @cindex percorso di ricerca
334 @item --include, -I=@var{directory}
335 Aggiunge @var{directory} al percorso di ricerca per i file di input.
336
337 È possibile assegnare più opzioni -I.  La ricerca inizierà nella prima
338 directory definita, e se il file da includere non viene trovato
339 la ricerca continuerà nelle directory seguenti.
340
341 @item -i,--init=@var{file}
342 Imposta il file di inizializzazione su @var{file} (predefinito: @file{init.ly}).
343
344 @cindex loglevel
345 @cindex output verbosity, setting
346
347 @item -l,--loglevel=@var{LIVELLO}
348 Imposta la verbosità dell'output della console su @var{LIVELLO}. I valori possibili sono:
349 @table @code
350 @item NONE
351 Nessun output, nemmeno i messaggi di errore.
352
353 @item ERROR
354 Solo i messaggi di errore, niente avvisi o messaggi di elaborazione.
355
356 @item WARN
357 Avvisi e nessaggi di errore, nessun messaggio di elaborazione.
358
359 @item BASIC_PROGRESS
360 Messaggi di elaborazione di base (riuscita), avvisi e errori.
361
362 @item PROGRESS
363 Tutti i messaggi di elaborazione, avvisi e errori.
364
365 @item INFO (predefinito)
366 Messaggi di elaborazione, avvisi, errori e ulteriori informazioni di esecuzione.
367
368 @item DEBUG
369 Tutti i messaggi possibili, incluso l'output verboso di debug.
370 @end table
371
372 @cindex cartella, dirigere l'output in
373 @cindex nome del file di output, impostare
374
375 @item -o,--output=@var{FILE} or @var{CARTELLA}
376 Imposta il file di output predefinito @var{FILE} oppure, se una cartella con
377 quel nome esiste già, dirige l'output in @var{CARTELLA}, prendendo il nome
378 del file dal file di input.  In entrambi i casi verrà aggiunto il suffisso
379 appropriato (ad esempio @code{.pdf} per il pdf).
380
381
382 @cindex PostScript
383
384 @item --ps
385 Genera PostScript.
386
387 @cindex Portable Network Graphics (PNG)
388
389 @item --png
390 Genera immmagini di ogni pagina in formato PNG.  Questo implica
391 @option{--ps}.  La risoluzione in DPI dell'immagine può essere impostata con
392 @example
393 -dresolution=110
394 @end example
395
396 @cindex Portable Document Format (PDF)
397
398 @item --pdf
399 Genera PDF.  Questo implica @option{--ps}.
400
401
402
403 @item -j,--jail=@var{utente},@var{gruppo},@var{gabbia},@var{directory}
404 Esegue @command{lilypond} in una gabbia chroot.
405
406 L'opzione @option{--jail} fornisce un'alternativa più flessibile a
407 @option{--safe} quando la formattazione di LilyPond è messa a disposizione attraverso
408 un server web o quando LilyPond esegue sorgenti provenienti dall'esterno.
409
410 L'opzione @option{--jail} modifica la radice di @command{lilypond} in
411 @var{gabbia} appena prima di iniziare il vero processo di compilazione.  L'utente
412 e il gruppo vengono poi modificati per corrispondere a quelli forniti, e la
413 directory corrente viene spostata in @var{directory}.  Questa configurazione
414 garantisce che non sia possibile (almeno in teoria) uscire dalla gabbia.  Si noti
415 che perché @option{--jail} funzioni @command{lilypond} deve essere eseguito come root;
416 di solito questo si fa in modo sicuro col comando @command{sudo}.
417
418 Configurare una gabbia è una questione un po' delicata, perché bisogna essere
419 sicuri che LilyPond possa trovare tutto quello di cui ha bisogno per compilare il
420 sorgente @emph{dentro la gabbia}.  Una configurazione tipica comprende i seguenti
421 elementi:
422
423 @table @asis
424 @item Impostare un filesystem distinto
425 Si dovrebbe creare un filesystem separato LilyPond, così che possa essere
426 montato con opzioni di sicurezza come @code{noexec}, @code{nodev}, e
427 @code{nosuid}.  In questo modo è impossibile lanciare degli eseguibili o
428 scrivere su un dispositivo direttamente da LilyPond.  Se non si vuole creare
429 una partizione separata, si può creare un file di dimensioni ragionevoli e usarlo
430 per montare un dispositivo di loop.  Un filesystem separato garantisce inoltre
431 che LilyPond non possa scrivere su uno spazio maggiore di quanto permesso.
432
433 @item Impostare un altro utente
434 Per eseguire LilyPond in una gabbia si dovrebbe usare un altro utente e gruppo
435 (ad esempio, @code{lily}/@code{lily}) con pochi privilegi.  Ci dovrebbe essere
436 una sola directory scrivibile da questo utente, che dovrebbe essere passata in
437 @var{dir}.
438
439 @item Preparare la gabbia
440 LilyPond ha bisogno di leggere alcuni file quando viene lanciato.  Tutti questi
441 file devono essere copiati nella gabbia, sotto lo stesso percorso in cui appaiono
442 nel vero filesystem principale.  Si deve copiare l'intero contenuto dell'installazione
443 LilyPond installation (ad esempio, @file{/usr/share/lilypond}).
444
445 Se c'è un problema, il modo più semplice per individuarlo è lanciare
446 LilyPond usando @command{strace}, che permetterà di scoprire quali
447 file mancano.
448
449 @item Eseguire LilyPond
450 In una gabbia montata con @code{noexec} è impossibile eseguire qualsiasi
451 programma esterno.  Dunque LilyPond deve essere eseguito con un backend che
452 non richieda tale programma.  Come è già stato detto, deve essere eseguito
453 con privilegi di superutente (che ovviamente perderà immediatamente),
454 possibilmente con l'uso di @command{sudo}.  È una buona idea limitare il
455 numero di secondi di tempo della CPU che LilyPond può usare (ad esempio con @command{ulimit
456 -t}), e, se il sistema operativo lo permette, la quantità di memoria che
457 può essere allocata.
458 @end table
459
460
461 @item -v,--version
462 Mostra informazioni sulla versione.
463
464 @item -V,--verbose
465 Aumenta la prolissità: mostra i percorsi completi di tutti i file letti, e dà
466 informazioni sui tempi.
467
468 @item -w,--warranty
469 Mostra la garanzia con cui viene distribuito GNU LilyPond.  (Distribuito
470 con @strong{NESSUNA GARANZIA}!)
471 @end table
472
473
474 @node Variabili d'ambiente
475 @unnumberedsubsec Variabili d'ambiente
476 @translationof Environment variables
477
478 @cindex LANG
479 @cindex LILYPOND_DATADIR
480
481 @command{lilypond} riconosce le seguenti variabili d'ambiente:
482 @table @code
483 @item LILYPOND_DATADIR
484 Specifica la directory predefinita in cui saranno cercati i messaggi della
485 localizzazione e i file di dati.  Questa directory deve contenere
486 sottodirectory chiamate @file{ly/}, @file{ps/}, @file{tex/}, etc.
487
488 @item LANG
489 Determina la lingua per i messaggi di avviso.
490
491 @item LILYPOND_LOGLEVEL
492 Il livello di log (loglevel) predefinito. Se LilyPond viene chiamato senza un
493 livello di log esplicito (ovvero senza l'opzione @option{--loglevel} della
494 linea di comando), viene usato questo valore.
495
496 @item LILYPOND_GC_YIELD
497 Una variabile, in forma di percentuale, che regola il modo in cui viene gestita
498 la memoria.  Con valori più alti il programma usa più memoria, con valori
499 più bassi usa più tempo della CPU.  Il valore predefinito è @code{70}.
500
501 @end table
502
503
504 @node LilyPond in una gabbia chroot
505 @unnumberedsubsec LilyPond in una gabbia chroot
506 @translationof LilyPond in chroot jail
507
508 Configurare un server perché esegua LilyPond in una gabbia chroot è un lavoro
509 complesso.  La procedura è spiegata sotto.  Gli esempi si riferiscono a
510 Ubuntu Linux e potrebbero richiedere l'uso di @code{sudo} in alcune situazioni.
511
512 @itemize
513
514 @item Installa i pacchetti necessari: LilyPond, GhostScript e ImageMagick.
515
516 @item Crea un nuovo utente dal nome @code{lily}:
517
518 @example
519 adduser lily
520 @end example
521
522 @noindent
523 Questo comando creerà anche un nuovo gruppo per l'utente @code{lily}, e una
524 cartella home,
525 @code{/home/lily}
526
527 @item Nella cartella home dell'utente @code{lily} crea un file da usare come
528 filesystem separato:
529
530 @example
531 dd if=/dev/zero of=/home/lily/loopfile bs=1k count= 200000
532 @end example
533
534 @noindent
535 In questo esempio è stato creato un file di 200MB da usare come filesystem della
536 gabbia.
537
538 @item Crea un dispositivo di loop, crea e monta un filesystem, quindi crea
539 una cartella scrivibile dall'utente @code{lily}:
540
541 @example
542 mkdir /mnt/lilyloop
543 losetup /dev/loop0 /home/lily/loopfile
544 mkfs -t ext3 /dev/loop0 200000
545 mount -t ext3 /dev/loop0 /mnt/lilyloop
546 mkdir /mnt/lilyloop/lilyhome
547 chown lily /mnt/lilyloop/lilyhome
548 @end example
549
550 @item Nella configurazione dei server, JAIL sarà @code{/mnt/lilyloop}
551 e DIR sarà @code{/lilyhome}.
552
553 @item Crea un grande albero delle directory nella gabbia copiando i file
554 necessari, come mostrato nello script di esempio più in basso.
555
556 Puoi usare @code{sed} per creare i comandi di copia necessari per un certo
557 eseguibile:
558
559 @example
560 for i in "/usr/local/lilypond/usr/bin/lilypond" "/bin/sh" "/usr/bin/;  \
561   do ldd $i | sed 's/.*=> \/\(.*\/\)\([^(]*\).*/mkdir -p \1 \&\&  \
562     cp -L \/\1\2 \1\2/' | sed 's/\t\/\(.*\/\)\(.*\) (.*)$/mkdir -p  \
563       \1 \&\& cp -L \/\1\2 \1\2/' | sed '/.*=>.*/d'; done
564 @end example
565
566 @end itemize
567
568 @subheading Script di esempio per Ubuntu 8.04 a 32-bit
569
570 @example
571 #!/bin/sh
572 ## defaults set here
573
574 username=lily
575 home=/home
576 loopdevice=/dev/loop0
577 jaildir=/mnt/lilyloop
578 # the prefix (without the leading slash!)
579 lilyprefix=usr/local
580 # the directory where lilypond is installed on the system
581 lilydir=/$lilyprefix/lilypond/
582
583 userhome=$home/$username
584 loopfile=$userhome/loopfile
585 adduser $username
586 dd if=/dev/zero of=$loopfile bs=1k count=200000
587 mkdir $jaildir
588 losetup $loopdevice $loopfile
589 mkfs -t ext3 $loopdevice 200000
590 mount -t ext3 $loopdevice $jaildir
591 mkdir $jaildir/lilyhome
592 chown $username $jaildir/lilyhome
593 cd $jaildir
594
595 mkdir -p bin usr/bin usr/share usr/lib usr/share/fonts $lilyprefix tmp
596 chmod a+w tmp
597
598 cp -r -L $lilydir $lilyprefix
599 cp -L /bin/sh /bin/rm bin
600 cp -L /usr/bin/convert /usr/bin/gs usr/bin
601 cp -L /usr/share/fonts/truetype usr/share/fonts
602
603 # Now the library copying magic
604 for i in "$lilydir/usr/bin/lilypond" "$lilydir/usr/bin/guile" "/bin/sh"  \
605   "/bin/rm" "/usr/bin/gs" "/usr/bin/convert"; do ldd $i | sed 's/.*=>  \
606     \/\(.*\/\)\([^(]*\).*/mkdir -p \1 \&\& cp -L \/\1\2 \1\2/' | sed  \
607       's/\t\/\(.*\/\)\(.*\) (.*)$/mkdir -p \1 \&\& cp -L \/\1\2 \1\2/'  \
608         | sed '/.*=>.*/d'; done | sh -s
609
610 # The shared files for ghostscript...
611       cp -L -r /usr/share/ghostscript usr/share
612 # The shared files for ImageMagick
613       cp -L -r /usr/lib/ImageMagick* usr/lib
614
615 ### Now, assuming that you have test.ly in /mnt/lilyloop/lilyhome,
616 ### you should be able to run:
617 ### Note that /$lilyprefix/bin/lilypond is a script, which sets the
618 ### LD_LIBRARY_PATH - this is crucial
619       /$lilyprefix/bin/lilypond -jlily,lily,/mnt/lilyloop,/lilyhome test.ly
620 @end example
621
622 @c " keep quote signs balanced for context-sensitive editors
623
624 @node Messaggi di errore
625 @section Messaggi di errore
626 @translationof Error messages
627
628 @cindex messaggi di errore
629 Quando si compila un file possono apparire vari messaggi di errore:
630
631 @table @emph
632
633 @item Avvertimento
634 @cindex avvertimento
635 Qualcosa appare sospetto.  Se stai cercando di fare qualcosa di insolito
636 allora comprenderai il messaggio e potrai ignorarlo.
637 Tuttavia di solito i messaggi di avvertimento indicano che il file di input ha
638 qualcosa che non va.
639
640 @item Errore
641 @cindex errore
642 C'è qualcosa di assolutamente sbagliato.  Il passo attualmente in elaborazione
643 (analisi, interpretazione o formattazione) verrà completato, ma il passo
644 successivo verrà saltato.
645
646 @item Errore fatale
647 @cindex errore fatale
648 C'è qualcosa di assolutamente sbagliato e LilyPond non può continuare.  Questo
649 accade raramente.  La causa più comune è un'errata installazione dei tipi di
650 carattere.
651
652 @item Errore Scheme
653 @cindex traccia, Scheme
654 @cindex traccia di chiamata
655 @cindex errore Scheme
656 Gli errori che capitano mentre si esegue del codice Scheme sono individuati
657 dall'interprete Scheme.  Se si esegue con l'opzione di prolissità (@code{-V} o
658 @option{--verbose}), viene stampata una traccia della chiamata di funzione
659 responsabile dell'errore.
660
661 @item Errore di programmazione
662 @cindex Errore di programmazione
663 Si è verificata una qualche incongruenza interna.  Questi messaggi di errore
664 servono ad aiutare programmatori e debugger.  Di solito si possono
665 ignorare.  Talvolta sono talmente numerosi da nascondere il resto
666 dell'output.
667
668 @item Sospeso (core dumped)
669 @cindex Sospeso (core dumped)
670 Segnala un serio errore di programmazione che ha mandato in crash il
671 programma.  Questi errori sono considerati critici.  Se ti imbatti in un
672 errore simile, invia una segnalazione di errore.
673 @end table
674
675 @cindex errori, formato del messaggio
676 Se gli avvertimenti e gli errori possono essere collegati
677 a una parte specifica del file di input, i messaggi di errore
678 hanno la seguente forma
679
680 @example
681 @var{file}:@var{riga}:@var{colonna}: @var{messaggio}
682 @var{riga di input responsabile dell'errore}
683 @end example
684
685 Nella riga responsabile si inserisce un a capo per indicare la colonna
686 in cui è stato trovato l'errore.  Ad esempio,
687
688 @example
689 test.ly:2:19: error: not a duration: 5
690   @{ c'4 e'
691            5 g' @}
692 @end example
693
694 Queste posizioni indicano la migliore ipotesi di LilyPond a proposito del
695 punto in cui l'avvertimento o l'errore sono comparsi, ma (per loro
696 stessa natura) avvertimenti ed errori capitano quando succede qualcosa
697 di imprevisto.  Se non riesci a vedere un errore nella riga indicata
698 del file di input, prova a controllare una o due righe sopra la posizione
699 indicata.
700
701 Maggiori informazioni sugli errori si trovano in @ref{Errori comuni}.
702
703
704 @node Errori comuni
705 @section Errori comuni
706 @translationof Common errors
707
708 Le condizioni di errore descritte di seguito capitano spesso, ma la causa
709 non è ovvia né facile da trovare.  Una volta che sono state individuate e
710 comprese, è facile gestirle.
711
712
713 @menu
714 * La musica esce dalla pagina::
715 * Appare un rigo in più::
716 * Errore apparente in ../ly/init.ly::
717 * Messaggio di errore Unbound variable %::
718 * Messaggio di errore FT_Get_Glyph_Name::
719 * Avvertimento sul fatto che le affinità del rigo devono solo diminuire::
720 @end menu
721
722 @node La musica esce dalla pagina
723 @unnumberedsubsec La musica esce dalla pagina
724 @translationof Music runs off the page
725
726 Se la musica esce dalla pagina al di là del margine destro o appare
727 eccessivamente compressa, quasi sempre è dovuto all'inserimento di
728 una durata errata di una nota, che fa sì che l'ultima nota di una misura si
729 estenda oltre la barra di divisione.  Non è sbagliato se la nota finale di
730 una misura non termina entro la barra di divisione inserita automaticamente, perché
731 semplicemente si assume che la nota continui nella misura successiva.  Ma se
732 si presenta una lunga sequenza di misure simili, la musica può
733 apparire compressa o può uscire dalla pagina perché gli a capo
734 automatici possono essere inseriti soltanto alla fine di misure complete,
735 ovvero quando tutte le note finiscono prima o alla fine della misura.
736
737 @warning{Una durata sbagliata può inibire l'interruzione di
738 linea, portando a una linea di musica estremamente compressa o
739 a musica che esce dalla pagina.}
740
741 La durata errata può essere trovata facilmente se si usano i controlli di
742 battuta, si veda @ruser{Bar and bar number checks}.
743
744 Se si vuole davvero ottenere una serie di tali misure sovrapposte
745 bisogna inserire una barra di divisione invisibile nel punto in cui
746 si desidera l'interruzione di linea.  Per i dettagli si veda @ruser{Bar lines}.
747
748
749 @node Appare un rigo in più
750 @unnumberedsubsec Appare un rigo in più
751 @translationof An extra staff appears
752
753 Se i contesti non sono creati esplicitamente con @code{\new} o
754 @code{\context}, saranno creati senza avviso appena si incontra
755 un comando che non può essere applicato a un contesto
756 esistente.  Nelle partiture semplici la creazione automatica dei contesti
757 è utile: infatti la maggior parte degli esempi nei manuali LilyPond sfrutta
758 questa semplificazione.  Talvolta, però, la creazione silenziosa di contesti
759 può causare la comparsa di nuovi righi o partiture non desiderate.  Ad esempio,
760 si potrebbe pensare che il seguente codice colori di rosso tutte le teste
761 delle note nel rigo, ma in realtà produce due righi, di cui il più basso
762 conserva il colore nero predefinito per le teste delle note.
763
764 @lilypond[quote,verbatim,relative=2]
765 \override Staff.NoteHead #'color = #red
766 \new Staff { a }
767 @end lilypond
768
769 Questo accade perché non esiste un contesto @code{Staff} quando viene
770 elaborata l'istruzione di override, quindi ne viene implicitamente creato uno e
771 l'override viene applicato ad esso.  Ma poi il comando @code{\new Staff} crea
772 un altro rigo separato nel quale vengono inserite le note.  Il codice
773 corretto per colorare le teste di tutte le note è
774
775 @lilypond[quote,verbatim,relative=2]
776 \new Staff {
777   \override Staff.NoteHead #'color = #red
778   a
779 }
780 @end lilypond
781
782 Vediamo un secondo esempio.  Se un comando @code{\relative} viene posto
783 dentro un comando @code{\repeat}, vengono generati due righi, il secondo
784 spostato orizzontalmente rispetto al primo, perché il comando @code{\repeat}
785 genera due blocchi @code{\relative}, ognuno dei quali crea implicitamente i
786 blocchi @code{Staff} e @code{Voice}.
787
788 @lilypond[quote,verbatim]
789 \repeat unfold 2 {
790   \relative c' { c4 d e f }
791 }
792 @end lilypond
793
794 Per correggere il problema basta istanziare esplicitamente il contesto
795 @code{Voice}:
796
797 @lilypond[quote,verbatim]
798 \new Voice {
799   \repeat unfold 2 {
800     \relative c' { c4 d e f }
801   }
802 }
803 @end lilypond
804
805
806 @node Errore apparente in ../ly/init.ly
807 @unnumberedsubsec Errore apparente in @code{../ly/init.ly}
808 @translationof Apparent error in ../ly/init.ly
809
810 Possono apparire diversi strani messaggi di errore relativi a errori di
811 sintassi in @file{../ly/init.ly} se il file di input non ha una forma corretta,
812 ad esempio se contiene delle parentesi o delle virgolette non chiuse
813 correttamente.
814
815 L'errore più comune è la mancanza di una parentesi graffa, (@code{@}}), alla fine
816 di un blocco @code{score}.  In questo caso la soluzione è ovvia: controlla
817 che il blocco @code{score} sia chiuso correttamente.  La struttura corretta
818 di un file di input è descritta in @rlearning{Come funzionano i file di input di LilyPond}.
819 Per evitare questi errori conviene usare un editor che evidenzi automaticamente
820 le parentesi e le graffe corrispondenti.
821
822 Un'altra causa frequente di errore è la mancanza di uno spazio tra l'ultima
823 sillaba di un blocco di testo (lyrics) e la parentesi graffa che chiude il
824 blocco, (@code{@}}).  Senza questa separazione, la graffa viene considerata
825 come parte della sillaba.  Si consiglia di assicurarsi sempre che ci sia
826 uno spazio prima e dopo @emph{ogni} parentesi graffa.  Per comprendere l'importanza
827 di questo quando si usa il testo, si veda @ruser{Entering lyrics}.
828
829 Questo messaggio di errore può apparire anche nel caso in cui sia omessa la
830 virgoletta di chiusura, (@code{"}).  In questo caso il messaggio di errore
831 @c keep "-matching straight in fancy editors
832 dovrebbe dare un numero di riga vicino alla riga sbagliata.  La virgoletta
833 non chiusa sarà solitamente una o due righe sopra.
834
835 @node Messaggio di errore Unbound variable %
836 @unnumberedsubsec Messaggio di errore Unbound variable %
837 @translationof Error message Unbound variable %
838
839 Questo messaggio di errore comparirà in fondo alla console di
840 output o nel file di log insieme al messaggio @qq{GUILE signalled an error @dots{}}
841 ogni volta che viene chiamata una routine di Scheme che contenga (erroneamente)
842 un commento @emph{LilyPond} invece di un commento @emph{Scheme}.
843
844 I commenti LilyPond iniziano con un segno di percentuale, (@code{%}), e non
845 devono essere usati all'interno delle routine di Scheme.  I commenti Scheme
846 iniziano con un punto e virgola, (@code{;}).
847
848 @node Messaggio di errore FT_Get_Glyph_Name
849 @unnumberedsubsec Messaggio di errore FT_Get_Glyph_Name
850 @translationof Error message FT_Get_Glyph_Name
851
852 Questo messaggio di errore compare nella console di output o nel file di log file
853 se un file di input contiene un carattere non-ASCII e non è stato salvato nella
854 codifica UTF-8.  Per dettagli si veda @ruser{Text encoding}.
855
856
857 @node Avvertimento sul fatto che le affinità del rigo devono solo diminuire
858 @unnumberedsubsec Avvertimento sul fatto che le affinità del rigo devono solo diminuire
859 @translationof Warning staff affinities should only decrease
860
861 Questo avvertimento può apparire se non ci sono dei righi nell'output,
862 ad esempio se ci sono solo un contesto @code{ChordName} e un
863 contesto @code{Lyrics}, come in un lead sheet.  Si possono evitare questi
864 messaggi di avvertimento facendo in modo che uno dei contesti si comporti
865 come un rigo inserendo
866
867 @example
868 \override VerticalAxisGroup #'staff-affinity = ##f
869 @end example
870
871 @noindent
872 all'inizio del contesto.  Per dettagli si veda @qq{Spacing of non-staff lines} in
873 @ruser{Flexible vertical spacing within systems}.