nächstes: Überlappende Notation in Ordnung bringen, aufwärts: Kollision von Objekten
Es wird vielleicht eine Überraschung sein, aber LilyPond ist nicht perfekt. Einige Notationselemente können sich überschneiden. Das ist nicht schön, kann aber (in den meisten Fällen) sehr einfach korrigiert werden.
TODO: Mit den neuen Abstandseigenschaften seit Version 2.12 sind die jeweiligen Beispiele nicht mehr relevant. Sie zeigen jedoch immer noch machtvolle Eigenschaften von LilyPond und verbleiben deshalb in der Dokumentation, bis jemand bessere Beispiel zur Verfügung stellt.
% temporary code to break this example: \override TextScript #'outside-staff-priority = ##f e4^\markup{ \italic ritenuto } g b e
Die einfachste Lösung ist es, Abstände zwischen Objekt und Note zu vergrößern
(genauso auch für Fingersätze oder Dynamikzeichen). In
LilyPond wird das durch Veränderung der padding
(Füllungs)-Eigenschaft
erreicht, ihre Maßeinheit sind Notenzeilenabstände. Für die meisten
Objekte ist der Wert etwa 1.0 oder weniger (das unterscheidet sich
von Objekt zu Objekt). Hier soll der Abstand vergrößert werden, also
scheint 1.5 eine gute Wahl.
% temporary code to break this example: \override TextScript #'outside-staff-priority = ##f \once \override TextScript #'padding = #1.5 e4^\markup{ \italic ritenuto } g b e
Das sieht besser aus, ist aber noch nicht groß genug. Nach einigen Experimenten wird darum 2.3 genommen für diesen Fall. Diese Zahl ist aber nur das Resultat einigen Probierens und persönlicher Geschmack. Probieren Sie selber ein wenig herum und entscheiden Sie nach eigenem Geschmack.
Die staff-padding
-Eigenschaft ist der vorigen sehr ähnlich.
padding
entscheidet über den minimalen Abstand zwischen einem
Objekt und dem nächsten anderen Objekt (meistens eine Note oder
Notenzeile); staff-padding
entscheidet über den minimalen
Abstand zwischen einem Objekt und dem Notensystem. Das ist nur ein
kleiner Unterschied, aber hier wird das Verhalten demonstriert:
% temporary code to break this example: \override TextScript #'outside-staff-priority = ##f c4^"piu mosso" b a b \once \override TextScript #'padding = #4.6 c4^"piu mosso" d e f \once \override TextScript #'staff-padding = #4.6 c4^"piu mosso" fis a g \break c'4^"piu mosso" b a b \once \override TextScript #'padding = #4.6 c4^"piu mosso" d e f \once \override TextScript #'staff-padding = #4.6 c4^"piu mosso" fis a g
Eine andere Lösung ermöglicht vollständige Kontrolle über die Positionierung
eines Objektes sowohl horizontal als auch vertikal. Das wird mit der
extra-offset
(Zusätzlicher-Abstand)-Eigenschaft erreicht. Das
ist etwas komplizierter und kann andere Probleme mit sich ziehen. Wenn
Objekte mit dieser Eigenschaft verschoben werden, heißt das, dass
LilyPond sie erst setzt, nachdem alle anderen Objekte positioniert
worden sind. Deshalb können sich die Objekte am Ende überlagern.
% temporary code to break this example: \override TextScript #'outside-staff-priority = ##f \once \override TextScript #'extra-offset = #'( 1.0 . -1.0 ) e4^\markup{ \italic ritenuto } g b e
Bei Verwendung von extra-offset
bestimmt die erste Zahl über die
horizontale Verschiebung (nach links ist negativ), die zweite Zahl
bestimmt die vertikale Verschiebung (nach oben ist positiv). Nach einigen
Experimenten wurden hier folgende Werte für gut befunden:
% temporary code to break this example: \override TextScript #'outside-staff-priority = ##f \once \override TextScript #'extra-offset = #'( -1.6 . 1.0 ) e4^\markup{ \italic ritenuto } g b e
Auch diese Zahlen sind nur Resultat einigen Herumprobierens und Vergleichens der Ergebnisse. Sie wollen den Text vielleicht etwas höher oder etwas mehr nach links setzen. Versuchen Sie es selber und vergleichen Sie das Ergebnis.
Eine letzte Warnung: in diesem Kapitel haben wir den Befehl
\once \override TextScript ...
benutzt. Dieser Befehl verändert die Anzeige des Textes für die nächste
Note. Wenn die Note keinen Text zugeordnet hat, wird auch nichts
verändert (und es wird nicht nach dem nächsten Text gesucht).
Um das Verhalten zu verändern, so dass alles, was nach dem Befehl
kommt, verändert wird, müssen Sie den Befehl \once
weglassen.
Um die Veränderung zu stoppen, benutzen Sie den Befehl \revert
.
Das wird genauer im Kapitel
Der override-Befehl erklärt.
% temporary code to break this example: \override TextScript #'outside-staff-priority = ##f c4^"piu mosso" b \once \override TextScript #'padding = #4.6 a4 b c4^"piu mosso" d e f \once \override TextScript #'padding = #4.6 c4^"piu mosso" d e f c4^"piu mosso" d e f \break \override TextScript #'padding = #4.6 c4^"piu mosso" d e f c4^"piu mosso" d e f \revert TextScript #'padding c4^"piu mosso" d e f
Der override-Befehl, Übliche Optimierungen.
Diese Seite ist für LilyPond-2.11.58 (Entwicklungszweig).
Fehler bitte an http://post.gmane.org/post.php?group=gmane.comp.gnu.lilypond.bugs melden.
Ihre Vorschläge für die Dokumentation sind willkommen.