lilypond-devel
[Top][All Lists]
Advanced

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

Re: Help with page breaking code


From: David Kastrup
Subject: Re: Help with page breaking code
Date: Wed, 22 May 2013 20:21:47 +0200
User-agent: Gnus/5.13 (Gnus v5.13) Emacs/24.3.50 (gnu/linux)

Keith OHara <address@hidden> writes:

> David Kastrup <dak <at> gnu.org> writes:
>
>> #(set! empty-stencil (ly:make-stencil '() empty-interval empty-interval))
>> \markup \fill-line { }
>
>> Basically, the first \markup produces an empty stencil with extents
>> (+inf.0 . -inf.0) and the page breaking code goes bonkers on that.
>> 
>
> \paper {annotate-spacing = ##t}
> indicates proper estimates for any scores after the \fill-line, and
> indirectly shows zero space allowed for the \fill-line, so the
> height estimations seem reasonable.
>
> The problem appears only when \fill-line is the first markup, so maybe
> a bad initialization in one of
> page-breaking.cc  page-layout-problem.cc  page-spacing.cc

Here is an even worse example:

#(define-markup-command (ugly layout props) ()
  (ly:make-stencil '() empty-interval empty-interval))

\markup \ugly
\markup *
\markup *
\markup *
\markup *

As you can see, just inserting the single \ugly markup poisons the page
breaker permanently, so that it will need one page per * afterwards.
This is for current master, not anything more special.

And while I tend to blame the new skyline spacing for everything under
the sun, it turns out that LilyPond 2.16.0 exhibits exactly the same
problem.

You might want to claim that this is a case of "don't do that then", but
I very much doubt that illegitimate carry-over will occur only for these
particular values.

-- 
David Kastrup




reply via email to

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