lilypond-user
[Top][All Lists]
Advanced

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

Re: feature request: semi-automatic vertical spacement


From: Trevor Bača
Subject: Re: feature request: semi-automatic vertical spacement
Date: Wed, 11 Jan 2006 11:20:03 -0600

On 1/10/06, Han-Wen Nienhuys <address@hidden> wrote:
> Nicolas Sceaux wrote:
> > Han-Wen,
> >
> > It turns out that manually setting vertical spacement tweak is
> > way too fragile. They are easily broken when changing LilyPond version
> > for instance. Or if one set manually all tweaks, and then is told:
> > "could you make margins a bit larger, or use another font size", then
> > the whole work has to be done again. and again.
> >
> > When you made the vertical spacement tweaks possible, you added that it
> > could be possible as an extra feature to output a tweak file that could
> > be included later, for a second lilypond run.
> >
> > Please tell me how much the following would cost, if possible:
>
>
> Hi,
>
> here is an overview of what needs to be done for this:
>
>
> * Refactoring layout-page-layout.scm so there is a page structure,
>    where we can can easily access, information such free space on a
>    page.
>
> * Adding a routine to walk each page, note the amount of free space,
>    and divide that it over the system. The dividing should be done by a
>    user-definable function.
>
>    The pagebreak/linebreak/stretching is put into an alist, and stored
>    with the system in a table
>
> * At the end of the loop, the contents of the table are dumped to a
>    .ly file. The \objectid syntax can be used to mark each score with a
>    tag,
>
>    \book{ \objectid "foo"
>      \score {
>        \objectid "bar"
>        ..
>      }
>    }
>
>
>    so the tweaks are dumped to bookfoo-scorebar-pagelayout.ly
>
> I will add the above for 195 EUR
>
> * For reading tweaks, just before processing each score, the music is
>    subsitituted by
>
>      << [parse_file("bookfoo-scorebar-pagelayout.ly") if it exists]
>         original_music
>         >>
>
> I will add this for 65 EUR.
>
>
> Caveats
>
>   - there will be no tweaking for titling blocks, as they don't support
>     any kind of \override.
>
>   - the tweaks.ly file will be as barebones as possible.

Hi Han-Wen & Nicolas,

With regards to ...

>    The pagebreak/linebreak/stretching is put into an alist, and stored
>    with the system in a table

... will it also be possible to set the *absolute* page position of
each staff (and therefore each system) on a page-by-page basis (by
means of some reference point, possibly the bottom staffline of each
staff)? Something like:

page 1:

  system 3:
     staff 2, bottom staffline: 29.92 cm from page-bottom
     staff 1, bottom staffline: 26.24 cm from page-bottom

  system 2:
     staff 3, bottom staffline: 23.92 cm from page-bottom
     staff 2, bottom staffline: 20.81 cm from page-bottom
     staff 1, bottom staffline: 16.00 cm from page-bottom

  system 1:
     staff 3, bottom staffline: 11.62 cm from page-bottom
     staff 2, bottom staffline: 7.92 cm from page-bottom
     staff 1, bottom staffline: 3.44 cm from page-bottom

< template page layout for next page here, etc >

Perhaps absolute positioning might not be the right way to go, but it
would certainly help me vertically fix staves exactly where I want
them on the page. If absolute positioning doesn't fit with the model,
then that's certainly ok; but if we can think of a good, lily-esque
way of adding absolute positioning during the proposed refactoring,
then I'd certainly be interested in helping fund the work.

(Or maybe this is already possible some other way and I just haven't
researched hard enough; if so, please ignore the request.)


--
Trevor Bača
address@hidden

reply via email to

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