]> git.donarmstrong.com Git - lilypond.git/commitdiff
Merge branch 'lilypond/translation'
authorFrancisco Vila <francisco.vila@hispalinux.es>
Thu, 9 Oct 2008 11:04:17 +0000 (13:04 +0200)
committerFrancisco Vila <francisco.vila@hispalinux.es>
Thu, 9 Oct 2008 11:04:17 +0000 (13:04 +0200)
1  2 
Documentation/de/user/tweaks.itely

index c7bcae1d333b27c54a772857ed5971f8fdfad066,ca0ec676754397d463b04af75b0873d909b2d84f..62ca00eb8376a2f61531bf2ea92188f3a62df4ef
@@@ -1,7 -1,7 +1,7 @@@
  @c -*- coding: utf-8; mode: texinfo; -*-
  @c This file is part of lilypond-learning.tely
  @ignore
-     Translation of GIT committish: 3121682025660b6c85fbf3f22bb9cd8396699ad1
+     Translation of GIT committish: 550152ed5d5015d13abf2af83b2e040f996a66a4
  
      When revising a translation, copy the HEAD committish of the
      version that you are working on.  See TRANSLATION for details.
@@@ -488,7 -488,7 +488,7 @@@ aus der Referenz zu entnehmen, die Sie 
  Beachten Sie, dass die Referenz der Interna nur auf Englisch
  existiert. Um die Eigenschaftsbezeichnung eines bestimmten
  Objektes zu finden, können Sie das Glossar (siehe
 -@rglosnamed{Music Glossary,Musikglossar})
 +@rglosnamed{Top,Musikglossar})
   verwenden, in dem
  die englischen Begriffe in viele andere Sprachen übersetzt sind.
  
@@@ -831,7 -831,9 +831,9 @@@ oder @code{font-shape}. Andere sind bes
  die an Eigenschaften übergeben werden können, wie
  @code{italic}. Im Unterschied hierzu gibt es auch beliebige
  Zeichenketten, die immer mit Anführungszeichen, also
- als @code{"Zeichenkette"} auftreten.
+ als @code{"Zeichenkette"} auftreten. Für weitere
+ Einzelheiten zu Zeichenketten und Werten, siehe 
+ @ref{Scheme tutorial}.
  
  Gut, der @code{\override}-Befehl, mit dem der Gesangstext
  kursiv gesetzt wird, lautet:
@@@ -961,6 -963,10 +963,10 @@@ wenn sie in einem @code{\override}-Befe
    @tab @code{'#(#t #t #f)}
  @end multitable
  
+ @seealso
+ Handbuch zum Lernen: @ref{Scheme tutorial}.
  
  @node Appearance of objects
  @section Appearance of objects
@@@ -2199,332 -2205,1027 +2205,1027 @@@ die wir uns im folgenden Abschnitt gena
  
  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.
+ 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.
  
- @c  FIXME: find a better example for 5.1 Moving Objects.  -gp
- @c  yes, I want this TODO to be visible to end-users.  It's better
- @c  than having nothing at all.
- 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.
+ Es gibt im Grunde drei Herangehensweisen, überlappende Notation
+ zu verbessern.  Man sollte sie in der folgenden Reihenfolge 
+ anwenden:
  
- @lilypond[quote,fragment,ragged-right,verbatim,relative=2]
-   % temporary code to break this example:
-   \override TextScript #'outside-staff-priority = ##f
- e4^\markup{ \italic ritenuto } g b e
+ @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)
+ 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 (Verschiegungs-Eigenschaft)
+ 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.
+ @lilypond[quote,fragment,relative=1,verbatim]
+ c2\fermata
+ \override Script #'padding = #3
+ b2\fermata
  @end lilypond
  
- @cindex Abstände füllen
+ @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
  
- 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 @code{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.
+ 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]
-   % 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
+ <b bes>
+ <b! bes>
+ <b? bes>
  @end lilypond
  
- 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.
+ @noindent
+ Keiner davon funktioniert, und der zweite und dritte weist 
+ hässliche Zusammenstöße zwischen den Zeichen auf.
  
