5.3.3 La instrucción \override
Existe un tipo especial de propiedad de contexto: la descripción de
los grobs. Las decscripciones de los grobs reciben un nombre en
MayúsculasDeCamello
(empezando en mayúscula). Contienen los
‘ajustes predeterminados’ para un tipo particular de grob, en forma
de lista asociativa. Consulte ‘scm/define-grobs.scm’ para
ver los ajustes de cada descripción de grob. Las descripciones de
grob se modifican con \override
.
\override
es en realidad una forma abreviada;
\override contexto.NombreDelGrob #'propiedad = #valor
equivale más o menos a
\set contexto.NombreDelGrob = #(cons (cons 'propiedad valor) <valor anterior de contexto.NombreDelGrob>)
El valor de contexto
.NombreDelGrob
(la lista-A) se
utiliza para inicializar las propiedades de los grobs individuales.
Los grobs tienen propiedades, denominadas en el estilo de Scheme, con
palabras-con-guiones
. Los valores de las propiedades de grob
cambian durante el proceso de formateo: éste se realiza básicamente
calculando las propiedades utilizando funciones de ‘callback’
(pasadas como parámetro).
Por ejemplo, podemos aumentar el grosor de la plica de una figura
sobreescribiendo la propiedad thickness
(grosor) del objeto
Stem
(plica):
c4 c \override Voice.Stem #'thickness = #3.0 c4 c
Si no se ha especificado ningún contexto en la instrucción
\override
, se utiliza el contexto del nivel inferior:
{ \override Staff.Stem #'thickness = #3.0 << { e4 e \override Stem #'thickness = #0.5 e4 e } \\ { c4 c c c } >> }
El efecto de una instrucción de sobreescritura \override
se
puede deshacer con \revert
:
c4 \override Voice.Stem #'thickness = #3.0 c4 c \revert Voice.Stem #'thickness c4
Los efectos de \override
y \revert
se aplican a todos
los grobs del contexto afectado partiendo del momento actual y hacia
adelante:
{ << { e4 \override Staff.Stem #'thickness = #3.0 e4 e e } \\ { c4 c c \revert Staff.Stem #'thickness c4 } >> }
Se puede usar \once
con \override
para afectar solamente
al instante de tiempo actual:
{ << { \override Stem #'thickness = #3.0 e4 e e e } \\ { c4 \once \override Stem #'thickness = #3.0 c4 c c } >> }
Véase también
Referencia de funcionamiento interno: Backend