[ << Die Ausgabe verbessern ] | [Top][Contents][Index] | [ Vorlagen >> ] |
[ < Verändern der Größe von grobs ] | [ Up : Die Ausgabe verbessern ] | [ Kollision von Objekten > ] |
5.5 Vertikale Abstände
In aller Regel ist die vertikale Platzierung von Objekten durch LilyPond ziemlich gut. Schauen wir uns das an einem einfachen Lied mit zwei Stimmen und Klavierbegleitung etwas näher an:
An der vertikalen Platzierung ist nichts auszusetzen. Nehmen wir aber einmal an, wir arbeiten mit einem Verleger zusammen, der spezielle Wünsche bzgl. des Abstands von Systemen und Text hat: Der Text soll weit weg von allen Noten und die Klavierbegleitung soll weit weg von den Gesangslinien. Schließlich soll das Klaviersystem noch etwas enger zusammen geschoben werden. Fangen wir mit dem Liedtext an.
Gesangstext wird innerhalb eines Systems platziert. Daher finden sich die
Befehle zu seiner Platzierung in
Flexible vertikale Abstände in Systemgruppen. Dort erfahren wir,
das Gesangstext vom Typ non-staff lines
ist und wir daher die
Eigenschaft nonstaff
anpassen müssen. Den Text weiter weg vom
darüber liegenden System zu schieben verwendet die
relatedstaff
-Eigenschaft. Für den Abstand nach unten greifen
wir auf die unrelatedstaff
-Eigenschaft zurück. Gesangsstimmen
gehören zu einer VerticalAxisGroup
, also setzen wir deren
Eigenschaften. Mal sehen, wie das klappt.
<< \new ChoirStaff << \new Staff { \new Voice = "music" { b'2 c' c' c' } } \new Lyrics \with { \override VerticalAxisGroup. nonstaff-relatedstaff-spacing.padding = #5 \override VerticalAxisGroup. nonstaff-unrelatedstaff-spacing.padding = #5 } \lyricsto "music" { Here are some lyrics } \new Staff { \clef bass e'2 f e c } >> \new PianoStaff << \new Staff { g''2 c'' c'' a'' } \new Staff { \clef bass e2 f c e } >> >>
Nun ja, es klappt. Aber vielleicht war das doch des Guten zu viel.
Wenn wir padding
auf 5 setzen, dann fügt LilyPond 5 System Abstände
zum Abstand zwischen den Objekten hinzu, was im vorliegenden Fall
eindeutig zu viel ist. Wir werden 2 verwenden.
Als nächstes verschieben wir die Klavierbegleitung weiter weg von den
Gesangsstimmen. Die Gesangsstimmen sind ein ChoirStaff
, also werden
wir den Abstand zwischen diesem und dem darunter liegenden Klaviersystem
vergrößern. Das geschieht indem wir die basic-distance
des
StaffGrouper
’s staffgroup-staff-spacing
anpassen.
<< \new ChoirStaff \with { \override StaffGrouper. staffgroup-staff-spacing.basic-distance = #15 } << \new Staff { \new Voice = "music" { b'2 c' c' c' } } \new Lyrics \with { \override VerticalAxisGroup. nonstaff-relatedstaff-spacing.padding = #2 \override VerticalAxisGroup. nonstaff-unrelatedstaff-spacing.padding = #2 } \lyricsto "music" { Here are some lyrics } \new Staff { \clef bass e'2 f e c } >> \new PianoStaff << \new Staff { g''2 c'' c'' a'' } \new Staff { \clef bass e2 f c e } >> >>
Wunderbar. Jetzt kümmern wir uns noch um die letzte Anforderung, die
Klaviersysteme enger zusammen zu schieben. Auch hierfür passen wir
wieder die Eigenschaften des StaffGrouper
an, aber dieses Mal
werden wir sowohl die basic-distance
als auch das padding
reduzieren. Wie genau sehen Sie unten.
<< \new ChoirStaff \with { \override StaffGrouper. staffgroup-staff-spacing.basic-distance = #15 } << \new Staff { \new Voice = "music" { b'2 c' c' c' } } \new Lyrics \with { \override VerticalAxisGroup. nonstaff-relatedstaff-spacing.padding = #2 \override VerticalAxisGroup. nonstaff-unrelatedstaff-spacing.padding = #2 } \lyricsto "music" { Here are some lyrics } \new Staff { \clef bass e'2 f e c } >> \new PianoStaff \with { \override StaffGrouper.staff-staff-spacing = #'( (basic-distance . 0) (padding . 0)) } << \new Staff { g''2 c'' c'' a'' } \new Staff { \clef bass e2 f c e } >> >>
Damit sind die echt eng beieinander – aber das ist es, was der
Verleger wollte. Wir könnten sie bei Bedarf wieder ein wenig auseinander
schieben, indem wir padding
oder basic-distance
ändern.
Es gibt viele Arten die vertikalen Abstände zu verändern. Im Grunde
brauchen wir uns lediglich zu merken, dass der Abstand zwischen Objekten
in einer StaffGroup
(wie GrandStaff
oder PianoStaff
Gruppen) durch die Platzierungsvariablen des StaffGrouper
kontrolliert wird. Wohingegen die Abstände von nicht gruppierten
Systemen (wie Lyrics
und Staff
) von den Variablen der
VerticalAxisGroup
kontrolliert werden. Siehe
Vertikale paper-Variablen mit flexiblen Abständen und
Flexible vertikale Abstände in Systemgruppen für weitere
Details.
[ << Die Ausgabe verbessern ] | [Top][Contents][Index] | [ Vorlagen >> ] |
[ < Verändern der Größe von grobs ] | [ Up : Die Ausgabe verbessern ] | [ Kollision von Objekten > ] |