|
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 :
- In what context are footnote texts handled? I want to globally adjust
baseline-skip
for my (redefined)\strut
function, but I'm not able to do it.
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
}
- If there were a context, I could apply Valentin's 'replace' trick:
\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.
signature.asc
Description: This is a digitally signed message part
[Prev in Thread] | Current Thread | [Next in Thread] |