lilypond-user
[Top][All Lists]
Advanced

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

Re: vertical spacing of footnotes


From: Jean Abou Samra
Subject: Re: vertical spacing of footnotes
Date: Tue, 14 Feb 2023 11:41:18 +0100
User-agent: Evolution 3.46.3 (3.46.3-1.fc37)

Le mardi 14 février 2023 à 07:28 +0000, Werner LEMBERG a écrit :

Like all sticky grobs, footnotes are created in the same context as the grob they annotate. Overriding on Score level should work to set properties for all footnotes (unless there are overrides in lower-level contexts, which take precedence). The problem here is that footnote texts are not interpreted by the Footnote grobs themselves, which is kind of logical because they're printed at a completely different location. See page-layout-problem.cc line 251:

              SCM footnote_markup = get_property (footnote, "footnote-text");
              if (Spanner *orig = dynamic_cast<Spanner *> (footnote))
                if (orig->is_broken ())
                  footnote_markup
                    = get_property (orig->broken_intos_[0], "footnote-text");

              SCM props
                = Lily::layout_extract_page_properties (paper->self_scm ());

              auto footnote_stencil = Text_interface::interpret_markup (
                paper, props, footnote_markup);

To change those properties, you could do

\paper {
  text-font-defaults.baseline-skip = 3
}

    \override TextScript.before-line-breaking =     #(lambda (grob)        (ly:grob-set-property!          grob 'text          (markup #:replace                  `(("@" . ,#{ \markup{ \strut } #}))                  (ly:grob-property grob 'text))))  

  [I'm aware that in this case before-line-breaking is probably not    correct, but...]

  which would simplify the above footnote entries to

    \footnote #'(-0.5 . -1) "@Meter change." Staff.TimeSignature  

You can use Score, see above. Additionally, for footnotes, the text property holds the number that is printed in the music. You want footnote-text.

    \override Score.Footnote.footnote-text =
      #(grob-transformer
        'footnote-text
        (lambda (grob orig)
          #{ \markup \replace #`(("@" . ,#{ \markup \strut #})) #orig #}))

or even

    \override Score.Footnote.footnote-text =
      #(grob-transformer
        'footnote-text
        (lambda (grob orig)
          #{ \markup { \strut #orig } #}))

to add the strut to all texts.

Attachment: signature.asc
Description: This is a digitally signed message part


reply via email to

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