Deutsches Lilypond Forum (Archiv)

Allgemein => Fragen zu Funktionen => Thema gestartet von: kilgore am Mittwoch, 24. Februar 2010, 16:24

Titel: markUp unter letzten Barline
Beitrag von: kilgore am Mittwoch, 24. Februar 2010, 16:24
Ich möchte ein Text markup unter der letzten Barline haben, sowie man am Ende manchmal schreibt (Berlin 24.2.2010).  Mein letzter Takt ist ein R1^\fermataMarkup Takt.  Alle versuche dort eine zusätzliche Text markup zu schaffen bringen es an dem falschen Ort...... verzweiflung!!!   ???
Titel: Re:markUp unter letzten Barline
Beitrag von: derHindemith am Mittwoch, 24. Februar 2010, 19:07
Siehe in den Notationsreferenz, 1.8.1, Printing marks at the end of a line or a score
Titel: Re:markUp unter letzten Barline
Beitrag von: comper am Mittwoch, 24. Februar 2010, 20:35
Hier ist einen anderen Ansatz, dem LSR 650 (http://lsr.dsi.unimi.it/LSR/Item?id=650) abgeschaut.

Zuerst eine Scheme-Definition zum Markup am BarLine anhängen: (eigentlich ein Stencil mit Parameter)

#(define ((underBarLine markup) grob)
  (ly:stencil-combine-at-edge (ly:bar-line::print grob)
    Y DOWN (grob-interpret-markup grob markup) 0 0))


Dann den Markup definieren: (die 4 regelt den senkrechten Abstand)

schlussMarkup = \markup \with-dimensions #'(0 . 0) #'(0 . 4) \right-align \tiny "(Berlin 24.2.2010)"

Und dann

  R1^\fermataMarkup
  \bar "|."
  \once \override Staff.BarLine #'stencil = #(underBarLine schlussMarkup)


Gruss
Titel: Re:markUp unter letzten Barline
Beitrag von: derHindemith am Mittwoch, 24. Februar 2010, 22:55
Wow, comper, du magst Scheme. Ich merk's. Jetzt, da ich ein bisschen mehr Zeit habe, kann ich eine voller Antwort posten:
\version "2.12.2"

musik = {
   \repeat unfold 5 { R1 }\break
   \repeat unfold 5 { R1 }
   \once \override Score.RehearsalMark #'break-visibility = #begin-of-line-invisible
   \once \override Score.RehearsalMark #'self-alignment-X = #1
   \once \override Score.RehearsalMark #'direction = #-1
   \mark \markup { Frankfurt am Main }
   }

\score {
   \musik
}

Ich verstehe Scheme überhaupt nicht. Deshalb benutze ich so wenig wie möglich.
Titel: Re:markUp unter letzten Barline
Beitrag von: trulli am Mittwoch, 24. Februar 2010, 23:05
Sagt mal,

geht denn ein einfaches \override TextScript #'extra-offset = #'( 16 . -3 ) nicht?

\once\override TextScript #'extra-offset = #'( 16 . -3 )
  c1  _\markup { (Berlin 24.2.2010) }

Gruß
Titel: Re:markUp unter letzten Barline
Beitrag von: RobUr am Dienstag, 2. März 2010, 00:38
Sagt mal,

geht denn ein einfaches \override TextScript #'extra-offset = #'( 16 . -3 ) nicht?

\once\override TextScript #'extra-offset = #'( 16 . -3 )
  c1  _\markup { (Berlin 24.2.2010) }

Gruß

Klar geht das, aber es ist eben nur ungefähr unter dem letzten Taktstrich und abhängig von der Textausdehnung. Ich hätte derHindemiths Lösung gepostet, wenn sie nicht schon gekommen wäre: RehearsalMark am Zeilenende sichtbar machen, rechtsbündig verankern und unter dem System platzieren – fertig.

Eine Alternative zur „Taktstrichersetzung“ von comper wäre ein neuer \markup-Block nach dem \score-Block:
\score { ... }
\markup \fill-line { \null "Text rechtsbündig unter dem letzten System" }
Hierbei beachten, dass die Einstellungen der (vertikalen) Zwischensystemabstände greifen!

Grüße, Robert
Titel: Re:markUp unter letzten Barline
Beitrag von: kilgore am Dienstag, 2. März 2010, 08:55
Danke für die Tolle Ideen!  Ich habe den von derHindemith benuzt und gleich in mein Spickzettel kopiert!   ;D