Objekte weiß malen
Alle Layout-Objekte haben eine Farb-(color)-Eigenschaft, die
normalerweise schwarz (black
) definiert ist. Wenn
sie nach weiß (white
) verändert wird, kann man das
Objekt nicht mehr vom weißen Hintergrund unterscheiden.
Wenn das Objekt jedoch andere Objekte überschneidet, wird
die Farbe der Überschneidungen von der Reihenfolge entschieden,
in welcher die Objekte gesetzt werden. Es kann also vorkommen,
dass man die Umrisse des weißen Objektes erahnen kann, wie
in diesem Beispiel:
\override Staff.Clef.color = #white a'1
Das kann man vermeiden, indem man die Satzreihenfolge der Objekte
verändert. Alle Layout-Objekte haben eine layer
-Eigenschaft,
die auf eine ganze Zahl gesetzt sein muss. Objekte mit der
niedrigsten Zahl in der layer
-Eigenschaft werden zuerst
gesetzt, dann die nächsten Objekte in ansteigender Ordnung. Objekte
mit höheren Werten überschneiden also Objekte mit niedrigeren
Werten. Die meisten Objekte bekommen den Wert 1
zugewiesen,
einige wenige Objekte, unter die auch StaffSymbol
(die
Notenlinien) gehört, jedoch den Wert 0
. Die Reihenfolge,
in der Objekte mit demselben Wert gesetzt werden, ist nicht
definiert.
Im oberen Beispiel wird der weiße Schlüssel, der einen Wert von
1
für layer
hat, nach den Notenlinien gesetzt
(die einen Wert von 0
für layer
haben) und
überschneidet sie also. Um das zu ändern, muss dem Clef
-Objekt
(Notenschlüssel) ein niedrigerer Wert, etwa -1
, gegeben
werden, sodass es früher gesetzt wird:
\override Staff.Clef.color = #white \override Staff.Clef.layer = #-1 a'1