From 6e528a53284451defe0d4a8090f58c1896b1b321 Mon Sep 17 00:00:00 2001 From: Christoph Wagner Date: Fri, 10 Apr 2026 14:29:20 +0200 Subject: [PATCH] fix markup tag group trouble accross songs --- private_includes/base/all.ily | 1 + private_includes/base/markup_tag_groups_hack.ily | 13 +++++++++++++ public_includes/layout_bottom.ily | 4 +++- 3 files changed, 17 insertions(+), 1 deletion(-) create mode 100644 private_includes/base/markup_tag_groups_hack.ily diff --git a/private_includes/base/all.ily b/private_includes/base/all.ily index 40e022c..8e0f400 100644 --- a/private_includes/base/all.ily +++ b/private_includes/base/all.ily @@ -39,6 +39,7 @@ \include "title_with_category_images.ily" \include "chord_settings.ily" \include "transposition.ily" +\include "markup_tag_groups_hack.ily" \include "verses_with_chords.ily" \include "arrows_in_scores.ily" \include "swing_style.ily" diff --git a/private_includes/base/markup_tag_groups_hack.ily b/private_includes/base/markup_tag_groups_hack.ily new file mode 100644 index 0000000..7832806 --- /dev/null +++ b/private_includes/base/markup_tag_groups_hack.ily @@ -0,0 +1,13 @@ +% We have to record the tag groups for markup, so we use the right tag groups during markup interpretiton. +recordedTagGroups = #'() + +tagGroup = +#(define-void-function (tags) (symbol-list?) + (let ((err (define-tag-group tags))) + (if err (ly:parser-error err (*location*)) + (set! recordedTagGroups (cons tags recordedTagGroups))))) + +#(define-markup-command (handle-tag-groups layout props recorded-groups m) (list? markup?) + (resetTagGroups) + (every (lambda (group) (define-tag-group group)) recorded-groups) + (interpret-markup layout props m)) diff --git a/public_includes/layout_bottom.ily b/public_includes/layout_bottom.ily index 4681a3c..f0ad871 100644 --- a/public_includes/layout_bottom.ily +++ b/public_includes/layout_bottom.ily @@ -18,6 +18,7 @@ TEXT = \markuplist { \override #`(verselayout . ,verselayout) \override #`(verse-chords . ,#{ \chords { \verseChords } #}) \override #`(verse-reference-voice . ,#{ \global \firstVoice #}) + \handle-tag-groups \recordedTagGroups \TEXT } @@ -29,6 +30,7 @@ TEXT = \markuplist { \override #`(verselayout . ,verselayout) \override #`(verse-chords . ,#{ \chords { \verseChords } #}) \override #`(verse-reference-voice . ,#{ \global \firstVoice #}) + \handle-tag-groups \recordedTagGroups #text } #}) @@ -75,4 +77,4 @@ TEXT = \markuplist { } } }#}) -)) \ No newline at end of file +))