GNU LilyPond Programmbenutzung: 1.4 Häufige Fehlermeldungen

## 1.4 Häufige Fehlermeldungen

Die Fehlermeldungen, die unten beschrieben werden, treten of auf, es ist jedoch nicht immer einfach, die Urache zu finden. Wenn der Fehler einmal verstanden ist, kann er einfach behoben werden.

### Noten laufen aus der Seite heraus

Noten, die rechts aus der Seite herauslaufen oder sehr komprimiert aussehen, liegen in fast allen Fällen an einer falschen Notendauer einer Note, die dazu fürt, dass die letzte Note im Takt über die Taktgrenze hinwegdauert. Es ist nicht falsch, wenn die letzte Note eines Taktes über den Takt hinausdauert, weil einfach angenommen wird, dass sie im nächsten Takt fortgesetzt wird. Aber wenn eine längere Sequenz dieser überhängenden Noten auftritt, können die Noten sehr gedrängt aussehen oder über den Seitenrand fließen, weil die automatische Zeilenumbruchsfunktion einen Umbruch nur am Ende eines vollständigen Taktes einfügen kann, also wenn alle Noten zum Ende des Taktstriches auch wirklich aufhören.

Achtung: Eine falsche Dauer kann dazu führen, dass Zeilenumbrüche nicht möglich sein und die Zeile entweder sehr gedrängt dargestllt wird oder über den Seitenrand fließt.

Die falsche Dauer kann einfach gefunden werden, wenn Taktstrichüberprüfung eingesetzt wird, siehe Takt- und Taktzahlüberprüfung.

If you actually intend to have a series of such carry-over measures you will need to insert an invisible bar line where you want the line to break. For details, see Taktstriche.

### Ein zusätzliches System erscheint

Wenn Kontext nicht explizit mit `\new` oder `\context` erstellt werden, werden sie vom Programm erstellt, sobald ein Befehl angetroffen wird, der im aktuellen Kontext nicht funktioniert. In einfachen Partituren ist diese automatische Erstellung sehr nützlich und die meisten Beispiele der LilyPond-Handbücher benutzen diese Schreiberleicherterung. Manchmal jedoch kann es vorkommen, dass durch die automatische Erstellung von Systemen aufeinmal unerwartete Notensysteme erstellt werden. Beispielsweise könnte man annehmen, dass folgendes Beispiel alle Notenköpfe in dem Notensystem rot macht, aber als Resultat hat man zwei Systeme, während die Notenköpfe immernoch schwarz im unteren System erscheinen.

>     \override Staff.NoteHead #'color = #red
>     \new Staff { a }

Das liegt daran, dass kein `Staff`-Kontext existiert, wenn der `\override`-Befehl verarbeitet wird, sodass ein System für diesen Befehl erstellt wird. Dann aber erstellt `\new Staff` noch ein zusätzliches System, wo die Noten gesetzt werden. Die richtige Schreibweise wäre:

>     \new Staff {
>       \override Staff.NoteHead #'color = #red
>       a
>     }

Ein zweites Beispiel zeigt, dass ein `\relative`-Befehl innerhalb von `\repeat` zwei Systeme erstellt, wobei der zweite etwas verschoben ist. Das liegt daran, dass `\repeat` zwei `\relative`-Umgebungen erstellt, die jede implizit einen `Staff`- und `Voice`-Kontext erstellen.

>     \repeat unfold 2 {
>       \relative c' { c4 d e f }
>     }

Indem man die `Voice`-Kontexte explizit erstellt, kann das Problem umgangen werden.

>     \new Voice {
>       \repeat unfold 2 {
>         \relative c' { c4 d e f }
>       }
>     }

### Offensichtlicher Fehler in ../ly/init.ly

Verschiedene seltsame Fehlermeldungen können über Syntax-Fehler in ‘`../ly/init.ly`’ auftauchen, wenn die Eingabedatei nicht richtig formuliert ist, wenn sie etwa nicht richtig passende Klammerpaare oder Anführungszeichen enthält.

Der üblichste Fehler ist das Fehlen einer geschweiften Klammer (`}`) am Ende der `score`-Umbgebung. Die Lösung ist hier klar: überprüfen Sie, ob die `score`-Umgebung richtig beendet wurde. Die richtige Struktur einer Eingabedatei wird beschrieben in Wie eine LilyPond-Eingabe-Datei funktioniert. Ein Editor, der die Klammerpaare automatisch anzeigt, ist sehr hilfreich, um derartige Fehler zu vermeiden.

Eine weitere übliche Fehlerquelle ist kein Leerzeichen zwischen der letzten Silbe einer `lyrics`-Umgebung und der schließenden Klammer (`}`). Ohne diese Trennung wird die Klammer als Teil der Silbe gewertet. Es bietet sich immer an, Leerzeichen vor und hinter jede Klammer zu setzen. Wie wichtig das ist, wenn Gesangstext eingesetzt wird, siehe Eingabe von Text.

Diese Fehlermeldung kann auch mit einem fehlenden schließenden Anführungszeichen (`"`) auftreten. In diesem Fall sollte die begleitende Fehlermeldung eine Zeilenzahl angeben, die dicht am Fehler liegt. Die nicht paarigen Anführungszeichen sind meistens ein oder zwei Zeilen darüber.

### Fehlermeldung Ungebundene Variable %

Diese Fehlermeldung erscheint am Ende der Kommandozeilenausgabe oder in der Log-Datei mit einer Meldung „GUILE signalled an error ...“ jedes Mal, wenn eine Scheme-Routine aufgerufen wird, die (falscherweise) ein LilyPond-Kommentar und kein Scheme-Kommentar enthält.

LilyPond-Kommentare befginnen mit dem Prozent-Zeichen (`%`) und dürfen nicht in Scheme-Routinen benutzt werden. Scheme-Kommentare beginnen mit einem Semikolon (`;`).

### Fehlermeldung FT_Get_Glyph_Name

Diese Fehlermeldung erscheint in der Kommandozeilenausgabe, wenn die Datei ein Zeichen enthält, das nicht zu ASCII gehört und die Datei nicht in UTF-8-Kodierung gespeichert wurd. Sie auch Zeichenkodierung.

### Warnung über absteigende staff affinities

Diese Warnung erscheint, wenn keine Notensysteme in der Ausgabe vorhanden sind, wenn etwa nur `ChordName`-Kontext und `Lyrics`-Kontext in einem Liedblatt vorhanden sind. Die Warnungen können vermieden werden, indem man einen der Kontexte als System erscheinen lässt, indem man ihm zu Beginn hinzufügt:

>     \override VerticalAxisGroup #'staff-affinity = ##f

Zu Einzelheiten siehe „Abstand von Nicht-Notensystemzeilen“ in Flexible vertikale Abstände in Systemgruppen.

Andere Sprachen: English, español, français, magyar, italiano, 日本語.

#### LilyPond – Usage