- Die @code{staff-padding}-Eigenschaft ist der vorigen sehr ähnlich. 
-  @code{padding} entscheidet über den minimalen Abstand zwischen einem
- Objekt und dem nächsten anderen Objekt (meistens eine Note oder 
- Notenzeile); @code{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:
+ 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:
  
- @lilypond[quote,fragment,ragged-right,verbatim,relative=2]
-   % 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
- @end lilypond
- @cindex Abstand, zusätzlicher
- @cindex extra-offset
- Eine andere Lösung ermöglicht vollständige Kontrolle über die Positionierung
- eines Objektes sowohl horizontal als auch vertikal. Das wird mit der 
- @code{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.
+ @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
+ @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:
  
  @lilypond[quote,fragment,ragged-right,verbatim,relative=2]
-   % 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
+ \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
  
- Bei Verwendung von @code{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:
  
- @lilypond[quote,fragment,ragged-right,verbatim,relative=2]
-   % 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
+ @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:
+ @lilypond[quote,fragment,ragged-right,verbatim,relative=3]
+ \voiceOne
+ < a \2 >
+ \once \override StringNumber #'self-alignment-X = #RIGHT
+ < a \2 >
  @end lilypond
  
- @noindent
- 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 
+ @subheading staff-position property
+ @cindex staff-position-Eigenschaft
+ @cindex Notensystem-Position-Eigenschaft
  
- @example
- \once \override TextScript @dots{}
- @end example
+ 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:
  
- @noindent 
- 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 @strong{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 @code{\once} weglassen. 
- Um die Veränderung zu stoppen, benutzen Sie den Befehl @code{\revert}.
- Das wird genauer im Kapitel
- @ruser{The \override command} erklärt.
+ @lilypond[quote,verbatim,fragment,ragged-right, relative=1]
+ << {c c c c} \\ {R1} >>
+ @end lilypond
  
- @lilypond[quote,fragment,ragged-right,verbatim,relative=3]
-   % 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
+ 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:
+ @lilypond[quote,verbatim,fragment,ragged-right, relative=1]
+ <<
+   {c c c c}
+ \\
+   \override MultiMeasureRest #'staff-position = #-8
+   {R1}
+ >>
  @end lilypond
  
- @seealso
+ Das ist besser, als etwa @code{extra-offset} zu benutzen, denn
+ in unserem Fall wird die Hilfslinie der Pause automatisch gesetzt.
  
- @ruser{The \override command}, @ref{Common tweaks}.
+ @subheading extra-offset property
+ @cindex extra-offset-Eigenschaft
+ @cindex Zusätzlicher Abstand, Positionierung
  
+ Die @code{extra-offset}-Eigenschaft bietet vollständige Kontrolle
+ über die Positionierung von Objekten in horizontaler und vertikaler
+ Richtung.
  
- @node Fixing overlapping notation
- @subsection Fixing overlapping notation
+ Im Beispiel unten ist das zweite Fingersatzzeichen (@code{Fingering}) etwas nach
+ links und 1,8 Notenlinienabstände nach unten verschoben:
+ @lilypond[quote,fragment,relative=1,verbatim]
+ \stemUp
+ f-5
+ \once \override Fingering
+     #'extra-offset = #'(-0.3 . -1.8)
+ f-5
+ @end lilypond
  
- Im Kapitel @ref{Moving objects} wurde gezeigt, wie man Texte 
- (@code{TextScript}-Objekte) verschiebt. Mit der gleichen 
- Technik können auch andere Objektklassen verschoben werden, 
- @code{TextScript} muss dann nur durch den Namen des Objektes 
- ersetzt werden.
  
- Um den Objektnamen zu finden, siehe die @q{@strong{see also}}-Hinweise 
- am Ende des jeweiligen Abschnittes. Zum Beispiel am Ende des
- Kapitels  @ruser{Dynamics} findet sich:
+ @subheading positions property
+ @cindex positions-Eigenschaft
  
- @quotation
- @seealso
+ 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:
  
- Programmreferenz: @rinternals{DynamicText}, @rinternals{Hairpin}.
- Vertikale Positionierung dieser Symbole wird mit
- @rinternals{DynamicLineSpanner} erreicht.
- @end quotation
+ @lilypond[quote,verbatim,fragment,ragged-right,relative=1]
+ r4  \acciaccatura e8\( d8 c ~c d c d\)
+ @end lilypond
  
  @noindent
- Um also Dynamik-Zeichen zu verschieben, muss
+ Man könnte einfach den Phrasierungsbogen oberhalb der Noten setzen, und
+ das wäre auch die beste Lösung:
  
- @example
- \override DynamicLineSpanner #'padding = #2.0
- @end example
+ @lilypond[quote,verbatim,fragment,ragged-right,relative=1]
+ r4
+ \phrasingSlurUp
+ \acciaccatura e8\( d8 c ~c d c d\)
+ @end lilypond
  
- benutzt werden. Es ist nicht genügend Platz, um jedes Objekt aufzulisten,
- aber die gebräuchlichsten finden sich hier:
+ @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
  
- @multitable @columnfractions .33 .66
- @headitem Objekttyp           @tab Objektbezeichnung
- @item Dynamikzeichen (vertikal)     @tab @code{DynamicLineSpanner}
- @item Dynamikzeichen (horizontal)   @tab @code{DynamicText}
- @item Bindebögen                      @tab @code{Tie}
- @item Phrasierungsbögen                     @tab @code{Slur}
- @item Artikulationszeichen             @tab @code{Script}
- @item Fingersatz                @tab @code{Fingering}
- @item Text, z. B. @code{^"text"}  @tab @code{TextScript}
- @item Übungs-/Textmarken    @tab @code{RehearsalMark}
- @end multitable
+ 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:
+ @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-Eigenschaft
+ @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:
+ @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
  
- @untranslated
+ 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 The following should appear as music without code
+ @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
+ }
  
- @c DEPRECATED SECTION
- @node Common tweaks
- @section Common tweaks
+ \score {
+   \new PianoStaff <<
+     \new Staff = "RH"  <<
+       \key g \minor
+       \rhMusic
+     >>
+     \new Staff = "LH" <<
+       \key g \minor
+       \clef "bass"
+       \lhMusic
+     >>
+   >>
+ }
+ @end lilypond
  
- Bestimmte Korrekturen sind so häufig, dass für sie schon fertige 
- angepasste Befehle bereitgestellt sind, so etwa 
-  @code{\slurUp} um einen Bindebogen oberhalb anzuzeigen oder 
- @code{\stemDown} um den Notenhals nach unten zu zwingen. Diese 
- Befehle sind im Teil Alles über die Notation unter dem
- entsprechenden Abschnitt erklärt.
+ 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:
  
- Eine vollständige Liste aller Veränderungen, die für jeden Objekttypen 
- (etwa Bögen oder Balken) zur Verfügung stehen, ist in der Programmreferenz
- dargestellt. Viele Layoutobjekte benutzen jedoch gleiche Eigenschaften, 
- die benutzt werden können, um eigene Einstellungen vorzunehmen.
+ @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.
+ }
  
- @itemize @bullet
+ lhMusic = \relative c' {
+   r2 <c g ees>2 |
+   <d g, d>1 |
+   r2. d,,4 r4 r |
+   r4
+ }
  
- @cindex padding
- @cindex Füllung
+ \score {
+   \new PianoStaff <<
+     \new Staff = "RH"  <<
+       \key g \minor
+       \rhMusic
+     >>
+     \new Staff = "LH" <<
+       \key g \minor
+       \clef "bass"
+       \lhMusic
+     >>
+   >>
+ }
+ @end lilypond
  
- @item
- @code{padding}-Eigenschaft kann gesetzt werden, um den Abstand zwischen 
- Symbolen über oder unter den Noten zu vergrößern oder zu verkleinern. 
- Das gilt für alle Objekte, die ein @code{side-position-interface} 
- besitzen, also unterscheiden, auf welcher Seite der Note sie sich befinden.
+ 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:
  
- @lilypond[quote,fragment,relative=1,verbatim]
- c2\fermata
- \override Script #'padding = #3
- b2\fermata
- @end lilypond
+ @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.\)
+ }
  
