| [ < ] | [ > ] | [ << ] | [ Nach oben ] | [ >> ] | [Anfang] | [Inhalt] | [Index] | [ ? ] |
@translationof Vertical spacing
Vertikale Abstände werden durch drei Eigenschaften bestimmt: wieviel Platz frei ist (etwa Papiergröße und Ränder), wieviel Platz zwischen Systemgruppen (engl. system) gesetzt werden soll und wieviel Platz zwischen Notensystemen (engl. staff, Pl. staves) innerhalb von Gruppen gesetzt wird.
| 4.4.1 Flexible vertikale Abstände in Systemgruppen | ||
| 4.4.2 Explizite Positionierung von Systemen | ||
| 4.4.3 Vermeidung von vertikalen Zusammenstößen |
| [ < ] | [ > ] | [ << ] | [ Nach oben ] | [ >> ] | [Anfang] | [Inhalt] | [Index] | [ ? ] |
@translationof Flexible vertical spacing within systems
Drei unterschiedliche Mechanismen kontrollieren das flexible Abstandaufteilung in Systemgruppen, einer für jede der folgenden Kathegorien:
staff-group wie etwa
ChoirStaff usw.) und
Lyrics (Gesangstext),
ChordNames (Akkordbezeichnungen) usw.).
Die Höhe jeder Systemgruppe wird in zwei Schritten bestimmt. Zunächst werden alle Systeme anhand des vorhandenen Platzes aufgeteilt. Dann werden die nicht-Notensysteme (also Akkorde oder Gesangstext) zwischen den Systemen verteilt.
Es ist zu beachten, dass der Platzverteilungsmechanismus, der in diesem
Abschnitt behandelt wird, nur die vertikale Platzierung von Systemen und
nicht-Systemzeilen in einzelnen Systemgruppen behandelt. Die vertikale
Platzierung zwischen einzelnen Systemgruppen, Partituren, Beschriftungen
usw. und den Rändern wird durch \paper-Variablen kontrolliert, die
Vertikale \paper-Variablen mit flexiblen Abständen.
| Eigenschaften für Abstände innerhalb von Systemgruppen | ||
| Abstände von nicht gruppierten Notensystemen | ||
| Abstände von gruppierten Notensystemen | ||
| Abstände von nicht-Notensystemzeilen |
| [ < ] | [ > ] | [ << ] | [ Nach oben ] | [ >> ] | [Anfang] | [Inhalt] | [Index] | [ ? ] |
@translationof Within-system spacing properties
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 (internals)VerticalAxisGroup in Abschnitt ‘VerticalAxisGroup’ in Referenz der Interna und (internals)StaffGrouper in Abschnitt ‘StaffGrouper’ in Referenz der Interna aufgelistet. Standardveränderungen für bestimmte Typen von Nicht-Notensystemzeilen finden sich im relevanten Abschnitt in in (internals)Contexts in Abschnitt ‘Contexts’ in Referenz der Interna aufgelistet.
VerticalAxisGroup-GrobsVerticalAxisGroup-Eigenschaften werden normalerweise mit einem
\override-Befehl auf Staff-(Notensystem-)Ebene (oder
entsprechend) vorgenommen.
staff-staff-spacingSystem-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 einer VerticalAxisGroup
ist eine Scheme-Funktion, welche die Eigenschaften vom StaffGrouper-Grob
den Notensystemen zuweist, wenn sie einer Systemgruppe angehören, bzw.
die default-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-spacingNormale-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-affinitySystem-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) und
CENTER (mittig). Wenn CENTER 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-aufsteigende
staff-affinity von oben nach unten haben; also ein Nicht-Notensystemzeile
mit UP sollte nicht direkt auf eine mit DOWN folgen.
Nicht-Notensystemzeilen über einem Notensystem sollten DOWN
benutzen, unter einem Notensystem dagegen UP. Wenn
staff-affinity für eine Notensystem eingestellt wird, wird es wie
eine Nicht-Notensystemzeile behandelt. Wenn staff-affinity
auf #f gesetzt wird, wird eine Nicht-Notensystemzeile wie ein
Notensystem behandelt. Wird staff-affinity auf UP,
CENTER oder DOWN gesetzt, wird das Notensystem als
Nicht-Notensystemzeile plaziert.
nonstaff-relatedstaff-spacingNicht-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 und staff-affinity
entweder UP oder DOWN ist. Wenn staff-affinity
CENTER ist, dann wird nonstaff-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. Wenn stretchability 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-spacingNicht-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 und staff-affinity entweder UP oder DOWN ist.
nonstaff-unrelatedstaff-spacingNicht-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 und
staff-affinity entweder UP oder DOWN ist. Das kann
benutzt werden, um einen Minimalfüllabstand (padding) zwischen einer
Lyrics-Gesangstextzeile und dem zugehörigen Notensystem zu verlangen.
StaffGrouper-GrobsStaffGrouper-Eigenschaften werden normalerweise mit einem
\override-Befehl auf StaffGroup-Ebene (oder
entsprechend) eingestellt.
staff-staff-spacingNotensystem-Notensystem-Abstand
Der Abstand zwischen zwei aufeinanderfolgenden Notensystemen in
der aktuellen StaffGroup. Die staff-staff-spacing-Eigenschaft
des VerticalAxisGroup-Grobs eines einzelnen Notensytems
kann mit \override in andere Platzierungswerte für dieses Notensystem
geändert werden.
staffgroup-staff-spacingSystemgruppe-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. Die
staff-staff-spacing-Eigenschaft des VerticalAxisGroup-Grobs
individueller Notensysteme kann mit \override in andere Platzierungswerte
für dieses Notensystem geändert werden.
Notationsreferenz:
Vertikale \paper-Variablen mit flexiblen Abständen,
Alisten verändern.
Installierte Dateien: ‘ly/engraver-init.ly’, ‘scm/define-grobs.scm’.
Referenz der Interna: (internals)Contexts in Abschnitt ‘Contexts’ in Referenz der Interna, (internals)VerticalAxisGroup in Abschnitt ‘VerticalAxisGroup’ in Referenz der Interna, (internals)StaffGrouper in Abschnitt ‘StaffGrouper’ in Referenz der Interna.
| [ < ] | [ > ] | [ << ] | [ Nach oben ] | [ >> ] | [Anfang] | [Inhalt] | [Index] | [ ? ] |
@translationof Spacing of ungrouped staves
Notensysteme (wie etwa Staff, DrumStaff,
TabStaff usw.) sind Kontexte, die eine oder mehrere Stimmen-Kontexte
enthalten, aber keine anderen Notensysteme enthalten können.
Folgende Eigenschaften beeinflussen die Abstände von nicht gruppierten Notensystemen:
VerticalAxisGroup-Eigenschaften:
default-staff-staff-spacing
staff-staff-spacing
Diese Eigenschaften sind einzlen oben behandelt worden, siehe Eigenschaften für Abstände innerhalb von Systemgruppen.
Zusätzliche Eigenschaften kommen hinzu für Notensysteme, die Teil
einer Gruppieren (StaffGroup) werden, siehe
Abstände von gruppierten Notensystemen.
Folgendes Beispiel zeigt, wie die default-staff-staff-spacing-Eigenschaft
sich auf die Platzierung von nicht-gruppierten Notensystemen auswirken kann.
Wenn man die gleichen \override-Befehle auf staff-staff-spacing
anwendet, ergäbe das den selben Effekt, würde sich aber auch in Fällen auswirken,
in denen die Systeme gruppiert sind.
\layout { \context { \Staff \override VerticalAxisGroup.default-staff-staff-spacing = #'((basic-distance . 8) (minimum-distance . 7) (padding . 1)) } } << % The very low note here needs more room than 'basic-distance % can provide, so the distance between this staff and the next % is determined by 'padding. \new Staff { b,2 r | } % Here, 'basic-distance provides enough room, and there is no % need to compress the space (towards 'minimum-distance) to make % room for anything else on the page, so the distance between % this staff and the next is determined by 'basic-distance. \new Staff { \clef bass g2 r | } % By setting 'padding to a negative value, staves can be made to % collide. The lowest acceptable value for 'basic-distance is 0. \new Staff \with { \override VerticalAxisGroup.default-staff-staff-spacing = #'((basic-distance . 3.5) (padding . -10)) } { \clef bass g2 r | } \new Staff { \clef bass g2 r | } >>
Installierte Dateien: ‘scm/define-grobs.scm’.
Schnipsel: (snippets)Spacing in Abschnitt ‘Spacing’ in Schnipsel.
Referenz der Interna: (internals)VerticalAxisGroup in Abschnitt ‘VerticalAxisGroup’ in Referenz der Interna.
| [ < ] | [ > ] | [ << ] | [ Nach oben ] | [ >> ] | [Anfang] | [Inhalt] | [Index] | [ ? ] |
@translationof Spacing of grouped staves
In Orchesterpartituren und anderen großen Partituren werden Notensysteme normalerweise in Gruppen zusammengefasst. Der Platz zwischen Gruppen ist normalerweise größer als der Zwischenraum zwischen einzlenen Notensystemen der gleichen Gruppe.
Gruppierte Notensysteme (wie StaffGroup, ChoirStaff,
GrandStaff usw.) sind Kontexte, die mehr als ein Notensystem
gleichzeitig enthalten können.
Folgende Eigenschaften beeinflussen die Platzierung von Notensystemen innerhalb von Gruppen:
VerticalAxisGroup-Eigenschaften:
staff-staff-spacing
StaffGrouper-Eigenschaften:
staff-staff-spacing
staffgroup-staff-spacing
Diese Grob-Eigenschaften sind weiter oben einzeln beschrieben, siehe Eigenschaften für Abstände innerhalb von Systemgruppen.
Das folgende Beispiel zeigt, wie Eigenscchaften des
StaffGrouper-Grobs die Platzierung von gruppierten Notensystemen
beeinflussen kann:
\layout { \context { \Score \override StaffGrouper.staff-staff-spacing.padding = #0 \override StaffGrouper.staff-staff-spacing.basic-distance = #1 } } << \new PianoStaff \with { \override StaffGrouper.staffgroup-staff-spacing.basic-distance = #20 } << \new Staff { c'1 } \new Staff { c'1 } >> \new StaffGroup << \new Staff { c'1 } \new Staff { c'1 } >> >>
Installierte Dateien: ‘scm/define-grobs.scm’.
Schnipsel: (snippets)Spacing in Abschnitt ‘Spacing’ in Schnipsel.
Referenz der Interna: (internals)VerticalAxisGroup in Abschnitt ‘VerticalAxisGroup’ in Referenz der Interna, (internals)StaffGrouper in Abschnitt ‘StaffGrouper’ in Referenz der Interna.
| [ < ] | [ > ] | [ << ] | [ Nach oben ] | [ >> ] | [Anfang] | [Inhalt] | [Index] | [ ? ] |
@translationof Spacing of non-staff lines
Nicht-Notensystemzeilen (wie Lyrics, ChordNames
usw.) sind Kontexte, deren Layoutobjekte wie Notensysteme gesetzt
werden (also als horizontale Zeilen zwischen Notensystemen). Genau
gesagt sind Nicht-Notensystemzeilen Nicht-Notensystemkontexte, die
ein VerticalAxisGroup-Layoutobjekt erstellen.
Folgende Eigenschaften beeinflussen die Abstände von Nicht-Notensystemzeilen:
VerticalAxisGroup-Eigenschaften:
staff-affinity
nonstaff-relatedstaff-spacing
nonstaff-nonstaff-spacing
nonstaff-unrelatedstaff-spacing
Diese Grob-Eigenschaften sind weiter oben einzlen beschrieben; siehe Eigenschaften für Abstände innerhalb von Systemgruppen.
Das folgende Beispiel zeigt, wie die nonstaff-nonstaff-spacing-Eigenschaft
die Platzierung von aufeinanderfolgenden Nicht-Notensystemzeilen beeinflussen
kann. Indem hier der Wert von stretchability auf einen sehr hohen Wert
gesetzt wird, kann der Gesangstext sehr viel weiter als normal gespreizt
werden:
\layout { \context { \Lyrics \override VerticalAxisGroup.nonstaff-nonstaff-spacing.stretchability = #1000 } } \new StaffGroup << \new Staff \with { \override VerticalAxisGroup.staff-staff-spacing = #'((basic-distance . 30)) } { c'1 } \new Lyrics \with { \override VerticalAxisGroup.staff-affinity = #UP } \lyricmode { up } \new Lyrics \with { \override VerticalAxisGroup.staff-affinity = #CENTER } \lyricmode { center } \new Lyrics \with { \override VerticalAxisGroup.staff-affinity = #DOWN } \lyricmode { down } \new Staff { c'1 } >>
Installierte Dateien: ‘ly/engraver-init.ly’, ‘scm/define-grobs.scm’.
Schnispel: (snippets)Spacing in Abschnitt ‘Spacing’ in Schnipsel.
Referenz der Interna: (internals)Contexts in Abschnitt ‘Contexts’ in Referenz der Interna, (internals)VerticalAxisGroup in Abschnitt ‘VerticalAxisGroup’ in Referenz der Interna.
| [ < ] | [ > ] | [ << ] | [ Nach oben ] | [ >> ] | [Anfang] | [Inhalt] | [Index] | [ ? ] |
@translationof Explicit staff and system positioning
Man kann die flexiblen Einstellungen der vertikalen Abstände, wie sie im vorigen Abschnitt erklärt wurden, als eine Sammlung verschiedenerer Einstellmöglichkeiten verstehen, die vor allem die Größe des vertikalen Platzes zwischen Notensystemen und Gruppen auf der Seite kontrollieren.
Die vertikale Platzverteilung kann aber auch auf andere Weise
eingestellt werden: mit den Optionen von
NonMusicalPaperColumn #'line-break-system-details. Während
der flexible vertikale Abstandsmechanismus vertikalen Füllplatz
definiert, werden mit
NonMusicalPaperColumn #'line-break-system-details absolute vertikale
Positionen auf der Seite festgelegt.
NonMusicalPaperColumn #'line-break-system-details akzeptiert eine
Liste aus drei unterschiedlichen Einstellungen:
X-offset
Y-offset
alignment-distances
Veränderungen von Grobs (wozu auch NonMusicalPaperColumn gehört),
können an drei unterschiedlichen Stellen in der Quelldatei vorgenommen
werde:
\context-Umgebung
\with-Umgebung
Wenn der Grob NonMusicalPaperColumn verändert werden soll,
wird der \override-Befehl in der \context oder
\with-Umgebung eingesetzt. Wenn die Veränderungen aber
mitten im Notentext stattfinden sollen, müssen Sie den Befehl
\overrideProperty einsetzen. Einige Beispiele für eine
Veränderungen von NonMusicalPaperColumn mit dem
\overrideProperty-Befehl sind hier aufgelistet:
\overrideProperty NonMusicalPaperColumn.line-break-system-details #'((X-offset . 20))
\overrideProperty NonMusicalPaperColumn.line-break-system-details #'((Y-offset . 40))
\overrideProperty NonMusicalPaperColumn.line-break-system-details #'((X-offset . 20)
(Y-offset . 40))
\overrideProperty NonMusicalPaperColumn.line-break-system-details #'((alignment-distances . (15)))
\overrideProperty NonMusicalPaperColumn.line-break-system-details #'((X-offset . 20)
(Y-offset . 40)
(alignment-distances . (15)))
|
Um zu verstehen, wie jede dieser unterschiedlichen Einstellungen
funktioniert, wollen wir uns ein Beispiel vornehmen, dass überhaupt
keine Einstellungen (d.h. \override-Befehle) enthält:
\header { tagline = ##f } \paper { left-margin = 0\mm } \book { \score { << \new Staff << \new Voice { s1*5 \break s1*5 \break s1*5 \break } \new Voice { \repeat unfold 15 { c'4 c' c' c' } } >> \new Staff { \repeat unfold 15 { d'4 d' d' d' } } >> } }
Diese Partitur nimmt Zeilen- und Seitenumbruchinformationen in einer eigenen Stimme vor. Mit dieser Methode kann die Layout-Information einfach von den Noten getrennt werden, was sehr hilfreich ist, wenn das Beispiel komplizierter wird. Siehe auch Eine zusätzliche Stimme für Umbrüche benutzen.
Ausdrückliche \break-Befehle teilen die Noten in sechs Takte
lange Zeilen. Die vertikale Platzverteilung wird von LilyPond
errechnet. Um den vertikalen Beginn einer jeden Systemgruppe
genau anzugeben, kann Y-offset in der
line-break-system-details-Eigenschaft des
NonMusicalPaperColumn-Grobs wie in dem Beispiel
ersichtlich benutzt werden:
\header { tagline = ##f } \paper { left-margin = 0\mm } \book { \score { << \new Staff << \new Voice { \overrideProperty Score.NonMusicalPaperColumn.line-break-system-details #'((Y-offset . 0)) s1*5 \break \overrideProperty Score.NonMusicalPaperColumn.line-break-system-details #'((Y-offset . 40)) s1*5 \break \overrideProperty Score.NonMusicalPaperColumn.line-break-system-details #'((Y-offset . 80)) s1*5 \break } \new Voice { \repeat unfold 15 { c'4 c' c' c' } } >> \new Staff { \repeat unfold 15 { d'4 d' d' d' } } >> } }
In der line-break-system-details-Eigenschaft kann eine Liste
mit vielen Einstellungen eingegeben werden, aber hier wird nur eine
Einstellung angegeben. Die Y-offset-Eigenschaft bestimmt
hier die exakte vertikale Position auf der Seite, an welcher jede
neue Systemgruppe begonnen wird.
Da jetzt der exakte Beginn einer jeden Systemgruppe explizit festgelegt wurde,
können wir auch den exakten Beginn eines jeden Notensystems in der
Gruppe festlegen. Dies geschieht mit der alignment-distances-Eigenschaft
von line-break-system-details.
\header { tagline = ##f } \paper { left-margin = 0\mm } \book { \score { << \new Staff << \new Voice { \overrideProperty Score.NonMusicalPaperColumn.line-break-system-details #'((Y-offset . 20) (alignment-distances . (15))) s1*5 \break \overrideProperty Score.NonMusicalPaperColumn.line-break-system-details #'((Y-offset . 60) (alignment-distances . (15))) s1*5 \break \overrideProperty Score.NonMusicalPaperColumn.line-break-system-details #'((Y-offset . 100) (alignment-distances . (15))) s1*5 \break } \new Voice { \repeat unfold 15 { c'4 c' c' c' } } >> \new Staff { \repeat unfold 15 { d'4 d' d' d' } } >> } }
Dem line-break-system-details-Attribut des
NonMusicalPaperColumn-Grobs werden zwei unterschiedliche Eigenschaften
zugewiesen. Auch wenn die Aliste der Attribute von
line-break-system-details sehr viel mehr Platzierungsparameter
akzeptiert (wie etwa ein korrespondierendes X-offset-Paar), müssen
hier nur die Parameter Y-offset und
alignment-distances gesetzt werden, um den vertikalen Beginn
jedes Systems und jeder Systemgruppe zu kontrollieren. Y-offset
bestimmt also die vertikale Position von Systemgruppen und alignment-distances
die vertikale Position von einzelnen Notensystemen.
\header { tagline = ##f } \paper { left-margin = 0\mm } \book { \score { << \new Staff << \new Voice { \overrideProperty Score.NonMusicalPaperColumn.line-break-system-details #'((Y-offset . 0) (alignment-distances . (30 10))) s1*5 \break \overrideProperty Score.NonMusicalPaperColumn.line-break-system-details #'((Y-offset . 60) (alignment-distances . (10 10))) s1*5 \break \overrideProperty Score.NonMusicalPaperColumn.line-break-system-details #'((Y-offset . 100) (alignment-distances . (10 30))) s1*5 \break } \new Voice { \repeat unfold 15 { c'4 c' c' c' } } >> \new StaffGroup << \new Staff { \repeat unfold 15 { d'4 d' d' d' } } \new Staff { \repeat unfold 15 { e'4 e' e' e' } } >> >> } }
Einige Dinge sollten beachtet werden:
alignment-distances benutzt wird, werden Gesangstextzeilen
nicht als ein System gezählt.
X-offset,
Y-offset und alignment-distances benutzt werden, werden als
Vielfaches des Abstandes zwischen zwei Notenlinien gewertet. Positive
Werte verschieben Systeme und Gesangstext nach oben, negative Werte nach
unten.
NonMusicalPaperColumn #'line-break-system-details
es möglich machen, Notensysteme und Gruppen an beliebigen Stellen auf der
Seite zu platzieren, kann man damit auch Ränder überschreiben oder sogar
Notensysteme übereinander platzieren. Sinnvolle Werte für diese
Parameter werden derartiges Verhalten vermeiden.
Schnipsel: (snippets)Spacing in Abschnitt ‘Spacing’ in Schnipsel.
| [ < ] | [ > ] | [ << ] | [ Nach oben ] | [ >> ] | [Anfang] | [Inhalt] | [Index] | [ ? ] |
@translationof Vertical collision avoidance
Intuitiv gibt es in der Notation einige Objekte, die zu dem Notensystem gehören, und einige andere, die immer außerhalb des Notensystems positioniert werden sollten. Zu diesen letzteren gehören etwa Übungszeichen, Textbeschriftung und Dynamikbezeichnung (die als Objekte außerhalb des Systems bezeichnet werden können). LilyPonds Regeln um diese Objekte zu positionieren lautet: so nah am Notensystem wie möglich, aber gerade so weit weg, dass sie nicht mit anderen Objekten zusammenstoßen.
Dabei setzt LilyPond die outside-staff-priority-Eigenschaft
ein um herauszufinden, ob ein Grob ein Objekt außerhalb des Systems
ist: wenn outside-staff-priority eine Zahl ist, dann handelt
es sich um ein Objekt außerhalb des Systems. Zusätzlich teilt
outside-staff-priority noch mit, in welcher Reihenfolge
die Objekte außerhalb des Systems gesetzt werden sollen.
Zuerst werden alle Objekte gesetzt, die nicht außerhalb des Systems
gehören. Dann werden die Objekte außerhalb des Systems nach dem Wert
ihrer outside-staff-priority (in aufsteigender Anordnung)
sortiert. Eins nach dem anderen werden diese Objekte schließlich
genommen und so platziert, dass sie nicht mit den Objekten zusammenstoßen,
die bereits platziert worden sind. Wenn also zwei Objekte außerhalb
des Systems um den gleichen Platz streiten, wird das mit dem
geringeren Wert von outside-staff-priority näher an das
entsprechende Notensystem gesetzt.
\relative c'' { c4_"Text"\pp r2. \once \override TextScript.outside-staff-priority = #1 c4_"Text"\pp % this time the text will be closer to the staff r2. % by setting outside-staff-priority to a non-number, % we disable the automatic collision avoidance \once \override TextScript.outside-staff-priority = ##f \once \override DynamicLineSpanner.outside-staff-priority = ##f c4_"Text"\pp % now they will collide }
Der Platz, der zwischen einem Objekt außerhalb des Systems und
dem vorhergehenden Objekt eingefügt werden kann (auch als
padding bezeichnet), kann durch outside-staff-padding
kontrolliert werden.
\once \override TextScript.outside-staff-padding = #0 a'^"This text is placed very close to the note" \once \override TextScript.outside-staff-padding = #3 c^"This text is padded away from the previous text" c^"This text is placed close to the previous text"
Standardmäßig werden Objekte außerhalb des Systems so gesetzt,
dass sie eine horizontale Überschneidung mit einem der
vorher gesetzten Grobs vermeiden. Das kann zu Situationen
führen, in denen Objekte sehr dicht nebeneinander gesetzt
werden. Der vertikale Platz zwischen Notensystemen kann
auch gesetzt werden, sodass Objekte außerhalb des Systems
ineinander greifen. Mit der Eigenschaft
outside-staff-horizontal-padding können Objekte vertikal
verschoben werden und derartige Situationen kommen nicht
vor.
% the markup is too close to the following note c4^"Text" c4 c''2 % setting outside-staff-horizontal-padding fixes this R1 \once \override TextScript.outside-staff-horizontal-padding = #1 c,,4^"Text" c4 c''2
Schnipsel: (snippets)Spacing in Abschnitt ‘Spacing’ in Schnipsel.
| [ < ] | [ > ] | [ << ] | [ Nach oben ] | [ >> ] |
Dieses Dokument wurde erzeugt von gub am 13. Juli 2020 durch texi2html 1.82.
Andere Sprachen: English, català, español, français, italiano, 日本語.
Über die automatische Sprachauswahl.