LilyPond: manual d'utilització del programa: 1.4 Errors comuns

## 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.

### 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' }
>       >>
>     }

#### LilyPond — Utilització v2.22.2 (branca estable).