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

Reply via email to