Deutsches Lilypond Forum (Archiv)
Allgemein => Fragen zu Funktionen => Thema gestartet von: Lilysetter am Montag, 6. April 2015, 18:36
-
Hallo zusammen,
bis jetzt schaffe ich das nur, in dem ich eine StaffGroup verwende, die durchgezogenen Linie mit
\override Staff.BarLine.allow-span-bar = ##f
ausschalte und im jeweils letzten Takt der Zeile manuell mit
\once\override Staff.BarLine.allow-span-bar = ##t
die Verbindungslinie einmalig einschalte.
Wenn sich jetzt der Zeilenumbruch ändert, muss ich das jedes mal wieder anpassen.
Das muss doch automatisch gehen. Ich tüftle jetzt schon den ganzen Tag herum, komme aber auf keinen grünen Zweig.
Brauche ich dafür zwei Engraver, der eine für die nicht-durchgezogenen und der andere für die durchgezogenen?
Vielen Dank!
-
Hallo Lilysetter,
willkommen im Forum!
Bitte gib immer Deine LilyPond-Version an, sowie ein kompilierbares kurzes Beispiel.
Zum Thema:
Du mußt die StaffGroup verwenden, denn ChoirStaff hat keinen engraver für die SpanBars.
Kann man natürlich reintun, aber dann kann man auch gleich StaffGroup verwenden, da die Unterschiede dann nur noch marginal sind.
Schau mal, ob Du mit folgendem klarkommst:
\version "2.19.17"
\layout {
\context {
\Staff
\override BarLine.allow-span-bar = ##f
\override BarLine.after-line-breaking =
#(lambda (grob)
(if (not (= 0 (ly:item-break-dir grob)))
(ly:grob-set-property! grob 'allow-span-bar #t)))
}
}
I = {
e''1 \break
\repeat unfold 2 e''1 \break
\repeat unfold 97 e''1
}
II = \repeat unfold 100 c''1
III = {
\repeat unfold 100 g''1
\bar "|."
}
\new StaffGroup <<
\new Staff \I
\new Staff \II
\new Staff \III
>>
HTH,
Harm
-
Oh Harm, Du bist ein Schatz, was täten wir nur ohne Dich!
Ich wäre da nie draufgekommen. Was ich gesucht habe, war ein "Schalter", mit dem man wie bei den Taktnummern auswählen kann, ob sie am Anfang, mitten drin oder am Ende gedruckt werden. Analog zu
\override Score.BarNumber #'break-visibility = #'#(#f #t #t)
\override Score.BarLineSpan#'break-visibility = #'#(#t #f #f)
Deine Lösung klappt prima, aber was mich am Beispiel wundert, dass in V.2.18.2 die 100 Takte so ungleichmäßig auf die Systeme verteilt werden:
1+2+4+7+10+12 + 12+13+13+13+13 = 100 warum nicht:
1+2+12+12+12 + 12+12+12+12+13 = 100 oder
1+2+10+10+11+11 + 11+11+11+11+11 = 100 oder
1+2+9+9+9+10 + 10+10+10+10+10+10 = 100 ?
-
Ohne zu wissen, ob LilyPond das tatsächlich so macht, kann ich aber folgendes vermuten:
Gleichlange Noten in aufeinanderfolgenden Takten und Zeilen sollen ähnlich viel horizontalen Platz kriegen, um die Lesbarkeit zu erleichtern (und für nen halbwegs gleichmäßigen Grauwert). Der TeX-Zeilenumbruchalgorithmus macht das z. B. mit Wortabständen ähnlich: Da wird auch darauf geachtet, dass die Leerzeichen von einer Zeile zur nächsten ähnlich breit sind.