mike <at> mikesolomon.org <mike <at> mikesolomon.org> writes:
> On 5 nov. 2012, at 11:15, Werner LEMBERG <wl <at> gnu.org> wrote:
> >
> > So the answer is yes: The height (resp. the depth) is larger for
> > outside-staff glyphs.
> >
>
> So we officially have a circular dependency: in order to know the height
> (for collision resolution) we need to know the extent, but in order to
> know the extent (because of the glyph) we need to know the height.
Just to be clear, rest-collision.cc breaks the circular dependency by setting
positioning-done := true, so the glyphs used to figure how far to move rests
are those for their natural staff-positions. For example, in
\new Staff <<
\new Voice {\voiceOne r2 }
\new Voice {\voiceThree r4 }
\new Voice {\voiceTwo r4 } >>
the half-rest in the upper voice is moved so that its glyph /without/ the
ledger line clears the quarter-rest, with the motion rounded up to the next
staff-position. (Potentially, the lower portion of the ledger of the
half-rest could overlap the quarter-rest, if someone adjusts staff-space to
a borderline case.)
If the rest being moved has a ledger at its natural staff-position
\with { \override StaffSymbol #'line-count = 3 }
then the glyph with the ledger is used -- which is a tiny bit inconsistent.
Mike's suggestion to omit ledgers in Rest::generic_extent_callback() would
simplify things and make them more consistent.
_______________________________________________
lilypond-devel mailing list
[email protected]
https://lists.gnu.org/mailman/listinfo/lilypond-devel