David Nalesnik <david.nales...@gmail.com> writes: > On Tue, Oct 18, 2016 at 4:56 PM, Javier Ruiz-Alma <jav...@ruiz-alma.com> > wrote: >> The first segment of a slur that spans to the next system is typeset short >> if a clef change is present at the end of the originating measure. The >> first segment won't overlap the space above the changed clef. >> >> Javier Ruiz-Alma >> >> \version "2.18.2" >> \score { >> << >> { c''2 c''4\( c'' \break >> c''1\) >> c''4 c'' c'' c''( \break >> c''1) >> } >> { c''1 \clef bass >> c' c' \clef treble >> c' >> } >> >> >> \layout { ragged-right = ##t indent = 0 } >> } >> > > The problem you're seeing is that the right-bound of the slur is set > to the *left* extent of the NonMusicalPaperColumn that encompasses the > end materials of the line: Ordinarily, this means that a slur will end > slightly before a barline, which looks fine. Unfortunately, the > cautionary clef belongs to the NonMusicalPaperColumn at the end of the > line, hence the distortion you're seeing. > > (The endpoint seems to be created in > Slur_score_state::get_base_attachments in lily/slur-scoring.cc.) > > What's needed is the ability to align the endpoint of a slur to > specific elements within the 'elements array of the paper column > bound. Something like the 'break-alignable-interface which allows > flexible alignments to grobs like BarNumber.
Would the behavior be correct if the clef/key change happened in the system of the slur itself? Or should we just aim for the right end of the NonMusicalPaperColumn minus an offset? -- David Kastrup _______________________________________________ bug-lilypond mailing list bug-lilypond@gnu.org https://lists.gnu.org/mailman/listinfo/bug-lilypond