Hi zusammen,
ich habe jetzt hier das Forum durchsucht und diverse Drittquellen, aber finde keine funktionierende Lösung dafür. Es gibt verschiedene Notationen für if/then-Strukturen, aber in meinem Beispiel scheint keine zu funktionieren.
Ich habe ein paar Custom-Variablen im Header und ein allgemeines template.ly was in allen Notensätzen ganz oben includet wird. Das soll jetzt auch ein paar Sonderfälle abfangen, im Beispiel eine Angabe einer Lizenz für das Notenblatt.
Jetzt soll die ganze Zeile nur entstehen, wenn die Variable definiert ist, da ansonsten auf Blättern, die keine solche Lizenzangabe haben, eine Leerzeile entsteht im Titelbereich.
Die Zeile mit dem "if defined" ist natürlich so nicht funktionabel, sondern soll nur der Erklärung dienen, was ich vorhabe. Wie löst man sowas?
bookTitleMarkup =
\markup {
\column {
\if defined? #'header:license {
\fill-line {
\null
\fontsize #-3 \fromproperty #'header:license
}
}
}
}
Gruß
UCas
Wenn ich dich richtig verstanden habe, macht die Funktion text-fromproperty (https://lilypondforum.de/index.php/topic,923.msg5031.html#msg5031) das, was du willst.
\version "2.24.1"
defined =
#(define-scheme-function (sym) (symbol?)
(lambda (layout props)
(markup? (chain-assoc-get sym props))))
\paper {
bookTitleMarkup =
\markup {
\column {
\if \defined #'header:license {
\fill-line {
\null
\fontsize #-3 \fromproperty #'header:license
}
}
}
}
}