lilypond-devel
[Top][All Lists]
Advanced

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

Re: layout tweaks


From: Han-Wen Nienhuys
Subject: Re: layout tweaks
Date: Thu, 15 May 2003 14:03:26 +0200

[follow-up to lilypond-devel]

address@hidden writes:
> I also feel that more support for control of page breaking
> would be very helpful. Up to now, I came away with twiddling
> point sizes, inter-system distances, margin sizes etc, but
> that feels all very ad-hoc.
> It *is* very important to have control over page breaks, e.g.
> for orchestral parts. Usually, a page break should coincide
> with a rest of sufficient length to turn the page (I know string
> players have other options, but I always feel it is a bit weird
> if half of the group stops playing to turn the page).
> This is much more important than equally filled or equally
> spaced pages!

You make a valid point, and I agree with you that control over page
breaking is important for orchestral parts. Unfortunately, a
full-blown solution also implies that Lilypond must keep track of how
large pages are vertically, how much space titles take up, and the
size of preceding movements. It is completely incompatible with the
current ly2dvi approach, and would be a major undertaking to get
correct.

The most feasible idea I can think of right now, is to have a
page-break forcing mechanism, (similar to the
input/test/between-systems.ly), where TeX pagebreaks are implemented
such that they will never lead to orphaned systems.

(I remember twiddling with page breaks, and having the problem that
forcing a break after a particular system would put that system on a
new page.)

Basically, we need the following command:

"keep the following vbox on the same page as the last vbox"

or

"do not insert a page break anywhere before the following vbox"

Unfortunately, I don't know enough of TeX to implement it.

On top of that, we can also implement an extension to the
line-breaking algorithm that puts an infinite penalty for solutions
where two (manually marked) points of the music are further than (say)
6 systems apart. That would be an intuitive way to force a page to be
spaced tightly.

Both could be combined in to a single command, i.e.

     #(start-page 6)
     ..
     #(stop-page)

this would force the start/stop pair to be no further apart than 6
systems, and eject TeX commands that disallow pagebreaks between
the systems containing start-page and stop-page.

> My preference would be the possibility to specify "penalties"
> for page breaking at specific bars, like TeX's penalties for line

I doubt whether any kind of automatic mechanism is feasible: correct
page breaks are needed only in very few places (odd -> even turns),
and it is difficult to automatically determine when they're good,
since they depend on the tempo, what instrument is played, etc.


-- 
Han-Wen Nienhuys   |   address@hidden   |   http://www.cs.uu.nl/~hanwen 




reply via email to

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