Deutsches Lilypond Forum (Archiv)

Allgemein => Fragen zu Funktionen => Thema gestartet von: Mathias am Dienstag, 13. September 2016, 08:08

Titel: Ausrichtung von \markup bei Ganztaktpausen
Beitrag von: Mathias am Dienstag, 13. September 2016, 08:08
Hallo zusammen,

Wenn ich in einem Takt über einer Stimme eine markup-Beschreibung setze, so scheint die horizontale Ausrichtung selbiger der der dazugehörigen Note zu folgen. Für den Fall einer Ganztaktpause wird die also zentriert, was nicht gewünscht ist.

\version "2.19.40"
fuga = \markup { \huge { Fuga } }
pesanteesemprep = \markup { \italic Pesante e sempre \dynamic p }
{ R2.^\pesanteesemprep^\fuga }

Ich hab das gelöst, indem ich den Takt zweistimmig gemacht habe — dafür musste ich dann die Ganztaktpause schieben. Die Frage: Geht das auch eleganter bzw. zielgerichteter?

\version "2.19.40"
fuga = \markup { \huge { Fuga } }
pesanteesemprep = \markup { \italic Pesante e sempre \dynamic p }
{ << { s2.^\pesanteesemprep^\fuga } \\ { \once \override MultiMeasureRest.staff-position = #2 R2. } >> }

VG —Mathias.
Titel: Re: Ausrichtung von \markup bei Ganztaktpausen
Beitrag von: Pierre am Dienstag, 13. September 2016, 08:58
Hallo Mathias,

Versuch mal:
{
  \time 3/4
  <>^\pesanteesemprep^\fuga
  R2.
}
{
  \time 3/4
  R2.^\markup\left-column { \fuga \pesanteesemprep }
}

Gruß,
Pierre
Titel: Re: Ausrichtung von \markup bei Ganztaktpausen
Beitrag von: fugenkomponist am Dienstag, 13. September 2016, 10:14
Ich hab das gelöst, indem ich den Takt zweistimmig gemacht habe — dafür musste ich dann die Ganztaktpause schieben. Die Frage: Geht das auch eleganter bzw. zielgerichteter?
\version "2.19.40"
fuga = \markup { \huge { Fuga } }
pesanteesemprep = \markup { \italic Pesante e sempre \dynamic p }
{ << { s2.^\pesanteesemprep^\fuga } \\ { \once \override MultiMeasureRest.staff-position = #2 R2. } >> }
Ja, das geht eleganter: Lass die \\ in der Mehrstimmigkeit weg. Die sorgen nämlich implizit für \voiceOne und \voiceTwo in den beiden Stimmen; letzteres verschiebt dann die Ganztaktpause.
Es reicht also
{ << { s2.^\pesanteesemprep^\fuga } { R2. } >> }
bzw. eigentlich kannst du sogar alle {} innerhalb der <<>> weglassen, weil das SequentialMusic-Ausdrücke mit jeweils nur einem Element sind ;)

Ansonsten ist Pierres erste Lösung mit <> vermutlich das beste. Das zweite würde man statt mit \left-column auch kriegen per
\once \override MultiMeasureRestText.self-alignment-X = #LEFT
\once \override MultiMeasureRestText.X-offset = 0
R2.^\pesanteesemprep^\fuga
Ich persönlich bevorzuge aber die Variante, die nicht schon über dem Schlüssel beginnt.

Eine Bitte noch: denk daran, dass deine Minimalbeispiele klein, aber trotzdem noch kompilierbar sein sollen; du lässt hier den 3/4-Takt weg, wodurch R2. nen Fehler erzeugt (weil R immer am Ende noch nen Barcheck macht) und weder die Pause noch der dazugehörige Text ausgegeben werden.
Titel: Re: Ausrichtung von \markup bei Ganztaktpausen
Beitrag von: fugenkomponist am Dienstag, 13. September 2016, 10:16
Ach ja, was hältst du von \tempo?\version "2.19.40"
fuga = \markup { \huge { Fuga } }
pesanteesemprep = \markup { \italic Pesante e sempre \dynamic p }
{
  \tempo \markup \medium \column { \fuga \pesanteesemprep }
  R1
}