Colin Tennyson <colintenny...@outlook.com> writes:
> In a score that I am preparing I have used the following command to change
> the color of the LyricText element:
> \override Lyrics.LyricText.color = #grey
> I noticed that the hyphens in the LyricText were still black.
> It occurred to me that maybe the color of the hyphens has to be set
> separately. I started typing '\override Lyrics.Hyphen.color' but
> Frescobaldi's syntax highlighting didn't process that, so I skipped trying
> to compilie that, and I tried:
> \override Lyrics.LyricText.LyricHyphen.color = #grey
> Frescobaldi syntax highlighting did process that, and sure enough that
> command was accepted by the Lilypond score compiler. Yay!
> (And hurray for Frescobaldi!)
> My question is out of sheer curiosity:
> How did this situation come about?
> Surely the hyphens in the lyrics are part of the LyricText.
> Why is the color of the hyphens a separate override?
Because lyric hyphens are a different type of grob? They are variable
in size and can shrink to nothing, and they are not considered part of a
syllable with regard to aligning to notes.
Since their behavior differs from that of LyricText, they are
implemented as a separate grob. An override changes the actual defaults
with which grobs are created. Those defaults are not really stored in a
database consulted independently (full disclosure: LilyPond code
actually _does_ contain this sort of database lookup independently from
actual grob creation for the grob types "System", "Beam", "SpanBarStub"
but those are very much the exception rather than the rule) but only as
defaults in the process of grob creation.
Different grob type, different override.
lilypond-user mailing list