On Thu, May 26, 2011 at 1:27 AM, Trevor Bača
<address@hidden> wrote:
Hi,
I'm looking to vertically lay out systems in a very rigid and regular way. (This is the method I documented a while back in 4.4.2 'Explicit staff and system positioning' using the Y-offset and alignment-distances attributes of line-break-system-details.) The challenge is that this method produces different visual results than it used to now that the new vertical spacing code has been added into the system. Examples are the easiest way to show the difference.
Here's an example of explicit system positioning:
%%% EX 1: EXPLICIT SYSTEM POSITIONING W/ JUMPING STAVES %%%
\version "2.13.61"
\paper {
evenHeaderMarkup = \markup \fill-line { " " }
indent = #0
oddHeaderMarkup = \markup \fill-line { " " }
top-margin = 20\mm
}
\new Staff {
%%% PAGE 1 %%%%
\overrideProperty #"Score.NonMusicalPaperColumn"
#'line-break-system-details #'((Y-offset . 0))
c'1 \pageBreak
\overrideProperty #"Score.NonMusicalPaperColumn"
#'line-break-system-details #'((Y-offset . 0))
c''''1
}
%%% END EX 1 %%%
Rendering example 1 shows two pages of music with one system per page. The thing to notice is that staves jump around on the page and appear at two different vertical positions on the two pages. Lily's visual output in cases like this used to be different.
Yes, this seems to be something that changed unintentionally with the new spacing code. I have a patch that gets back the old behaviour, but it has the disadvantage that it introduces millions of false positives to the automatic regression checker (the signature-based one, probably not the pixel-based one).
FWIW, I would consider Carl's solution with top-system-spacing to be "recommended" for most uses, because it allows you to fix the top system on each page, but still have lilypond do everything else automatically. But if you really want to fix the position of every system and you're happy to do manual breaks and everything, then line-break-system-details 'Y-offset is still the way to go.