Deutsches Lilypond Forum (Archiv)
Allgemein => Fragen zu Funktionen => Thema gestartet von: alegria am Mittwoch, 28. Dezember 2011, 20:23
-
Hey!
Ich hab ne Vorlage wo ich relevanten Variablen oben definiere um alles zentral an einem Ort zu haben. Ich bekomme es aber dummerweise nicht hin die Masseinheit von vspace in eine Variable zu packen...
\header {
title = \markup {\vspace #4.75 \fontsize #+4 \Titel }
}
\Titel greift hier schon als Variable. Ich hätte nun gern "4.75" ausgelagert, so etwa:
mySize = #4.75
...
\header {
title = \markup {\vspace \mySize \fontsize #+4 \Titel }
}
Wie bekomme ich das hin???
(Nutze Version 2.15.22)
-
Hallo alegria,
da gibt es verschiedene Möglichkeiten. Man muß aber auf jeden Fall die Definition aus define-markup-commands.scm ins file holen und verändern.
Hier habe ich custom-vspace draus gemacht. Beachte, daß im Code selbst keine Variable hinter custom-vspace auftaucht, denn der Wert wird vorher definiert.
\version "2.15.20"
#(define mySize 4.75)
#(define-markup-command (custom-vspace layout props)()
#:category align
(let ((mySize (* mySize 3.0)))
(if (> mySize 0)
(ly:make-stencil "" (cons 0 0) (cons 0 mySize))
(ly:make-stencil "" (cons 0 0) (cons mySize mySize)))))
Titel = "Titel"
\header {
title = \markup { \custom-vspace
\fontsize #+4 \Titel }
}
{ c'1 }
HTH,
Harm
-
Puh... Das hatte ich mir leichter vorgestellt. Dachte ich mach irgendeinen syntaxfehler aber ist ja wohl doch komplexer...
Danke für die Antwort bzw. den Code!
-
Dachte ich mach irgendeinen syntaxfehler aber ist ja wohl doch komplexer...
Nö - einfach kopieren und anwenden.
Kann natürlich sein, daß es nicht genau macht was Du möchtest, aber dann kannst Du Dich ja wieder melden.