Deutsches Lilypond Forum (Archiv)
Allgemein => Fragen zu Funktionen => Thema gestartet von: chf am Sonntag, 13. Januar 2013, 13:46
-
Liebe Freunde,
wenn ich
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 { \italic molto }
in 2.14.2 anwenden will, kommt folgende Fehlermeldung:
ERROR: Unbound variable: text
In 2.16.1. funktioniert alles wunderbar.
Gibt es eine Anpassung?
(Ich habe eine größere Datei, die beim konvertieren auf 2.16.1 ziemlich durcheinanderkommt...)
Gruß
chf
-
Hallo Christa,
Du mußt einfach nur in der Definition von hairpinWithCenteredText ein $-Zeichen vor die Variable "text" schreiben. Dahingehend hat sich die Syntax mittlerweile geändert.
So muß es für Version 2.14.2 sein (Änderung fett und rot):
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))
#})
Viele Grüße
Torsten
-
Danke, Torsten - sowas hatten wir schon mal in umgekehrter Form, es war mir entfallen.
chf