On May 30, 2011, at 12:20 AM, k-ohara5...@oco.net wrote: > This fails the "sniff test" because it removes some careful-looking code > no explanation as to how the job of the old code is being done. > > What happens if the line on the next page is does not, in fact, have the > same vertical reference point? > > \relative c''' { \override Staff . Glissando #'breakable = ##t > { s3 a2 \glissando \break s1 \break s1 \break s1 \pageBreak \break s2 > c,2\trill\fermata^\ff } > } > > I suppose a misaligned glissando is better than no glissando, but the > old code made my the voice-change lines point to the right places: > \paper {ragged-right = ##t } > \new PianoStaff << > \new Staff = "one" { > \showStaffSwitch > c'1 \break > \change Staff = "two" > b2 a > } > \new Staff = "two" { > \clef bass > g'1^\trill^\f s1 > } >
The problem doesn't come from the page break but from alignment with common Ys. Line 242ish of line-spanner.cc is: do span_points[d][Y_AXIS] += common_y[d]->relative_coordinate (my_common_y, Y_AXIS); while (flip (&d) != LEFT); The value added on will be different depending on what's on the staves. Try: \relative c''' { \override Staff . Glissando #'breakable = ##t s2 a2 \glissando \break s1 \break s1 \break s1 \break s2 c,2 } versus \relative c''' { \override Staff . Glissando #'breakable = ##t s2 a2 \glissando \break s1 \break s1 \break s1 \break s2 c,2 \trill\fermata^\ff } I'm flying to Ireland today & will attempt to crunch this during the flight. Cheers, MS
_______________________________________________ lilypond-devel mailing list lilypond-devel@gnu.org https://lists.gnu.org/mailman/listinfo/lilypond-devel