5.3.5 \set versus \override

Es wurden zwei unterschiedliche Methoden vorgestellt, mit denen Eigenschaften verändert werden können: \set und \override. Im Grunde genommen gibt es auch zwei unterschiedliche Arten von Eigenschaften.

Kontexte können Eigenschaften haben, deren Bezeichnungen üblicherweise dem Schema kleinGroß folgen. Derartige Eigenschaften sind vor allen Dingen für die Übersetzung der Musik in Notation zuständig, beispielsweise localKeySignature (um zu bestimmen, ob Versetzungszeichen ausgegeben werden müssen), measurePosition (um zu bestimmen, ob eine Taktlinie gesetzt werden muss). Kontexteigenschaften können ihren Wert verändern, während ein Musikstück ausgewertet wird; measurePosition (Taktposition) ist ein gutes Beispiel hierfür. Kontexteigenschaften werden mit dem Befehl \set verändert.

Dann gibt es einen Spezialtyp der Kontexeigenschaften: die Elementbeschreibung. Diese Eigenschaften werden mit GroßGroß benannt (beginnen also auch mit einem Großbuchstaben). Sie beinhalten die Standardeinstellungen für die besagten graphischen Objekte in Form einer Assosiationsliste. Siehe auch die Datei ‘scm/define-grobs.scm’ für ein Beispiel zu diesen Einstellungen. Elementbeschreibungen können mit dem Befehl \override verändert werden.

\override ist eigentlich eine Abkürzung:

\override Kontext.Bezeichnung #'Eigenschaft = #Wert

entspricht mehr oder weniger:

\set Kontext.Bezeichnung #'Eigenschaft = #(cons (cons 'Eigenschaft Wert) <voriger Wert von Kontext)

Der Wert von context (die „alist“) wird benutzt, um die Eigenschaften von einzelnen Grobs zu initiieren. Grobs haben auch Eigenschaften, die im Scheme-Stil benannt werden, also wort-mit-bindestrich. Die Werte der Grob-Eigenschaften ändern sich während des Formatierungsprozesses: Formatierung läuft im Prinzip darauf hinaus, Eigenschaften zu errechnen, indem Callback-Funktionen eingesetzt werden.

fontSize ist eine besondere Eigenschaft: sie entspricht \override ... #'font-size für alle möglichen Objekte. Weil es sich hier um eine globale Änderung handelt, wurde die spezielle Form (die mit \set verändert wird) erstellt.


Andere Sprachen: English, español, français.

LilyPond – Notationsreferenz