From 9fb2d96765b2da9aa83e329be2862188a7d08ccc Mon Sep 17 00:00:00 2001 From: Christoph Wagner Date: Sat, 9 Aug 2025 13:27:38 +0200 Subject: [PATCH] multiple stanza numbers for one verse --- basic_format_and_style_settings.ly | 14 ++++++++------ 1 file changed, 8 insertions(+), 6 deletions(-) diff --git a/basic_format_and_style_settings.ly b/basic_format_and_style_settings.ly index d0b04e2..58efd82 100644 --- a/basic_format_and_style_settings.ly +++ b/basic_format_and_style_settings.ly @@ -121,16 +121,18 @@ override-stanza = #} ) -stanza = -#(define-music-function (parser location stanzanumber) (number?) +#(define (stanza . stanzanumbers) #{ \once \override StanzaNumber.layer = 23 % set this to signal that there is a real stanza and no repeat signs \applyContext #(lambda (context) - (let* ((stanzanumber (ly:assoc-get 'forced-spacing (ly:context-grob-definition context 'StanzaNumber) stanzanumber)) - (stanzastyle (ly:assoc-get 'style (ly:context-grob-definition context 'StanzaNumber))) - (formattedStanzaNumber (format #f (if (eq? stanzastyle 'roman) romanStanzaFormat stanzaFormat) stanzanumber))) - (ly:context-set-property! context 'stanza formattedStanzaNumber))) + (let* ((stanzanumber-override (ly:assoc-get 'forced-spacing (ly:context-grob-definition context 'StanzaNumber) #f)) + (stanza-style (ly:assoc-get 'style (ly:context-grob-definition context 'StanzaNumber))) + (stanza-format (lambda (stanzanumber) (format #f (if (eq? stanza-style 'roman) romanStanzaFormat stanzaFormat) stanzanumber)))) + (ly:context-set-property! context 'stanza + (string-join (map stanza-format + (if stanzanumber-override (list stanzanumber-override) stanzanumbers)) + ", ")))) #} )