Eigenschaften für Abstände innerhalb von Systemgruppen
Der vertikalen Platzierungsmechanismen für Abstände innerhalb von Systemgruppen
werden durch zwei Gruppen von Grob-Eigenschaften kontrolliert. Die erste
Gruppe ist mit dem VerticalAxisGroup
-Grob verknüpft, der von allen
Notensystemen und Nicht-Notensystemzeilen erstellt wird. Die zweite Gruppe
ist mit dem StaffGrouper
-Grob verknüpft, der von Systemgruppen erstellt
werden kann, aber nur, wenn das explizit verlangt wird. Die einzelnen Eigenschaften
werden am Ende dieses Abschnitts beschrieben.
Die Bezeichnungen dieser Eigenschaften (mit Außnahmen von staff-affinity
)
haben das Format Element1-Element2-spacing
, wobei
Element1
und Element2
die Elemente sind, deren
Abstände eingestellt werden sollen. Dabei ist allerdings zu beachten, dass
Element2
sich nicht notwendigerweise unterhalb von
Element1
befindet; beispielsweise
nonstaff-relatedstaff-spacing
(Nicht-Notensystem-verwandtesNotensystem)
misst von dem Nicht-Notensystem nach oben, wenn staff-affinity
(Richtung, an der sich ein System ausrichtet) auf UP
(nach oben)
eingestellt ist.
Jeder Abstand wird zwischen den Referenzpunkten der zwei Objekten
gemessen. Der Referenzpunkt eines Notensystems ist die vertikale Mitte
seines StaffSymbol
-Objekts (also die Mittellinie, wenn
line-count
(Notenlinienzähler) ungrade ist, oder der mittlere
Zwischenraum, wenn line-count
grade ist). Die Referenzpunkte für
einzelne Nicht-Notensystemzeilen ergibt sich aus der folgenden Tabelle:
Nicht-Notensystemzeile | Referenzpunkt |
---|---|
ChordNames | Grundlinie |
NoteNames | Grundlinie |
Lyrics | Grundlinie |
Dynamics | vertikale Mitte |
FiguredBass | höchster Punkt |
FretBoards | Oberlinie |
Im nächsten Bild zeigen horizontale Striche die Positionen dieser Referenzpunkte an:
Jeder der vertikalen Platzierungs-Grobeigenschaften (außer
staff-affinity
) benutzt die gleiche Alistenstruktur
wie die \paper
-Variablen, behandelt in
Vertikale \paper
-Variablen mit flexiblen Abständen. Besondere
Methoden um Alisten zu verändern finden sich in
Alisten verändern. Grob-Eigenschaften sollten mit
dem \override
-Befehle innerhalb einer \score
-
oder \layout
-Umgebung angepasst werden, nicht innerhalb einer
\paper
-Umgebung.
Das folgende Beispiel zeigt die beiden Arten, Alisten zu modifizieren. Der erste Aufruf verändert nur einen Schlüsselwert einzlen, während der zweite die Eigenschaft komplett neu definiert:
\new Staff \with { \override VerticalAxisGroup.default-staff-staff-spacing.basic-distance = #10 } { … } \new Staff \with { \override VerticalAxisGroup.default-staff-staff-spacing = #'((basic-distance . 10) (minimum-distance . 9) (padding . 1) (stretchability . 10)) } { … }
Um Platzierungseinstellungen global vorzunehmen, müssen sie in der
\layout
-Umgebung vorgenommen werden:
\layout { \context { \Staff \override VerticalAxisGroup.default-staff-staff-spacing.basic-distance = #10 } }
Standardeinstellungen für die vertikalen Platzierungs-Grobeigenscahften finden sich in VerticalAxisGroup und StaffGrouper aufgelistet. Standardveränderungen für bestimmte Typen von Nicht-Notensystemzeilen finden sich im relevanten Abschnitt in in Contexts aufgelistet.
Eigenschaften des VerticalAxisGroup
-Grobs
VerticalAxisGroup
-Eigenschaften werden normalerweise mit einem
\override
-Befehl auf Staff
-(Notensystem-)Ebene (oder
entsprechend) vorgenommen.
staff-staff-spacing
System-System-Platzierung
Wird benutzt, um den Abstand zwischen dem aktuellen Notensystem und dem Notensystem direkt darunter in der gleichen Notensystemgruppe zu bestimmen, auch wenn eine oder mehrere Nicht-Notensystemzeilen (wie etwa
Lyrics
) dazwischen stehen. Gilt nicht für das unterste System einer Systemgruppe.Die Eigenschaft
staff-staff-spacing
einerVerticalAxisGroup
ist eine Scheme-Funktion, welche die Eigenschaften vomStaffGrouper
-Grob den Notensystemen zuweist, wenn sie einer Systemgruppe angehören, bzw. diedefault-staff-staff-spacing
-Eigenschaft bei einem einzelnen Notensystem. Dadurch können Systeme unterschiedlich in Abhängigkeit von ihrer Zugehörigkeit zu einer Gruppe (StaffGroup) platziert werden. Wenn gleichmäßige Aufteilung ohne Berücksichtigung von Gruppierungen gewünscht ist, kann diese Funktion durch eine flexible Platzierungs-Aliste ersetzt werden, wobei man die vollständige Redefinition auf die oben gezeigte Weise vornehmen muss.default-staff-staff-spacing
Normale-System-System-Platzierung
Eine flexible Platzierungs-Aliste, die den Wert von
staff-staff-spacing
für ungruppierte Notensysteme einstellt, es sei denn,staff-staff-spacing
wirde explizit mit\override
eingestellt.staff-affinity
System-Anziehung
Die Richtung des Systems, die benutzt wird, um die aktuelle Nicht-Notensystemzeile zu platzieren. Mögliche Werte sind
UP
(nach oben),DOWN
(nach unten) undCENTER
(mittig). WennCENTER
wird die Nicht-Notensystemzeile vertikal mittig zwischen den beiden nächsten Systemen oben und unten platziert, außer Zusammenstöße und andere Platzierungsprobleme verhindern das. Aufeinanderfolgende Nicht-Notensystemzeilen sollten nicht-aufsteigendestaff-affinity
von oben nach unten haben; also ein Nicht-Notensystemzeile mitUP
sollte nicht direkt auf eine mitDOWN
folgen. Nicht-Notensystemzeilen über einem Notensystem solltenDOWN
benutzen, unter einem Notensystem dagegenUP
. Wennstaff-affinity
für eine Notensystem eingestellt wird, wird es wie eine Nicht-Notensystemzeile behandelt. Wennstaff-affinity
auf#f
gesetzt wird, wird eine Nicht-Notensystemzeile wie ein Notensystem behandelt. Wirdstaff-affinity
aufUP
,CENTER
oderDOWN
gesetzt, wird das Notensystem als Nicht-Notensystemzeile plaziert.nonstaff-relatedstaff-spacing
Nicht-Notensystem-verwandtesSystem-Platzierung
Der Abstand zwischen der aktuellen Nicht-Notensystemzeile und dem nächsten Notensystem in der Richtung von
staff-affinity
, wenn keine Nicht-Notensystemzeilen dazwischen auftreten undstaff-affinity
entwederUP
oderDOWN
ist. Wennstaff-affinity
CENTER
ist, dann wirdnonstaff-relatedstaff-spacing
für die nächsten Notensysteme auf beiden Seiten benutzt, auch wenn andere Nicht-Notensystemzeilen zwischen der aktuellen und einem der Notensystem auftreten. Das heißt, dass die Platzierung eine Nicht-Notensystemzeile sowohl von den umliegenden Notensystemen als auch den umliegenden Nicht-Notensystemzeilen abhängt. Wennstretchability
einer dieser Platzierungstypen auf einen kleinen Wert gesetzt wird, dominiert diese Platzierung. Wird es dagegen auf einen großen Wert gesetzt, hat die Platzierung dieses Objekts nur einen kleinen Einfluss.nonstaff-nonstaff-spacing
Nicht-Notensystemzeile-Nicht-Notensystemzeile-Platzierung
Der Abstand zwischen der aktuellen Nicht-Notensystemzeile und der Nicht-Notensystemzeile in der Richtung von
staff-affinity
, wenn beide sich auf der gleichen Seite des verwandten Notensystems befinden undstaff-affinity
entwederUP
oderDOWN
ist.nonstaff-unrelatedstaff-spacing
Nicht-Notensystemzeile-Nicht-verwandtesSystem-Platzierung
Der Abstand zwischen der aktuellen Nicht-Notensystemzeile und dem Notensystem in der gegenüberliegenden Richtung von
staff-affinity
, wenn keine anderen Nicht-Notensystemzeilen dazwischen auftreten undstaff-affinity
entwederUP
oderDOWN
ist. Das kann benutzt werden, um einen Minimalfüllabstand (padding) zwischen einerLyrics
-Gesangstextzeile und dem zugehörigen Notensystem zu verlangen.
Eigenschaften des StaffGrouper
-Grobs
StaffGrouper
-Eigenschaften werden normalerweise mit einem
\override
-Befehl auf StaffGroup
-Ebene (oder
entsprechend) eingestellt.
staff-staff-spacing
Notensystem-Notensystem-Abstand
Der Abstand zwischen zwei aufeinanderfolgenden Notensystemen in der aktuellen
StaffGroup
. Diestaff-staff-spacing
-Eigenschaft desVerticalAxisGroup
-Grobs eines einzelnen Notensytems kann mit\override
in andere Platzierungswerte für dieses Notensystem geändert werden.staffgroup-staff-spacing
Systemgruppe-System-Abstand
Der Abstand zwischen dem letzten Notensystem der aktuellen
StaffGroup
und dem Notensystem dirket darunter in der selben Notensystemgruppe, auch wenn eine oder mehrere Nicht-Notensystemzeilen (wie etwa Gesangstext) zwischen den zwei Notensystemen vorkommen. Gilt nicht für das letzte Notensystem einer Systemgruppe. Diestaff-staff-spacing
-Eigenschaft desVerticalAxisGroup
-Grobs individueller Notensysteme kann mit\override
in andere Platzierungswerte für dieses Notensystem geändert werden.
Siehe auch
Notationsreferenz:
Vertikale \paper
-Variablen mit flexiblen Abständen,
Alisten verändern.
Installierte Dateien: ly/engraver-init.ly, scm/define-grobs.scm.
Referenz der Interna: Contexts, VerticalAxisGroup, StaffGrouper.