- @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
+ lhMusic = \relative c' {
+   r2 <c g ees>2( |
+   <d g, d>1) |
+   r2. d,,4 r4 r |
+   r4
+ }
  
- Im zweiten Beispiel ist es sehr wichtig zu wissen, welcher Kontext 
- für bestimmte Objekte zuständig ist. Weil das 
-  @code{MetronomeMark}-Objekt vom @code{Score}-Kontext gesetzt 
- wird, werden Veränderungen innerhalb des @code{Voice}-Kontextes 
- nicht berücksichtigt. Genauere Details im Kapitel
- @ruser{The \override command}.
+ \score {
+   \new PianoStaff <<
+     \new Staff = "RH"  <<
+       \key g \minor
+       \rhMusic
+     >>
+     \new Staff = "LH" <<
+       \key g \minor
+       \clef "bass"
+       \lhMusic
+     >>
+   >>
+ }
+ @end lilypond
  
- @cindex extra-offset
- @cindex zusätzlicher Abstand
- @cindex Abstand, zusätzlicher
+ Der erste Takt stimmt jetzt schon.  Der zweite Takt enthält ein
+ Arpeggio und wird mit einer doppelten Taktlinie beschlossen.
+ Wie können wir diese notieren, denn sie sind im Handbuch zum
+ Lernen nicht vorgekommen?  Hier brauchen wir jetzt die
+ Notationsreferenz.  Ein Blick in den Index zeigt uns die
+ Einträge für @qq{Arpeggio} und @qq{Taktlinien}: ein
+ Arpeggio also erstellt man mit dem Befehl @code{\arpeggio}
+ hinter einem Akkord und eine doppelte Taktlinie wird mit dem
+ Befehl @code{\bar "||"} erstellt.  Das ist einfach.  Als nächstes
+ muss der Zusammenstoß des Bindebogens mit der Taktartbezeichnung
+ gelöst werden.  Das geht am besten, indem wir den Bogen nach
+ oben verschieben.  Wie man Objekte verschiebt wurde schon
+ behandelt in @ref{Moving objects}, wo stand, dass Objekte
+ die
+ relativ zum System positioniert werden, verschoben werden 
+ können, indem ihre @code{staff-position}-Eigenschaft
+ geändert wird, die in halben Notenlienienabständen relativ
+ zur Mittellinie angegeben wird.  Dieser @code{\override}-Befehl
+ also, direkt vor die erste übergebundene Note gestellt, verschiebt
+ den Bindebogen (@code{tie}) 3,5 halbe Notenlinienabstände
+ über die Mittellinie:
+ @code{\once \override Tie #'staff-position = #3.5}
+ Damit ist auch der zweite Takt vollständig:
  
- @item
- Die @code{extra-offset}-Eigenschaft verschiebt Objekte, hier ist ein 
- Zahlenpaar zur Angabe der Positionierung erforderlich. Die erste Nummer bestimmt 
- die horizontale Bewegung, eine positive Zahl bewegt das Objekt nach rechts.
- Die zweite Zahl bestimmt die vertikale Bewegung, eine positive Zahl bewegt 
- das Objekt nach oben. Die 
- @code{extra-offset}-Eigenschaft läuft auf unterster Ebene ab: Die 
- Formatierungsmaschine ist sich der Veränderungen nicht bewusst.
+ @lilypond[quote,verbatim,ragged-right]
+ rhMusic = \relative c'' {
+   r2 c4.\( g8 |
+   \once \override Tie #'staff-position = #3.5
+   bes1~ |
+   \bar "||"
+   \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.\)
+ }
  
- Im folgenden Beispiel wird die zweite Fingersatzbezeichnung etwas nach 
- links verschoben und 1,8 Notenzeilenabstände nach unten:
+ lhMusic = \relative c' {
+   r2 <c g ees>2( |
+   <d g, d>1)\arpeggio |
+   r2. d,,4 r4 r |
+   r4
+ }
  
- @lilypond[quote,fragment,relative=1,verbatim]
- \stemUp
- f-5
- \once \override Fingering
-     #'extra-offset = #'(-0.3 . -1.8)
- f-5
+ \score {
+   \new PianoStaff <<
+     \new Staff = "RH"  <<
+       \key g \minor
+       \rhMusic
+     >>
+     \new Staff = "LH" <<
+       \key g \minor
+       \clef "bass"
+       \lhMusic
+     >>
+   >>
+ }
  @end lilypond
  
- @item
- Die Verwendung der @code{transparent}-Eigenschaft druckt das entsprechende Objekt 
- mit @qq{unsichtbarer Druckerschwärze}: Das Objekt wird nicht angezeigt, aber 
- sein Verhalten bleibt bestehen. Das Objekt nimmt weiterhin Platz ein, es nimmt 
- teil an Überschneidungen und deren Auflösung durch das Programm, Bögen und Balken 
- können daran angebunden werden.
+ In Takt drei beginnt der Moderato-Abschnitt.  In der
+ Übung wurde behandelt, wie man fetten Text mit dem
+ @code{\markup}-Befehl eingibt, es ist also einfach, das
+ @qq{Moderato} hinzuzufügen.  Wie aber werden Noten
+ verschmolzen?  Hier nehmen wir wieder die Notationsreferenz
+ zu Hilfe.  Die Suche nach @qq{Verschmelzen} (engl. merge)
+ im Index führt uns zu den Befehlen um Noten mit
+ unterschiedlichen Köpfen und unterschiedlichen Punkten
+ zu verschmelzen in @ruser{Collision resolution}.  In unserem
+ Beispiel müssen sowohl unterschiedliche Köpfe also auch
+ unterschiedliche Punktierung verschmolzen werden, wir
+ brauchen also die Befehle
  
