User:Lilipond/Lilypond/Vertical Spacing

From Wikimedia Commons, the free media repository
Jump to navigation Jump to search

Es gibt Notensysteme (wie Staff, RhythmicStaff, MensuralStaff... ), gruppierte Notensysteme (wie StaffGroup, PianoStaff, GrandStaff, ...) und Nicht-Notensysteme (wie Lyrics, ChordNames, Dynamics usw.).

Die Abstände von Nicht-Notensystemzeilen und Notenzeilen innerhalb einer Gruppe werden durch VerticalAxisGroup und VerticalAlignment festgelegt, die vertikale Platzierung zwischen einzelnen Systemgruppen, Partituren, Beschriftungen usw. und den Rändern wird durch \paper-Variablen kontrolliert. Das heißt, dass nur über \paper-Variable festgelegt kann, wie viel Abstand zwischen zwei Notensystemen liegen soll.

Oft quetscht Lilypond die Notenzeilen innerhalb einer Gruppe zusammen und lässt viel Platz zwischen den Systemen.

Bei Nicht-Notensystemzeilen entscheidet VerticalAxisGroup.staff-affinity darüber, welches nächstgelegene Notensystem related ist und welches nicht, unabhängig davon, was musikalisch tatsächlich der Fall ist. Grenzt ein Nicht-Notensystem an andere Nicht-Notensysteme, so sind die Werte VerticalAxisGroup.nonstaff-relatedstaff-spacing und VerticalAxisGroup.nonstaff-unrelatedstaff-spacing ohne Effekt!

In das \layout des jeweiligen Contexts kann man folgende Variablen schreiben:

\override VerticalAxisGroup.xxx.basic-distance = #12
\override VerticalAxisGroup.xxx.minimum-distance = #8
\override VerticalAxisGroup.xxx.padding = #1

xxx kann folgende Werte annehmen:

staff-staff-spacing

default-staff-staff-spacing

nonstaff-relatedstaff-spacing

nonstaff-unrelatedstaff-spacing

nonstaff-nonstaff-spacing

padding kann auch negative Werte annehmen.

Man kann die Abstandsdefinitionen auch direkt in die Noten schreiben, beispielsweise

\override PianoStaff.VerticalAxisGroup.staff-staff-spacing.basic-distance = #14

Eine \layout Anweisung für ein Nicht-Notensystem kann daher folgendermaßen ausschauen:

\layout {
  \context {
    \Lyrics
    \override VerticalAxisGroup.staff-affinity = #UP
    \override VerticalAxisGroup.nonstaff-nonstaff-spacing.minimum-distance = #5
    \override VerticalAxisGroup.nonstaff-relatedstaff-spacing.minimum-distance = #2
    \override VerticalAxisGroup.nonstaff-unrelatedstaff-spacing.minimum-distance = #10
  }
}

Wenn ein eigener Context definiert wurde, muss er im Layout gleich heißen wie in der Definition.

\layout {
  \context {
    \UpperChords
    \override VerticalAxisGroup.staff-affinity = #DOWN
    \override VerticalAxisGroup.nonstaff-relatedstaff-spacing.padding = #-1
  }
}
[edit]

Tipp

[edit]

Den automatischen Randausgleich abschalten und schauen, wie Lilypond die Zeilen aufteilt.

\paper {
  ragged-bottom = ##t
  ragged-last-bottom = ##t
}