1 @c -*- coding: utf-8; mode: texinfo; documentlanguage: it -*-
4 Translation of GIT committish: cff226053d927e433473697fe743bdfd721d2607
6 When revising a translation, copy the HEAD committish of the
7 version that you are working on. For details, see the Contributors'
8 Guide, node Updating translation committishes..
14 @node Eseguire lilypond
15 @chapter Eseguire @command{lilypond}
16 @translationof Running LilyPond
18 Questo capitolo descrive dettagliatamente gli aspetti tecnici dell'esecuzione
23 * Uso da linea di comando::
24 * Messaggi di errore::
31 @translationof Normal usage
33 La maggior parte degli utenti esegue LilyPond attraverso un'interfaccia grafica
34 (GUI); se non lo hai già fatto, leggi il @rlearning{Tutorial}. Se usi un editor
35 diverso per scrivere i file lilypond, leggi la documentazione di quel programma.
38 @node Uso da linea di comando
39 @section Uso da linea di comando
40 @translationof Command-line usage
42 Questa sezione contiene informazioni aggiuntive sull'uso di LilyPond da linea
43 di comando. Questo può essere utile per assegnare opzioni aggiuntive al programma.
44 Inoltre, ci sono alcuni programmi complementari di @q{aiuto} (come
45 @code{midi2ly}) che funzionano solo da linea di comando.
47 Con @q{linea di comando} si intende la linea di comando del sistema operativo.
48 Gli utenti Windows avranno più familiarità con i termini @q{shell DOS} o
49 @q{shell dei comandi}. Gli utenti MacOS@tie{}X avranno più familiarità con i termini
50 @q{terminale} o @q{console}. Una configurazione ulteriore è necessaria
51 per gli utenti MacOS@tie{}X; si veda @rweb{MacOS X}.
53 Descrivere come usare questa parte di un sistema operativo non rientra negli
54 obiettivi di questo manuale; si prega di consultare altra documentazione su
55 questo argomento se non si conosce la linea di comando.
58 * Utilizzo di lilypond::
59 * Opzioni della linea di comando per lilypond::
60 * Variabili d'ambiente::
61 * LilyPond in una gabbia chroot::
64 @node Utilizzo di lilypond
65 @unnumberedsubsec Utilizzo di @command{lilypond}
66 @translationof Invoking lilypond
68 L'eseguibile @command{lilypond} può essere lanciato dalla linea di comando
72 lilypond [@var{opzione}]@dots{} @var{file}@dots{}
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}.
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.}
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
92 #(define output-suffix "violin")
94 #(define output-suffix "cello")
99 produrrà come output @var{base}@file{-violin.pdf} e
100 @var{base}@file{-cello-1.pdf}.
103 @unnumberedsubsubsec Comandi standard da shell
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:
112 @code{lilypond file.ly 1>stdout.log} per redirigere l'output normale
115 @code{lilypond file.ly 2>stderr.log} per redirigere i messaggi di errore
118 @code{lilypond file.ly &>all.log} per redirigere tutto l'output
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.
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
131 @cindex Utilizzo di @command{lilypond}
132 @cindex opzioni della linea di comando per @command{lilypond}
133 @cindex linea di comando, opzioni di
136 Sono contemplate le seguenti opzioni:
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 @code{-e}; saranno analizzate in modo
145 L'espressione sarà analizzata nel modulo @code{guile-user}, dunque se vuoi
146 usare delle definizioni in @var{espressione}, usa
149 lilypond -e '(define-public a 42)'
153 nella linea di comando, e includi
156 #(use-modules (guile-user))
160 in cima al file @code{.ly}.
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}.
166 Esempio: @code{lilypond -fpng @var{file}.ly}
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
176 @cindex punta e clicca, linea di comando
185 -dpoint-and-click='#f'
188 Di seguito alcune opzioni interessanti.
190 @cindex aiuto, linea di comando
194 L'esecuzione di @code{lilypond -dhelp} mostrerà tutte le opzioni disponibili
197 @cindex paper-size, linea di comando
200 Questa opzione imposta la dimensione predefinita del foglio,
202 -dpaper-size=\"letter\"
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
210 @cindex safe, linea di comando
213 Non si fida dell'input nel file @code{.ly}.
215 Quando la formattazione di LilyPond viene messa a disposizione tramite un server
216 web, si @b{DEVE} passare l'opzione @code{--safe} o l'opzione @code{--jail}. L'opzione
217 @code{--safe} impedirà che il codice Scheme presente nell'input possa fare uno
224 c4^#(ly:export (ly:gulp-file "/etc/passwd"))
229 L'opzione @code{-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}.
234 Inoltre, la modalità sicura non permette le direttive @code{\include} e
235 disabilita l'uso del backslash nelle stringhe @TeX{}.
237 In modalità sicura, non è possibile importare le variabili di LilyPond
240 @code{-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.
246 La modalità sicura bloccherà la compilazione di molti utili frammenti di codice
247 LilyPond. L'opzione @code{--jail} è un'alternativa più sicura, ma richiede
248 più lavoro per configurarla.
250 @cindex formato di output, impostare il
252 il formato di output da usare per il back-end. Per il @code{formato} si può
256 @cindex PostScript, output
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.
265 @cindex Postscript, incapsulato
266 @cindex EPS (Encapsulated PostScript)
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.
272 Questa è la modalità predefinita di @command{lilypond-book}.
276 @cindex SVG (Scalable Vector Graphics)
278 per ottenere SVG (Scalable Vector Graphics).
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.
291 @cindex Scheme, estrazione di
293 per estrarre i comandi di disegno grezzi e interni, basati su Scheme.
296 non produce la stampa della partitura; ha lo stesso effetto di @code{-dno-print-pages}.
299 Esempio: @code{lilypond -dbackend=svg @var{filename}.ly}
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
310 Genera tutte le pagine, come da impostazione predefinita. @code{-dno-print-pages} è
311 utile in combinazione con @code{-dpreview}.
318 Mostra una sintesi dell'utilizzo.
320 @item -H,--header=@var{CAMPO}
321 Estrae un campo dell'intestazione nel file @file{NOME.@var{CAMPO}}.
323 @cindex ricerca dei file
324 @cindex percorso di ricerca
325 @item --include, -I=@var{directory}
326 Aggiunge @var{directory} al percorso di ricerca per i file di input.
328 È possibile assegnare più opzioni -I. La ricerca inizierà nella prima
329 directory definita, e se il file da includere non viene trovato
330 la ricerca continuerà nelle directory seguenti.
332 @item -i,--init=@var{file}
333 Imposta il file di inizializzazione su @var{file} (predefinito: @file{init.ly}).
335 @cindex cartella, dirigere l'output in
336 @cindex nome del file di output, impostare
338 @item -o,--output=@var{FILE} or @var{CARTELLA}
339 Imposta il file di output predefinito @var{FILE} oppure, se una cartella con
340 quel nome esiste già, dirige l'output in @var{CARTELLA}, prendendo il nome
341 del file dal file di input. In entrambi i casi verrà aggiunto il suffisso
342 appropriato (ad esempio @code{.pdf} per il pdf).
350 @cindex Portable Network Graphics (PNG)
353 Genera immmagini di ogni pagina in formato PNG. Questo implica
354 @code{--ps}. La risoluzione in DPI dell'immagine può essere impostata con
359 @cindex Portable Document Format (PDF)
362 Genera PDF. Questo implica @code{--ps}.
366 @item -j,--jail=@var{utente},@var{gruppo},@var{gabbia},@var{directory}
367 Esegue @command{lilypond} in una gabbia chroot.
369 L'opzione @code{--jail} fornisce un'alternativa più flessibile a
370 @code{--safe} quando la formattazione di LilyPond è messa a disposizione attraverso
371 un server web o quando LilyPond esegue sorgenti provenienti dall'esterno.
373 L'opzione @code{--jail} modifica la radice di @command{lilypond} in
374 @var{gabbia} appena prima di iniziare il vero processo di compilazione. L'utente
375 e il gruppo vengono poi modificati per corrispondere a quelli forniti, e la
376 directory corrente viene spostata in @var{directory}. Questa configurazione
377 garantisce che non sia possibile (almeno in teoria) uscire dalla gabbia. Si noti
378 che perché @code{--jail} funzioni @command{lilypond} deve essere eseguito come root;
379 di solito questo si fa in modo sicuro col comando @command{sudo}.
381 Configurare una gabbia è una questione un po' delicata, perché bisogna essere
382 sicuri che LilyPond possa trovare tutto quello di cui ha bisogno per compilare il
383 sorgente @emph{dentro la gabbia}. Una configurazione tipica comprende i seguenti
387 @item Impostare un filesystem distinto
388 Si dovrebbe creare un filesystem separato LilyPond, così che possa essere
389 montato con opzioni di sicurezza come @code{noexec}, @code{nodev}, e
390 @code{nosuid}. In questo modo è impossibile lanciare degli eseguibili o
391 scrivere su un dispositivo direttamente da LilyPond. Se non si vuole creare
392 una partizione separata, si può creare un file di dimensioni ragionevoli e usarlo
393 per montare un dispositivo di loop. Un filesystem separato garantisce inoltre
394 che LilyPond non possa scrivere su uno spazio maggiore di quanto permesso.
396 @item Impostare un altro utente
397 Per eseguire LilyPond in una gabbia si dovrebbe usare un altro utente e gruppo
398 (ad esempio, @code{lily}/@code{lily}) con pochi privilegi. Ci dovrebbe essere
399 una sola directory scrivibile da questo utente, che dovrebbe essere passata in
402 @item Preparare la gabbia
403 LilyPond ha bisogno di leggere alcuni file quando viene lanciato. Tutti questi
404 file devono essere copiati nella gabbia, sotto lo stesso percorso in cui appaiono
405 nel vero filesystem principale. Si deve copiare l'intero contenuto dell'installazione
406 LilyPond installation (ad esempio, @file{/usr/share/lilypond}).
408 Se c'è un problema, il modo più semplice per individuarlo è lanciare
409 LilyPond usando @command{strace}, che permetterà di scoprire quali
412 @item Eseguire LilyPond
413 In una gabbia montata con @code{noexec} è impossibile eseguire qualsiasi
414 programma esterno. Dunque LilyPond deve essere eseguito con un backend che
415 non richieda tale programma. Come è già stato detto, deve essere eseguito
416 con privilegi di superutente (che ovviamente perderà immediatamente),
417 possibilmente con l'uso di @command{sudo}. È una buona idea limitare il
418 numero di secondi di tempo della CPU che LilyPond può usare (ad esempio con @command{ulimit
419 -t}), e, se il sistema operativo lo permette, la quantità di memoria che
425 Mostra informazioni sulla versione.
428 Aumenta la prolissità: mostra i percorsi completi di tutti i file letti, e dà
429 informazioni sui tempi.
432 Mostra la garanzia con cui viene distribuito GNU LilyPond. (Distribuito
433 con @strong{NESSUNA GARANZIA}!)
437 @node Variabili d'ambiente
438 @unnumberedsubsec Variabili d'ambiente
439 @translationof Environment variables
442 @cindex LILYPOND_DATADIR
444 @command{lilypond} riconosce le seguenti variabili d'ambiente:
446 @item LILYPOND_DATADIR
447 Specifica la directory predefinita in cui saranno cercati i messaggi della
448 localizzazione e i file di dati. Questa directory deve contenere
449 sottodirectory chiamate @file{ly/}, @file{ps/}, @file{tex/}, etc.
452 Determina la lingua per i messaggi di avviso.
454 @item LILYPOND_GC_YIELD
455 Una variabile, in forma di percentuale, che regola il modo in cui viene gestita
456 la memoria. Con valori più alti il programma usa più memoria, con valori
457 più bassi usa più tempo della CPU. Il valore predefinito è @code{70}.
462 @node LilyPond in una gabbia chroot
463 @unnumberedsubsec LilyPond in una gabbia chroot
464 @translationof LilyPond in chroot jail
466 Configurare un server perché esegua LilyPond in una gabbia chroot è un lavoro
467 complesso. La procedura è spiegata sotto. Gli esempi si riferiscono a
468 Ubuntu Linux e potrebbero richiedere l'uso di @code{sudo} in alcune situazioni.
472 @item Installa i pacchetti necessari: LilyPond, GhostScript e ImageMagick.
474 @item Crea un nuovo utente dal nome @code{lily}:
481 Questo comando creerà anche un nuovo gruppo per l'utente @code{lily}, e una
485 @item Nella cartella home dell'utente @code{lily} crea un file da usare come
489 dd if=/dev/zero of=/home/lily/loopfile bs=1k count= 200000
493 In questo esempio è stato creato un file di 200MB da usare come filesystem della
496 @item Crea un dispositivo di loop, crea e monta un filesystem, quindi crea
497 una cartella scrivibile dall'utente @code{lily}:
501 losetup /dev/loop0 /home/lily/loopfile
502 mkfs -t ext3 /dev/loop0 200000
503 mount -t ext3 /dev/loop0 /mnt/lilyloop
504 mkdir /mnt/lilyloop/lilyhome
505 chown lily /mnt/lilyloop/lilyhome
508 @item Nella configurazione dei server, JAIL sarà @code{/mnt/lilyloop}
509 e DIR sarà @code{/lilyhome}.
511 @item Crea un grande albero delle directory nella gabbia copiando i file
512 necessari, come mostrato nello script di esempio più in basso.
514 Puoi usare @code{sed} per creare i comandi di copia necessari per un certo
518 for i in "/usr/local/lilypond/usr/bin/lilypond" "/bin/sh" "/usr/bin/; \
519 do ldd $i | sed 's/.*=> \/\(.*\/\)\([^(]*\).*/mkdir -p \1 \&\& \
520 cp -L \/\1\2 \1\2/' | sed 's/\t\/\(.*\/\)\(.*\) (.*)$/mkdir -p \
521 \1 \&\& cp -L \/\1\2 \1\2/' | sed '/.*=>.*/d'; done
526 @subheading Script di esempio per Ubuntu 8.04 a 32-bit
534 loopdevice=/dev/loop0
535 jaildir=/mnt/lilyloop
536 # the prefix (without the leading slash!)
538 # the directory where lilypond is installed on the system
539 lilydir=/$lilyprefix/lilypond/
541 userhome=$home/$username
542 loopfile=$userhome/loopfile
544 dd if=/dev/zero of=$loopfile bs=1k count=200000
546 losetup $loopdevice $loopfile
547 mkfs -t ext3 $loopdevice 200000
548 mount -t ext3 $loopdevice $jaildir
549 mkdir $jaildir/lilyhome
550 chown $username $jaildir/lilyhome
553 mkdir -p bin usr/bin usr/share usr/lib usr/share/fonts $lilyprefix tmp
556 cp -r -L $lilydir $lilyprefix
557 cp -L /bin/sh /bin/rm bin
558 cp -L /usr/bin/convert /usr/bin/gs usr/bin
559 cp -L /usr/share/fonts/truetype usr/share/fonts
561 # Now the library copying magic
562 for i in "$lilydir/usr/bin/lilypond" "$lilydir/usr/bin/guile" "/bin/sh" \
563 "/bin/rm" "/usr/bin/gs" "/usr/bin/convert"; do ldd $i | sed 's/.*=> \
564 \/\(.*\/\)\([^(]*\).*/mkdir -p \1 \&\& cp -L \/\1\2 \1\2/' | sed \
565 's/\t\/\(.*\/\)\(.*\) (.*)$/mkdir -p \1 \&\& cp -L \/\1\2 \1\2/' \
566 | sed '/.*=>.*/d'; done | sh -s
568 # The shared files for ghostscript...
569 cp -L -r /usr/share/ghostscript usr/share
570 # The shared files for ImageMagick
571 cp -L -r /usr/lib/ImageMagick* usr/lib
573 ### Now, assuming that you have test.ly in /mnt/lilyloop/lilyhome,
574 ### you should be able to run:
575 ### Note that /$lilyprefix/bin/lilypond is a script, which sets the
576 ### LD_LIBRARY_PATH - this is crucial
577 /$lilyprefix/bin/lilypond -jlily,lily,/mnt/lilyloop,/lilyhome test.ly
580 @c " keep quote signs balanced for context-sensitive editors
582 @node Messaggi di errore
583 @section Messaggi di errore
584 @translationof Error messages
586 @cindex messaggi di errore
587 Quando si compila un file possono apparire vari messaggi di errore:
593 Qualcosa appare sospetto. Se stai cercando di fare qualcosa di insolito
594 allora comprenderai il messaggio e potrai ignorarlo.
595 Tuttavia di solito i messaggi di avvertimento indicano che il file di input ha
600 C'è qualcosa di assolutamente sbagliato. Il passo attualmente in elaborazione
601 (analisi, interpretazione o formattazione) verrà completato, ma il passo
602 successivo verrà saltato.
605 @cindex errore fatale
606 C'è qualcosa di assolutamente sbagliato e LilyPond non può continuare. Questo
607 accade raramente. La causa più comune è un'errata installazione dei tipi di
611 @cindex traccia, Scheme
612 @cindex traccia di chiamata
613 @cindex errore Scheme
614 Gli errori che capitano mentre si esegue del codice Scheme sono individuati
615 dall'interprete Scheme. Se si esegue con l'opzione di prolissità (@code{-V} o
616 @code{--verbose}), viene stampata una traccia della chiamata di funzione
617 responsabile dell'errore.
619 @item Errore di programmazione
620 @cindex Errore di programmazione
621 Si è verificata una qualche incongruenza interna. Questi messaggi di errore
622 servono ad aiutare programmatori e debugger. Di solito si possono
623 ignorare. Talvolta sono talmente numerosi da nascondere il resto
626 @item Sospeso (core dumped)
627 @cindex Sospeso (core dumped)
628 Segnala un serio errore di programmazione che ha mandato in crash il
629 programma. Questi errori sono considerati critici. Se ti imbatti in un
630 errore simile, invia una segnalazione di errore.
633 @cindex errori, formato del messaggio
634 Se gli avvertimenti e gli errori possono essere collegati
635 a una parte specifica del file di input, i messaggi di errore
636 hanno la seguente forma
639 @var{file}:@var{riga}:@var{colonna}: @var{messaggio}
640 @var{riga di input responsabile dell'errore}
643 Nella riga responsabile si inserisce un a capo per indicare la colonna
644 in cui è stato trovato l'errore. Ad esempio,
647 test.ly:2:19: error: not a duration: 5
652 Queste posizioni indicano la migliore ipotesi di LilyPond a proposito del
653 punto in cui l'avvertimento o l'errore sono comparsi, ma (per loro
654 stessa natura) avvertimenti ed errori capitano quando succede qualcosa
655 di imprevisto. Se non riesci a vedere un errore nella riga indicata
656 del file di input, prova a controllare una o due righe sopra la posizione
659 Maggiori informazioni sugli errori si trovano in @ref{Errori comuni}.
663 @section Errori comuni
664 @translationof Common errors
666 Le condizioni di errore descritte di seguito capitano spesso, ma la causa
667 non è ovvia né facile da trovare. Una volta che sono state individuate e
668 comprese, è facile gestirle.
672 * La musica esce dalla pagina::
673 * Appare un rigo in più::
674 * Errore apparente in ../ly/init.ly::
675 * Messaggio di errore Unbound variable %::
676 * Messaggio di errore FT_Get_Glyph_Name::
677 * Avvertimento sul fatto che le affinità del rigo devono solo diminuire::
680 @node La musica esce dalla pagina
681 @unnumberedsubsec La musica esce dalla pagina
682 @translationof Music runs off the page
684 Se la musica esce dalla pagina al di là del margine destro o appare
685 eccessivamente compressa, quasi sempre è dovuto all'inserimento di
686 una durata errata di una nota, che fa sì che l'ultima nota di una misura si
687 estenda oltre la barra di divisione. Non è sbagliato se la nota finale di
688 una misura non termina entro la barra di divisione inserita automaticamente, perché
689 semplicemente si assume che la nota continui nella misura successiva. Ma se
690 si presenta una lunga sequenza di misure simili, la musica può
691 apparire compressa o può uscire dalla pagina perché gli a capo
692 automatici possono essere inseriti soltanto alla fine di misure complete,
693 ovvero quando tutte le note finiscono prima o alla fine della misura.
695 @warning{Una durata sbagliata può inibire l'interruzione di
696 linea, portando a una linea di musica estremamente compressa o
697 a musica che esce dalla pagina.}
699 La durata errata può essere trovata facilmente se si usano i controlli di
700 battuta, si veda @ruser{Bar and bar number checks}.
702 Se si vuole davvero ottenere una serie di tali misure sovrapposte
703 bisogna inserire una barra di divisione invisibile nel punto in cui
704 si desidera l'interruzione di linea. Per i dettagli si veda @ruser{Bar lines}.
707 @node Appare un rigo in più
708 @unnumberedsubsec Appare un rigo in più
709 @translationof An extra staff appears
711 Se i contesti non sono creati esplicitamente con @code{\new} o
712 @code{\context}, saranno creati senza avviso appena si incontra
713 un comando che non può essere applicato a un contesto
714 esistente. Nelle partiture semplici la creazione automatica dei contesti
715 è utile: infatti la maggior parte degli esempi nei manuali LilyPond sfrutta
716 questa semplificazione. Talvolta, però, la creazione silenziosa di contesti
717 può causare la comparsa di nuovi righi o partiture non desiderate. Ad esempio,
718 si potrebbe pensare che il seguente codice colori di rosso tutte le teste
719 delle note nel rigo, ma in realtà produce due righi, di cui il più basso
720 conserva il colore nero predefinito per le teste delle note.
722 @lilypond[quote,verbatim,relative=2]
723 \override Staff.NoteHead #'color = #red
727 Questo accade perché non esiste un contesto @code{Staff} quando viene
728 elaborata l'istruzione di override, quindi ne viene implicitamente creato uno e
729 l'override viene applicato ad esso. Ma poi il comando @code{\new Staff} crea
730 un altro rigo separato nel quale vengono inserite le note. Il codice
731 corretto per colorare le teste di tutte le note è
733 @lilypond[quote,verbatim,relative=2]
735 \override Staff.NoteHead #'color = #red
740 Vediamo un secondo esempio. Se un comando @code{\relative} viene posto
741 dentro un comando @code{\repeat}, vengono generati due righi, il secondo
742 spostato orizzontalmente rispetto al primo, perché il comando @code{\repeat}
743 genera due blocchi @code{\relative}, ognuno dei quali crea implicitamente i
744 blocchi @code{Staff} e @code{Voice}.
746 @lilypond[quote,verbatim]
748 \relative c' { c4 d e f }
752 Per correggere il problema basta istanziare esplicitamente il contesto
755 @lilypond[quote,verbatim]
758 \relative c' { c4 d e f }
764 @node Errore apparente in ../ly/init.ly
765 @unnumberedsubsec Errore apparente in @code{../ly/init.ly}
766 @translationof Apparent error in ../ly/init.ly
768 Possono apparire diversi strani messaggi di errore relativi a errori di
769 sintassi in @file{../ly/init.ly} se il file di input non ha una forma corretta,
770 ad esempio se contiene delle parentesi o delle virgolette non chiuse
773 L'errore più comune è la mancanza di una parentesi graffa, (@code{@}}), alla fine
774 di un blocco @code{score}. In questo caso la soluzione è ovvia: controlla
775 che il blocco @code{score} sia chiuso correttamente. La struttura corretta
776 di un file di input è descritta in @rlearning{Come funzionano i file di input di LilyPond}.
777 Per evitare questi errori conviene usare un editor che evidenzi automaticamente
778 le parentesi e le graffe corrispondenti.
780 Un'altra causa frequente di errore è la mancanza di uno spazio tra l'ultima
781 sillaba di un blocco di testo (lyrics) e la parentesi graffa che chiude il
782 blocco, (@code{@}}). Senza questa separazione, la graffa viene considerata
783 come parte della sillaba. Si consiglia di assicurarsi sempre che ci sia
784 uno spazio prima e dopo @emph{ogni} parentesi graffa. Per comprendere l'importanza
785 di questo quando si usa il testo, si veda @ruser{Entering lyrics}.
787 Questo messaggio di errore può apparire anche nel caso in cui sia omessa la
788 virgoletta di chiusura, (@code{"}). In questo caso il messaggio di errore
789 @c keep "-matching straight in fancy editors
790 dovrebbe dare un numero di riga vicino alla riga sbagliata. La virgoletta
791 non chiusa sarà solitamente una o due righe sopra.
793 @node Messaggio di errore Unbound variable %
794 @unnumberedsubsec Messaggio di errore Unbound variable %
795 @translationof Error message Unbound variable %
797 Questo messaggio di errore comparirà in fondo alla console di
798 output o nel file di log insieme al messaggio @qq{GUILE signalled an error ...}
799 ogni volta che viene chiamata una routine di Scheme che contenga (erroneamente)
800 un commento @emph{LilyPond} invece di un commento @emph{Scheme}.
802 I commenti LilyPond iniziano con un segno di percentuale, (@code{%}), e non
803 devono essere usati all'interno delle routine di Scheme. I commenti Scheme
804 iniziano con un punto e virgola, (@code{;}).
806 @node Messaggio di errore FT_Get_Glyph_Name
807 @unnumberedsubsec Messaggio di errore FT_Get_Glyph_Name
808 @translationof Error message FT_Get_Glyph_Name
810 Questo messaggio di errore compare nella console di output o nel file di log file
811 se un file di input contiene un carattere non-ASCII e non è stato salvato nella
812 codifica UTF-8. Per dettagli si veda @ruser{Text encoding}.
815 @node Avvertimento sul fatto che le affinità del rigo devono solo diminuire
816 @unnumberedsubsec Avvertimento sul fatto che le affinità del rigo devono solo diminuire
817 @translationof Warning staff affinities should only decrease
819 Questo avvertimento può apparire se non ci sono dei righi nell'output,
820 ad esempio se ci sono solo un contesto @code{ChordName} e un
821 contesto @code{Lyrics}, come in un lead sheet. Si possono evitare questi
822 messaggi di avvertimento facendo in modo che uno dei contesti si comporti
823 come un rigo inserendo
826 \override VerticalAxisGroup #'staff-affinity = ##f
830 all'inizio del contesto. Per dettagli si veda @qq{Spacing of non-staff lines} in
831 @ruser{Flexible vertical spacing within systems}.