[ << Changing defaults ] | [Top][Contents][Index] | [ Notation manual tables >> ] |
[ < Making objects transparent ] | [ Up : Visibility of objects ] | [ Using break-visibility > ] |
Painting objects white
Every layout object has a color property which by default is set
to black
. If this is overridden to white
the object
will be indistinguishable from the white background. However,
if the object crosses other objects the color of the crossing
points will be determined by the order in which they are drawn,
and this may leave a ghostly image of the white object, as shown
here:
\override Staff.Clef.color = #white a'1
This may be avoided by changing the order of printing the objects.
All layout objects have a layer
property which should be set
to an integer. Objects with the lowest value of layer
are
drawn first, then objects with progressively higher values are drawn,
so objects with higher values overwrite objects with lower values.
By default most objects are assigned a layer
value of
1
, although a few objects, including StaffSymbol
and
BarLine
, are assigned a value of 0
. The order of
printing objects with the same value of layer
is indeterminate.
In the example above the white clef, with a default layer
value of 1
, is drawn after the staff lines (default
layer
value 0
), so overwriting them. To change this,
the Clef
object must be given in a lower value of
layer
, say -1
, so that it is drawn earlier:
\override Staff.Clef.color = #white \override Staff.Clef.layer = -1 a'1
Selected Snippets
Using the whiteout property
Any graphical object can be printed over a white background to mask
parts of objects that lie beneath. This can be useful to improve the
appearance of collisions in complex situations when repositioning
objects is impractical. It is necessary to explicitly set the
layer
property to control which objects are masked by the white
background.
In this example the collision of the tie with the time signature is
improved by masking out the part of the tie that crosses the time
signature, setting the whiteout
property of
TimeSignature
. To do this, TimeSignature
is moved to a
layer above Tie
, which is left in the default layer 1, and
StaffSymbol
is moved to a layer above TimeSignature
so it
is not masked.
{ \override Score.StaffSymbol.layer = 4 \override Staff.TimeSignature.layer = 3 b'2 b'~ \once \override Staff.TimeSignature.whiteout = ##t \time 3/4 b' r4 }
[ << Changing defaults ] | [Top][Contents][Index] | [ Notation manual tables >> ] |
[ < Making objects transparent ] | [ Up : Visibility of objects ] | [ Using break-visibility > ] |