[Top][All Lists]
[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
- enhancement request, page-breakers account for requested system spacing,
Keith E OHara <=