5.3.1 Überblick über verändernde Eigenschaften

Jeder Kontext ist verantwortlich für die Erstellung bestimmter graphischer Objekte. Die Einstellungen für diese Objekte werden auch in dem Kontext gespeichert. Wenn man diese Einstellungen verändert, kann die Erscheinung der Objekte geändert werden.

Die Syntax hierzu lautet:

\override Kontext.Bezeichnung #'Eigenschaft = #Wert

Bezeichnung ist die Bezeichnung eines graphischen Objekts, wie Stem (Hals) oder NoteHead (Notenkopf), und Eigenschaft ist eine interne Variable des Formatierungssystems (eine „Grob-Eigenschaft“ oder „Layout-Eigenschaft“). Diese Eigenschaft ist ein Symbol, muss also mit einem Anführungsstrich versehen werden. Wie die Felder Bezeichnung, Eigenschaft und Wert richtig gefüllt werden, zeigt der Abscnitt Eignschaften verändern. Hier wird nur die Funktionalität des Befehls betrachtet.

Der Befehl

\override Staff.Stem #'thickness = #4.0

bewirkt, dass der Notenhals dicker gesetzt wird (Standard ist 1.3, die Dicke der Notenlinie entspricht dem Wert 1). Da der Befehl den Kontext Staff angibt, wirkt er sich nur auf das gerade aktuelle Notensystem aus. Andere Systeme behalten ihr normales Aussehen. Hier ein Beispiel mit diesem Befehl:

c4
\override Staff.Stem #'thickness = #4.0
c4
c4
c4

[image of music]

Der \override-Befehl verändert die Definitionen von Stem (Hals) innerhalb des aktuellen Staff (Notensystems). Nachdem der Befehl gelesen wurde, werden alle Hälse dicker gesetzt.

Wie auch bei dem \set-Befehl kann auch hier der Kontext ausgelassen werden, wobei dann immer implizit der Voice-Kontext angenommen wird. Mit einem zusätzlichen \once wirkt sich die Änderung nur einmal aus:

c4
\once \override Stem #'thickness = #4.0
c4
c4

[image of music]

Der \override-Befehl muss geschrieben sein, bevor das Objekt begonnen wird. Wenn also ein Strecker-Objekt wie etwa ein Bogen verändert werden soll, muss der \override-Befehl schon geschrieben werden, bevor das Objekt begonnen wird. In dem folgenden Beispiel

\override Slur #'thickness = #3.0
c8[( c
\override Beam #'thickness = #0.6
c8 c])

[image of music]

ist der Bogen dicker, der Balken aber nicht. Das liegt daran, dass der Befehl zum Ändern des Beam-Objekts erst gesetzt wurde, nachdem der Balken schon begonnen hat.

Der \revert-Befehl macht alle Änderungen rückgängig, die mit einem \override-Befehl vorgenommen worden sind, dabei werden allerdings nur Einstellungen betroffen, die sich im gleichen Kontext befinden. Der \revert-Befehl des folgenden Beispiels bewirkt also gar nichts, weil er für den falschen Kontext gefordert wird.

\override Voice.Stem #'thickness = #4.0
\revert Staff.Stem #'thickness

Einige veränderbare Optionen werden als Untereigenschaften (engl. subproperties) bezeichnet und befinden sich innerhalb von den normalen Eigenschaften. Wenn man sie verändern will, nimmt der Befehl folgende Form an:

\override Kontext.Bezeichnung #'Eigenschaft #'Untereigenschaft = #Wert

wie beispielsweise

\override Stem #'(details beamed-lengths) = #'(4 4 3)

Siehe auch

Referenz der Interna: OverrideProperty, RevertProperty, PropertySet, Backend, All layout objects.

Bekannte Probleme und Warnungen

Das Back-end ist nicht sehr streng bei der Überprüfung der Typen von Objekteigenschaften. Auf sich selbst verweisende Bezüge in Scheme-Werten der Eigenschaften können Verzögerung oder einen Absturz des Programms hervorrufen.


Andere Sprachen: English, español.

LilyPond – Notationsreferenz