[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: Figured bass and rehearsal marks
From: |
Neil Puttock |
Subject: |
Re: Figured bass and rehearsal marks |
Date: |
Sun, 1 Jan 2012 16:40:41 +0000 |
On 1 January 2012 16:08, Xavier Scheuer <address@hidden> wrote:
> On 1 January 2012 16:19, Nicolas Sceaux <address@hidden> wrote:
>> Hi,
>>
>> LilyPond from today's git.
>>
>> ReahearsalMarks, with DOWN direction, are placed between the lower staff
>> and its figured bass, whereas one would expect the mark to appear below
>> the figured bass.
>>
>> Example:
>>
>> […]
>>
>> A possible workaround:
>>
>> (Is there a better way?)
>
> Not better, but another workaround: you could add "Mark_engraver" to
> the FiguredBass context (with RehearsalMark #'direction = #DOWN).
>
> The right solution would be to extend "Staff_collecting_engraver" so
> that it handles "non-staff" as well (lyrics, chords, figured bass and
> Dynamics context).
It's not the Staff_collecting_engraver that's the problem here. The
after-line-breaking callback for RehearsalMark
(ly:side-position-interface::move-to-extremal-staff) ignores axis
groups which have no horizontal extent (such as the VerticalAxisGroup
for the FiguredBass context).
I'm not sure whether adding a non-empty extent will cause problems
elsewhere, but the following seems to work:
\version "2.15.24"
\score {
<<
\new Voice {
\clef "bass" d,1 g
\once \override Score . RehearsalMark #'break-visibility =
#begin-of-line-invisible
\once \override Score . RehearsalMark #'direction = #DOWN
\once \override Score . RehearsalMark #'self-alignment-X = #RIGHT
\mark\markup { On reprend le Prelude. }
}
\figures { <4>2 <_+> }
>>
\layout {
\context {
\FiguredBass
\override BassFigureAlignment #'X-extent = #'(0 . 0)
}
}
}
Then there's also the crude hack of nobbling the after-line-breaking callback,
\override Score.RehearsalMark #'after-line-breaking = ##t
though this might lead to collisions.
Cheers,
Neil