Autor Thema: Variablen im Header  (Gelesen 1965 mal)

alegria

  • Member
Variablen im Header
« 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)

harm6

  • Member
Re: Variablen im Header
« Antwort #1 am: Mittwoch, 28. Dezember 2011, 23:27 »
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

alegria

  • Member
Re: Variablen im Header
« Antwort #2 am: Mittwoch, 28. Dezember 2011, 23:42 »
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!

harm6

  • Member
Re: Variablen im Header
« Antwort #3 am: Donnerstag, 29. Dezember 2011, 00:16 »
Zitat
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.