[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: Broken slurs won't overlap end-of-measure clef change
From: |
David Nalesnik |
Subject: |
Re: Broken slurs won't overlap end-of-measure clef change |
Date: |
Tue, 18 Oct 2016 20:02:26 -0500 |
On Tue, Oct 18, 2016 at 4:56 PM, Javier Ruiz-Alma <address@hidden> 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.
David