On Wed, 2022-02-09 at 13:00 +0000, Valentin Petzel wrote:
> Hello Richard,
>
> I do not like to say such things, but read the docs:
> http://lilypond.org/doc/v2.23/Documentation/notation/setting-the-staff-size
>
> set-global-staff-size is by definition used to set the staffsize
> globally. For affecting one specific score you want to use layout-
> set-staff-size.
I perhaps should have given details of my experimentations with this.
It seems that the terminology here is confusing - the set-global-staff-
size is *not* equivalent to layout-set-staff-size on each score block
as the following shows:
\version "2.22.0"
%#(set-global-staff-size 44)
\score {
\layout {
#(layout-set-staff-size 44)
}
{e f g a}}
Commenting and un-commenting the set-global-staff-size shows that they
are different, and indeed I'm not quite sure what the use-case is for
the layout-set-staff-size, it distorts the placement of clefs/time
signatures.
I was hoping there might be a set of settings which could be used to do
what set-global-staff-size does on each score block...
Richard
>
> Cheers,
> Valentin
>
> 09.02.2022 13:04:16 Richard Shann <richard@rshann.plus.com>:
>
> > To create a single PDF of a full score and parts it is convenient
> > in
> > Denemo to simply concatenate the LilyPond; something like this:
> >
> > \version "2.22.0"
> > #(set-global-staff-size 20)
> > \markup "First"
> > { c d e}
> > #(set-global-staff-size 10)
> > \markup "Second"
> > {e f g}
> >
> > This runs into the problem that the full score is often needed at a
> > smaller font size and in the above code the last set-global-staff-
> > size
> > is, naturally, the one used for both \score{}s.
> >
> > I realize it may be a long shot, and a bit esoteric, but is there
> > any
> > way something like that could be achieved? (I'm not seeking
> > radically
> > different approaches here as this won't be hand-written).
> >
> > Richard Shann
In my own experimentation, there's no convenient way to get what you want in the same output file. The last call to set-global-staff-size affects the current \book. You can then re-call the command if you explicitly callout another \book after that, but that generates a separate output file for each \book block. I'm not sure why this doesn't work within the same \book.
Here's an example that shows what I mean:
#(set-global-staff-size 26)
\book {
\markup "First"
\score { \relative { c d e } }
}
#(set-global-staff-size 14)
\book {
\markup "Second"
\score { \relative { e f g } }
}
Sorry this isn't exactly what you want, but maybe this will spawn some development to make multiple calls to set-global-staff-size work within the same \book.
Best,
Abraham