5.3.3 \override and \revert

There is a special type of context property: the grob description. Grob descriptions start with a capital letter and exist as association lists only in all-grob-descriptions, but they get turned into more complex and efficient data structures supporting hierarchical manipulations when placed into contexts. See scm/define-grobs.scm for the settings of each grob.

The syntax for the \override command is

\override [context.]GrobName.property = value

For example, we can increase the thickness of a note stem by overriding the thickness property of the Stem object:

c''4 c''
\override Voice.Stem.thickness = 3.0
c''4 c''

[image of music]

If no context is specified in an \override command, the bottom context is used:

\override Staff.Stem.thickness = 3.0
<<
  \relative {
    e''4 e
    \override Stem.thickness = 0.5
    e4 e
  } \\
  \relative {
    c''4 c c c
  }
>>

[image of music]

Some tweakable options are called ‘subproperties’ and reside inside properties. To tweak those, use commands in the form

\override Stem.details.beamed-lengths = #'(4 4 3)

or to modify the ends of spanners, use a form like these

\override TextSpanner.bound-details.left.text = "left text"
\override TextSpanner.bound-details.right.text = "right text"

The effects of \override can be undone by \revert; its syntax is

\revert [context.]GrobName.property

For example,

\relative {
  c''4
  \override Voice.Stem.thickness = 3.0
  c4 c
  \revert Voice.Stem.thickness
  c4
}

[image of music]

The effects of \override and \revert apply to all grobs in the affected context from the current time forward:

<<
  \relative {
    e''4
    \override Staff.Stem.thickness = 3.0
    e4 e e
  } \\
  \relative {
    c''4 c c
    \revert Staff.Stem.thickness
    c4
  }
>>

[image of music]


LilyPond Notation Reference v2.25.21 (development-branch).