lilypond-user
[Top][All Lists]
Advanced

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

Re: Protecting against page breaks in markup


From: David Kastrup
Subject: Re: Protecting against page breaks in markup
Date: Fri, 30 Nov 2018 11:21:21 +0100
User-agent: Gnus/5.13 (Gnus v5.13) Emacs/27.0.50 (gnu/linux)

Thomas Morley <address@hidden> writes:

> Am Do., 29. Nov. 2018 um 23:22 Uhr schrieb David Kastrup <address@hidden>:
>>
>> Thomas Morley <address@hidden> writes:
>>
>> > Am Do., 29. Nov. 2018 um 11:04 Uhr schrieb Richard Shann
>> > <address@hidden>:
>> >
>> >>
>> >> As a further point is the term "standard markup objects" well-
>> >> documented - does it mean "top-level markups", or what I tend to refer
>> >> to as \markup{} blocks?
>> >
>> > I think what's meant is the difference between \markup and \markuplist
>>
>> It's worth pointing out that for typographic treatment a toplevel markup
>> (namely a markup invoked outside of any other expression) is
>> indistinguishable from a markup list with a single element: either are
>> processed by calling toplevel-text-handler with a markup list (in case
>> of the markup, a list containing just one markup as element).
>>
>> --
>> David Kastrup
>
> You mean what can be observed with below?
>
> \markup \italic "foo-1"
> \markup \italic "bar-1"
> \markup \italic "buzz-1"
>
> \markuplist \italic { "foo-2" "bar-2" "buzz-2" }

Those are different.  The first three all get an own call of
toplevel-markup-handler while the third is a single call.  The following
would be equivalent:

\markup \italic "foo-1"
\markup \italic "bar-1"
\markup \italic "buzz-1"

\markuplist \italic { "foo-2" }
\markuplist \italic { "bar-2" }
\markuplist \italic { "buzz-2" }

> #(newline)
> #(display-scheme-music (reverse (ly:parser-lookup 'toplevel-scores)))
>
> =>
>
> (list (list (markup #:italic "foo-1"))
>       (list (markup #:italic "bar-1"))
>       (list (markup #:italic "buzz-1"))
>       (list (markup #:italic "foo-2")
>             (markup #:italic "bar-2")
>             (markup #:italic "buzz-2")))
>
>
> If I add:
> \paper {
>   ragged-last-bottom = ##f
>   markup-markup-spacing.stretchability = 1000
> }
> and watch the printed output, the single markups are distributed over
> the page, while the elements of the markuplist are kept close
> together.
> Am undecided whether I should have expected it or should be surprised ... lol

LilyPond is a complex system.  Expecting things is likely to end up in
surprises anyway.  Much of the time I answer questions I check the code
before feigning competence.

-- 
David Kastrup



reply via email to

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