I'm not sure where I found it, but the file that I have is slightly different. It's worked well for me.
Here's the content: > \version "2.20.0" > > #(define (conditional-kill-lyric-extender-callback . args) > (lambda (grob) > (let* ((orig (ly:grob-original grob)) > (siblings (ly:spanner-broken-into orig)) > (minimum-length > (if (null? args) > (ly:grob-property grob 'minimum-length 0) > (car args))) > (X-extent (ly:stencil-extent (ly:grob-property grob 'stencil > empty-stencil) X)) > (natural-length (- (cdr X-extent) (car X-extent)))) > (if (and (> minimum-length natural-length) > (<= (length siblings) 1)) ;; never kill a broken extender > (ly:grob-suicide! grob))))) > > \layout { > \context { > \Lyrics > \override LyricExtender.minimum-length = #1 > \override LyricExtender.after-line-breaking = > #(conditional-kill-lyric-extender-callback) > } > } > > autoextenders = > #(define-music-function (lyrics) (ly:music?) > (let* ((has-hyphen? > (lambda (event) > (let* ((art (ly:music-property event 'articulations)) > (is-hyphen? (lambda (ev) (eq? (ly:music-property ev > 'name) 'HyphenEvent)))) > (find is-hyphen? art)))) > (has-extender? > (lambda (event) > (let* ((art (ly:music-property event 'articulations)) > (is-hyphen? (lambda (ev) (eq? (ly:music-property ev > 'name) 'ExtenderEvent)))) > (find is-hyphen? art)))) > (add-extender! > (lambda (event) > (ly:music-set-property! event 'articulations > (append (ly:music-property event 'articulations) (list > (make-music 'ExtenderEvent)))) > event))) > (music-map > (lambda (event) > (if (and (eq? (ly:music-property event 'name) 'LyricEvent) > ; do not add extenders below hyphens > (not (has-hyphen? event)) > ; do not duplicate extenders > (not (has-extender? event)) > ; do not add additional extenders after _ (internally > equivalent to " ") > ; to avoid killed extenders > (not (equal? (ly:music-property event 'text) " ")) > ; do not add extenders after "" to allow ending extenders > ; within _ _ _ _ skip sequences with _ _ "" _ _ > (not (equal? (ly:music-property event 'text) "")) > ; ditto, with _ _ \markup{|null} _ _ > (not (equal? (ly:music-property event 'text) (markup > #:null))) > ) > (add-extender! event)) > event) > lyrics))) > > #(set! toplevel-music-functions > (cons (lambda (music) (autoextenders music)) > toplevel-music-functions)) > On Sat, Dec 23, 2023 at 10:39 AM Werner LEMBERG <w...@gnu.org> wrote: > > > Often, multiple voices in a score have the same lyrics, or the > > lyrics have repeating components (such as lines from a poem). Is > > there a way to automatically add extender lines to melismata in the > > lyrics? > > Examples, please, both a scan from a real-world example, and ideally > some LilyPond code that demonstrates how you want to do it. > > Have you already checked our issues database? Maybe the problem is > already filed. > > https://gitlab.com/lilypond/lilypond/-/issues > > > Werner > >