lilypond-user
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Descenders affecting line height calculation for lyrics in columns?


From: Bernhard Fisseni
Subject: Descenders affecting line height calculation for lyrics in columns?
Date: Thu, 20 Jan 2022 08:41:22 +0100

Dear list,

I've just discovered Lilypond. Playing, I stumbled on the following snippet at <https://lilypond.org/doc/v2.22/Documentation/notation/stanzas> for displaying stanzas of lyrics in columns, and tried to use it. In the song, there are some lines with descenders (p, g, q going below the baseline). I show the effect here by inserting "q" in the left column. Lilypond seems to calculate the "real" line height of the writing, not some kind of nominal text line height, so that a line with descenders is higher than a line without. Already with the four lines in the example, this leads to perceivable vertical misalignment between the left and right columns. With longer stanzas, it may look even worse.

(This is Lilypond 2.23.5, running Guile 2.2 on Fedora 35.)

Is this the expected behaviour? If so, what is the recommended way to circumvent this: Using Lilypond from, e.g., LaTeX, and do the text typesetting there? Or is there some tweak to line height calculation, or a way to add "phantom" maximum underlength letters? I've spent some time on the manuals (and the web), but couldn't find any solutions or even discussions of this behaviour. (Maybe I am using the wrong mental model and terminology.)

Secondly, the stanza commands seem to call for defining a two-argument macro like \columnstanza, but I got lost in the documentation on the different ways and the different types of objects. I would be grateful for a pointer on which kind of definition to use and how to define it. (It feels as if it should be easy, but all attempts I made lead to type errors or similar which are difficult to track in the manual. So maybe it is not easy. Then just tell me. ;-).)

Grateful for any hints,
  Bernhard



#(set-default-paper-size "a6") % just to make alignment more obvious
melody = \relative {
  c'4 c c c | d d d d
}

text = \lyricmode {
  \set stanza = "1." This is verse one.
  It has two lines.
}

\score{ <<
    \new Voice = "one" { \melody }
    \new Lyrics \lyricsto "one" \text
   >>
  \layout { }
}

\markup {
  \fill-line {
    \hspace #0.1 % moves the column off the left margin;
     % can be removed if space on the page is tight
     \column {
      \line { \bold "2."
        \column {
          "q This is verse two."
          "q It has two lines."
        }
      }
      \combine \null \vspace #0.1 % adds vertical spacing between verses
      \line { \bold "3."
        \column {
          "q This is verse three."
          "q It has two lines."
        }
      }
    }
    \hspace #0.1 % adds horizontal spacing between columns;
    \column {
      \line { \bold "4."
        \column {
          "This is verse four."
          "It has two lines."
        }
      }
      \combine \null \vspace #0.1 % adds vertical spacing between verses
      \line { \bold "5."
        \column {
          "This is verse five."
          "It has two lines."
        }
      }
    }
  \hspace #0.1 % gives some extra space on the right margin;
  % can be removed if page space is tight
  }
}



reply via email to

[Prev in Thread] Current Thread [Next in Thread]