[ << Die Ausgabe verbessern ] | [Anfang][Inhalt][Index] | [ Vorlagen >> ] |
[ < Kollision von Objekten ] | [ Nach oben : Kollision von Objekten ] | [ Überlappende Notation in Ordnung bringen > ] |
5.6.1 Verschieben von Objekten
Es wird vielleicht eine Überraschung sein, aber LilyPond ist nicht perfekt. Einige Notationselemente können sich überschneiden. Das ist nicht schön, aber zum Glück sehr selten. Normalerweise müssen die Objekte zur Klarheit oder aus ästhetischen Gründen verschoben werden – sie könnten besser aussehen, wenn sie etwas zusätzlichen Platz erhalten.
Es gibt im Grunde drei Herangehensweisen, überlappende Notation zu verbessern. Man sollte sie in der folgenden Reihenfolge anwenden:
- Die Richtung eines der überlappenden Objekte kann geändert werden, indem die vordefinierten Befehle für Innersystemobjekte verwendet werden, wie beschrieben in within-staff (Objekte innerhalb des Notensystems). Hälse, Bögen, Balken, Dynamik-Zeichen und Triolen können auf diese Weise einfach umgeordnet werden. Beschränkt ist diese Methode insofern, als es nur zwei Möglichkeiten zur Veränderung gibt: oben oder unten.
-
Die Objekteigenschaft, die LilyPond benutzt um die
Layout-Objekte zu platzieren, können mit dem
\override
-Befehl positioniert werden. Die Vorteile von Änderungen dieser Art sind a) dass einige Objekte automatisch verschoben werden, wenn es nötig ist Platz zu schaffen und b) ein einziges\override
sich auf alle Fälle eines Objekttyps bezieht. Zu diesen Eigenschaften gehören:-
direction
(Richtung)Das wurde schon detailliert behandelt, siehe within-staff (Objekte innerhalb des Notensystems).
-
padding
,right-padding
,staff-padding
(Verschiebung)Wenn ein Objekt platziert wird, bestimmt der Wert seiner
padding
-(Füllungs)-Eigenschaft die Größe des Abstandes, der zwischen dem Objekt selber und dem Objekt, relativ zu welchem es positioniert wird, gelassen werden muss. Dabei zählt derpadding
-Wert des Objektes, das platziert werden soll, derpadding
-Wert des Objektes, das schon gesetzt wurde, wird hingegen ignoriert. Abstände mitpadding
können zu allen Objekten hinzugefügt werden, die dasside-position-interface
unterstützen.Anstelle von
padding
wird die Position von Versetzungszeichengruppen durch die Eigenschaftenright-padding
bestimmt. Diese Eigenschaft wird imAccidentalPlacement
-(Versetzungszeichen-Positionierungs)-Objekt gefunden, das sich innerhalb des Staff-Kontexts befindet. Während des Notensatzes werden die Notenköpfe zuerst gesetzt und dann die Versetzungszeichen, wenn denn welche gesetzt werden, durch dieright-padding
-Eigenschaft auf die linke Seite der Notenköpfe positioniert, um die Entfernung von den Notenköpfen und zwischen den einzelnen Versetzungszeichen zu bestimmen. Also nur dieright-padding
-(Verschiebung nach rechts)-Eigenschaft desAccidentalPlacement
-Objekts hat Einfluss auf die Positionierung der Versetzungszeichen.Die
staff-padding
-(Verschiebung zum System)-Eigenschaft ist sehr ähnlich wie diepadding
-Eigenschaft:padding
bestimmt den Minimalabstand zwischen einem Objekt, das dasside-position-interface
unterstützt, und dem nächsten anderen Objekt (normalerweise die Note oder Notenlinie);staff-padding
dagegen wirkt nur auf Objekte die immer außerhalb des Notensystems sind – damit wird der minimale Abstand bestimmt, der zwischen dem Objekt und dem Notensystem gelassen werden soll.staff-padding
hat also keinen Einfluss auf Objekte, die relativ zu einer Note positioniert werden, sondern nur auf solche, die zum System relativ stehen. Wenn es mit einem anderen Objekt eingesetzt wird, erhält man keine Fehlermeldung, aber der Befehl hat auch keine Auswirkungen.Um herauszufinden, welche
padding
-Eigenschaft für das bestimmte Objekt nötig, ist, das Sie verschieben wollen, müssen Sie in der IR nach den Objekt-Eigenschaften schauen. Dabei sollten Sie bedenken, dass sich diepadding
-Eigenschaften nicht unbedingt in dem Objekt selber befinden, schauen Sie also auch in Objekten nach, die offensichtlich Ähnlichkeiten haben.Alle
padding
-Werte werden in Notenlinienabständen gemessen. Für die meisten Objekte ist der Wert ungefähr auf 1.0 oder weniger gesetzt (das variiert von Objekt zu Objekt). Der Wert kann geändert werden, wenn ein größerer (oder kleinerer) Abstand gewünscht wird. -
self-alignment-X
(Selbstpositionierung)Diese Eigenschaft kann benutzt werden, um ein Objekt nach links, rechts oder zentriert an dem Referenzpunkt des Objekts auszurichten, an das es verknüpft ist. Es kann bei allen Objekten benutzt werden, die das
self-alignment-interface
unterstützen. Das sind üblicherweise Objekte, die Text enthalten. Die möglichen Werte der Eigenschaft sindLEFT
,RIGHT
oderCENTER
. Alternativ kann ein numerischer Wert zwischen-1
und+1
bestimmt werden:-1
heißt linksbündig,+1
rechtsbündig und Zahlen dazwischen bewegen den Text schrittweise von links nach rechts. Zahlen größer als1
können angegeben werden, um den Text noch weiter nach links zu bewegen, oder weniger als-1
, um ihn weiter nach rechts zu schieben. Eine Änderung um1
des Wertes entspricht einer Bewegung um die halbe Textbreite. -
extra-spacing-width
(zusätzliche Breite)Diese Eigenschaft steht für alle Objekte zur Verfügung, die das
item-interface
unterstützen. Es braucht zwei Zahlen als Argument, die erste wird zur rechten Ausdehnung, die zweite zur linken Ausdehnung hinzugerechnet. Negative Zahlen verschieben die Ausdehnung nach rechts, positive nach links, um also ein Objekt zu verbreitern, muss die erste Zahl negativ und die zweite positiv sein. Allerdings beachten nicht alle Objekte beide Zahlen. Dasaccidental
-(Versetzungszeichen)-Objekt etwa beachtet nur erste Zahl für die linke Ausdehnung. -
staff-position
(Notensystempositionierung)staff-position
ist eine Eigenschaft desstaff-symbol-referencer-interface
, die von Objekten unterstützt wird, die relativ zum Notensystem (engl. staff) positioniert werden. Hiermit wird die vertikale Position eines Objekts relativ zur Mittellinie des Systems in halben Notenlinienabständen angegeben. Das ist sehr nützlich, um Zusammenstöße zwischen Layout-Objekten wie Ganztaktpausen, Bögen und Noten in verschiedenen Stimmen zu lösen. -
horizontal-shift
(horizontale Verschiebung)Innerhalb einer Stimme werden alle Noten, die zeitgleich stattfinden, zu einer Gruppe zusammen gefasst, einem sog.
NoteColumn
Objekt. Dieses Objekt dient dem Zweck, diese Gruppe von Noten horizontal zu positionieren (siehe auch „Notenkolumnen“ in Stimmen explizit beginnen). Genau dann, wenn zwei oder mehr Notenkolumnen innerhalb eines Systemkontexts, die beide jeweils die Hälse in die gleiche Richtung haben und auch zur gleichen Zeit stattfinden, werden die Werte ihrerhorizontal-shift
-Eigenschaften nach Größe sortiert und die Objekte dann mit einer Ordnungsnummer versehen. Je größer diese Ordnungsnummer, desto stärker wird ein Objekt verschoben um eine Kollision der Notenköpfe zu vermeiden. Diese Eigenschaft wird mit den\voiceXXX
-Befehlen gesetzt und kann direkt durch einen\override
-Befehl, oder was für gewöhnlich häufiger vorkommt, durch einen\shiftOn
-Befehl gesetzt werden. Bedenken sie bitte, diese Eigenschaft dient lediglich dazu, den Notenkolumnen eine Ordnungsnummer zuzuweisen - sie bestimmt in keinster Weise die Größe der jeweiligen Verschiebung. Die steigt mit zunehmender Ordnungsnummer in festen Schritten. Die Schrittweite ist für gewöhnlich eine halbe Notenkopfbreite. Bei sehr eng platzierten Notengruppen kann sie aber auch mal eine ganze Notenkopfbreite betragen. -
force-hshift
(horizontale Verschiebung erzwingen)Die
force-hshift
-(erzwinge horizontale Verschiebung)-Eigenschaft ist eine Eigenschaft vonNoteColumn
(bzw. vomnote-column-interface
). Eine Veränderung dieser Eigenschaft macht es möglich, eine Notenkolumne zu verschieben, wenn sie mit anderen überlappt. Diese Eigenschaft hat keinerlei Auswirkungen, wenn keine Überlappung vorliegt. Veränderungen werden in einer Einheit angegeben, die zu der Notenkolumne passt, d.h. der Breite des Notenkopfes der Note der ersten Stimme. Diese Eigenschaft sollte in denjenigen komplexen Fällen verwendet werden, die sich nicht mit dem normalen\shiftOn
-Befehle (siehe auch Stimmen explizit beginnen) lösen lassen. Sie ist auf jeden Fall der Verwendung derextra-offset
-Eigenschaft vorzuziehen, weil man die richtige Entfernung nicht in Notenlinienabständen ausrechnen muss. Wenn eine Note in eine Notenkolumne oder aus ihr heraus geschoben wird, werden auch andere Funktionen beeinflusst, wie etwa die Verschmelzung von Notenköpfen.
-
-
Zu guter Letzt, wenn alles andere nicht funktioniert, können Objekte auch
manuell positioniert werden, entweder vertikal in Bezug auf die
Mittellinie des Systems, oder indem sie einen beliebigen Abstand weit
auf eine neue Position verschoben werden. Der Nachteil ist, dass die
richtigen Werte für eine gute Position manuell ausprobiert werden müssen,
meistens durch Herantasten an den richtigen Wert, und das für jedes
einzelne Objekt extra. Und weil diese Verschiebungen erst vorgenommen
werden, wenn LilyPond alle anderen Objekte gesetzt hat, ist man als
Notensetzer selber dafür verantwortlich, ob es Zusammenstöße gibt.
Am schwerwiegendsten ist aber die Tatsache, dass die
Verschiebungskoordinaten wahrscheinlich neu errechnet oder
ausprobiert werden müssen, wenn sich an den Noten und deren
Layout später irgend etwas ändert. Die Eigenschaften, die für diese
Arte der manuellen Verschiebung verwendet werden können, sind:
-
extra-offset (zusätzlicher Abstand)
-
Diese Eigenschaft gehört zu jedem Layout-Objekt, das das
grob-interface
unterstützt. Sie braucht ein Zahlenpaar, das die exakte Verschiebung in horizontaler und vertikaler Richtung bezeichnet. Negative Zahlen verschieben das Objekt nach links oder unten. Die Einheit sind Notenlinienabstände. Die zusätzliche Positionierung wird vorgenommen, nachdem alle anderen Objekte platziert sind, weshalb ein Objekt irgendwohin verschoben werden kann, ohne den restlichen Satz zu beeinflussen. -
positions (Position)
-
Diese Eigenschaft ist am sinnvollsten, um die Steigung und die Höhe von Balken, Bögen und Triolenklammern anzupassen. Sie braucht ein Zahlenpaar, das die Position des rechten und linken Endes relativ zur Mittellinie des Notensystems bestimmt. Die Einheit sind Notenlinienabstände. Bögen allerdings können nicht beliebig weit weg positioniert werden. LilyPond erstellt zunächst eine Liste an möglichen Positionen für den Bogen und findet normalerweise die Version, die „am besten aussieht“. Wenn die
positions
-Eigenschaft verändert worden ist, wird der Bogen aus der Liste gewählt, der der gewünschten Position am nächsten kommt.
-
Ein bestimmtes Objekt hat vielleicht nicht alle dieser Eigenschaften. Darum ist es nötig, in der IR nachzuschlagen, welche Eigenschaften ein bestimmtes Objekt unterstützt.
Hier ist eine Liste an Objekten, die am wahrscheinlichsten an einer Kollision beteiligt sind, daneben findet sich die Bezeichnung des Objektes, mit der Sie es in der IR finden, um zu bestimmen, welche Eigenschaften benutzt werden können, um es zu verschieben.
Objekttyp | Objektbezeichnung |
---|---|
Articulationszeichen | Script |
Balken | Beam |
Dynamikzeichen (vertikal) | DynamicLineSpanner |
Dynamikzeichen (horizontal) | DynamicText |
Fingersatz | Fingering |
Übungs-/Textmarken | RehearsalMark |
Legatobögen | Slur |
Text z. B. ^"text" | TextScript |
Bindebögen | Tie |
N-tolen | TupletBracket |
[ << Die Ausgabe verbessern ] | [Anfang][Inhalt][Index] | [ Vorlagen >> ] |
[ < Kollision von Objekten ] | [ Nach oben : Kollision von Objekten ] | [ Überlappende Notation in Ordnung bringen > ] |