Hi Abraham,

On 07.07.23 16:36, Abraham Lee wrote:
All,

This came up on the FB group and I determined that the problem is the presence of the \acciaccatura. In the following passage, the LyricExtender somehow misses the signal to end before the grace note appears, forming a continuous line from "bad" to "ex" instead of stopping near the "c2.". Is there any workaround that can fix this while keeping the grace note?

I think desired behaviour should be that the engraver terminates the extender before the grace note, however it’s understandable that it doesn’t, since grace notes are traditionally ignored for lyrics typesetting. There is a context property to change that, though, and then you can tweak (with some acrobatics) the alignment of the following syllable, or maybe insert a PhrasingSlur/quit considering slurs for melismata instead.

%%%%%%%%%%%%%%%%%
\version "2.25.5"

\layout {
  \context {
    \Lyrics
    includeGraceNotes = ##t
  }
}

selfAl = #(define-music-function (n) (number?)
  #{
    \once\override LyricText.self-alignment-X = $n
  #})
selfAlForce =
#(define-music-function (n) (number?)
   (let ((aligner (lambda (grob) (ly:grob-set-property! grob 'self-alignment-X n))))
  #{
    \once\override LyricText.before-line-breaking = $aligner
  #}))

\new Voice \relative c' {
  \time 3/4
  g'4 a8 b c4 ~ |
  c2. |
  \acciaccatura g8 d'4 e4 c4 |
}
\addlyrics {
  This is a bad __ \selfAlForce #-3.3 ex -- ten -- der.
}
%%%%%%%%%%%%%%%%%%%%%

Note that \version "2.25" now generates an error message.

Best, Simon

Reply via email to