bug-lilypond
[Top][All Lists]
Advanced

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

enhancement request, page-breakers account for requested system spacing


From: Keith E OHara
Subject: enhancement request, page-breakers account for requested system spacing
Date: Thu, 28 Oct 2010 13:22:01 -0700
User-agent: Opera Mail/10.63 (Win32)

Dear but list,

Current behavior (2.12 and 2.13) is to populate pages with as many systems as 
will fit with tight spacing, meaning that only the last page has enough space 
to honor the requested system-system-spacing #'space.

Lilypond does use #'padding in page-break decisions, but does not change 
decisions based on #'space (respectively, between-system-padding and 
between-system-space for version 2.12).

Desired behavior is to populate pages with systems such that #'space can be 
approximately honored.  Desired behavior can be approximated in 2.13.37 by 
copying the desired system-system-spacing #'space into 
page-breaking-system-system-spacing #'minimum-distance

% Enhancement request: use system-system-spacing 'space
%  in vertical space estimates for page breaking
\paper {
   %% Next line for version 2.12
%  between-system-space = 40\mm
   %% Next lines for version 2.13.37
  system-system-spacing = #'(
    (space . 24) (minimum-distance . 8) (padding . 1)
  )
%  page-breaking-system-system-spacing = #'(
%    (space . 24) (minimum-distance . 24) (padding . 1)
%  )
  %% All page breaking algorithms behave similarly in this regard
  #(define page-breaking ly:minimal-breaking)
%  #(define page-breaking ly:optimal-breaking)
%  #(define page-breaking ly:page-turn-breaking)
}
\score {
  \repeat unfold 22 {\repeat unfold 8 { c''2 } \break }
}


I see a window of opportunity here, because system-system-spacing has a *new* 
'minimum-distance key, which *does* affect behavior of the page-breaker.  Of 
they keys in system-system-spacing that would make sense in page-break 
decisions, only the 'space key is ignored.

-Keith

P.S. a paragraph from the Notation Reference

page-breaking-system-system-spacing
Tricks the page breaker into thinking that system-system-spacing
is set to something different than it really is. For example, if
page-breaking-system-system-spacing #'padding is set to something
substantially larger than system-system-spacing #'padding, then the
page-breaker will put fewer systems on each page. Default: unset.




------- Forwarded message -------
From: "Keith E OHara" <address@hidden>
To: "address@hidden" <address@hidden>
Cc: "Nick Payne" <address@hidden>
Subject: Re: alpha test, spacing ajusments
Date: Thu, 28 Oct 2010 12:27:25 -0700

On Thu, 28 Oct 2010 09:01:26 -0700, Nick wrote:

Actually, the vertical layout problem I reported a few weeks ago
(http://code.google.com/p/lilypond/issues/detail?id=1252) still exists
with 2.13.37.

The information in the bug tracker indicates that, when LilyPond plans how many 
systems to put on each page, she sometimes misunderestimates the space needed 
by rehearsal marks, and other such things that are logically outside the Staff 
context.  So we would expect sometimes the spacing algorithm will sometimes be 
asked to fit more on a page than is possible, especially in single-staff parts 
with volta repeats and marks.

If we restrict our efforts to cases where .37 simply does a bad job arranging 
staves that *could* fit nicely on the page, such efforts should not be wasted.


Now, a user might be pro-active and think,
"Let me just tell LilyPond that I don't need her to try to pack so many staves 
on each page in this particular score:
  system-system-spacing #'space = 20 % staff spaces  (or between-system-space = 
25\mm in stable 2.12) "

Alas! LilyPond does not change her page-break decisions based on our requested 
space (with any of the page-breaking algorithms) (though she does layout pages 
differently in response to between-system-padding).


Nick,
  Since it seems you actually let LilyPond choose page breaks for you, do you 
have any ideas for how to set defaults so that issue 1252 appears as rarely as 
a sunny day in Glasgow ?   (I gave up on page-breaking-system-system-spacing 
because it seems to affect the page breaker in the same ineffective way as 
system-system-spacing.)

  No lack of confidence in the developers, of course, but it could happen that the only 
true repair for issue 1252 is "LilyPond will just have to do a detailed trial layout 
in the planning phase, no more guessing, taking about twice as long to set scores."
-
Keith




reply via email to

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