Keith OHara <k-ohara5...@oco.net> 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


_______________________________________________
lilypond-devel mailing list
lilypond-devel@gnu.org
https://lists.gnu.org/mailman/listinfo/lilypond-devel

Reply via email to