- @cindex transparente Objekte
- @cindex Entfernen von Objekten
- @cindex Verstecken von Objekten
- @cindex unsichtbare Objekte
- Das nächste Beispiel zeigt, wie man unterschiedliche Stimmen mit 
- Bindebögen verbinden kann. Normalerweise können Bindebögen nur 
- zwei Noten der selben Stimme verbinden. Indem aber ein Bogen in einer 
- anderen Stimme erstellt wird,
+ @example
+ \mergeDifferentlyHeadedOn
+ \mergeDifferentlyDottedOn
+ @end example
  
- @lilypond[quote,fragment,relative=2]
- << {
-   b8~ b8\noBeam
- } \\ {
-   b[ g8]
- } >>
- @end lilypond
+ @noindent
+ aus der Notationsreferenz, die wir an den Beginn unseres
+ Abschnittes stellen und
+ @example
+ \mergeDifferentlyHeadedOff
+ \mergeDifferentlyDottedOff
+ @end example
  
  @noindent
- und dann der erste Hals nach oben unsichtbar gemacht wird, scheint der 
- Bindebogen die Stimme zu wechseln:
+ um das Verhalten wieder auszuschalten. Das sieht so aus:
  
+ @lilypond[quote,verbatim,ragged-right]
+ rhMusic = \relative c'' {
+   r2 c4.\( g8 |
+   \once \override Tie #'staff-position = #3.5
+   bes1~ |
+   \bar "||"
+   \time 6/4
+   bes2.^\markup {\bold "Moderato"} r8
+   \mergeDifferentlyHeadedOn
+   \mergeDifferentlyDottedOn
+   % Start polyphonic section of four voices
+   <<
+     {c,8[ d fis bes a] | }
+   \\
+     {c,8~ c2 | }
+   \\
+     {s8 d2 | }
+   \\
+     {s4 fis4. | }
+   >>
+   \mergeDifferentlyHeadedOff
+   \mergeDifferentlyDottedOff
+   g2.\)
+ }
  
- @lilypond[quote,fragment,relative=2,verbatim]
- << {
-   \once \override Stem #'transparent = ##t
-   b8~ b8\noBeam
- } \\ {
-   b[ g8]
- } >>
+ 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
  
- Damit der Hals den Bogen nicht zu sehr verkleinert, wird seine 
- Länge (@code{length}) auf den Wert @code{8} gesetzt:
+ Mit diesen Veränderungen wurden die beiden Fis-Noten 
+ verschmolzen, aber nicht die zwei Ds.  Warum nicht?  Die
+ Antwort befindet sich im gleicher Abschnitt der Notationsreferenz:
+ Noten, die verschmolzen werden, müssen Hälse in entgegengesetzte
+ Richtungen aufweisen und zwei Noten können nicht verschmolzen
+ werden, wenn eine dritte Noten in der gleichen Kolumne
+ stört.  In unserem Fall weisen beide Hälse nach oben und es
+ befindet sich zur gleichen Zeit auch noch eine dritte Note, das C.
+ Wie die Richtung von Hälsen geändert wird, wissen wir schon:
+ mit @code{\stemDown}, und in der Notationsreferenz findet
+ sich auch Information, wie das C verschoben werden kann: mit
+ dem @code{\shift}-Befehl.  Aber welcher von ihnen?  Das C
+ befindet sich in der zweiten Stimme, die @qq{shift off} hat,
+ die zwei Ds sind in den Stimmen eins und drei, die @qq{shift
+ off} bzw. @qq{shift on} haben.  Das C muss also noch eine
+ Stufe weiter verschoben werden mit @code{\shiftOnn}, damit
+ es die Verschmelzung der Ds nicht stört.  Das sieht jetzt so
+ aus:
  
+ @lilypond[quote,verbatim,ragged-right]
+ rhMusic = \relative c'' {
+   r2 c4.\( g8 |
+   \once \override Tie #'staff-position = #3.5
+   bes1~ |
+   \bar "||"
+   \time 6/4
+   bes2.^\markup {\bold "Moderato"} r8
+   \mergeDifferentlyHeadedOn
+   \mergeDifferentlyDottedOn
+   % Start polyphonic section of four voices
+   <<
+     {c,8[ d fis bes a] | }
+   \\
+     % Move the c2 out of the main note column so the merge will work
+     {c,8~ \shiftOnn c2 | }
+   \\
+     % Stem on the d2 must be down to permit merging
+     {s8 \stemDown d2 | }
+   \\
+     {s4 fis4. | }
+   >>
+   \mergeDifferentlyHeadedOff
+   \mergeDifferentlyDottedOff
+   g2.\)
+ }
  
- @lilypond[quote,fragment,relative=2,verbatim]
- << {
-   \once \override Stem #'transparent = ##t
-   \once \override Stem #'length = #8
-   b8~ b8\noBeam
- } \\ {
-   b[ g8]
- } >>
+ 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
  
- @end itemize
+ Fast schon geschafft.  Nur noch ein Problem ist übrig: Der Hals nach
+ unten des verschmolzenen sollte nicht da sein, und das C sähe
+ besser auf der rechten Seite des Ds aus.  Beides können wir mit den
+ gelernten Optimierungsmethoden erreichen. Den Hals machen
+ wir durchsichtig und das C verschieben wir mit der
+ @code{force-hshift}-Eigenschaft.  Hier ist das Endergebnis:
  
