lilypond-user
[Top][All Lists]
Advanced

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

RFC: new vertical layout engine


From: Joe Neeman
Subject: RFC: new vertical layout engine
Date: Mon, 15 Jun 2009 18:25:54 +0300

I've started working on a new system for doing vertical layout in one pass (ie. positioning and stretching the systems simultaneously). This should give better default behaviour than the current code and it should also allow easier and more useful overrides. I plan to merge the code after 2.14 is released, so it should appear in the 2.16 stable version. The code is currently in the dev/jneeman git branch. It basically works (I hope), but it is missing a lot of previously existing functionality. I'm interested in hearing from people who like to override vertical spacing stuff (even more so if they can compile from git and test things): what sort of overrides do you use and what sort of overrides would you like to have available? Also, are there any "high-level" overrides that would free you from having to position systems manually?

My current plans:
- add support for true centering of VerticalAxisGroups between other VerticalAxisGroups.
- rip out (with glee) all minimum-Y-extent stuff from the vertical spacing code. We haven't done extent-based spacing for a while and keeping this around is a painful hack
- add the following properties to VerticalAxisGroup (names subject to change): minimum-next-distance, minimum-previous-distance, next-space, previous-space
- remove alignment-extra-space and fixed-alignment-extra-space from line-break-system-details. These were mainly used by the old two-pass layout code and I doubt anyone was using them manually since the documentation doesn't describe how to.
- replace alignment-offsets with alignment-distances (ie. you have to specify the distances between adjacent staves rather than the absolute offsets). The reasoning: I can't see how to implement (alignment-distances . (#f #f #f 40)) in a sane way (it's easy to do it in a naive way: do automatic spacing and then override the position of the last staff in the system, but that would give weird results since the next system will be spaced assuming that the last staff in the current system is in the automatic position, rather than the overridden position).

Cheers,
Joe

reply via email to

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