Liebe Freunde,
nach dem Zeilenumbruch steht "molto" erneut unter der Gabel.
Wie kann ich das verhindern? Mit "left-broken.text" habe ich probiert, aber wie muss ich das Element ansprechen?
Schöne Sonntagsgrüße
Christa
Minimalbeispiel bitte...
\version "2.20.0"
hairpinWithCenteredText =
#(define-music-function (parser location text) (markup?)
#{
\override Voice.Hairpin #'stencil = #(lambda (grob)
(ly:stencil-aligned-to
(ly:stencil-combine-at-edge
(ly:stencil-aligned-to (ly:hairpin::print grob) X CENTER)
Y DOWN
(ly:stencil-aligned-to (grob-interpret-markup grob text) X CENTER))
X LEFT))
#})
hairpinMolto = \hairpinWithCenteredText \markup {\override #'(font-name . "vollkorn medium italic")
{ \fontsize #1.5 \italic "molto"}}
\relative c' {
%\override ?? [color=red]Hairpin.TextSpanner[/color] ?? .bound-details.left-broken.text = ##f
\once \hairpinMolto
b'4\< a4 g fis
\break
e d\! g->~g
}
Pardon...
\version "2.20.0"
hairpinWithCenteredText =
#(define-music-function (parser location visibility text)
((vector? #(#t #t #t)) markup?)
"The visibility-vector is a vector of 3 booleans,
#(end-of-line unbroken begin-of-line)"
#{
\once \override Voice.Hairpin.stencil =
#(lambda (grob)
(let* ((orig (ly:grob-original grob))
(siblings (if (ly:spanner? grob)
(ly:spanner-broken-into orig) '()))
(text-stencil
(if (or (and (pair? siblings)
(equal? grob (car siblings))
(vector-ref visibility 2))
(and (pair? siblings)
(equal? grob (last siblings))
(vector-ref visibility 0))
(and (pair? siblings)
(not (equal? grob (last siblings)))
(not (equal? grob (car siblings)))
(vector-ref visibility 1))
(not (pair? siblings)))
(ly:stencil-aligned-to
(grob-interpret-markup grob text)
X CENTER)
empty-stencil))
(stencil (ly:hairpin::print grob))
(par-y (ly:grob-parent grob Y))
(dir (ly:grob-property par-y 'direction)))
(ly:stencil-combine-at-edge
stencil
Y dir
(ly:stencil-translate-axis
text-stencil
(interval-center (ly:stencil-extent stencil X))
X))))
#})
txt =
\markup
\override #'(font-name . "vollkorn medium italic")
\fontsize #1.5
\italic
"molto"
alwaysHairpinMolto = \hairpinWithCenteredText \txt
endHairpinMolto = \hairpinWithCenteredText ##(#t #f #f) \txt
beginHairpinMolto = \hairpinWithCenteredText ##(#f #f #t) \txt
middleHairpinMolto = \hairpinWithCenteredText ##(#f #t #f) \txt
\relative c' { \alwaysHairpinMolto b1\ffff\< 1 2 2\! }
\relative c' { \alwaysHairpinMolto b1\ffff\< \break 1 \break 2 2\! }
\relative c' { \endHairpinMolto b1\ff\< \break 1 \break 2 2\! }
\relative c' { \beginHairpinMolto b1\p\< \break 1 \break 2 2\! }
\relative c' { \middleHairpinMolto b1\ppp\< \break 1 \break 2 2\! }
HTH,
Harm
DANKE!