lilypond-user
[Top][All Lists]
Advanced

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

Re: Fitting as many lines as possible on a page


From: Joe Neeman
Subject: Re: Fitting as many lines as possible on a page
Date: Sun, 01 Feb 2009 22:12:59 -0800

On Sun, 2009-02-01 at 20:00 +0100, Reinhold Kainhofer wrote:
> -----BEGIN PGP SIGNED MESSAGE-----
> Hash: SHA1
> 
> On Sonntag, 1. Februar 2009 19:49:05 Joe Neeman wrote:
> > On Sat, 2009-01-31 at 12:13 +0100, Reinhold Kainhofer wrote:
> > > On Samstag, 31. Januar 2009 02:06:38 Joe Neeman wrote:
> > > > On Sat, 2009-01-31 at 00:53 +0100, Reinhold Kainhofer wrote:
> > > > > On Freitag, 30. Januar 2009 23:37:28 Tim Yang wrote:
> > > > > > It doesn't work. I set the page-count as 2 and Lilypond still uses
> > > > > > 3 pages. I think it is because somehow Lilypond thinks these lines
> > > > > > don't fit in 2 pages but in fact there is a lot of space left.
> > > > >
> > > > > Yes, currently the vertical page layouting algorithm of lilypond is
> > > > > sub- optimal. Lilypond reserves 10% of the total space to make sure
> > > > > it does not overprint staves. This means that 10% of the page will
> > > > > always be wasted... Unfortunately, there is no easy way around this
> > > > > for now, until someone starts working on the vertical staff layouting
> > > > > seriously...
> > > >
> > > > This is only the case for the stretching of systems, AFAICR. It
> > > > shouldn't affect single-staff music.
> > >
> > > Isn't stretch-and-draw-page called for all pages, even for single-staff
> > > systems?
> >
> > Right, but it only uses the 10% buffer to decide how much to stretch the
> > systems. The actual layout of the systems, once they've been stretched,
> > is done in space-systems, which uses the full printable extent of the
> > page.
> 
> Exactly. However, the 10% buffer is used when calculating how many systems to 
> put on a page, so even if e.g. 10 systems would fit on a page, only 9 are 
> placed there... Or am I misunderstanding the code?

Either you are or I am misremembering it. The stretch-and-draw-page
function is called after the page breaks have been decided (in
Optimal_page_breaking::solve, by default) to do the stretching and to
actually position the systems on the page. Within the page-breaking
calculation, there is no 10% buffer.

Joe






reply via email to

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