Zugriff auf Wert innerhalb \header{}

Begonnen von Tapio, Mittwoch, 19. März 2025, 09:12

« vorheriges - nächstes »

Tapio

Hallo zusammen,

aus dem Codeblock geht es schon hervor. Kann ich den kurz zuvor definierten Titel "title" im Layout-Block zugreifen, hier in der tagline? Meine Frage ist besteht eher aus zwei Teilen. a) wie greift man darauf generell zu und b) ist hier in diesem Fall der Wert schon gesetzt? Eine Lilypond-Variable als Zwischenstation belegen will ich bewusst icht tun.

Danke

\header { % dedication = "" piece = "" subtitle = "" subsubtitle = "" opus = "" arranger = ""
  composer = "Composer"
  title = "Der Wolf, das Lamm, auf der grünen Wiese"
  tagline = \markup { \concat { "Der Wolf, das Lamm, auf der grünen Wiese - " \Date } }
  instrument = #(cond ((= PrintVoice 0) "") ((= PrintVoice 4) "Bass-Klarinette") (else (string-append "Klarinette " (number->string PrintVoice))))
}

Lilysetter

tagline=\markup{\fromproperty #'header:title"-"#(strftime"%Y'%m%d"(localtime(current-time)))}

Tapio

Zitat von: Lilysetter am Mittwoch, 19. März 2025, 13:41tagline=\markup{\fromproperty #'header:title"-"#(strftime"%Y'%m%d"(localtime(current-time)))}

Oh danke. Ich nutze jetzt:
tagline=\markup{\fromproperty #'header:title "-" \DateTime}
..weil \DateTime bei mir vorbelegt ist. Warum muss ich hier eigentlich kein concat() innerhalb des markup-Befehls nutzen?

Malte

\markup fasst mehrere Dinge ähnlich wie \markup \concat zusammen, mit dem Unterschied, dass zwischen den einzelnen Teilen (in deinem Fall also vor und nach dem "-") noch Leerzeichen stehen.

Tapio

Ich bin jetzt doch zu Variablendefinitionen übergegangen. Wenn nämlich #'header:title Markup enthält, wird das auch wiederverwendet. Das will man aber nicht unbedingt haben.

(Ich hatte #'header:title in der Fußzeile verwendet)

Lilysetter

#5
Du kannst eine Hilfsvariable (hier: myvar und/oder mytitle) verwenden, aus der Du dann title und footer berechnest.
%15:30 25.06.2025  https://lilypondforum.de/index.php/topic,1502.0.html
\version"2.25.6" myvar="my Variable"
\header{
  composer="The Composer"
  mytitle="Der Wolf, das Lamm, auf der grünen Wiese"
  myfoot ="Footline Page 2"
  title=\markup\normal-text\tiny\fromproperty #'header:mytitle
  }
\paper{
  oddFooterMarkup=\markup{"Footline page 1"\fromproperty#'header:mytitle \fromproperty#'header:title }
  evenFooterMarkup=\markup\concat{\fromproperty#'header:myfoot "  "\italic\myvar}
  }
\repeat unfold500a'

Lilysetter

> Wenn nämlich #'header:title Markup enthält, wird das auch wiederverwendet. Das will man aber nicht unbedingt haben.
Dazu gibt es "Converting markups to strings"  siehe Lilypond-Dokumentation extending.pdf
composerName = \markup \box "Arnold Schönberg"
\markup \composerName \markup \typewriter #(markup->string composerName)