\paper { authorMarkup = #(make-on-the-fly-markup (lambda (layout props m) (let ((name (chain-assoc-get 'author:name props #f)) (trail_name (chain-assoc-get 'author:trail_name props #f)) (birth_year (chain-assoc-get 'author:birth_year props #f)) (death_year (chain-assoc-get 'author:death_year props #f)) (organization (chain-assoc-get 'author:organization props #f)) (string-present (lambda (str) (and str (not (and (string? str) (string-null? str)))))) (render_informations (lambda (infolist) (string-append (car infolist) (if (null? (cdr infolist)) "" (string-append " (" (string-join (cdr infolist) ", ") ")"))))) ) (interpret-markup layout props (if (or (string-present trail_name) (string-present name)) (render_informations (filter string-present (list trail_name name (if (and (string-present birth_year) (string-present death_year)) (ly:format "~a‒~a" birth_year death_year) (if (string-present birth_year) (ly:format "*~a" birth_year) (if (string-present death_year) (ly:format "†~a" death_year) ""))) organization ))) "" )))) (make-null-markup) ) poetMarkup = \markup { "Worte:" \fromproperty #'author } composerMarkup = \markup { "Weise:" \fromproperty #'author } poetAndComposerEqualMarkup = \markup { "Worte und Weise:" \fromproperty #'author } }