[ < ] [ > ]   [ << ] [ Nach oben ] [ >> ]         [Anfang] [Inhalt] [Index] [ ? ]

4.4 Positionierung von Objekten

@translationof Placement of objects


[ < ] [ > ]   [ << ] [ Nach oben ] [ >> ]         [Anfang] [Inhalt] [Index] [ ? ]

4.4.1 Automatisches Verhalten

@translationof Automatic behavior

Es gibt Objekte der Notation, die zum Notensystem gehören, und andere, die außerhalb des Systems gesetzt werden müssen. Sie werden within-staff-Objekte bzw. outside-staff-Objekte genannt.

within-staff-Objekte werden innerhalb des Notensystems (engl. staff) gesetzt: Notenköpfe, Hälse, Versetzungszeichen usw. Ihre Position ist üblicherweise durch die notierte Musik bestimmt – sie werden vertikal auf bestimmten Linien notiert oder sind an andere Objekte gebunden, die vertikal festgelegt sind. Kollisionen von Notenköpfen, Hälsen und Versetzungszeichen werden normalerweise automatisch vermieden. Es gibt Befehle, um dieses automatische Verhalten zu verändern, wie unten gezeigt werden soll.

Objekte, die außerhalb des Notensystems gesetzt werden, sind unter Anderem Übungsmarkierungen, Text und Dynamikzeichen. LilyPonds Regel für ihre vertikale Positionierung lautet, sie so nah wie möglich am Notensystem zu setzen, aber nicht so nah, dass sie mit anderen Objekten kollidieren. Dabei wird die outside-staff-priority-(Priorität außerhalb des Notensystems)-Eigenschaft eingesetzt, um die Reihenfolge zu bestimmen, in denen Objekte gesetzt werden sollen.

Zuerst werden alle Innersystemobjekte von LilyPond gesetzt. Dann werden die Objekte außerhalb des Systems nach ihrer outside-staff-priority geordnet. Die outside-staff-Objekte werden dann nacheinander gesetzt, mit der niedrigsten Priorität beginnend, und so gesetzt, dass sie nicht mit anderen Objekten kollidieren, die schon gesetzt wurden. Wenn also zwei outside-staff-Objekte um den selben Platz streiten, wird das mit der geringeren outside-staff-priority näher am System gesetzt werden. Wenn zwei Objekte die selbe Priorität haben, wird das näher am System gesetzt, welches zuerst auftritt.

Im folgenden Beispiel haben alle Textbeschriftungen die gleiche Priorität (weil sie nicht explizit gesetzt worden ist). Beachten Sie, dass „Text3“ wieder dicht am System gesetzt wurde, weil er unter „Text2“ passt.

 
c''2^"Text1"
c''2^"Text2" |
c''2^"Text3"
c''2^"Text4" |

[image of music]

