1.4 Errors comuns
Les condicions d’error que es descriuen més a sota es produeixen amb freqüència, tot i que la causa no és òbvia o fàcil de trobar. Un cop se han vist i comprès, es gestionen sense problema.
[ << Execució del LilyPond ] | [Part superior][Continguts][Índex] | [ Actualització de fitxers amb convert-ly >> ] |
[ < Errors comuns ] | [ Amunt : Errors comuns ] | [ Apareix un pentagrama de més > ] |
La música se surt de la pàgina
La música que se surt de la pàgina pel marge dret o que apareix exageradament comprimida està causada gairebé sempre per haver introduït una duració incorrecta per a una nota, produint que la nota final d’un compàs s’estengui més enllà de la línia divisòria. Això no és invàlid si la nota final d’un compàs no acaba sobre la línia divisòria introduïda automàticament, atès que simplement se suposa que la nota se solapa a sobre del compàs següent. Però si es produeix una seqüència llarga d’aquestes notes solapades, la música pot aparèixer comprimida o sortir-se de la pàgina perquè els salts de línia automàtiques solament se poden inserir al final dels compassos complets, és a dir, els compassos en els quals totes les notes acaben abans o just al final del compàs.
Nota: Una duració incorrecta pot fer que s’inhibeixin els salts de línia, el que portaria a una sola línia de música molt comprimida o que se surti de la pàgina.
La duració incorrecta es pot trobar fàcilment si s’utilitzen comprovacions de compàs, vegeu Comprovació de compàs i de número de compàs.
Si realment volem tenir una sèrie d’aquests compassos amb notes solapades, hem d’inserir una línia divisòria invisible on volem el salt de línia. Per veure més detalls, consulteu Barres de compàs.
Apareix un pentagrama de més
Si no es creen els contextos explícitament amb \new
o amb
\context
, es crearan discretament tan aviat com es trobi
una instrucció que no es pot aplicar a un context existent. A
partitures senzilles, la creació automàtica dels contextos és
útil, i gairebé tots els exemples dels manuals del LilyPond
s’aprofiten d’aquesta simplificació. Però ocasionalment la
creació discreta de contextos pot fer aflorar pentagrames o
partitures nous o inesperats. Per exemple, podria esperar-se que
el codi següent fet que totes les notes dins del pentagrama
següent estiguessin acolorides de vermell, però de fet el
resultat són dos pentagrames, romanent el de sota amb les
notes amb el color negre predeterminat.
\override Staff.NoteHead.color = #red \new Staff { a' }
Això és així perquè no hi ha cap context Staff
quan es
processa la instrucció override de sobreescriptura, es crea un
implícitament i la sobreescriptura s’aplica a aquest context, però
aleshores la instrucció \new Staff
crea un pentagrama nou i
diferent, en el qual es col·loquen les notes. El codi correcte
per acolorir totes les notes de vermell és
\new Staff { \override Staff.NoteHead.color = #red a' }
Com a segon exemple, si una instrucció \relative
s’escriu
dins d’una instrucció \repeat
, el resultat són dos
pentagrames, el segon desplaçat respecte al primer, perquè la
instrucció \repeat
genera dos blocs \relative
, cada
un dels quals crea implícitament blocs Staff
i Voice
.
\repeat unfold 2 { \relative { c'4 d e f } }
El problema es resol instanciant el context Voice
explícitament:
\new Voice { \repeat unfold 2 { \relative { c'4 d e f } } }
Missatge d’error Unbound variable %
Aquest missatge d’error apareix al final dels missatges de la consola o del fitxer de registre junt a un missatge “GUILE ha senyalat un error …” cada cop que es cridi a una rutina del Scheme que (incorrectament) contingui un comentari del LilyPond enlloc d’un comentari del Scheme.
Els comentaris del LilyPond comencen amb un símbol de
percentatge, (%
), i no s’han d’utilitzar dins de les
rutines del Scheme. Els comentaris del Scheme comencen amb punt i
coma, (;
).
Missatge d’error FT_Get_Glyph_Name
Aquest missatge d’error apareix a la sortida de la consola o al fitxer log de registre si un fitxer d’entrada conté un caràcter que no és ASCII i no s’ha desat en la codificació de caràcters UTF-8. Per veure més detalls, consulteu Codificació del text.
Advertiment sobre que les afinitats del pentagrama sols han de decrèixer
Aquest advertiment pot aparèixer si no hi ha cap pentagrama a la
sortida impresa, per exemple si sols hi ha un context
ChordName
i un context Lyrics
com a un full guia
d’acords. Els missatges d’advertiment es poden evitar fent que un
dels contextos es comporti com un pentagrama, inserint
\override VerticalAxisGroup.staff-affinity = ##f
al començament. Per veure més detalls, consulteu “Espaiat de les línies que no són pautes” a Espaiat vertical flexible dins dels sistemes.
Missatge d’error Unexpected new \new
Un bloc \score
ha de contenir una única expressió
musical. Si en comptes d’això conté diverses instruccions
\new Staff
, \new StaffGroup
o contextos semblants
introduïts amb \new
sense que s’hagin tancat entre
claus, { … }
, o dobles parèntesis en
angle, << … >>
, així:
\score { % Invàlid! Genera error: error de sintaxi, \new inesperat \new Staff { … } \new Staff { … } }
aleshores es produirà un missatge d’error.
Per evitar l’error, tanqueu totes les instruccions \new
dins de les claus o dobles parèntesis d’angle.
L’ús de claus introdueix les instruccions \new
de forma seqüencial:
\score { { \new Staff { a' a' a' a' } \new Staff { g' g' g' g' } } }
però és més probable que us trobeu utilitzant angles dobles de manera que els pentagrames nous s’insereixin en paral·lel, és a dir, simultàniament:
\score { << \new Staff { a' a' a' a' } \new Staff { g' g' g' g' } >> }