[ << Standardeinstellungen verändern ] | [Anfang][Inhalt][Index][ ? ] | [ Notationsübersicht >> ] | ||
[ < Eignschaften verändern ] | [ Nach oben : Eignschaften verändern ] | [ Der set-Befehl > ] |
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
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
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])
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.
[ << Standardeinstellungen verändern ] | [Anfang][Inhalt][Index][ ? ] | [ Notationsübersicht >> ] | ||
[ < Eignschaften verändern ] | [ Nach oben : Eignschaften verändern ] | [ Der set-Befehl > ] |