Notensysteme werden in den Standardeinstellungen auch so dicht beieinander gesetzt wie es möglich ist (mit einem minimalen Abstand). Wenn Noten sehr weit aus einem System herausragen, zwingen sie das nächste System weiter weg, wenn eine Kollision drohen würde. Im nächsten Beispiel sehen Sie, wie Noten auf zwei Systemen „ineinander greifen“.

 
<<
  \new Staff {
    \relative { c'4 a, }
  }
  \new Staff {
    \relative { c''''4 a, }
  }
>>

[image of music]


[ < ] [ > ]   [ << ] [ Nach oben ] [ >> ]         [Anfang] [Inhalt] [Index] [ ? ]

4.4.2 within-staff (Objekte innerhalb des Notensystems)

@translationof Within-staff objects

Es wurde schon gezeigt, wie die Befehle \voiceXXX die Richtung von Bögen, Fingersatz und allen anderen Objekten beeinflusst, die von der Richtung der Notenhälsen abhängen – siehe Stimmen explizit beginnen. Diese Befehle sind nötig, wenn polyphone Musik geschrieben wird, damit sich die einzelnen Melodielinien klar abzeichnen. Es kann aber von Zeit zu Zeit nötig sein, dieses automatische Verhalten zu verändern. Das kann entweder für ganze Abschnitte, aber genauso auch nur für eine einzelne Note vorgenommen werden. Die Eigenschaft, die die Richtung bestimmt, ist die direction-Eigenschaft eines jeden Layout-Objekts. Es soll erst erklärt werden, was sie bewirkt und dann eine Anzahl an fertigen Befehlen für die üblicheren Situationen präsentiert werden, mit denen Sie gleich loslegen können.

Manche Layout-Objekte, wie Legato- und Bindebögen, biegen sich oder zeigen entweder nach oben oder nach unten, andere, wie Hälse und Fähnchen, verändern auch die Position rechts oder links, je nach der Richtung, in die sie zeigen. Das wird automatisch berücksichtigt, wenn die direction-Eigenschaft verändert wird.


[ < ] [ > ]   [ << ] [ Nach oben ] [ >> ]         [Anfang] [Inhalt] [Index] [ ? ]

The direction-Eigenschaft (Richtung)

@translationof The direction property

Das folgende Beispiel zeigt im ersten Takt die Standardeinstellung für Legatobögen, die bei hohen Noten oberhalb, bei tiefen Noten indessen unterhalb platziert werden. Im nächsten Takt werden beide Bögen nach unten gezwungen, im darauf folgenden Takt nach oben, um schließlich wieder auf den Standard eingestellt zu werden.

 
a'4( g') c''( a') |
\override Slur.direction = #DOWN
a'4( g') c''( a') |
\override Slur.direction = #UP
a'4( g') c''( a') |
\revert Slur.direction
a'4( g') c''( a') |

[image of music]

Wir haben hier die Konstanten DOWN und UP eingesetzt. Sie haben die Werte -1 bzw. +1, und diese numerischen Werte können ebenso benutzt werden. Auch der Wert 0 kann in manchen Fällen benutzt werden. Er bedeutet für die Legatobögen das gleiche wie UP, für einige andere Objekte jedoch „zentriert“. Es gibt hierzu die Konstante CENTER, die den Wert 0 hat.

Es gibt aber einfachere Befehle, die normalerweise benutzt werden. Hier eine Tabelle der häufigsten. Die Bedeutung des Befehls wird erklärt, wenn sie nicht selbstverständlich ist.

Runter/LinksRauf/RechtsRückgängigWirkung
\arpeggioArrowDown\arpeggioArrowUp\arpeggioNormalArpeggio mit Pfeil nach unten, oben oder ohne Pfeil
\dotsDown\dotsUp\dotsNeutralRichtung der Verschiebung eines Punktes, um Notenlinien zu vermeiden
\dynamicDown\dynamicUp\dynamicNeutralPosition der Dynamik-Bezeichnung relativ zum System
\phrasingSlurDown\phrasingSlurUp\phrasingSlurNeutralBefehl für Richtung von Phrasierungsbögen
\slurDown\slurUp\slurNeutralBefehl für Richtung von Legatobögen
\stemDown\stemUp\stemNeutralBefehl für Richtung von Hälsen
\textSpannerDown\textSpannerUp\textSpannerNeutralPosition von Textbeschriftungen, die als Strecker eingegeben werden
\tieDown\tieUp\tieNeutralBefehl für Richtung von Bindebögen
\tupletDown\tupletUp\tupletNeutralBefehl für Richtung von Klammern/Zahlen der N-tolen

Die neutralen/normalen Varianten dieser Befehle verwenden intern \revert und können daher nicht mit einem vorangestellten \once benutzt werden. Wenn Sie die Wirkung eines der anderen Befehle (die intern \override verwenden) auf eine einzige Noten begrenzen wollen, müssen Sie ihm ein \once voranstellen, genauso wie Sie es auch bei einem expliziten \override machen würden.

Falls nur ein einziges Layout Objekt nach oben oder unten gezwungen werden soll, können auch die Richtungsindikatoren ^ oder _ verwendet werden:

 
a'4( g') c''( a') |
a'4^( g') c''_( a') |

[image of music]


[ < ] [ > ]   [ << ] [ Nach oben ] [ >> ]         [Anfang] [Inhalt] [Index] [ ? ]

Fingersatz

@translationof Fingering

Die Positionierung von Fingersatz kann auch durch den Wert seiner direction-Eigenschaft beeinflusst werden, aber eine Veränderung von direction hat keinen Einfluss auf Akkorde. es gibt auch hier besondere Befehle, mit denen der Fingersatz von einzelnen Noten in Akkorden kontrolliert werden kann, wobei mögliche Positionen über, unter der Note und rechts bzw. links von ihr sind.

Zunächst die Wirkungsweise von direction auf den Fingersatz: im ersten Takt der Standard, dann die Wirkung von DOWN (runter) und UP (hinauf).

 
\relative {
  c''4-5 a-3 f-1 c'-5 |
  \override Fingering.direction = #DOWN
  c4-5 a-3 f-1 c'-5 |
  \override Fingering.direction = #UP
  c4-5 a-3 f-1 c'-5 |
}

[image of music]

Eine Beeinflussung der direction-Eigenschaft ist jedoch nicht die einfachste Art, Fingersatzbezeichnungen manuell über oder unter das System zu setzen. Normalerweise bietet es sich an, _ oder ^ anstelle von - vor der Fingersatz-Zahl zu benutzen. Hier das vorherigen Beispiel mit dieser Methode:

 
\relative {
  c''4-5 a-3 f-1 c'-5 |
  c4_5 a_3 f_1 c'_5 |
  c4^5 a^3 f^1 c'^5 |
}

[image of music]

Die direction-Eigenschaft wirkt sich nicht auf Akkorde aus, während die Präfixe _ und ^ funktionieren. Standardmäßig wird der Fingersatz automatisch entweder über oder unter dem Akkord gesetzt:

 
\relative {
  <c''-5 g-3>4
  <c-5 g-3 e-2>4
  <c-5 g-3 e-2 c-1>4
}

[image of music]

aber das kann manuell geändert werden, um einzelne Fingersatzanweisungen nach oben oder unten zu zwingen:

 
\relative {
  <c''-5 g-3 e-2 c-1>4
  <c^5 g_3 e_2 c_1>4
  <c^5 g^3 e^2 c_1>4
}

[image of music]

Noch bessere Kontrolle über die Positionierung von Fingersatz für einzelne Noten in einem Akkord ist mit dem \set fingeringOrientations-Befehl möglich. Die Syntax lautet:

 
\set fingeringOrientations = #'([up] [left/right] [down])

\setwird benutzt, weil fingeringOrientations eine Eigenschaft des Voice-Kontextes ist, erstellt und eingesetzt vom New_fingering_engraver.

Die Eigenschaft kann als Wert eine Liste mit einem bis drei Einträgen haben. Damit wird bestimmt, ob Fingersatz oberhalb gesetzt werden kann (wenn up in der Liste auftaucht), darunter (wenndown auftaucht), links (wenn left auftaucht) oder rechts (wenn right auftaucht). Wenn andererseits ein Wert nicht auftaucht, wir auch kein Fingersatz in dieser Richtung gesetzt. LilyPond nimmt diese Beschränkung als Bedingung und errechnet die besten Positionen für die Noten des nächsten Akkordes. Die seitliche Positionierung kann nur auf einer Seite des Akkordes geschehen, nicht auf beiden gleichzeitig, es kann also nur entweder left oder right auftreten, nicht beide gleichzeitig.

Achtung: Damit eine einzelne Note mit diesem Befehl beeinflusst werden kann, muss sie als ein „Ein-Noten-Akkord“ geschrieben werden, indem einfache spitze Klammern um die Note positioniert werden.

Hier ein paar Beispiele:

 
\relative {
  \set fingeringOrientations = #'(left)
  <f'-2>4
  <c-1 e-2 g-3 b-5>4
  \set fingeringOrientations = #'(left)
  <f-2>4
  <c-1 e-2 g-3 b-5>4 |
  \set fingeringOrientations = #'(up left down)
  <f-2>4
  <c-1 e-2 g-3 b-5>4
  \set fingeringOrientations = #'(up left)
  <f-2>4
  <c-1 e-2 g-3 b-5>4 |
  \set fingeringOrientations = #'(right)
  <f-2>4
  <c-1 e-2 g-3 b-5>4
}

[image of music]

Wenn die Fingersatzbezeichnung zu gedrungen aussieht, kann auch die Schriftgröße (font-size) verringert werden. Der Standardwert kann aus dem Fingering-Objekt in der IR entnommen werden, er ist -5, versuchen wir es also mit -7.

 
\relative {
  \override Fingering.font-size = #-7
  \set fingeringOrientations = #'(left)
  <f'-2>4
  <c-1 e-2 g-3 b-5>4
  \set fingeringOrientations = #'(left)
  <f-2>4
  <c-1 e-2 g-3 b-5>4 |
  \set fingeringOrientations = #'(up left down)
  <f-2>4
  <c-1 e-2 g-3 b-5>4
  \set fingeringOrientations = #'(up left)
  <f-2>4
  <c-1 e-2 g-3 b-5>4 |
  \set fingeringOrientations = #'(right)
  <f-2>4
  <c-1 e-2 g-3 b-5>4
}

[image of music]


[ < ] [ > ]   [ << ] [ Nach oben ] [ >> ]         [Anfang] [Inhalt] [Index] [ ? ]

4.4.3 Objekte außerhalb des Notensystems

@translationof Outside-staff objects

Objekte außerhalb des Notensystems werden automatisch gesetzt, um Kollisionen zu vermeiden. Es gibt eine ganze Reihe von Möglichkeiten die Platzierung zu beeinflussen, sollte die Automatik kein optimales Resultat produzieren.


[ < ] [ > ]   [ << ] [ Nach oben ] [ >> ]         [Anfang] [Inhalt] [Index] [ ? ]

Die outside-staff-priority-Eigenschaft

@translationof The outside-staff-priority property

Objekten mit einem geringeren Prioritätswert der Eigenschaft outside-staff-priority werden näher an das System gesetzt, und andere Objekte außerhalb des Systems werden dann soweit vom System entfernt gesetzt, dass Zusammenstöße vermieden werden. Die outside-staff-priority-Eigenschaft ist im grob-interface definiert und ist also eine Eigenschaft von allen Layout-Objekten. Standardmäßig ist sie für alle Objekte auf falsch (#f) gesetzt; dieser Wert wird in einen numerischen Wert dem Objekt entsprechend geändert, wenn das Objekt für die Notenausgabe erstellt wird. Die Tabelle unten zeigt die Standardwerte für die meistbenutzten outside-staff-Objekte.

Achtung bei einigen ungewöhnlichen Objektbezeichnungen: Strecker-Objekte werden automatisch erstellt, um die vertikale Position von Grobs zu kontrollieren, die an unterschiedlichen musikalischen Momenten beginnen und enden (könnten). Wenn also outside-staff-priority des darunterliegenden Grobs geändert wird, hat das keine Auswirkung. Zum Beispiel bringt das Ändern von outside-staff-priority des Hairpin-(Dynamikklammer)-Objekts keine Änderung in der vertikalen Position von Crescendo-Klammern – anstatt dessen muss outside-staff-priority des hiermit assoziierten DynamicLineSpanne-Objekts geändert werden. Dieser \override-Befehl muss zu Beginn des Streckers gesetzt werden, welcher womöglich mehrere verbundene Dynamikklammern und Dynamikbezeichnung beinhaltet.

Layout-ObjektPrioritätKontrolliert Position von:
RehearsalMark1500Übungszeichen
MetronomeMark1000Metronomzeichen
VoltaBracketSpanner600Volta-Wiederholungsklammern
TextScript450Textbeschriftung
MultiMeasureRestText450Text über Ganztaktpausen
OttavaBracket400Ottava (Oktavierungsklammern)
TextSpanner350Text-Strecker
DynamicLineSpanner250Alle Dynamik-Bezeichnungen
BarNumber 100Taktzahlen
TrillSpanner50Triller-Strecker

Hier ein Beispiel, das die Standardpositionierung von einigen Objekten zeigt.

 
% Set details for later Text Spanner
\override TextSpanner.bound-details.left.text
    = \markup { \small \bold Slower }
% Place dynamics above staff
\dynamicUp
% Start Ottava Bracket
\ottava #1
c''4 \startTextSpan
% Add Dynamic Text and hairpin
c''4\pp\<
c''4
% Add Text Script
c''4^Text |
c''4 c''
% Add Dynamic Text and terminate hairpin
c''4\ff c'' \stopTextSpan |
% Stop Ottava Bracket
\ottava #0
c'4 c' c' c' |

[image of music]

Dieses Beispiel zeigt auch, wie man Text-Strecker erstellt, d.h. Text mit Bindestrichen, der sich über eine bestimmte Länge erstreckt. Der Strecker beginnt mit dem \startTextSpan-Befehl und endet mit dem \stopTextSpan-Befehl, und das Format des Textes wird mit dem \override TextSpanner-Befehl bestimmt. Mehr Einzelheiten siehe (notation)Text mit Verbindungslinien in Abschnitt ‘Text mit Verbindungslinien’ in Notationsreferenz.

Im Beispiel wird auch gezeigt, wie Oktavierungsklammern (Ottava) erstellt werden.

Wenn die Standardwerte der outside-staff-priority nicht die Positionierung hervorrufen, die Sie wünschen, kann die Priorität eines jeden Objektes geändert werden. Als Beispiel wollen wir zeigen, wie sich die Oktavierungsklammer unter den Textstrecker des vorigen Beispiels setzen lässt. Wir müssen nur die Priorität des OttavaBracket-Objektes in der IR oder der Tabelle oben herausfinden und einen kleineren Wert angeben als der Wert, den das TextSpanner-(Strecker)-Objekt bekommt, wobei noch daran zu denken ist, dass OttavaBracket im Staff-Kontext erstellt wird:

 
% Set details for later Text Spanner
\override TextSpanner.bound-details.left.text
    = \markup { \small \bold Slower }
% Place dynamics above staff
\dynamicUp
% Place following Ottava Bracket below Text Spanners
\once \override Staff.OttavaBracket.outside-staff-priority = #340
% Start Ottava Bracket
\ottava #1
c''4 \startTextSpan
% Add Dynamic Text
c''4\pp
% Add Dynamic Line Spanner
c''4\<
% Add Text Script
c''4^Text |
c''4 c''
% Add Dynamic Text
c''4\ff c'' \stopTextSpan |
% Stop Ottava Bracket
\ottava #0
c'4 c' c' c' |

[image of music]

Beachten Sie, dass einige dieser Objekte, insbesondere Taktzahlen, Metronomzeichen und Übungszeichen standardmäßig im Score-Kontext zu Hause sind; benutzen Sie also den richtigen Kontext, wenn sie deren Einstellungen verändern wollen.

Legatobögen werden als Innersystem-Objekte klassifiziert, aber sie erscheinen oft auch über dem System, wenn die Noten, an die sie verbunden sind, sehr hoch im System notiert sind. Dadurch können Außersystem-Objekte, wie Artikulationszeichen, zu hoch gerückt werden. Die avoid-slur-Eigenschaft hat nur eine Auswirkung, wenn auch die outside-staff-priority auf #f gesetzt ist. Alternativ kann die outside-staff-priority des Legatobogens auf einen numerischen Wert gesetzt werden, sodass er mit anderen Außersystem-Objekten anhand dieses Wertes gesetzt wird. Hier ein Beispiel, das die beiden Möglichkeiten veranschaulicht:

 
\relative c'' {
  c4( c^\markup { \tiny \sharp } d4.) c8 |
  c4(
    \once \override TextScript.avoid-slur = #'inside
    \once \override TextScript.outside-staff-priority = ##f
    c4^\markup { \tiny \sharp } d4.) c8 |
  \once \override Slur.outside-staff-priority = #500
    c4( c^\markup { \tiny \sharp } d4.) c8 |
}

[image of music]

Eine Änderung der outside-staff-priority kann auch dazu benutzt werden, die vertikale Platzierung von individuellen Objekten zu kontrollieren, auch wenn das Ergebnis nicht immer optimal ist. Im nächsten Beispiel soll „Text3“ oberhalb von „Text4“ gesetzt werden, das Beispiel wurde behandelt in Automatisches Verhalten. Der Wert der Priorität muss also für die Eigenschaft TextScript entweder in der IR oder in der Tabelle oben festgestellt werden und dann die Priorität für „Text3“ höher eingestellt werden:

 
c''2^"Text1"
c''2^"Text2" |
\once \override TextScript.outside-staff-priority = #500
c''2^"Text3"
c''2^"Text4" |

[image of music]

Damit wird zwar „Text3“ ganz richtig über „Text4“ platziert, aber auch über „Text2“, und „Text4“ wird jetzt weiter unten gesetzt. Eigentlich sollten ja alle diese Anmerkungen gleich weit vom System entfernt sein. Dazu muss offensichtlich horizontal etwas Platz gemacht werden. Das kann erreicht werden mit dem textLengthOn-(Textlänge an)-Befehl.


[ < ] [ > ]   [ << ] [ Nach oben ] [ >> ]         [Anfang] [Inhalt] [Index] [ ? ]

Der \textLengthOn-Befehl (Textlänge berücksichtigen)

@translationof The textLengthOn command

Standardmäßig wird Text, der mit dem Beschriftungsbefehl \markup bzw. Äquivalenten erstellt wird, kein zusätzlicher Platz in Bezug auf die Positionierung der Noten zugestanden. Der \textLengthOn-Befehl ändert dieses Verhalten, so dass die Noten gespreizt werden, wenn die Breite des Textes es erfordert:

 
\textLengthOn  % Cause notes to space out to accommodate text
c''2^"Text1"
c''2^"Text2" |
c''2^"Text3"
c''2^"Text4" |

[image of music]

Dieses Verhalten wird mit dem \textLengthOff-Befehl rückgängig gemacht. Alternativ kann auch \once zusammen mit \textLengthOn benutzt werden, um die Auswirkung auf einen einzigen musikalisches Zeitpunkt zu begrenzen. Das entsprechende Verhalten bzgl. des horizontalen Platzes für Übungzeichen und Tempomarkierungen kann hiervon unabhängig durch die Befehle \markLengthOn und \markLengthOff analog gesteuert werden.

Textbeschriftung vermeidet auch Noten, die über das System hinausstehen. Wenn das nicht gewünscht ist, kann die automatische Verschiebung nach oben hin auch vollständig ausgeschaltet werden, indem die Priorität auf #f gesetzt wird. Hier ein Beispiel, wie eine Textbeschriftung mit diesen Noten reagiert:

 
\relative {
  % This markup is short enough to fit without collision
  c''2^"Tex" c'' |
  R1 |

  % This is too long to fit, so it is displaced upwards
  c,,2^"Text" c'' |
  R1 |

  % Turn off collision avoidance
  \once \override TextScript.outside-staff-priority = ##f
  c,,2^"Long Text   " c'' |
  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 |
}

[image of music]


[ < ] [ > ]   [ << ] [ Nach oben ] [ >> ]         [Anfang] [Inhalt] [Index] [ ? ]

Positionierung von Dynamikzeichen

@translationof Dynamics placement

Dynamikbezeichnung wird üblicherweise unter dem System gesetzt, kann aber auch nach oben mit dem Befehl \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:

 
\relative {
  \clef "bass"
  \key aes \major
  \time 9/8
  \dynamicUp
  bes4.~\f\< \( bes4 bes8 des4\ff\> c16 bes\! |
  ees,2.~\)\mf ees4 r8 |
}

[image of music]

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:

 
\dynamicUp
\relative { a'4\f b\mf a\mp b\p }

[image of music]

Wenn eine ähnliche Situation in „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 \textLengthOn-Befehl, aber es gibt keinen entsprechenden Befehl für Dynamik. Wir müssen also unsere eigenen Befehle mit \override konstruieren.


[ < ] [ > ]   [ << ] [ Nach oben ] [ >> ]         [Anfang] [Inhalt] [Index] [ ? ]

Verändern der Größe von grobs

@translationof Grob sizing

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 (X-offset) und einer vertikalen Position (Y-offset) ausgerichtet, immer bezüglich des übergeordneten Objektes. Eine horizontale Strecke wird durch ein Zahlenpaar angegeben (X-extent), welche die linke und rechte Grenze relativ zum übergeordneten Objekt bezeichnen. Die vertikale Strecke wir genauso durch ein Zahlenpaar (Y-extent) definiert. Diese Eigenschaften gehören zu allen Grobs, die das grob-interface unterstützen.

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 Unendlich, d.h. die extra-spacing-width-(zusätzliche Positionierungslänge)-Eigenschaft wird auf den Wert '(+inf.0 . -inf.0) gesetzt. Damit sich diese Objekte also horizontal nicht überschneiden, muss der Wert von extra-spacing-width überschrieben werden um den Objekten ein wenig zusätzlich Platz zuzuweisen. Die Einheit ist der Abstand zwischen zwei Notenlinien, also sollte es reichen die linke und rechte Kante je eine halbe Einheit nach links bzw. rechts zu verschieben:

 
\override DynamicText.extra-spacing-width = #'(-0.5 . 0.5)

Schauen wir uns an, wie es mit dem vorigen Beispiel funktioniert:

 
\dynamicUp
% Extend width by 1 staff space
\override DynamicText.extra-spacing-width = #'(-0.5 . 0.5)
\relative { a'4\f b\mf a\mp b\p }

[image of music]

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 staff-padding-Eigenschaft erreicht werden, die wir uns im folgenden Abschnitt genauer anschauen werden.


[ < ] [ > ]   [ << ] [ Nach oben ] [ >> ]

Dieses Dokument wurde erzeugt von gub am 13. Juli 2020 durch texi2html 1.82.

Andere Sprachen: English, català, česky, español, français, italiano, 日本語, nederlands.
Über die automatische Sprachauswahl.