But this is all modulo a little change in the C++ source of the
Stanza_number_engraver. That engraver would be a good candidate for
getting moved to Scheme so it can be customized ...
This would lead to:
\version "2.24"
#(define (Loquacious_stanza_number_engraver context)
;; translated from Stanza_number_engraver
;; but without the mechanism that creates only newly set stanza numbers
(let
((stanza-grob #f))
(make-engraver
((process-music engraver)
(let ((stanza (ly:context-property context 'stanza)))
(when (markup? stanza)
(set! stanza-grob
(ly:engraver-make-grob engraver 'StanzaNumber '()))
(ly:grob-set-property! stanza-grob 'text stanza))))
(acknowledgers
((lyric-syllable-interface engraver lyric-grob source-engraver)
(when stanza-grob
(ly:pointer-group-interface::add-grob stanza-grob
'side-support-elements
lyric-grob))))
((stop-translation-timestep engraver)
(set! stanza-grob #f)))))
\layout {
\context {
\Lyrics
\remove Stanza_number_engraver
\consists #Loquacious_stanza_number_engraver
\override StanzaNumber.after-line-breaking =
#ly:chord-name::after-line-breaking
\override StanzaNumber.begin-of-line-visible = ##t
}
}
<<
\new Staff {
\repeat unfold 30 c'1
}
\new Lyrics \lyricmode {
\set stanza = "1."
\repeat unfold 15 { oh my }
}
\new Lyrics \lyricmode {
\set stanza = "2."
\repeat unfold 15 { I won't }
}
>>
Can anybody explain to me why collecting LyricText grobs in the
StanzaNumber's side-support-elements is necessary?
Lukas