+@lilypond[quote,fragment,ragged-right,verbatim,relative=2]
+% This markup is short enough to fit without collision
+c2^"Tex"
+c''2
+R1
+% This is too long to fit, so it is displaced upwards
+c,,2^"Text"
+c''2
+R1
+% Turn off collision avoidance
+\once \override TextScript #'outside-staff-priority = ##f
+c,,2^"Long Text "
+c''2
+R1
+% Turn off collision avoidance
+\once \override TextScript #'outside-staff-priority = ##f
+\textLengthOn % and turn on textLengthOn
+c,,2^"Long Text " % Spaces at end are honored
+c''2
+@end lilypond
+
+
+@subheading Dynamics
+
+@cindex Verändern der Positionierung von Dynamikzeichen
+@cindex Dynamikzeichen: Positionierung verändern
+
+Dynamikbezeichnung wird üblicherweise unter dem System
+gesetzt, kann aber auch nach oben mit dem Befehl
+@code{dynamicUp} gezwungen werden. Die Bezeichnung
+wird vertikal relativ zu der Note positioniert, an die sie angefügt
+wurde. Sie wird vertikal variabel gesetzt in Bezug zu
+Innersystemobjekten wie Bögen oder Taktnummern. Damit
+können oft recht gute Resultate erreicht werden, wie im
+folgenden Beispiel:
+
+@lilypond[quote,fragment,ragged-right,verbatim,relative=1]
+\clef "bass"
+\key aes \major
+\time 9/8
+\dynamicUp
+bes4.~\f\< \( bes4 bes8 des4\ff\> c16 bes\! |
+ees,2.~\)\mf ees4 r8 |
+@end lilypond
+
+Wenn aber Noten und Dynamikzeichen sehr dicht beieinander
+stehen, positioniert die automatische Kollisionsvermeidung
+später kommende Dynamikzeichen weiter weg, was allerdings
+nicht immer die beste Möglichkeit ist, wie in dem folgenden,
+etwas gewollten Beispiel zu sehen ist:
+
+@lilypond[quote,fragment,ragged-right,verbatim,relative=2]
+\dynamicUp
+a4\f b\mf c\mp b\p
+@end lilypond
+
+@noindent
+Wenn eine ähnliche Situation in @qq{echter} Musik auftaucht,
+kann es nötig sein, die Noten etwas zu spreizen, damit die
+Dynamikzeichen alle auf der selben vertikalen Position
+gesetzt werden können. Dieses Verhalten war im Falle von
+Textbeschriftungen möglich mit dem @code{\textLengthOn}-Befehl,
+aber es gibt keinen entsprechenden Befehl für Dynamik. Wir
+müssen also unsere eigenen Befehle mit @code{\override}
+konstruieren.
+
+
+@subheading Grob sizing
+
+@cindex Grob, Größenveränderung
+@cindex Größenveränderung von grobs
+
+Zuallererst müssen wir lernen, wie die Größe von Grobs verändert
+wird. Alle Grobs besitzen einen Referenzpunkt, der
+benutzt wird, um ihre Position in Relation zu ihnen übergeordneten
+Objekten zu bestimmen. Dieser Punkt innerhalb des Grobs wird dann
+auf einer horizontalen Position (@code{X-offset}) und einer
+vertikalen Position (@code{Y-offset}) ausgerichtet, immer bezüglich
+des übergeordneten Objektes. Eine horizontale Strecke wird
+durch ein Zahlenpaar angegeben (@code{X-extent}), welche
+die linke und rechte Grenze relativ zum übergeordneten Objekt
+bezeichnen. Die vertikale Strecke wir genauso durch ein
+Zahlenpaar (@code{Y-extent}) definiert. Diese Eigenschaften
+gehören zu allen Grobs, die das
+@code{grob-interface} unterstützen.
+
+@cindex @code{extra-spacing-width}
+
+Standardmäßig haben Außersystemobjekte eine Länge von Null,
+so dass sie sich in horizontaler Richtung überlappen können. Das
+geschieht, indem dem linken Rand Unendlich zugewiesen wird
+und dem rechten Rand minus Undendlich (der Code der
+@code{extra-spacing-width}-(zusätzliche Positionierungslänge)-Eigenschaft
+lautet: @code{'(+inf.0 . -inf.0)}).
+Damit sich diese Objekte also horizontal nicht überschneiden, muss
+der Wert von @code{extra-spacing-width} auf
+@code{'(0 . 0)} gesetzt werden, sodass die wirkliche Länge eines
+Objektes zur Geltung kommt. Mit diesem Befehl wird das für
+Dynamik-Zeichen erledigt:
+
+@example
+\override DynamicText #'extra-spacing-width = #'(0 . 0)
+@end example
+
+@noindent
+Schauen wir uns an, wie es mit dem vorigen Beispiel funktioniert:
+
+@cindex DynamicText, Beispiel zur Veränderung
+@cindex extra-spacing-width-Eigenschaft, Beispiel
+
+@lilypond[quote,fragment,ragged-right,verbatim,relative=2]
+\dynamicUp
+\override DynamicText #'extra-spacing-width = #'(0 . 0)
+a4\f b\mf c\mp b\p
+@end lilypond
+
+@noindent
+Damit werden die Dynamik-Zeichen also wirklich nebeneinander
+gesetzt, aber es gibt noch zwei Probleme. Die Zeichen sollten
+etwas weiter außeinander stehen und es wäre gut, wenn sie alle
+den gleichen Abstand zum System hätte. Das erste Problem ist
+einfach behoben. Anstatt der @code{extra-spacing-width}-Eigenschaft
+Null zuzuweisen, können wir auch einen etwas größeren Wert
+wählen. Die Einheit wird gemessen in dem Abstand zwischen zwei
+Notenlinien, es scheint also gut, den rechten und linken
+Rand eine halbe Einheit zu vergrößern:
+
+@cindex DynamicText, Beispiel zur Veränderung
+@cindex extra-spacing-width-Eigenschaft, Beispiel
+
+@lilypond[quote,fragment,ragged-right,verbatim,relative=2]
+\dynamicUp
+% Extend width by 1 staff space
+\override DynamicText #'extra-spacing-width = #'(-0.5 . 0.5)
+a4\f b\mf c\mp b\p
+@end lilypond
+
+@noindent
+Das sieht schon besser aus, aber es wäre noch besser, wenn die
+Dynamik-Zeichen alle an einer Linie ausgerichtet wären, anstatt
+höher und tiefer zu sitzen. Das kann mit der
+@code{staff-padding}-Eigenschaft erreicht werden,
+die wir uns im folgenden Abschnitt genauer anschauen werden.
+
+
+
+@node Collisions of objects
+@section Collisions of objects
+
+@menu
+* Moving objects::
+* Fixing overlapping notation::
+* Real music example::
+@end menu
+
+@node Moving objects
+@subsection Moving objects
+
+@cindex Verschieben von überschneidenden Objekten
+@cindex Verschieben von Zusammenstößen
+@cindex Zusammenstöße vermeiden
+@cindex Objekte, verschieben von Zusammestößen
+@cindex Vermeiden von Zusammenstößen
+
+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:
+
+@enumerate
+@item
+Die @strong{Richtung} eines der überlappenden Objekte kann
+geändert werden, indem die vordefinierten Befehle für
+Innersystemobjekte verwendet werden, wie beschrieben in
+@ref{Within-staff objects}. 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.
+
+@item
+Die @strong{Objekteigenschaft}, die LilyPond benutzt um die
+Layout-Objekte zu platzieren, können mit dem
+@code{\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 @code{\override} sich auf
+alle Fälle eines Objekttyps bezieht. Zu diesen Eigenschaften
+gehören:
+
+@itemize
+
+@item
+@code{direction} (Richtung)
+
+Das wurde schon detailliert behandelt, siehe
+@ref{Within-staff objects}.
+
+@item
+@code{padding}, @code{left-padding},
+@code{right-padding}, @code{staff-padding} (Verschiebung)
+
+@cindex left-padding-Eigenschaft
+@cindex Padding-Eigenschaft
+@cindex right-padding-Eigenschaft
+@cindex staff-padding-Eigenschaft
+@cindex Verschieben (padding)
+@cindex Füllung (padding)
+@cindex padding (Füllung)
+
+Wenn ein Objekt platziert wird, bestimmt der Wert seiner
+@code{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 der @code{padding}-Wert
+des Objektes, das platziert werden soll, der @code{padding}-Wert
+des Objektes, das schon gesetzt wurde, wird hingegegen
+ignoriert. Abstände mit @code{padding} können zu
+allen Objekten hinzugefügt werden, die das
+@code{side-position-interface} unterstützen.
+
+Anstelle von @code{padding} wird die Position von
+Versetzungszeichengruppen durch die Eigenschaften
+@code{left-padding} und @code{right-padding} bestimmt.
+Diese Eigenschaften werden im
+@code{AccidentalPlacement}-(Versetzungszeichen-Positionierungs)-Objekt
+gefunden, das sich innerhalb des @strong{Staff}-Kontexts
+befindet. Während des Notensatzes werden die Notenköpfe
+zuerst gesetzt und dann die Versetzungszeichen, wenn denn
+welche gesetzt werden, durch die @code{right-padding}-Eigenschaft
+auf die linke Seite der Notenköpfe positioniert, um die Entfernung
+von den Notenköpfen zu bestimmen. Also nur die
+@code{right-padding}-(Verschiebung nach rechts)-Eigenschaft des
+@code{AccidentalPlacement}-Objekts hat Einfluss auf die
+Positionierung der Versetzungszeichen.
+
+Die @code{staff-padding}-(Verschiebung zum System)-Eigenschaft
+ist sehr ähnlich wie die @code{padding}-Eigenschaft:
+@code{padding} bestimmt den Minimalabstand zwischen
+einem Objekt, das das @code{side-position-interface}
+unterstützt, und dem nächsten anderen Objekt (normalerweise
+die Note oder Notenlinie); @code{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. @code{staff-padding} hat also @strong{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 @code{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 die @code{padding}-Eigenschaften
+nicht unbedingt in dem Objekt selber befinden, schauen Sie
+also auch in Objekten nach, die offensichtlich Ähnlichkeiten
+haben.
+
+Alle @code{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.
+
+@item
+@code{self-alignment-X} (Selbstpositionierung)
+
+@cindex self-alignment-X-Eigenschaft
+@cindex Selbstpositionierung von Objekten
+@cindex Ausrichtung von Objekten
+
+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 @code{self-alignment-interface}
+unterstützen. Das sind üblicherweise Objekte, die Text
+enthalten. Die möglichen Werte der Eigenschaft sind @code{LEFT},
+@code{RIGHT} oder @code{CENTER}. Alternativ kann ein
+numerischer Wert zwischen @code{-1} und @code{+1}
+bestimmt werden: @code{-1} heißt linksbündig, @code{+1}
+rechtsbündig und Zahlen dazwischen bewegen den Text
+schrittweise von links nach rechts. Zahlen größer als
+@code{1} können angegeben werdne, um den Text
+noch weiter nach links zu bewegen, oder weniger als @code{-1},
+um ihn weiter nach rechts zu schieben. Eine Änderung
+um @code{1} des Wertes entspricht einer Bewegung um
+die halbe Textbreite.
+
+@item
+@code{extra-spacing-width} (zusätzliche Breite)
+
+@cindex extra-spacing-width-Eigenschaft
+
+Diese Eigenschaft steht für alle Objekte zur Verfügung, die
+das @code{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. Das
+@code{accidental}-(Versetzungszeichen)-Objekt etwa beachtet
+nur erste Zahl für die linke Ausdehnung.
+
+@item
+@code{staff-position} (Notensystempositionierung)
+
+@cindex staff-position-Eigenschaft
+
+@code{staff-position} ist eine Eigenschaft des
+@code{staff-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.
+
+@item
+@code{force-hshift} (vertikale Verschiebung erzwingen)
+
+@cindex force-hshift-Eigenschaft
+
+Eng beeinander stehende Noten in einem Akkord oder Noten, die zum
+gleichen Zeitpunkt in unterschiedlichen Stimmen stehen, werden
+in zwei oder manchmal auch mehr Kolumnen gesetzt, um Kollisionen
+zu umgehen. Diese Kolumnen werden Notenkolumnen genannt;
+ein @code{NoteColumn}-Objekt wird erstellt um die Noten in den
+Kolumnen zu setzen.
+
+Die @code{force-hshift}-(erzwinge horizontale Verschiebung)-Eigenschaft
+ist eine Eigenschaft von @code{NoteColumn} (bzw. vom
+@code{note-column-interface}). Eine Veränderung dieser Eigenschaft
+macht es möglich, eine Notenkolumne zu verschieben, dabei gilt als
+Einheit die Breite einer Kolumne, also die Breite des Notenkopfes der
+ersten Stimme. Diese Eigenschaft kann in Situationen benutzt werden,
+in denen die normalen @code{\shiftOn}-Befehle (siehe auch
+@ref{Explicitly instantiating voices}) das Problem nicht beseitigen.
+Diese Eigenschaft ist besser in solchen Fällen zu verwenden als die
+@code{extra-offset}-Eigenschaft, 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.
+
+@end itemize
+
+@item
+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 errechnent 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:
+
+@table @code
+@item extra-offset (zusätzlicher Abstand)
+
+@cindex extra-offset-Eigenschaft
+
+Diese Eigenschaft gehört zu jedem Layout-Objekt, das das
+@code{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.
+
+@item positions (Position)
+
+@cindex positions-Eigenschaft
+
+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 @qq{am besten aussieht}. Wenn die
+@code{positions}-Eigenschaft verändert worden ist, wird der
+Bogen aus der Liste gewählt, der der gewünschten Position am
+nächsten kommt.
+@end table
+
+@end enumerate
+
+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.
+
+@multitable @columnfractions .5 .5
+@headitem Objekttyp @tab Objektbezeichnung
+@item Articulationszeichen @tab @code{Script}
+@item Balken @tab @code{Beam}
+@item Dynamikzeichen (vertikal) @tab @code{DynamicLineSpanner}
+@item Dynamikzeichen (horizontal) @tab @code{DynamicText}
+@item Fingersatz @tab @code{Fingering}
+@item Übungs-/Textmarken @tab @code{RehearsalMark}
+@item Legatobögen @tab @code{Slur}
+@item Text z. B. @code{^"text"} @tab @code{TextScript}
+@item Bindebögen @tab @code{Tie}
+@item N-tolen @tab @code{TupletBracket}
+@end multitable
+
+
+@node Fixing overlapping notation
+@subsection Fixing overlapping notation
+
+Hier soll nun gezeigt werden, wie die Eigenschaften, die im
+vorigen Abschnitt vorgestellt wurden, bei der Problemlösung
+mit sich überschneidenden Notationselementen eingesetzt
+werden können.
+
+@subheading padding property
+
+@cindex padding (Verschiebungs-Eigenschaft)
+@cindex Überschneidende Notation korrigieren
+@cindex Korrigieren von überschneidender Notation
+
+Die @code{padding}-(Verschiebungs-)Eigenschaft kann benutzt
+werden, um den Abstand zwischen Symbolen zu vergößern (oder
+zu verkleinern), die über oder unter den Noten gesetzt werden.
+
+@cindex Script, Beispiel zur Veränderung
+@cindex Verschiebungs-Eigenschaft, Beispiel
+@cindex padding (Verschiebuns-Eigenschaft), Beispiel
+
+@lilypond[quote,fragment,relative=1,verbatim]
+c2\fermata
+\override Script #'padding = #3
+b2\fermata
+@end lilypond
+
+@cindex MetronomMark, Beispiel zur Veränderung
+@cindex Verschiebungs-Eigenschaft, Beispiel
+@cindex padding (Verschiebuns-Eigenschaft), Beispiel
+
+@lilypond[quote,fragment,relative=1,verbatim]
+% This will not work, see below:
+\override MetronomeMark #'padding = #3
+\tempo 4=120
+c1
+% This works:
+\override Score.MetronomeMark #'padding = #3
+\tempo 4=80
+d1
+@end lilypond
+
+Im zweiten Beispiel können Sie sehen, wie wichtig es ist den richtigen
+Kontext anzugeben. Weil das @code{MetronomeMark}-Objekt
+sich im @code{Score}-Kontext befindet, werden Eigenschaftsänderungen
+im @code{Voice}-Kontext einfach ignoriert. Für mehr Einzelheiten siehe
+@ruser{Modifying properties}.
+
+Wenn die @code{padding}-Eigenschaft eines Objektes erhöht wird, das
+sich in einem Stapel von Objekten befindet, die nach ihrer
+Außersystempriorität (@code{outside-staff-priority}) positioniert werden,
+werden das Objekt und alle, die sich außerhalb davon befinden,
+entsprechend verschoben.
+
+@subheading left-padding and right-padding
+
+@cindex left-padding-Eigenschaft (Verschiebung nach links)
+@cindex Verschiebung nach rechts oder links
+@cindex right-padding-Eigenschaft (Verschiebung nach rechts)
+
+Die @code{right-padding}-Eigenschaft wirkt sich auf den Abstand
+zwischen einem Versetzungszeichen und der Note, auf das sie sich
+bezieht, aus. Sie wird nicht sehr oft benötigt, aber das folgende
+Beispiel zeigt eine Situation, wo man sie braucht. Das Beispiel
+stellt eine Situation dar, in der in einem Akkord sowohl H als auch
+B vorkommen sollen. Damit keine Ambiguität ensteht, sollen beide
+Noten ein Zeichen haben, also ein B und ein Auflösungszeichen.
+Hier einige Notationsversuche:
+
+@lilypond[quote,fragment,ragged-right,verbatim,relative=2]
+<b bes>
+<b! bes>
+<b? bes>
+@end lilypond
+
+@noindent
+Keiner davon funktioniert, und der zweite und dritte weist
+hässliche Zusammenstöße zwischen den Zeichen auf.
+
+Eine Möglichkeit, das Gewünschte zu erhalten, ist es den
+Stencil des Versetzungszeichens zu ersetzen mit einer
+Textbeschriftung (Markup), die sowohl das B als auch das
+Aulösungszeichen enthält:
+
+@cindex Versetzungszeichen, Beispiel zur Veränderung
+@cindex Accidental, Beispiel zur Veränderung
+@cindex Text-Eigenschaft, Beispiel
+@cindex stencil-Eigenschaft, Beispiel
+@cindex AccidentalPlacement, Beispiel zur Veränderung
+@cindex right-padding-Eigenschaft, Beispiel
+@cindex Verschiebung nach rechts (rigth-padding), Beispiel
+
+@lilypond[quote,ragged-right,verbatim]
+naturalplusflat = \markup { \natural \flat }
+\relative c'' {
+ \once \override Accidental
+ #'stencil = #ly:text-interface::print
+ \once \override Accidental #'text = #naturalplusflat
+ \once \override Score.AccidentalPlacement #'right-padding = #1.5
+ <b bes>
+}
+@end lilypond
+
+@noindent
+Dazu ist aber ein @code{\override}-Befehl für den Stencil des
+Versetzungszeichens nötig, der bisher nicht behandelt wurde.
+Der Typ des Stencils muss eine Prozedur sein, die hier geändert
+wurde, um den Inhalt der @code{text}-Eigenschaft des
+@code{Accidental} (Versetzungszeichen)-Objekts zu setzen,
+die dann so definiert wird, dass sie ein Auflösungszeichen gefolgt
+von einem B enthält. Diese werden dann mit @code{right-padding}
+weiter nach rechts verschoben.
+
+
+@subheading staff-padding property
+
+@cindex staff-padding-Eigenschaft
+@cindex Objekte an der Grundlinie ausrichten
+@cindex Ausrichten von Objekten an der Grundlinie
+
+@code{staff-padding} (Verschiebung zum Notensystem) kann
+verwendet werden um Objekte wie Dynamikzeichen an einer
+Grundlinie auf einer bestimmten Höhe über dem System
+auszurichten, sodass sie nicht von der Position der Note abhängen,
+an die sie angehängt sind. Diese Verschiebung ist keine Eigenschaft
+von @code{DynamicText}, sondern von @code{DynamicLineSpanner}.
+Das liegt daran, dass die Grundlinie sich gleicherweise auf
+@strong{alle} Dynamikzeichen beziehen soll, also auch auf die,
+die als Strecker erstellt wurden. Hier also die Lösung, die Dynamikzeichen
+aus dem Beispiel des vorigen Abschnitts auszurichten:
+
+@cindex DynamikText, Beispiel zur Veränderung
+@cindex extra-spacing-width-Eigenschaft, Beispiel
+@cindex DynamicLineSpanner, Beispiel zur Veränderung
+@cindex staff-padding-Eigenschaft, Beispiel
+
+@lilypond[quote,fragment,ragged-right,verbatim,relative=2]
+\dynamicUp
+% Extend width by 1 unit
+\override DynamicText #'extra-spacing-width = #'(-0.5 . 0.5)
+% Align dynamics to a base line 2 units above staff
+\override DynamicLineSpanner #'staff-padding = #2
+a4\f b\mf c\mp b\p
+@end lilypond
+
+
+@subheading self-alignment-X property
+
+@cindex self-alignment-X-Eigenschaft
+
+Das nächste Beispiel zeigt, wie man den Zusammenstoß
+einer Fingersatzbezeichnung mit einem Notenhals
+verhindern kann, indem die rechte Ecke an dem
+Referenzpunkt der abhängigen Note angeordnet wird:
+
+@cindex StringNumber, Beispiel zur Veränderung
+
+@lilypond[quote,fragment,ragged-right,verbatim,relative=3]
+\voiceOne
+< a \2 >
+\once \override StringNumber #'self-alignment-X = #RIGHT
+< a \2 >
+@end lilypond
+
+
+@subheading staff-position property
+
+@cindex staff-position-Eigenschaft
+@cindex Notensystem-Position-Eigenschaft
+@cindex Kollision von Objekten im System
+@cindex Zusammenstöße von Objekten im System
+
+Vieltaktpausen in einer Stimmen können mit Noten in anderen
+Stimmen kollidieren. Da diese Pausen zentriert zwischen den
+Taktlinien gesetzt werden, würde es für LilyPond eine recht große
+Anstrengung bedeuten herauszufinden, welche Noten mit ihnen
+zusammenstoßen könnten, denn alle Kollisionsvermeidung
+für Noten und Pausen funktioniert nur für Noten bzw. Pausen, die
+zur selben Zeit auftreten. Hier ein typisches Beispiel für eine
+Kollision dieser Art:
+
+@lilypond[quote,verbatim,fragment,ragged-right, relative=1]
+<< {c c c c} \\ {R1} >>
+@end lilypond
+
+Die beste Lösung ist es, die Ganztaktpause nach unten zu
+schieben, denn die Pause ist in der zweiten Stimme. Per
+Standardeinstellung für die zweite Stimme (@code{\voiceTwo},
+also die zweite Stimme in der
+@code{<<@{...@} \\ @{...@}>>}-Konstruktion) wird die
+Position auf dem System (@code{staff-position}) auf -4
+für @code{MultiMeasureRest}, in unserem Beispiel muss
+es also bspw. auf die Position @code{-8} gesetzt werden,
+d.h. vier halbe Notenlinienabstände weiter nach unten:
+
+@cindex MultiMeasureRest, Beispiel zur Veränderung
+@cindex Ganztaktpausen, Beispiel zur Veränderung
+@cindex staff-position-Eigenschaft, Beispiel
+
+@lilypond[quote,verbatim,fragment,ragged-right, relative=1]
+<<
+ {c c c c}
+\\
+ \override MultiMeasureRest #'staff-position = #-8
+ {R1}
+>>
+@end lilypond
+
+Das ist besser, als etwa @code{extra-offset} zu benutzen, denn
+in unserem Fall wird die Hilfslinie der Pause automatisch gesetzt.
+
+
+@subheading extra-offset property
+
+@cindex extra-offset-Eigenschaft
+@cindex Zusätzlicher Abstand, Positionierung
+@cindex Positionierung von Objekten
+@cindex Objekte, Positionierung
+
+Die @code{extra-offset}-Eigenschaft bietet vollständige Kontrolle
+über die Positionierung von Objekten in horizontaler und vertikaler
+Richtung.
+
+Im Beispiel unten ist das zweite Fingersatzzeichen (@code{Fingering}) etwas nach
+links und 1,8 Notenlinienabstände nach unten verschoben:
+
+@cindex Fingersatz, Beispiel zur Veränderung
+@cindex extra-offset-Eigenschaft, Beispiel
+
+@lilypond[quote,fragment,relative=1,verbatim]
+\stemUp
+f-5
+\once \override Fingering
+ #'extra-offset = #'(-0.3 . -1.8)
+f-5
+@end lilypond
+
+
+@subheading positions property
+
+@cindex positions-Eigenschaft
+@cindex Kontrolle über Triolen, Bögen und Balken manuell
+@cindex manuelle Kontrolle über Triolen, Bögen, Balken
+@cindex Balken, manuelle Kontrolle
+@cindex Bögen, manuelle Kontrolle
+@cindex Legatobögen, manuelle Kontrolle
+@cindex Phrasierungsbögen, manuelle Kontrolle
+@cindex Triollen-Klammer, manuelle Kontrolle
+
+Die @code{positions}-Eigenschaft erlaubt die Kontrolle von Position und
+Steigung von Balken, Legato- und Phrasierungsbögen sowie Triolenklammern.
+Hier ein Beispiel, in der ein unschöner Phrasierungsbogen auftritt, weil
+er den Bogen des Vorschlags vermeidet:
+
+@lilypond[quote,verbatim,fragment,ragged-right,relative=1]
+r4 \acciaccatura e8\( d8 c ~c d c d\)
+@end lilypond
+
+@noindent
+Man könnte einfach den Phrasierungsbogen oberhalb der Noten setzen, und
+das wäre auch die beste Lösung:
+
+@cindex Phrasierungsbogen, Beispiel zur Veränderung
+@cindex positions-Eigenschaft, Beispiel
+@cindex Positionierung, Beispiel
+
+@lilypond[quote,verbatim,fragment,ragged-right,relative=1]
+r4
+\phrasingSlurUp
+\acciaccatura e8\( d8 c ~c d c d\)
+@end lilypond
+
+@noindent
+aber wenn es einen Grund geben sollte, warum das nicht geht, könnte
+man das linke Ende des Phrasierungsbogens etwas nach unten verschieben,
+indem man die @code{positions}-Eigenschaft einsetzt. Damit
+verschwindet auch die etwas unschöne Form:
+
+@lilypond[quote,verbatim,fragment,ragged-right,relative=1]
+r4
+\once \override PhrasingSlur #'positions = #'(-4 . -3)
+\acciaccatura
+e8\( d8 c ~c d c d\)
+@end lilypond
+
+Hier noch ein weiteres Beispiel aus der Einleitung von Chopins
+Prelude Op. 28 Nr. 2, das untere System. Wie zu sehen ist,
+stößt der Balken mit den oberen Noten zusammen:
+
+@lilypond[quote,verbatim,fragment,ragged-right]
+{
+\clef "bass"
+<< {b,8 ais, b, g,} \\ {e, g e, g} >>
+<< {b,8 ais, b, g,} \\ {e, g e, g} >>
+}
+@end lilypond
+
+@noindent
+Das kann manuell gelöst werden, indem beide Enden des Balkens
+von ihrer Position 2 Notenlinienabstände über der Mittellinie
+hochgeschoben werden, etwa auf 3:
+
+@cindex Balken, Beispiel zur Veränderung
+@cindex positions-Eigenschaft, Beispiel
+@cindex Positionierung, Beispiel
+
+@lilypond[quote,verbatim,fragment,ragged-right]
+{
+ \clef "bass"
+ <<
+ \override Beam #'positions = #'(3 . 3)
+ {b,8 ais, b, g,}
+ \\
+ {e, g e, g}
+ >>
+ << {b,8 ais, b, g,} \\ {e, g e, g} >>
+}
+@end lilypond
+
+@noindent
+Hier ist zu beobachten, dass die Veränderung sich auch auf die
+weiteren Achtelbalken der ersten Stimme auwirkt, während sie keine
+Auswirkung auf die Balken der zweiten Stimme hat.
+
+@subheading force-hshift property
+
+@cindex force-hshift-Eigenschaft
+@cindex Vertikale Verschiebung erzwingen
+
+@c FIXME: formatting stuff (ie not important right now IMO)
+@c @a nchor Chopin finally corrected TODOgp
+
+An diesem Punkt können wir den letzten Feinschliff an unserem
+Chopin-Beispiel vornhemen, das wir behandelt haben in
+@ref{I'm hearing Voices}. Wir hatten es in folgende Form
+gebracht:
+
+@lilypond[quote,verbatim,fragment,ragged-right]
+\new Staff \relative c'' {
+ \key aes \major
+ <<
+ { c2 aes4. bes8 } \\
+ { aes2 f4 fes } \\
+ { \voiceFour
+ <ees c>2
+ des2
+ }
+ >> |
+ <c ees aes c>1 |
+}
+@end lilypond
+
+@noindent
+Die unteren zwei Noten des ersten Akkords (also diein der
+dritten Stimme) sollten nicht aus der Notenkolumne der
+oberen zwei Noten weggeschoben werden. Um das zu
+korrigieren, setzen wir @code{force-hshift}, das eine
+Eigenschaft von
+@code{NoteColumn} ist, für diese Noten auf Null.
+Die untere Note des zweiten Akkordes wird am besten
+direkt rechts von den oberen Noten gesetzt. Das erreichen
+wir, indem wir @code{force-hshift} für diese Note auf
+0.5 setzen, also eine halbe Notenkopfbreite nach rechts von
+der Kolumne der oberen Noten aus.
+
+Hier das Endergebnis:
+
+@cindex Notenkolumne, Beispiel zur Veränderung
+@cindex force-hshift-Eigenschaft, Beispiel
+@cindex vertikale Verschiebung, Beispiel
+
+@lilypond[quote,verbatim,fragment,ragged-right]
+\new Staff \relative c'' {
+ \key aes \major
+ <<
+ { c2 aes4. bes8 } \\
+ { aes2 f4 fes } \\
+ { \voiceFour
+ \once \override NoteColumn #'force-hshift = #0 <ees c>2
+ \once \override NoteColumn #'force-hshift = #0.5 des2
+ }
+ >> |
+ <c ees aes c>1 |
+}
+@end lilypond
+
+
+@node Real music example
+@subsection Real music example
+
+Das Kapitel zu Optimierungen soll mit einem komplizierten Beispiel
+beendet werden, in dem verschiedene Optimierungen vorgenommen
+werden müssen, bis das Ergebnis gut ausssieht. Das Beispiel wurde
+ganz bewusst gewählt um die Benutzung der Notationsreferenz
+zu zeigen, wenn ungewöhnliche Notationsprobleme gelöst werden
+müssen. Es ist nicht repräsentativ für normale Notationsprojekte,
+lassen Sie sich also nicht durch dieses Beispiel entmutigen! Zum
+Glück sind Probleme wie die hier gezeigten nicht sehr häufig.
+
+Das Beispiel stammt aus Chopins Premiére Ballade, Op. 23, Takte
+6--9, der Übergang vom Lento der Einleitung zum Moderato.
+Hier zunächst der Satz, wie er aussehen soll, allerdings ohne
+Dynamik, Fingersatz und Pedalbezeichnung, um das Beispiel nicht
+zu kompliziert zu machen.
+
+@c This example should not be indexed
+@lilypond[quote,ragged-right]
+rhMusic = \relative c'' {
+ r2
+ c4.\( g8 |
+ \once \override Tie #'staff-position = #3.5
+ bes1~ |
+ \bar "||"
+ \time 6/4
+ \mergeDifferentlyHeadedOn
+ \mergeDifferentlyDottedOn
+ bes2.^\markup {\bold "Moderato"} r8
+ <<
+ {c,8[ d fis bes a] | }
+ \\
+ % Reposition the c2 to the right of the merged note
+ {c,8~ \once \override NoteColumn #'force-hshift = #1.0
+ % Move the c2 out of the main note column so the merge will work
+ \shiftOnn c2}
+ \\
+ % Stem on the d2 must be down to permit merging
+ {s8 \stemDown \once \override Stem #'transparent = ##t d2}
+ \\
+ {s4 fis4.}
+ >>
+ \mergeDifferentlyHeadedOff
+ \mergeDifferentlyDottedOff
+ g2.\)
+}
+
+lhMusic = \relative c' {
+ r2 <c g ees>2( |
+ <d g, d>1)\arpeggio |
+ r2. d,,4 r4 r |
+ r4
+}
+
+\score {
+ \new PianoStaff <<
+ \new Staff = "RH" <<
+ \key g \minor
+ \rhMusic
+ >>
+ \new Staff = "LH" <<
+ \key g \minor
+ \clef "bass"
+ \lhMusic
+ >>
+ >>
+}
+@end lilypond
+
+Die erste Überlegung ist, dass das System für die rechte Hand
+im dritten Takt vier Stimmen braucht. Das sind die fünf
+Achtelnoten mit Balken, das übergebundene C, die Halbe D, die
+mit der Achtel D verschmolzen ist, und die punktierte Viertel
+Fis, die auch mit einer Achtelnote verschmolzen ist. Alles
+andere ist eine einzige Stimme, es ist also am einfachsten, die
+Stimmen nur zeitweise zu erstellen, wenn sie auftreten. Wenn
+Sie vergessen haben, wie man das anstellt, schauen Sie sich
+nochmal den Abschnitt @ref{I'm hearing Voices} an. Wir
+wollen anfange, indem wir die Noten in zwei Variablen
+notieren und dann die Systemstruktur in einer
+@code{\score}-Umgebung erstellen. Das ist, was LilyPond
+erstellt:
+
+@lilypond[quote,verbatim,ragged-right]
+rhMusic = \relative c'' {
+ r2 c4. g8 |
+ bes1~ |
+ \time 6/4
+ bes2. r8
+ % Start polyphonic section of four voices
+ <<
+ {c,8 d fis bes a | }
+ \\
+ {c,8~ c2 | }
+ \\
+ {s8 d2 | }
+ \\
+ {s4 fis4. | }
+ >>
+ g2.
+}
+
+lhMusic = \relative c' {
+ r2 <c g ees>2 |
+ <d g, d>1 |
+ r2. d,,4 r4 r |
+ r4
+}
+
+\score {
+ \new PianoStaff <<
+ \new Staff = "RH" <<
+ \key g \minor
+ \rhMusic
+ >>
+ \new Staff = "LH" <<
+ \key g \minor
+ \clef "bass"
+ \lhMusic
+ >>
+ >>
+}
+@end lilypond
+
+Alle Noten sind richtig, aber die Positionierung sehr
+verbesserungsbedürftig. Der Bindebogen stößt mit
+der veränderten Taktart zusammen, die Balkung im
+dritten Takt ist falsch, die Noten werden nicht
+verschmolzen und einige Notationselemente fehlen ganz.
+Behandeln wir zunächst die einfacheren Dinge. Der
+Balken kann durch eine manuelle Begrenzung einfach
+korrigiert werden, und auch der Legatobogen der linken
+Hand und der Phrasierungsbogen der rechten Hand
+sind schnell gesetzt, denn sie wurden schon in der
+Übung erklärt. Damit haben wir folgendes Notenbild: