36.7.3 Pintar los objetos de blanco

Todo objeto de presentación tiene una propiedad de color que de forma predeterminada está establecida a black (negro). Si se sobreescribe a white (blanco) el objeto será indistinguible del fondo blanco. Sin embargo, si el objeto cruza a otros objetos, el color de los puntos de cruce queda determinado por el orden en que se dibujan estos objetos, lo que puede dejar una imagen fantasma del objeto blanco, como puede verse aquí:

\override Staff.Clef.color = #white
a'1
[image of music]

Se puede evitar esto cambiando el orden de impresión de los objetos. Todos los objetos de presentación tienen una propiedad layer (capa) que se debe establecer a un valor entero. Los objetos con el valor de layer más bajo se dibujan primero, después se dibujan los objetos con valores progresivamente mayores, y así los objetos con valores más altos se dibujan encima de los que tienen valores más bajos. De forma predeterminada, casi todos los objetos tienen asignado un valor layer de 1, aunque algunos objetos, entre ellos el pentagrama y las líneas divisorias, StaffSymbol y BarLine, tienen asignado un calor de 0. El orden de impresión de los objetos con el mismo valor de layer es indeterminado.

En el ejemplo de arriba, la clave blanca, con un valor layer predeterminado de 1, se dibuja después de las líneas del pentagrama (valor layer predeterminado de 0), sobreimpresionándolas. Para cambiarlo, se debe dar al objeto Clef un valor de layer más bajo, digamos -1, para que se dibuje antes:

\override Staff.Clef.color = #white
\override Staff.Clef.layer = -1
a'1
[image of music]

Fragmentos de código seleccionados

Uso de la propiedad whiteout

Se puede imprimir cualquier objeto gráfico sobre un fondo blanco para enmascarar parte de los objetos que están por debajo. Esto puede ser útil para mejorar el aspecto de las colisiones en situaciones complejas cuando no es práctico reposicionar los objetos. Es necesario establecer explícitamente la propiedad de capa (layer) para controlar qué objetos resultan enmascarados por el fondo blanco.

En este ejemplo, la colisión de la ligadura de unión con la indicación de compás resulta mejorada enmascarando la parte de la ligadura que cruza a la indicación de compás estableciendo la propiedad whiteout de TimeSignature. Para hacer esto, se mueve TimeSignature a una capa por encima de Tie, que se deja en la capa predeterminada 1, y StaffSymbol se mueve a una capa por encima de TimeSignature de manera que no resulte enmascarada.

{
  \override Score.StaffSymbol.layer = 4
  \override Staff.TimeSignature.layer = 3
  b'2 b'~
  \once \override Staff.TimeSignature.whiteout = ##t
  \time 3/4
  b' r4
}
[image of music]

Referencia de la notación de GNU LilyPond v2.25.30 (development-branch).