Colorear objetos

Se pueden asignar colores a los objetos individuales. Los nombres de color válidos se encuentran relacionados en la Lista de colores.

\override NoteHead.color = #red
c''4 c''
\override NoteHead.color = #(x11-color 'LimeGreen)
d''
\override Stem.color = "deepskyblue"
e''

[image of music]

Además de un conjunto limitado de colores sencillos que están disponibles como variables predefinidas (véase ‘Colores normales’ dentro de Lista de colores), se puede introducir cualquier color como una cadena de caracteres. Dicha cadena puede ser un nombre predefinido de color al estilo de CSS, o un código de color hexadecimal con el carácter # como prefijo (dentro de las comillas):

\override NoteHead.color = "lightsalmon"
\override Flag.color = "#E30074"
\override Beam.color = "#5e45ad"
\override Rest.color = "#3058"
g'8 \huge r4 a'16 f'

[image of music]

Si dicho color incluye un canal alfa para la semitransparencia mediante el uso de un código de ocho caracteres del tipo "#RRGGBBAA" o su forma abreviada "#RGBA", se usará en la salida de SVG pero no en la salida de PostScript/PDF. En el ejemplo anterior, el silencio es semitransparente solo si el código se compila con el backend de SVG, como se explica en Formatos de salida alternativos.

De manera completamente distinta, se puede acceder al rango de colores completo definido para X11 mediante el uso de la función de Scheme x11-color. Esta función admite un argumento que puede ser un símbolo, como 'DarkSeaGreen4, o una cadena de caracteres, como "DarkSeaGreen4". La primera manera es más rápida de escribir y ligeramente más eficiente; sin embargo la segunda forma permite además especificar colores de X11 como frases de varias palabras: en el ejemplo, "dark sea green 4".

Si x11-color no entiende el parámetro, el color predeterminado que se devuelve es el negro.

\new Staff \with {
  instrumentName = \markup {
    \with-color #(x11-color 'red) "Clarinet"
    }
  }
  \relative c'' {
  \override Staff.StaffSymbol.color = #(x11-color 'SlateBlue2)
  gis8 a
  \override Beam.color = #(x11-color "medium turquoise")
  gis a
  \override Accidental.color = #(x11-color 'DarkRed)
  gis a
  \override NoteHead.color = #(x11-color "LimeGreen")
  gis a
  % this is deliberate nonsense; note that the stems remain black
  \override Stem.color = #(x11-color 'Boggle)
  b2 cis
}

[image of music]

Se pueden especificar colores RGB exactos utilizando la función de Scheme rgb-color. Esta función admite tres argumentos que se utilizan respectivamente para los canales rojo, verde y azul, y un número de alfa opcional para la semitransparencia (todos los valores deben ser números entre 0 y 1). De nuevo, la transparencia solo se contempla en la salida de SVG; por ejemplo, en el fragmento siguiente la clave es semitransparente cuando se produce un documento SVG.

\new Staff \with {
    instrumentName = \markup {
      \with-color #(x11-color 'red) "Clarinet"
      }
    \override Clef.color = #(rgb-color 0 0 0 0.5)
  }
\relative c'' {
  \override Staff.StaffSymbol.color = #(x11-color 'SlateBlue2)
  \override Stem.color = #(rgb-color 0 0 0)
  gis8 a
  \override Stem.color = #(rgb-color 1 1 1)
  gis8 a
  \override Stem.color = #(rgb-color 0 0 0.5)
  gis4 a
}

[image of music]

Véase también

Referencia de la notación: Lista de colores, La instrucción \tweak.

Fragmentos de código: Editorial annotations.

Advertencias y problemas conocidos

Un color de X11 no es necesariamente de la misma tonalidad exacta que un color normal de nombre similar.

No todos los colores de X11 se distinguen entre sí en un navegador web, es decir, un navegador de web podría no mostrar ninguna diferencia entre LimeGreen (verde lima) y ForestGreen (verde bosque). Para la web se recomiendan los colores de CSS, como aparece detallado en Lista de colores.

Las notas de un acorde no se pueden colorear individualmente con \override; en su lugar utilice \tweak o su equivalente \single\override antes de la nota respectiva. Consulte La instrucción \tweak para ver más detalles.


Referencia de la notación de GNU LilyPond v2.25.21 (rama de desarrollo).