- @cindex Veränderungen von Abständen
- @cindex Optimierung von Abständen
- @cindex Abstände
+ @lilypond[quote,verbatim,ragged-right]
+ rhMusic = \relative c'' {
+   r2
+   c4.\( g8 |
+   \once \override Tie #'staff-position = #3.5
+   bes1~ |
+   \bar "||"
+   \time 6/4
+   bes2.^\markup {\bold "Moderato"} r8
+   \mergeDifferentlyHeadedOn
+   \mergeDifferentlyDottedOn
+   <<
+     {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
  
- Abstände in LilyPond werden in Notenzeilenabständen
- (@code{staff-space}) gemessen, während die meisten Dicke-Eigenschaften 
- auf mit der Notenliniendicke korrespondieren. Eine Eigenschaften 
- verhalten sich anders, etwa die Dicke von Balken ist an die 
- Notenzeilenabstände gekoppelt. Mehr Information findet sich 
- im relevanten Teil der Programmreferenz.
  
  @node Further tweaking
  @section Further tweaking
  @node Other uses for tweaks
  @subsection Other uses for tweaks
  
- @untranslated
+ @cindex Transparente Objekte
+ @cindex Entfernen von Objekten
+ @cindex Verstecken von Objekten
+ @cindex Unsichtbare Objekte
+ @cindex transparent-Eigenschaft, Benutzung
+ @cindex Objekte, unsichtbar machen
+ @cindex Objekte, entfernen
+ @cindex Noten zwischen Stimmen überbinden
+ @cindex Überbinden von Noten zwischen Stimmen
+ @subheading Tying notes across voices
+ Das nächste Beispiel zeigt, wie man Noten von verschiedenen
+ Stimmen miteinander verknüpfen kann, indem man Bindebögen
+ für Überbindungen benutzt.  Normalerweise können nur zwei
+ Noten der gleichen Stimme übergebunden werden.  Wenn
+ man zwei Stimmen benutzt, wobei die überbundenen Noten
+ sich in der selben befinden,
+ @lilypond[quote,fragment,relative=2]
+ << { b8~ b8\noBeam }
+ \\ { b[ g8] }
+ >>
+ @end lilypond
+ @noindent
+ und dann den ersten Hals nach oben unsichtbar macht,
+ sieht es so aus, als ober die Überbindung zwischen
+ den Stimmen stattfindet:
+ @lilypond[quote,fragment,relative=2,verbatim]
+ <<
+   {
+     \once \override Stem #'transparent = ##t
+     b8~ b8\noBeam
+   }
+ \\
+   { b[ g8] }
+ >>
+ @end lilypond
+ Um sicherzugehen, dass der unsichtbare Hals den Bindebogen
+ nicht zu sehr verkleinert, kann er verlängert werden, indem
+ seine Länge (@code{length}) auf den Wert @code{8}
+ gesetzt wird:
+ @lilypond[quote,fragment,relative=2,verbatim]
+ <<
+   {
+     \once \override Stem #'transparent = ##t
+     \once \override Stem #'length = #8
+     b8~ b8\noBeam
+   }
+ \\
+   { b[ g8] }
+ >>
+ @end lilypond
+ @subheading Simulating a fermata in MIDI
+ @cindex stencil-Eigenschaft, Benutzung
+ @cindex Fermate, Benutzung in MIDI
+ @cindex MIDI: Fermate erstellen
+ Für Objekte außerhalb des Notensystems ist es normalerweise
+ besser, die @code{stencil}-Eigenschaft anstelle der
+ @code{transparent}-Eigenschaft zu verändern, wenn man
+ sie vom fertigen Notensatz entfernen will.  Indem die
+ @code{stencil}-Eigenschaft auf falsch (@code{#f}) gesetzt
+ wird, wird das entsprechende Objekt vollständig entfernt.
+ Das bedeutet, dass es die Positionierung der anderen Objekte
+ nicht beeinflusst.
+ Auf diese Art kann etwa das Tempo geändert werden, damit
+ in der MIDI-Ausgabe eine Fermate zu hören ist, ohne dass
+ im Notensatz etwas von diesen Tempoänderungen zu sehen
+ ist.  Die Metronombezeichnung soll auch nicht die Position
+ von Text an der gleichen Stelle oder die Abstände zwischen
+ zwei Systemen beeinflussen.  Darum ist es am besten, 
+ @code{stencil} auf @code{#f} zu setzen.  Im Beispiel wird
+ der Unterschied zwischen einem unsichtbaren Objekt und
+ einem entfernten Objekt gezeigt:
+ @lilypond[quote,verbatim,ragged-right]
+ \score {
+   \relative c'' {
+     % Visible tempo marking
+     \tempo 4=120
+     a4 a a
+     \once \override Score.MetronomeMark #'transparent = ##t
+     % Invisible tempo marking to lengthen fermata in MIDI
+     \tempo 4=80
+     a\fermata
+     % New tempo for next section
+     \tempo 4=100
+     a a a a
+   }
+   \layout { }
+   \midi { }
+ }
+ @end lilypond
+ @lilypond[quote,verbatim,ragged-right]
+ \score {
+   \relative c'' {
+     % Visible tempo marking
+     \tempo 4=120
+     a4 a a
+     \once \override Score.MetronomeMark #'stencil = ##f
+     % Invisible tempo marking to lengthen fermata in MIDI
+     \tempo 4=80
+     a\fermata
+     % New tempo for next section
+     \tempo 4=100
+     a a a a
+   }
+   \layout { }
+   \midi { }
+ }
+ @end lilypond
+ @noindent
+ Mit beiden Methoden wird die Tempobezeichnung entfernt, mit
+ der die Fermate verlängert wird, und beide beeinflussen die
+ MIDI-Ausgabe wie gewünscht.  Die unsichtbare Metronombezeichnung
+ schiebt aber die folgende Bezeichnung in die Höhe, während
+ das im zweiten Beispiel, in dem der @code{stencil} entfernt
+ wurde, nicht passiert.
  
  @node Using variables for tweaks
  @subsection Using variables for tweaks
  
- @untranslated
+ @cindex Variablen, Benutzung zur Optimierung
+ @cindex Optimierung mit Variablen
+ @code{\override}-Befehle sind oft lang und mühsam zu
+ tippen, und sie müssen immer absolut richtig sein.  Wenn
+ derselbe Befehl mehrere Male benutzt werden muss, lohnt
+ es sich oft schon, eine Variable zu definieren, in der er
+ sich befindet.  Als Beispiel sollen einige Worte im
+ Gesangstext fett und kursiv hervorgehoben werden.
+ Die Befehle @code{\italic} und @code{\bold} funktionieren
+ im Gesangstext-Kontext nur, wenn sie gleichzeitig
+ noch in eine @code{\markup}-Umgebung eingeschlossen
+ werden, was es mühsam macht, sie zu tippen.  Als
+ Alternative versuchen wir, einen Befehl mit
+ @code{\override} und @code{\revert} zu konstruieren.
+ @example
+ @code{\override Lyrics . LyricText #'font-shape = #'italic}
+ @code{\override Lyrics . LyricText #'font-series = #'bold}
+ @code{\revert Lyrics . LyricText #'font-shape}
+ @code{\revert Lyrics . LyricText #'font-series}
+ @end example
+ Das wäre natürlich noch viel mühsamer.  Also setzen wir
+ anstatt dessen zwei Variablen, die diese Befehlsketten
+ enthalten.  Die Namen können natürlich auch kürzer sein,
+ um noch weniger schreiben zu müssen.  Die Benutzung der Befehle
+ ist im Notenbeispiel gezeigt.
+ @lilypond[quote,verbatim]
+ emphasize = {
+   \override Lyrics . LyricText #'font-shape = #'italic
+   \override Lyrics . LyricText #'font-series = #'bold
+ }
+ normal = {
+   \revert Lyrics . LyricText #'font-shape
+   \revert Lyrics . LyricText #'font-series
+ }
+ global = { \time 4/4 \partial 4 \key c \major}
+ SopranoMusic   = \relative c' { c4 | e4. e8 g4  g  | a a g }
+ AltoMusic  = \relative c' { c4 | c4. c8 e4  e  | f f e }
+ TenorMusic = \relative c  { e4 | g4. g8 c4. b8 | a8 b c d e4 }
+ BassMusic  = \relative c  { c4 | c4. c8 c4  c  | f8 g a b c4 }
+ VerseOne   = \lyrics { E -- | ter -- nal \emphasize Fa -- ther, \normal | strong to save, }
+ VerseTwo   = \lyricmode { O | \emphasize Christ, \normal whose voice the | wa -- ters heard, }
+ VerseThree = \lyricmode { O | \emphasize Ho -- ly Spi -- rit, \normal | who didst brood }
+ VerseFour  = \lyricmode { O | \emphasize Tri -- ni -- ty \normal of | love and pow'r }
+ \score {
+   \new ChoirStaff <<
+     \new Staff <<
+       \clef "treble"
+       \new Voice = "Soprano"  { \voiceOne \global \SopranoMusic }
+       \new Voice = "Alto" { \voiceTwo \AltoMusic }
+       \new Lyrics \lyricsto "Soprano" { \VerseOne   }
+       \new Lyrics \lyricsto "Soprano" { \VerseTwo   }
+       \new Lyrics \lyricsto "Soprano" { \VerseThree }
+       \new Lyrics \lyricsto "Soprano" { \VerseFour  }
+     >>
+     \new Staff <<
+       \clef "bass"
+       \new Voice = "Tenor" { \voiceOne \TenorMusic }
+       \new Voice = "Bass"  { \voiceTwo \BassMusic  }
+     >>
+   >>
+ }
+ @end lilypond
  
  @node Other sources of information
  @subsection Other sources of information
  
  Die Programmreferenz enthält sehr viel Information über LilyPond, aber 
  noch mehr Information findet sich in den internen 
- LilyPond-Dateien.
+ LilyPond-Dateien.  Um sie erforschen zu können, müssen Sie erst
+ das richtige Verzeichnis auf Ihrem System finden.  Die Position
+ hängt a) davon ab, ob Ihre LilyPond-Installation mit der vorkompilierten
+ Version von der LilyPond-Internetseite vorgenommen wurde oder Sie
+ die Version durch Ihren Paketmanager installiert haben (also
+ z. B. in einer Linux-Distribution oder unter fink oder cygwin
+ installiert), und b) auf welchem Betriebssystem Sie das Programm
+ benutzen:
  
- Eine Standardeinstellungen (wie die Definitionen für den Kopf (@code{\header} 
- sind als @code{.ly}-Datei gespeichert. Andere Einstellungen 
- (wie die Definition für Beschriftung (@code{markup}) sind 
- als @code{.scm} (Scheme)-Datei gespeichert. Eine nähere Erklärung 
- geht über den Rahmen dieses Handbuches hinaus. Der Hinweis 
- scheint aber angebracht, dass es grundlegende technische 
- Kenntnis und sehr viel Zeit  erfordert, diese Dateien zu verstehen.
+ @strong{Von lilypond.org heruntergeladen}
  
  @itemize @bullet
+ @item Linux
+ Wechseln Sie in das Verzeichnis
+ @file{@var{INSTALL_VERZ}/lilypond/usr/share/lilypond/current/}
  
- @item Linux: @file{@var{installdir}/lilypond/usr/share/lilypond/current/}
+ @item MacOS X
  
- @item OS X:
- @file{@var{installdir}/LilyPond.app/Contents/Resources/share/lilypond/current/}.
- Um diese Ordner anzuschauen, wechseln Sie entweder mit @code{cd} im Terminal 
- zu der Adresse oder klicken Sie mit der rechten Maustaste auf das LilyPond-Symbol 
- und wählen Sie @q{Show Package Contents}.
+ Wechseln Sie in das Verzeichnis
+ @file{@var{INSTALL_VERZ}/LilyPond.app/Contents/Resources/share/lilypond/current/}
+ indem Sie entweder mit dem Befehl @code{cd} vom Terminal aus
+ in das Verzeichnis wechseln, oder mit Control-Klick auf das
+ LilyPond-Programmsymbol gehen und @qq{Show Package Contents}
+ auswählen.
  
- @item Windows: @file{@var{installdir}/LilyPond/usr/share/lilypond/current/}
+ @item Windows
+ Wechseln Sie mit dem Windows Explorer ins Verzeichnis
+ @file{@var{INSTALL_VERZ}/LilyPond/usr/share/lilypond/current/}
  
  @end itemize
  
- Die @file{ly/} und @file{scm/}-Ordner sind von besonderem Interesse.
- Dateien wie @file{ly/property-init.ly} und
- @file{ly/declarations-init.ly} definieren alle häufig vorkommenden Veränderungen.
+ @strong{Mit einem Paket-Manager installiert oder selber aus
+ den Quellen kompiliert}
+ Wechseln Sie in das Verzeichnis
+ @file{@var{PREFIX}/share/lilypond/@var{X.Y.Z}/}, wobei
+ @var{PREFIX} bei Ihrem Paket-Manager oder dem
+ @code{configure}-Skript gesetzt wird, und @var{X.Y.Z}
+ die LilyPond-Versionsnummer.
+ @smallspace
+ In diesem Ordner sind die zwei interessanten Unterordner:
+ @itemize
+ @item @file{ly/} - beinhaltet Dateien im LilyPond-Format
+ @item @file{scm/} - beinhaltet Dateien im Scheme-Format
+ @end itemize
+ Schauen wir uns zuerst einige Dateien in @file{ly/} an.
+ Öffnen Sie @file{ly/property-init.ly} in einem Texteditor.
+ Der, den Sie normalerweise für @code{.ly}-Dateien benutzen,
+ genügt.  Diese Datei enthält die Definitionen aller vordefinierten
+ Befehle für LilyPond, wie etwa @code{\stemUp} und
+ @code{\slurDotted}.  Sie können sehen, dass es sich um
+ nichts mehr handelt als Definitionen von Variablen, die eine
+ oder mehrere @code{\override}-Befehle enthalten.  Der
+ Befehl @code{/tieDotted} etwa wird folgendermaßen definiert:
+ @example
+ tieDotted = @{
+   \override Tie #'dash-period = #0.75
+   \override Tie #'dash-fraction = #0.1
+ @}
+ @end example
+ Wenn Sie diese Voreinstellungen der vordefinierten Befehl nicht
+ mögen, können Sie sie ganz einfach umdefinieren, genauso wie
+ jede andere Variable auch, indem Sie sie an den Anfang Ihrer
+ Quelldatei schreiben.
+ Hier sind die wichtisgsten Dateien, die sich im Ordner
+ @file{ly/} befinden:
+ @multitable @columnfractions .4 .6
+ @headitem Dateiname
+   @tab Inhalt
+ @item @file{ly/engraver-init.ly}
+   @tab Definitionen von Engraver-Kontexten
+ @item @file{ly/paper-defaults.ly}
+   @tab Specifikationen von Voreinstellungen für Papiermaße
+ @item @file{ly/performer-init.ly}
+   @tab Definitionen von Performer-Kontexten
+ @item @file{ly/property-init.ly}
+   @tab Definitionen aller vordefinierten Befehle
+ @end multitable
+ Andere Einstellungen (wie die Definitionen von Beschriftungsbefehlen)
+ sind in @code{.scm}-(Scheme)-Dateien gespeichert.  Die
+ Scheme-Programmiersprache wird benutzt, um eine
+ programmierbare Schnittstelle zu den internen Operationen von
+ LilyPond zu haben.  Eine weitere Erklärung dieser Dateien ist
+ im Moment außerhalb des Rahmens dieses Handbuchs, denn
+ sie erfordern einige Kenntnis der Scheme-Sprache.  Die Warnung
+ ist hier angebracht, dass des ein gutes technisches Verständnis
+ oder sehr viel Zeit braucht, um Scheme und diese
+ Dateien zu verstehen (siehe auch @ref{Scheme tutorial}).
+ Wenn Sie sich mit Scheme auskennen, sind hier mögliche
+ interessante Dateien:
+ @multitable @columnfractions .4 .6
+ @headitem Dateiname
+   @tab Inhalt
+ @item @file{scm/auto-beam.scm}
+   @tab Sub-Balken-Voreinstellungen
+ @item @file{scm/define-grobs.scm}
+   @tab Voreinstellungen für Grob-Eigenschaften
+ @item @file{scm/define-markup-commands.scm}
+   @tab Definition aller Markup-Beschriftungsbefehle
+ @item @file{scm/midi.scm}
+   @tab Voreinstellung für die MIDI-Ausgabe
+ @item @file{scm/output-lib.scm}
+   @tab Einstellungen mit Einfluss auf die Darstellung von Bunddiagrammen, Farben, Versetzungszeichen, Taktlinien usw.
+ @item @file{scm/parser-clef.scm}
+   @tab Definitionen der unterstützten Schlüssel
+ @item @file{scm/script.scm}
+   @tab Voreinstellungen for Artikulationszeichen
+ @end multitable
  
  
  @node Avoiding tweaks with slower processing
  @subsection Avoiding tweaks with slower processing
  
  LilyPond kann einige zusätzliche Tests durchführen, während 
- die Noten gesetzt werden. Dadurch braucht das Programm länger, 
+ die Noten gesetzt werden.  Dadurch braucht das Programm länger, 
  um den Notensatz zu produzieren, aber üblicherweise werden 
- weniger nachträgliche Anpassungen nötig sein.
+ weniger nachträgliche Anpassungen nötig sein.  Wenn eine
+ Textsilbe oder eine Beschriftung aus dem Rand der Partitur
+ ragt, wird durch diese Tests die Zeile gerade so weit komprimiert,
+ dass sie sich innerhalb der Ränder befindet.
  
  @example
- %%  Um sicher zu gehen, dass Texte und Liedtext 
- %%  innerhalb der Papierränder bleiben
- \override Score.PaperColumn #'keep-inside-line = ##t 
+ \new Score \with @{
+  %  Um sicher zu gehen, dass Texte und Liedtext 
+  %  innerhalb der Papierränder bleiben
+  \override PaperColumn #'keep-inside-line = ##t
+  \override NonMusicalPaperColumn #'keep-inside-line = ##t
+ @} @{
+    ...
+ @}
  @end example
  
  
  @node Advanced tweaks with Scheme
  @subsection Advanced tweaks with Scheme
  
- Es wurde schon gezeigt, wie die LilyPond-Ausgabe sehr stark verändert 
- werden kann, indem man Befehle wie 
- @code{\override TextScript #'extra-offset = ( 1 . -1)} benutzt. Aber 
- noch mehr Einfluss auf die Formatierung kann durch den Einsatz von 
- Scheme genommen werden. Eine vollständige Erklärung findet sich in der 
-  @ref{Scheme tutorial} und den
- @ruser{Interfaces for programmers}.
- Scheme kann benutzt werden, um einfach nur Befehle zu @qq{überschreiben} 
- (@code{\override}):
+ Auch wenn viele Sachen mit @code{\override} und @code{\tweak}
+ möglich sind, gibt es eine sehr viel mächtigere Möglichkeit, die
+ Arbeitsweise von LilyPond mit Hilfe der programmierbaren Schnittstelle
+ zu beeinflussen.  Code, der in der Scheme-Programmiersprache
+ geschrieben ist, kann direkt in die interne Satzmaschine von LilyPond
+ eingefügt werden.  Natürlich brauchen Sie dazu wenigstens ein
+ grundlegendes Verständnis von Scheme.  Eine Einleitung finden
+ Sie in der @ref{Scheme tutorial}.
+ Zur Illustration der vielen Möglichkeiten soll gezeigt werden, dass eine
+ Eigenschaft nicht nur auf eine Konstante, sondern auch auf eine
+ Scheme-Prozedur gesetzt werden kann, die dann jedes Mal
+ aufgerufen wird, wenn die Eigenschaft von LilyPond benutzt
+ wird.  Die Eigenschaft kann damit dynamisch auf einen Wert
+ gesetzt werden, der durch die Prozedur jedes Mal neu bestimmt
+ wird.  In diesem Beispiel wird die Farbe der Notenköpfe entsprechend
+ zu ihrer Position innerhalb der Tonleiter gesetzt.
  
  @lilypond[quote,verbatim,ragged-right]
- padText = #(define-music-function (parser location padding) (number?)
- #{
-   \once \override TextScript #'padding = #$padding
- #})
- \relative c''' {
-   c4^"piu mosso" b a b
-   \padText #1.8
-   c4^"piu mosso" d e f
-   \padText #2.6
-   c4^"piu mosso" fis a g
+ #(define (color-notehead grob)
+   "Color the notehead according to its position on the staff."
+   (let ((mod-position (modulo (ly:grob-property grob 'staff-position) 7)))
+     (case mod-position
+       ;;   Return rainbow colors
+       ((1) (x11-color 'red    ))  ; for C
+       ((2) (x11-color 'orange ))  ; for D
+       ((3) (x11-color 'yellow ))  ; for E
+       ((4) (x11-color 'green  ))  ; for F
+       ((5) (x11-color 'blue   ))  ; for G
+       ((6) (x11-color 'purple ))  ; for A
+       ((0) (x11-color 'violet ))  ; for B
+     )
+   )
+ )
+ \relative c' {
+   % Arrange to obtain color from color-notehead procedure
+   \override NoteHead #'color = #color-notehead
+   c2 c' | 
+   b4 g8 a b4 c | 
+   c,2 a' | 
+   g1 |
  }
- @end lilypond
- Hiermit können aber auch neue Befehle erstellt werden:
- @lilypond[quote,verbatim,ragged-right]
- tempoMark = #(define-music-function (parser location padding marktext)
-                                     (number? string?)
- #{
-   \once \override Score . RehearsalMark #'padding = $padding
-   \once \override Score . RehearsalMark #'extra-spacing-width = #'(+inf.0 . -inf.0)
-   \mark \markup { \bold $marktext }
- #})
- \relative c'' {
-   c2 e
-   \tempoMark #3.0 #"Allegro"
-   g c
- }
- @end lilypond
- Sogar ganze musikalische Ausdrücke können eingefügt werden:
- @lilypond[quote,verbatim,ragged-right]
- pattern = #(define-music-function (parser location x y) (ly:music? ly:music?)
- #{
-   $x e8 a b $y b a e
- #})
- \relative c''{
-   \pattern c8 c8\f
-   \pattern {d16 dis} { ais16-> b\p }
+ \addlyrics {
+   Some -- where o -- ver the Rain -- bow, way up high,
  }
  @end lilypond
  
+ Weiter Beispiele, die die Benutzung dieser programmierbaren
+ Schnittstelle zeigen, finden sich in @ref{Tweaking with Scheme}.