[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: page breaking (again)
From: |
Han-Wen Nienhuys |
Subject: |
Re: page breaking (again) |
Date: |
Mon, 07 Aug 2006 00:31:26 +0200 |
User-agent: |
Thunderbird 1.5.0.4 (X11/20060614) |
Joe Neeman wrote:
Here is my latest patch to add a new page-breaker. This actually adds 2
page breakers now:
Both page-breakers can be tuned with the (book-wide) paper block
variables "page-spacing-weight" (default 1.0) which specifies the
importance of good page spacing relative to line spacing and
"blank-last-page-force" (default 0) which specifies the penalty for
ending the piece on a left-hand page. ly:page-turn-breaking will also
consider leaving blank pages mid-score. The penalty for these pages can
be tuned with "blank-page-force" (default 10).
The new files are attached in a tar archive (I cc to Han-Wen just in
case the list strips it). There are 13 of them, so I thought it would be
easier.
Looks good. Please apply, after fixing the following issues.
this looks as duplicate code.
if (d == DOWN &&
(!div.size () || this_best_result.systems_per_page_.size () !=
original_page_count))
{
while (d == DOWN ||
(div.size () && this_best_result.systems_per_page_.size () ==
original_page_count));
Line_details d;
d.force_ = 0;
d.extent_ = unsmob_stencil (p->get_property ("stencil")) ->extent
(Y_AXIS);
etc.
You might want to have a Line_details::from_grob()
for (vsize k = 0; k < lines_per_page[i] && systems != SCM_EOL;
k++, systems = scm_cdr(systems))
lines = scm_cons (scm_car (systems), lines);
this should be a generic Scheme function.
while (scm_is_pair (cs))
{
SCM command = scm_car (cs);
if (command == ly_symbol2scm ("start-repeat"))
start = true;
else if (command == ly_symbol2scm ("end-repeat"))
end = true;
cs = scm_cdr (cs);
}
use for-loop.
--
Han-Wen Nienhuys - address@hidden - http://www.xs4all.nl/~hanwen
LilyPond Software Design
-- Code for Music Notation
http://www.lilypond-design.com
- Re: page breaking (again),
Han-Wen Nienhuys <=