]> git.donarmstrong.com Git - lilypond.git/blob - Documentation/it/usage/running.itely
Doc-it: translation update
[lilypond.git] / Documentation / it / usage / running.itely
1 @c -*- coding: utf-8; mode: texinfo; documentlanguage: it -*-
2
3 @ignore
4     Translation of GIT committish: 7465f4b1291f38bed8ee81e3922eb685f7e909ad
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 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 Comandi standard da shell
105
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:
109
110 @itemize
111
112 @item
113 @code{lilypond file.ly 1>stdout.log} per redirigere l'output normale
114
115 @item
116 @code{lilypond file.ly 2>stderr.log} per redirigere i messaggi di errore
117
118 @item
119 @code{lilypond file.ly &>all.log} per redirigere tutto l'output
120
121 @end itemize
122
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.
126
127
128 @node Opzioni di base della linea di comando per LilyPond
129 @unnumberedsubsec Opzioni di base della linea di comando per @command{lilypond}
130 @translationof Basic command line options for LilyPond
131
132 @cindex Utilizzo di @command{lilypond}
133 @cindex opzioni della linea di comando per @command{lilypond}
134 @cindex linea di comando, opzioni di
135 @cindex switch
136
137 Sono contemplate le seguenti opzioni:
138
139 @table @code
140
141 @item -d,--define-default=@var{variabile}=@var{valore}
142 Si veda @ref{Advanced command line options for LilyPond}.
143
144 @cindex Scheme, valutazione dell'espressione
145 @cindex valutazione dell'espressione, Scheme
146
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
150 sequenziale.
151
152 L'espressione sarà analizzata nel modulo @code{guile-user}, dunque se vuoi
153 usare delle definizioni in @var{espressione}, usa
154
155 @example
156 lilypond -e '(define-public a 42)'
157 @end example
158
159 @noindent
160 nella linea di comando, e includi
161
162 @example
163 #(use-modules (guile-user))
164 @end example
165
166 @noindent
167 in cima al file @code{.ly}.
168
169 @warning{Gli utenti Windows devono usare i doppi apici invece dei singoli apici.}
170
171 @cindex output, formato
172 @cindex formato, output
173
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}.
177
178 Esempio: @code{lilypond -fpng @var{file}.ly}
179
180 @item -h,--help
181 Mostra una sintesi dell'utilizzo.
182
183 @item -H,--header=@var{CAMPO}
184 Estrae un campo dell'intestazione nel file @file{NOME.@var{CAMPO}}.
185
186 @item -i,--init=@var{file}
187 Imposta il file di inizializzazione su @var{file} (predefinito: @file{init.ly}).
188
189 @cindex ricerca dei file
190 @cindex percorso di ricerca
191
192 @item -I, --include=@var{directory}
193 Aggiunge @var{directory} al percorso di ricerca per i file di input.
194
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.
198
199 @cindex gabbia chroot, esecuzione all'interno di
200
201 @item -j,--jail=@var{utente},@var{gruppo},@var{gabbia},@var{directory}
202 Esegue @command{lilypond} in una gabbia chroot.
203
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}).
208
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}.
216
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
220 elementi:
221
222 @table @asis
223
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.
232
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
237 @var{dir}.
238
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}).
244
245 Se c'è un problema, il modo più semplice per individuarlo è lanciare
246 LilyPond usando @command{strace}, che permetterà di scoprire quali
247 file mancano.
248
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}.
258 @end table
259
260 @cindex loglevel
261 @cindex output dettagliato
262
263 @item -l,--loglevel=@var{LIVELLO}
264 Imposta la verbosità dell'output della console su @var{LIVELLO}. I valori possibili sono:
265 @table @code
266
267 @item NONE
268 Nessun output, nemmeno i messaggi di errore.
269
270 @item ERROR
271 Solo i messaggi di errore, niente avvisi o messaggi di elaborazione.
272
273 @item WARN
274 Avvisi e nessaggi di errore, nessun messaggio di elaborazione.
275
276 @item BASIC_PROGRESS
277 Messaggi di elaborazione di base (riuscita), avvisi e errori.
278
279 @item PROGRESS
280 Tutti i messaggi di elaborazione, avvisi e errori.
281
282 @item INFO (predefinito)
283 Messaggi di elaborazione, avvisi, errori e ulteriori informazioni di esecuzione.
284
285 @item DEBUG
286 Tutti i messaggi possibili, incluso l'output verboso di debug.
287
288 @end table
289
290 @cindex directory, dirigere l'output in
291 @cindex output, impostare il nome del file
292 @cindex output, directory
293
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).
299
300 @cindex PS (Postscript), output
301 @cindex Postscript (PS), output
302 @cindex output, PS (Postscript)
303
304 @item --ps
305 Genera PostScript.
306
307 @cindex PNG (Portable Network Graphics), output
308 @cindex output, PNG (Portable Network Graphics)
309
310 @item --png
311 Genera immmagini di ogni pagina in formato PNG.  Questo implica
312 @option{--ps}.  La risoluzione in DPI dell'immagine può essere impostata con
313 @example
314 -dresolution=110
315 @end example
316
317 @cindex PDF (Portable Document Format), output
318 @cindex output, PDF (Portable Document Format)
319
320 @item --pdf
321 Genera PDF.  Questo implica @option{--ps}.
322
323 @item -v,--version
324 Mostra informazioni sulla versione.
325
326 @item -V,--verbose
327 Aumenta la prolissità: mostra i percorsi completi di tutti i file letti e dà
328 informazioni sui tempi.
329
330 @item -w,--warranty
331 Mostra la garanzia con cui viene distribuito GNU LilyPond.  (Distribuito
332 con @strong{NESSUNA GARANZIA}!)
333
334 @end table
335
336
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
340
341 @item -d@var{[nome-opzione]}=@var{[valore]},--define-default=@var{[nome-opzione]}=@var{[valore]}
342 Imposta l'equivalente funzione interna di Scheme su @var{valore}.  Se non
343 viene specificato un @var{valore}, viene usato il valore predefinito.  Per disabilitare
344 un'opzione, si può usare il prefisso @code{no-} prima di @var{nome-opzione}, ad esempio
345
346 @cindex punta e clicca, linea di comando
347
348 @example
349 -dpoint-and-click=#f
350 @end example
351
352 @noindent
353 è equivalente a
354 @example
355 -dno-point-and-click
356 @end example
357 @end table
358
359 @noindent Sono supportate le seguenti opzioni insieme ai loro rispettivi
360 valori predefiniti:
361
362 @multitable @columnfractions .33 .16 .51
363 @item @strong{Simbolo}
364 @tab @strong{Valore}
365 @tab @strong{Spiegazione/Opzioni}
366
367 @item @code{anti-alias-factor}
368 @tab @code{1}
369 @tab Elabora a una risoluzione più alta (usando un certo fattore) e ridimensiona
370 il risultato per evitare gli @q{artefatti} nelle immagini @code{PNG}.
371
372 @item @code{aux-files}
373 @tab @code{#t}
374 @tab Crea i file @code{.tex}, @code{.texi}, @code{.count} nel backend
375 @code{EPS}.
376
377 @item @code{backend}
378 @tab @code{'ps}
379 @tab Seleziona il backend.  I file Postscript (predefinito) includono i tipi di
380 carattere @code{TTF}, @code{Type1} e @code{OTF}.  Non vengono inclusi i sottoinsiemi
381 di questi tipi.  Se si usa un set di caratteri @q{orientali}, si possono ottenere
382 file di grosse dimensioni.
383
384 @item
385 @tab @code{'eps}
386 @tab Encapsulated PostScript.  Invia ogni pagina (sistema) in un file
387 @file{EPS} separato, senza font, e in un unico file @file{EPS} con
388 tutte le pagine (sistemi) inclusi i font.  Questa è la modalità
389 predefinita di @command{lilypond-book}.
390
391 @item
392 @tab @code{'null}
393 @tab non produce la stampa della partitura; ha lo stesso
394 effetto di @code{-dno-print-pages}.
395
396 @item
397 @tab @code{'svg}
398 @tab Scalable Vector Graphics.  Crea un singolo file SVG, senza font
399 incorporati, per ogni pagina dell'output.  Si raccomanda di installare i
400 font Century Schoolbook, inclusi nell'installazione di LilyPond, per una
401 resa ottimale.  In UNIX basta copiare questi font dalla directory di
402 LilyPond (solitamente @file{/usr/share/lilypond/VERSION/fonts/otf/}) in
403 @file{~/.fonts/}.  L'output SVG dovrebbe essere compatibile con qualsiasi
404 editor SVG o user agent.  C'è anche un'opzione @code{svg-woff} (sotto) per
405 poter usare i file di font woff nel backend SVG.
406
407 @item
408 @tab @code{'scm}
409 @tab Estrae i comandi di disegno grezzi e interni, basati su Scheme.
410
411 @item @code{check-internal-types}
412 @tab @code{#f}
413 @tab Controlla l'assegnazione di ogni proprietà per i tipi.
414
415 @item @code{clip-systems}
416 @tab @code{#f}
417 @tab Genera frammenti ritagliati di una partitura.
418
419 @item @code{datadir}
420 @tab
421 @tab Prefisso per i file di dati (sola lettura).
422
423 @item @code{debug-gc}
424 @tab @code{#f}
425 @tab Scarica le statistiche sul debug della memoria.
426
427 @item @code{debug-gc-assert-parsed-dead}
428 @tab @code{#f}
429 @tab Per il debug della memoria: Assicura che tutti i riferimenti agli oggetti
430 analizzati siano eliminati. Questa è un'opzione interna e viene abilitata
431 automaticamente da @code{`-ddebug-gc'}.
432
433 @item @code{debug-lexer}
434 @tab @code{#f}
435 @tab Debug dell'analizzatore lessicale flex.
436
437 @item @code{debug-page-breaking-scoring}
438 @tab @code{#f}
439 @tab Crea le partiture per diverse configurazioni di interruzione di pagina.
440
441 @item @code{debug-parser}
442 @tab @code{#f}
443 @tab Debug dell'analizzatore bison.
444
445 @item @code{debug-property-callbacks}
446 @tab @code{#f}
447 @tab Debug delle catene cicliche di callback.
448
449 @item @code{debug-skylines}
450 @tab @code{#f}
451 @tab Debug skylines.
452
453 @item @code{delete-intermediate-files}
454 @tab @code{#t}
455 @tab Cancella i file @code{.ps} intermedi e inutilizzabili creati durante
456 la compilazione.
457
458 @item @code{dump-cpu-profile}
459 @tab @code{#f}
460 @tab Scarica l'informazione sui tempi (dipendente dal sistema).
461
462 @item @code{dump-profile}
463 @tab @code{#f}
464 @tab Scarica l'informazione sulla memoria e il tempo per ogni file.
465
466 @item @code{dump-signatures}
467 @tab @code{#f}
468 @tab Scarica le firme dell'output di ogni sistema. Usato per testare le regressioni.
469
470 @item @code{eps-box-padding}
471 @tab @code{#f}
472 @tab Sposta il margine sinistro della cornice EPS dell'output della quantità
473 specificata (in mm).
474
475 @item @code{gs-load-fonts}
476 @tab @code{#f}
477 @tab Carica i font attraverso Ghostscript.
478
479 @item @code{gs-load-lily-fonts}
480 @tab @code{#f}
481 @tab Carica solo i font LilyPond attraverso Ghostscript.
482
483 @item @code{gui}
484 @tab @code{#f}
485 @tab Esegue il programma senza stampare messaggi e redirige tutto l'output in un file di log.
486 @end multitable
487
488 @noindent
489 @strong{Nota per gli utenti Windows:} Per impostazione predefinita @code{lilypond.exe}
490 stampa tutta l'informazione sull'avanzamento nella finestra dei comandi.
491 @code{lilypond-windows.exe} non lo fa e riporta un prompt, privo di
492 informazioni sull'avanzamento, subito nella linea di comando.  L'opzione
493 @option{-dgui} può essere usata in questo caso per redirigere l'output in
494 un file di log.
495
496 @multitable @columnfractions .33 .16 .51
497 @item @code{help}
498 @tab @code{#f}
499 @tab Mostra questo aiuto.
500
501 @item @code{include-book-title-preview}
502 @tab @code{#t}
503 @tab Include i titoli dei libri nelle immagini di anteprima.
504
505 @item @code{include-eps-fonts}
506 @tab @code{#t}
507 @tab Include i font in file EPS con sistemi separati.
508
509 @item @code{include-settings}
510 @tab @code{#f}
511 @tab Include il file per le impostazioni globali, questo viene incluso prima
512 che la partitura sia elaborata.
513
514 @item @code{job-count}
515 @tab @code{#f}
516 @tab Elabora in parallelo, usando il dato numero di lavori.
517
518 @item @code{log-file}
519 @tab @code{#f [file]}
520 @tab Se la stringa @code{FOO} viene assegnata come secondo argomento,
521 redirige l'output nel file @code{FOO.log}.
522
523 @item @code{max-markup-depth}
524 @tab @code{1024}
525 @tab Maximum depth for the markup tree. If a markup has more levels,
526 assume it will not terminate on its own, print a warning and return a
527 null markup instead.
528
529 @item @code{midi-extension}
530 @tab @code{"midi"}
531 @tab Imposta l'estensione predefinita per il file MIDI sulla stringa specificata.
532
533 @item @code{music-strings-to-paths}
534 @tab @code{#f}
535 @tab Converte le stringhe di testo in percorsi quando i glifi appartengono a
536 un font musicale.
537
538 @item @code{old-relative}
539 @tab @code{#f}
540 @tab Fa sì che il modo @code{\relative} per la musica simultanea funzioni in
541 modo simile alla sintassi degli accordi.
542
543 @item @code{paper-size}
544 @tab @code{\"a4\"}
545 @tab Imposta la dimensione predefinita del foglio.  Nota che la stringa deve
546 essere compresa tra virgolette precedute dal segno di escape.
547
548 @item @code{pixmap-format}
549 @tab @code{png16m}
550 @tab Imposta il formato di output di GhostScript per le immagini raster.
551
552 @item @code{point-and-click}
553 @tab @code{#f}
554 @tab Aggiunge i collegamenti @q{punta e clicca} all'output @code{PDF}. Si veda
555 @ref{Point and click}.
556
557 @item @code{preview}
558 @tab @code{#f}
559 @tab Crea immagini di anteprima oltre al normale output.
560 @end multitable
561
562 @noindent
563 Questa opzione è supportata da tutti i backend; @code{pdf}, @code{png},
564 @code{ps}, @code{eps} e @code{svg}, ma non @code{scm}.  Genera un file
565 di output nella forma @code{mioFile.preview.estensione}, contenente i
566 titoli e il primo sistema.  Se vengono usati i blocchi @code{\book} o
567 @code{\bookpart}, i titoli di @code{\book}, @code{\bookpart} o @code{\score}
568 appariranno nell'output, incluso il primo sistema di ogni blocco @code{\score}
569 se la variabile @code{print-all-headers} di @code{\paper} è impistata
570 su @code{#t}.
571
572 Per impedire il normale output, si usano le opzioni @option{-dprint-pages} o
573 @option{-dno-print-pages} in base alle proprie esigenze.
574
575 @multitable @columnfractions .33 .16 .51
576 @item @code{print-pages}
577 @tab @code{#t}
578 @tab Genera le pagine complete (predefinito).  @option{-dno-print-pages} è
579 utile in combinazione con @option{-dpreview}.
580
581 @item @code{profile-property-accesses}
582 @tab @code{#f}
583 @tab Mantiene una statistica delle chiamate di funzione @code{get_property()}.
584
585 @item @code{protected-scheme-parsing}
586 @tab @code{#t}
587 @tab Continua se l'analizzatore coglie degli errori nel codice scheme interno
588 al file di input. Se impostato su @code{#f}, in caso di errore si ferma e
589 mostra la traccia di stack.
590
591 @item @code{read-file-list}
592 @tab @code{#f [file]}
593 @tab Specifica il nome di un file che contiene una lista di file di input da
594 elaborare.
595
596 @item @code{relative-includes}
597 @tab @code{#f}
598 @tab Quando elabora un comando @code{\include}, cerca il file incluso
599 in posizione relativa al file corrente (invece che in posizione assoluta).
600
601 @item @code{resolution}
602 @tab @code{101}
603 @tab Imposta la risoluzione per generare immagini @code{PNG} su un certo
604 valore (in dpi).
605
606 @item @code{safe}
607 @tab @code{#f}
608 @tab Non si fida dell'input nel file @code{.ly}.
609 @end multitable
610
611 @noindent
612 Quando la formattazione di LilyPond viene messa a disposizione tramite un server
613 web, si @b{DEVE} passare l'opzione @option{--safe} o l'opzione @option{--jail}.  L'opzione
614 @option{--safe} impedirà che il codice Scheme presente nell'input possa fare uno
615 scempio, ad esempio
616
617 @quotation
618 @verbatim
619 #(system "rm -rf /")
620 {
621   c4^$(ly:gulp-file "/etc/passwd")
622 }
623 @end verbatim
624 @end quotation
625
626 L'opzione @option{-dsafe} serve a valutare le espressioni Scheme presenti nell'input
627 in uno speciale modulo di sicurezza.  Questo modulo di sicurezza è derivato dal
628 modulo GUILE @file{safe-r5rs}, ma aggiunge alcune funzioni del
629 LilyPond API.  Queste funzioni sono elencate in @file{scm/safe-lily.scm}.
630
631 Inoltre, la modalità sicura non permette le direttive @code{\include} e
632 disabilita l'uso del backslash nelle stringhe @TeX{}.  In modalità sicura,
633 non è possibile importare le variabili di LilyPond in Scheme.
634
635 @option{-dsafe} @emph{non} rileva il sovrautilizzo di risorse.  È ancora possibile
636 far sì che il programma rimanga in sospeso per un tempo indefinito, ad esempio
637 alimentando il backend con strutture di dati cicliche.  Dunque se si vuole usare
638 LilyPond su un server web pubblicamente accessibile, si deve limitare il processo
639 nell'uso della CPU e della memoria.
640
641 La modalità sicura bloccherà la compilazione di molti utili frammenti di codice
642 LilyPond.
643
644 L'opzione @option{--jail} è un'alternativa più sicura, ma richiede più lavoro
645 per configurarla.  Si veda @ref{Basic command line options for LilyPond}.
646
647 @multitable @columnfractions .33 .16 .51
648 @item @code{separate-log-files}
649 @tab @code{#f}
650 @tab Per i file di input @code{FILE1.ly}, @code{FILE2.ly}, etc. salva i dati di
651 log nei file @code{FILE1.log}, @code{FILE2.log}, ...
652
653 @item @code{show-available-fonts}
654 @tab @code{#f}
655 @tab Elenca i nomi di font disponibili.
656
657 @item @code{strict-infinity-checking}
658 @tab @code{#f}
659 @tab Forza il blocco del programma quando si incontrano eccezioni @code{Inf} e
660 @code{NaN} sui numeri in virgola mobile.
661
662 @item @code{strip-output-dir}
663 @tab @code{#t}
664 @tab Non usa le directory dei file di input per costruire i nomi dei file
665 di output.
666
667 @item @code{svg-woff}
668 @tab @code{#f}
669 @tab Usa i file di font woff nel backend SVG.
670
671 @item @code{trace-memory-frequency}
672 @tab @code{#f}
673 @tab Registra molte volte al secondo l'uso delle celle da parte di Scheme.  Salva i
674 risultati in @code{FILE.stacks} e @code{FILE.graph}.
675
676 @item @code{trace-scheme-coverage}
677 @tab @code{#f}
678 @tab Registra la copertura dei file Scheme in @code{FILE.cov}.
679
680 @item @code{verbose}
681 @tab @code{#f}
682 @tab Output dettagliato, ovvero livello di log DEBUG (sola lettura).
683
684 @item @code{warning-as-error}
685 @tab @code{#f}
686 @tab Trasforma tutti i messaggi di avviso e di @q{errore di programmazione} in errori.
687 @end multitable
688
689
690 @node Variabili d'ambiente
691 @unnumberedsubsec Variabili d'ambiente
692 @translationof Environment variables
693
694 @cindex LANG
695 @cindex LILYPOND_DATADIR
696
697 @command{lilypond} riconosce le seguenti variabili d'ambiente:
698 @table @code
699 @item LILYPOND_DATADIR
700 Specifica la directory predefinita in cui saranno cercati i messaggi della
701 localizzazione e i file di dati.  Questa directory deve contenere
702 sottodirectory chiamate @file{ly/}, @file{ps/}, @file{tex/}, etc.
703
704 @item LANG
705 Determina la lingua per i messaggi di avviso.
706
707 @item LILYPOND_LOGLEVEL
708 Il livello di log (loglevel) predefinito. Se LilyPond viene chiamato senza un
709 livello di log esplicito (ovvero senza l'opzione @option{--loglevel} della
710 linea di comando), viene usato questo valore.
711
712 @item LILYPOND_GC_YIELD
713 Una variabile, in forma di percentuale, che regola il modo in cui viene gestita
714 la memoria.  Con valori più alti il programma usa più memoria, con valori
715 più bassi usa più tempo della CPU.  Il valore predefinito è @code{70}.
716
717 @end table
718
719
720 @node LilyPond in una gabbia chroot
721 @unnumberedsubsec LilyPond in una gabbia chroot
722 @translationof LilyPond in chroot jail
723
724 Configurare un server perché esegua LilyPond in una gabbia chroot è un lavoro
725 complesso.  La procedura è spiegata sotto.  Gli esempi si riferiscono a
726 Ubuntu Linux e potrebbero richiedere l'uso di @code{sudo} in alcune situazioni.
727
728 @itemize
729
730 @item Installa i pacchetti necessari: LilyPond, GhostScript e ImageMagick.
731
732 @item Crea un nuovo utente dal nome @code{lily}:
733
734 @example
735 adduser lily
736 @end example
737
738 @noindent
739 Questo comando creerà anche un nuovo gruppo per l'utente @code{lily}, e una
740 cartella home,
741 @code{/home/lily}
742
743 @item Nella cartella home dell'utente @code{lily} crea un file da usare come
744 filesystem separato:
745
746 @example
747 dd if=/dev/zero of=/home/lily/loopfile bs=1k count= 200000
748 @end example
749
750 @noindent
751 In questo esempio è stato creato un file di 200MB da usare come filesystem della
752 gabbia.
753
754 @item Crea un dispositivo di loop, crea e monta un filesystem, quindi crea
755 una cartella scrivibile dall'utente @code{lily}:
756
757 @example
758 mkdir /mnt/lilyloop
759 losetup /dev/loop0 /home/lily/loopfile
760 mkfs -t ext3 /dev/loop0 200000
761 mount -t ext3 /dev/loop0 /mnt/lilyloop
762 mkdir /mnt/lilyloop/lilyhome
763 chown lily /mnt/lilyloop/lilyhome
764 @end example
765
766 @item Nella configurazione dei server, JAIL sarà @code{/mnt/lilyloop}
767 e DIR sarà @code{/lilyhome}.
768
769 @item Crea un grande albero delle directory nella gabbia copiando i file
770 necessari, come mostrato nello script di esempio più in basso.
771
772 Puoi usare @code{sed} per creare i comandi di copia necessari per un certo
773 eseguibile:
774
775 @example
776 for i in "/usr/local/lilypond/usr/bin/lilypond" "/bin/sh" "/usr/bin/;  \
777   do ldd $i | sed 's/.*=> \/\(.*\/\)\([^(]*\).*/mkdir -p \1 \&\&  \
778     cp -L \/\1\2 \1\2/' | sed 's/\t\/\(.*\/\)\(.*\) (.*)$/mkdir -p  \
779       \1 \&\& cp -L \/\1\2 \1\2/' | sed '/.*=>.*/d'; done
780 @end example
781
782 @end itemize
783
784 @subheading Script di esempio per Ubuntu 8.04 a 32-bit
785
786 @example
787 #!/bin/sh
788 ## defaults set here
789
790 username=lily
791 home=/home
792 loopdevice=/dev/loop0
793 jaildir=/mnt/lilyloop
794 # the prefix (without the leading slash!)
795 lilyprefix=usr/local
796 # the directory where lilypond is installed on the system
797 lilydir=/$lilyprefix/lilypond/
798
799 userhome=$home/$username
800 loopfile=$userhome/loopfile
801 adduser $username
802 dd if=/dev/zero of=$loopfile bs=1k count=200000
803 mkdir $jaildir
804 losetup $loopdevice $loopfile
805 mkfs -t ext3 $loopdevice 200000
806 mount -t ext3 $loopdevice $jaildir
807 mkdir $jaildir/lilyhome
808 chown $username $jaildir/lilyhome
809 cd $jaildir
810
811 mkdir -p bin usr/bin usr/share usr/lib usr/share/fonts $lilyprefix tmp
812 chmod a+w tmp
813
814 cp -r -L $lilydir $lilyprefix
815 cp -L /bin/sh /bin/rm bin
816 cp -L /usr/bin/convert /usr/bin/gs usr/bin
817 cp -L /usr/share/fonts/truetype usr/share/fonts
818
819 # Now the library copying magic
820 for i in "$lilydir/usr/bin/lilypond" "$lilydir/usr/bin/guile" "/bin/sh"  \
821   "/bin/rm" "/usr/bin/gs" "/usr/bin/convert"; do ldd $i | sed 's/.*=>  \
822     \/\(.*\/\)\([^(]*\).*/mkdir -p \1 \&\& cp -L \/\1\2 \1\2/' | sed  \
823       's/\t\/\(.*\/\)\(.*\) (.*)$/mkdir -p \1 \&\& cp -L \/\1\2 \1\2/'  \
824         | sed '/.*=>.*/d'; done | sh -s
825
826 # The shared files for ghostscript...
827       cp -L -r /usr/share/ghostscript usr/share
828 # The shared files for ImageMagick
829       cp -L -r /usr/lib/ImageMagick* usr/lib
830
831 ### Now, assuming that you have test.ly in /mnt/lilyloop/lilyhome,
832 ### you should be able to run:
833 ### Note that /$lilyprefix/bin/lilypond is a script, which sets the
834 ### LD_LIBRARY_PATH - this is crucial
835       /$lilyprefix/bin/lilypond -jlily,lily,/mnt/lilyloop,/lilyhome test.ly
836 @end example
837
838 @c " keep quote signs balanced for context-sensitive editors
839
840 @node Messaggi di errore
841 @section Messaggi di errore
842 @translationof Error messages
843
844 @cindex messaggi di errore
845 Quando si compila un file possono apparire vari messaggi di errore:
846
847 @table @emph
848
849 @item Avvertimento
850 @cindex avvertimento
851 Qualcosa appare sospetto.  Se stai cercando di fare qualcosa di insolito
852 allora comprenderai il messaggio e potrai ignorarlo.
853 Tuttavia di solito i messaggi di avvertimento indicano che il file di input ha
854 qualcosa che non va.
855
856 @item Errore
857 @cindex errore
858 C'è qualcosa di assolutamente sbagliato.  Il passo attualmente in elaborazione
859 (analisi, interpretazione o formattazione) verrà completato, ma il passo
860 successivo verrà saltato.
861
862 @item Errore fatale
863 @cindex errore fatale
864 C'è qualcosa di assolutamente sbagliato e LilyPond non può continuare.  Questo
865 accade raramente.  La causa più comune è un'errata installazione dei tipi di
866 carattere.
867
868 @item Errore Scheme
869 @cindex traccia, Scheme
870 @cindex traccia di chiamata
871 @cindex errore Scheme
872 Gli errori che capitano mentre si esegue del codice Scheme sono individuati
873 dall'interprete Scheme.  Se si esegue con l'opzione di prolissità (@code{-V} o
874 @option{--verbose}), viene stampata una traccia della chiamata di funzione
875 responsabile dell'errore.
876
877 @item Errore di programmazione
878 @cindex Errore di programmazione
879 Si è verificata una qualche incongruenza interna.  Questi messaggi di errore
880 servono ad aiutare programmatori e debugger.  Di solito si possono
881 ignorare.  Talvolta sono talmente numerosi da nascondere il resto
882 dell'output.
883
884 @item Sospeso (core dumped)
885 @cindex Sospeso (core dumped)
886 Segnala un serio errore di programmazione che ha mandato in crash il
887 programma.  Questi errori sono considerati critici.  Se ti imbatti in un
888 errore simile, invia una segnalazione di errore.
889 @end table
890
891 @cindex errori, formato del messaggio
892 Se gli avvertimenti e gli errori possono essere collegati
893 a una parte specifica del file di input, i messaggi di errore
894 hanno la seguente forma
895
896 @example
897 @var{file}:@var{riga}:@var{colonna}: @var{messaggio}
898 @var{riga di input responsabile dell'errore}
899 @end example
900
901 Nella riga responsabile si inserisce un a capo per indicare la colonna
902 in cui è stato trovato l'errore.  Ad esempio,
903
904 @example
905 test.ly:2:19: error: not a duration: 5
906   @{ c'4 e'
907            5 g' @}
908 @end example
909
910 Queste posizioni indicano la migliore ipotesi di LilyPond a proposito del
911 punto in cui l'avvertimento o l'errore sono comparsi, ma (per loro
912 stessa natura) avvertimenti ed errori capitano quando succede qualcosa
913 di imprevisto.  Se non riesci a vedere un errore nella riga indicata
914 del file di input, prova a controllare una o due righe sopra la posizione
915 indicata.
916
917 Maggiori informazioni sugli errori si trovano in @ref{Errori comuni}.
918
919
920 @node Errori comuni
921 @section Errori comuni
922 @translationof Common errors
923
924 Le condizioni di errore descritte di seguito capitano spesso, ma la causa
925 non è ovvia né facile da trovare.  Una volta che sono state individuate e
926 comprese, è facile gestirle.
927
928
929 @menu
930 * La musica esce dalla pagina::
931 * Appare un rigo in più::
932 * Errore apparente in ../ly/init.ly::
933 * Messaggio di errore Unbound variable %::
934 * Messaggio di errore FT_Get_Glyph_Name::
935 * Avvertimento sul fatto che le affinità del rigo devono solo diminuire::
936 @end menu
937
938 @node La musica esce dalla pagina
939 @unnumberedsubsec La musica esce dalla pagina
940 @translationof Music runs off the page
941
942 Se la musica esce dalla pagina al di là del margine destro o appare
943 eccessivamente compressa, quasi sempre è dovuto all'inserimento di
944 una durata errata di una nota, che fa sì che l'ultima nota di una misura si
945 estenda oltre la barra di divisione.  Non è sbagliato se la nota finale di
946 una misura non termina entro la barra di divisione inserita automaticamente, perché
947 semplicemente si assume che la nota continui nella misura successiva.  Ma se
948 si presenta una lunga sequenza di misure simili, la musica può
949 apparire compressa o può uscire dalla pagina perché gli a capo
950 automatici possono essere inseriti soltanto alla fine di misure complete,
951 ovvero quando tutte le note finiscono prima o alla fine della misura.
952
953 @warning{Una durata sbagliata può inibire l'interruzione di
954 linea, portando a una linea di musica estremamente compressa o
955 a musica che esce dalla pagina.}
956
957 La durata errata può essere trovata facilmente se si usano i controlli di
958 battuta, si veda @ruser{Bar and bar number checks}.
959
960 Se si vuole davvero ottenere una serie di tali misure sovrapposte
961 bisogna inserire una barra di divisione invisibile nel punto in cui
962 si desidera l'interruzione di linea.  Per i dettagli si veda @ruser{Bar lines}.
963
964
965 @node Appare un rigo in più
966 @unnumberedsubsec Appare un rigo in più
967 @translationof An extra staff appears
968
969 Se i contesti non sono creati esplicitamente con @code{\new} o
970 @code{\context}, saranno creati senza avviso appena si incontra
971 un comando che non può essere applicato a un contesto
972 esistente.  Nelle partiture semplici la creazione automatica dei contesti
973 è utile: infatti la maggior parte degli esempi nei manuali LilyPond sfrutta
974 questa semplificazione.  Talvolta, però, la creazione silenziosa di contesti
975 può causare la comparsa di nuovi righi o partiture non desiderate.  Ad esempio,
976 si potrebbe pensare che il seguente codice colori di rosso tutte le teste
977 delle note nel rigo, ma in realtà produce due righi, di cui il più basso
978 conserva il colore nero predefinito per le teste delle note.
979
980 @lilypond[quote,verbatim,relative=2]
981 \override Staff.NoteHead #'color = #red
982 \new Staff { a }
983 @end lilypond
984
985 Questo accade perché non esiste un contesto @code{Staff} quando viene
986 elaborata l'istruzione di override, quindi ne viene implicitamente creato uno e
987 l'override viene applicato ad esso.  Ma poi il comando @code{\new Staff} crea
988 un altro rigo separato nel quale vengono inserite le note.  Il codice
989 corretto per colorare le teste di tutte le note è
990
991 @lilypond[quote,verbatim,relative=2]
992 \new Staff {
993   \override Staff.NoteHead #'color = #red
994   a
995 }
996 @end lilypond
997
998 Vediamo un secondo esempio.  Se un comando @code{\relative} viene posto
999 dentro un comando @code{\repeat}, vengono generati due righi, il secondo
1000 spostato orizzontalmente rispetto al primo, perché il comando @code{\repeat}
1001 genera due blocchi @code{\relative}, ognuno dei quali crea implicitamente i
1002 blocchi @code{Staff} e @code{Voice}.
1003
1004 @lilypond[quote,verbatim]
1005 \repeat unfold 2 {
1006   \relative c' { c4 d e f }
1007 }
1008 @end lilypond
1009
1010 Per correggere il problema basta istanziare esplicitamente il contesto
1011 @code{Voice}:
1012
1013 @lilypond[quote,verbatim]
1014 \new Voice {
1015   \repeat unfold 2 {
1016     \relative c' { c4 d e f }
1017   }
1018 }
1019 @end lilypond
1020
1021
1022 @node Errore apparente in ../ly/init.ly
1023 @unnumberedsubsec Errore apparente in @code{../ly/init.ly}
1024 @translationof Apparent error in ../ly/init.ly
1025
1026 Possono apparire diversi strani messaggi di errore relativi a errori di
1027 sintassi in @file{../ly/init.ly} se il file di input non ha una forma corretta,
1028 ad esempio se contiene delle parentesi o delle virgolette non chiuse
1029 correttamente.
1030
1031 L'errore più comune è la mancanza di una parentesi graffa, (@code{@}}), alla fine
1032 di un blocco @code{score}.  In questo caso la soluzione è ovvia: controlla
1033 che il blocco @code{score} sia chiuso correttamente.  La struttura corretta
1034 di un file di input è descritta in @rlearning{Come funzionano i file di input di LilyPond}.
1035 Per evitare questi errori conviene usare un editor che evidenzi automaticamente
1036 le parentesi e le graffe corrispondenti.
1037
1038 Un'altra causa frequente di errore è la mancanza di uno spazio tra l'ultima
1039 sillaba di un blocco di testo (lyrics) e la parentesi graffa che chiude il
1040 blocco, (@code{@}}).  Senza questa separazione, la graffa viene considerata
1041 come parte della sillaba.  Si consiglia di assicurarsi sempre che ci sia
1042 uno spazio prima e dopo @emph{ogni} parentesi graffa.  Per comprendere l'importanza
1043 di questo quando si usa il testo, si veda @ruser{Entering lyrics}.
1044
1045 Questo messaggio di errore può apparire anche nel caso in cui sia omessa la
1046 virgoletta di chiusura, (@code{"}).  In questo caso il messaggio di errore
1047 @c keep "-matching straight in fancy editors
1048 dovrebbe dare un numero di riga vicino alla riga sbagliata.  La virgoletta
1049 non chiusa sarà solitamente una o due righe sopra.
1050
1051 @node Messaggio di errore Unbound variable %
1052 @unnumberedsubsec Messaggio di errore Unbound variable %
1053 @translationof Error message Unbound variable %
1054
1055 Questo messaggio di errore comparirà in fondo alla console di
1056 output o nel file di log insieme al messaggio @qq{GUILE signalled an error @dots{}}
1057 ogni volta che viene chiamata una routine di Scheme che contenga (erroneamente)
1058 un commento @emph{LilyPond} invece di un commento @emph{Scheme}.
1059
1060 I commenti LilyPond iniziano con un segno di percentuale, (@code{%}), e non
1061 devono essere usati all'interno delle routine di Scheme.  I commenti Scheme
1062 iniziano con un punto e virgola, (@code{;}).
1063
1064 @node Messaggio di errore FT_Get_Glyph_Name
1065 @unnumberedsubsec Messaggio di errore FT_Get_Glyph_Name
1066 @translationof Error message FT_Get_Glyph_Name
1067
1068 Questo messaggio di errore compare nella console di output o nel file di log file
1069 se un file di input contiene un carattere non-ASCII e non è stato salvato nella
1070 codifica UTF-8.  Per dettagli si veda @ruser{Text encoding}.
1071
1072
1073 @node Avvertimento sul fatto che le affinità del rigo devono solo diminuire
1074 @unnumberedsubsec Avvertimento sul fatto che le affinità del rigo devono solo diminuire
1075 @translationof Warning staff affinities should only decrease
1076
1077 Questo avvertimento può apparire se non ci sono dei righi nell'output,
1078 ad esempio se ci sono solo un contesto @code{ChordName} e un
1079 contesto @code{Lyrics}, come in un lead sheet.  Si possono evitare questi
1080 messaggi di avvertimento facendo in modo che uno dei contesti si comporti
1081 come un rigo inserendo
1082
1083 @example
1084 \override VerticalAxisGroup #'staff-affinity = ##f
1085 @end example
1086
1087 @noindent
1088 all'inizio del contesto.  Per dettagli si veda @qq{Spacing of non-staff lines} in
1089 @ruser{Flexible vertical spacing within systems}.