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.


bug-lilypond mailing list

Reply via email to