Am Sonntag, 22. Juni 2008 schrieben Sie: > So, maybe I'm too naive about the LP internals to discuss this one, > but it seems like the current LP structure is close to providing what > Reinhold describes, at least within systems of music. Currently, the > keep-fixed-while-stretching property can be used to exclude a staff or > group of staves from all vertical stretching. Instead of a boolean > 'to-stretch-or-not-to-stretch' for each vertical space we could have a > floating point that describes the relative stretchiness of each > element in the system.
Actually, this is the "easy" part of the problem (although using a setting to change the spacing BEFORE a staff will be quite complicated, because the first staff of a group will have a different spacing than the other staves of the system; The first staff will use the stretching of the group' parent group, while the remaining staves will use the stretching of the group itself - so the stretching should not be done at staff-level, but rather at group level). The larger problem is that currently lilypond's idea of "equal" stretching is to insert the same amount of white space between all staves, irrespective of the staff's skyline. In professional scores, however, equal stretching of staves means that the staff lines are almost equally spaced, which means that the amount of inserted whitespace varies depending on the skyline. As long as the skylines are symmetric and almost equal, that problem is hardly noticable. But as soon as the skylines are asymmetric, lilypond will produce very uneven spacing. Attached is an example, where the first page uses no stretching at all. If you would now stretch that system manually, you would insert much more space between the second and third staff so that the staves are almost equally spaced. Lilypond, however, inserts the same amount of whitespace between all three staves (see the second page of the sample file), which makes the staves appear unevenly spaced. It's basically the same problem as vertical text layout, where you can either insert the same amount of whitespace between the outlines of the text, or use equal spacing of the baselines. The first of what lilypond currently does with staves, while the second one is what should be done (and what lilypond does correctly with text). Cheers, Reinhold -- ------------------------------------------------------------------ Reinhold Kainhofer, Vienna University of Technology, Austria email: [EMAIL PROTECTED], http://reinhold.kainhofer.com/ * Financial and Actuarial Mathematics, TU Wien, http://www.fam.tuwien.ac.at/ * K Desktop Environment, http://www.kde.org, KOrganizer maintainer * Chorvereinigung "Jung-Wien", http://www.jung-wien.at/
equal_spacing.pdf
Description: Adobe PDF document
\paper {
ragged-right = ##f
ragged-bottom = ##f
ragged-last-bottom = ##f
}
\new Score {
\new StaffGroup
<<
\new Staff \relative c, { \clef "bass" g1\f c'1 }
\new Staff \relative c' { \clef "bass" c1 c,1 }
\new Staff \relative c { \clef "bass" c1 c1 }
>>
}
\pageBreak
\new Score \with
{
\override VerticalAlignment #'max-stretch = #8
}
\new StaffGroup
<<
\new Staff \relative c, { \clef "bass" g1\f c'1 }
\new Staff \relative c' { \clef "bass" c1 c,1 }
\new Staff \relative c { \clef "bass" c1 c1 }
>>
}
_______________________________________________ lilypond-user mailing list [email protected] http://lists.gnu.org/mailman/listinfo/lilypond-user
