]> git.donarmstrong.com Git - lilypond.git/blobdiff - Documentation/de/notation/changing-defaults.itely
Doc - NR + CG: Clarify Emmentaler is the 'font' and Feta/Parmesan are glyphs
[lilypond.git] / Documentation / de / notation / changing-defaults.itely
index 2aadefa90fe067f74d6ccc2f5f7ee61328948968..61959ce9464a6144693d6545282896ec4609f90d 100644 (file)
@@ -1,14 +1,14 @@
 @c -*- coding: utf-8; mode: texinfo; documentlanguage: de -*-
 
 @ignore
-    Translation of GIT committish: 3c814eb917c15f6f0d64f64f58046dd7b119e359
+    Translation of GIT committish: e5a609e373eae846857f9a6d70a402a3d42b7d94
 
     When revising a translation, copy the HEAD committish of the
     version that you are working on.  For details, see the Contributors'
     Guide, node Updating translation committishes..
 @end ignore
 
-@c \version "2.13.46"
+@c \version "2.19.24"
 
 @c Translators: Till Paala
 
@@ -23,7 +23,7 @@ großen Anzahl von @qq{Schaltern und Knöpfen} kontrolliert werden.
 Sie werden als @qq{Eigenschaften} (engl. properties)  bezeichnet.
 Eine kurze Einführung und Übung, wie man auf diese Eigenschaften
 zugreifen kann und sie verändern kann, findet sich im Handbuch
-zum Lernen, siehe @rlearning{Die Ausgabe verändern}.  Das Kapitel
+zum Lernen, siehe @rlearning{Die Ausgabe verbessern}.  Das Kapitel
 sollte zuerst gelesen werden.  In diesem Kapitel werden die gleichen
 Themen behandelt, aber der Schwerpunkt liegt eher auf einer technischen
 Darstellung.
@@ -37,15 +37,15 @@ der Interna}.  Diese Referenz zeigt alle Variablen, Funktionen und Optionen,
 die in LilyPond möglich sind.  Es existiert als ein HTML-Dokumente, das
 sich
 @c leave the @uref as one long line.
-@uref{http://@/lilypond@/.org/@/doc/@/stable/@/Documentation/@/user/@/lilypond@/-internals/,on@/-line},
+@uref{http://@/lilypond@/.org/@/doc/@/stable/@/Documentation/@/internals/,on@/-line},
 aber auch lokal in das LilyPond-Dokumentationspaket integriert lesen lässt.
 
 Intern benutzt LilyPond Scheme (ein LISP-Dialekt), um eine Infrastruktur
 zur Verfügung zu stellen.  Wenn Layoutentscheidungen verändert werden
 sollen, müssen auf die programminternen Prozesse zugegriffen werden,
 wozu Scheme-Code benötigt wird.  Scheme-Abschnitte werden in einer
-LilyPond-Quelldatei mit einer Raute @code{#} begonnen (siehe auch
-@rlearning{Scheme-Übung}).
+LilyPond-Quelldatei mit einer Raute@tie{}@code{#} begonnen.@footnote{@rextend{Scheme-Tutorium} enthält eine kurze Übung, wie
+man Zahlen, Listen, Zeichenketten und Symbole in Scheme notiert.}
 
 
 @menu
@@ -67,12 +67,12 @@ verändern kann.
 
 @menu
 * Was sind Kontexte?::
-* Kontexte erstellen::
+* Kontexte erstellen und referenzieren::
 * Kontexte am Leben halten::
 * Umgebungs-Plugins verändern::
 * Die Standardeinstellungen von Kontexten ändern::
 * Neue Kontexte definieren::
-* Kontexte aneinander ausrichten::
+* Reihenfolge des Kontextlayouts::
 @end menu
 
 
@@ -247,9 +247,9 @@ wenn Stichnoten gesetzt werden.
 Ausgabe von Akkordsymbolen.
 
 
-@node Kontexte erstellen
-@subsection Kontexte erstellen
-@translationof Creating contexts
+@node Kontexte erstellen und referenzieren
+@subsection Kontexte erstellen und referenzieren
+@translationof Creating and referencing contexts
 
 In Partituren mit einer Stimme und einem System werden die Kontexte
 normalerweise automatisch erstellt.  In komplizierteren Partituren
@@ -384,7 +384,7 @@ die dem Kontext gegeben wurde.
 Diese Variante wird bei musikalischen Ausdrücken benutzt, die auf
 verschiedenen Ebenen interpretiert werden können.  Beispielsweise
 der @code{\applyOutput}-Befehl (siehe
-@ref{Eine Funktion auf alle Layout-Objekte anwenden}).  Ohne einen
+@rextend{Eine Funktion auf alle Layout-Objekte anwenden}).  Ohne einen
 expliziten @code{\context} wird die Ausgabe normalerweise einem
 @code{Voice}-Kontext zugewiesen:
 
@@ -396,8 +396,8 @@ Damit aber die Funktion auf @code{Score}- oder @code{Staff}-Ebene
 interpretiert wird, muss folgende Form benutzt werden:
 
 @example
-\applyOutput #'Score #@var{Funktion}
-\applyOutput #'Staff #@var{Funktion}
+\applyOutput Score #@var{Funktion}
+\applyOutput Staff #@var{Funktion}
 @end example
 
 @end itemize
@@ -447,8 +447,8 @@ Im folgenden Beispiel werden sowohl Stimme A als auch B auf diese
 Weise für die gesamte Dauer des Stückes am Leben gehalten.
 
 @lilypond[quote,verbatim]
-musicA = \relative c'' { d4 d d d }
-musicB = \relative c'' { g4 g g g }
+musicA = \relative { d''4 d d d }
+musicB = \relative { g'4 g g g }
 keepVoicesAlive = {
   <<
     \new Voice = "A" { s1*5 }  % Keep Voice "A" alive for 5 bars
@@ -486,8 +486,8 @@ kann, indem man die Stimme am Leben hält.  In wirklichen Situationen
 würden Begleitung und Melodie natürlich aus mehreren Abschnitten bestehen.
 
 @lilypond[quote,verbatim]
-melody = \relative c'' { a4 a a a }
-accompaniment = \relative c' { d4 d d d }
+melody = \relative { a'4 a a a }
+accompaniment = \relative { d'4 d d d }
 words = \lyricmode { These words fol -- low the mel -- o -- dy }
 \score {
   <<
@@ -525,14 +525,14 @@ ist es, einfach unsichtbare Pausen einzufügen, um die Melodie
 mit der Begleitung passend auszurichten:
 
 @lilypond[quote,verbatim]
-melody = \relative c'' {
+melody = \relative {
   s1  % skip a bar
-  a4 a a a
+  a'4 a a a
   s1  % skip a bar
   a4 a a a
 }
-accompaniment = \relative c' {
-  d4 d d d
+accompaniment = \relative {
+  d'4 d d d
   d4 d d d
   d4 d d d
   d4 d d d
@@ -570,7 +570,7 @@ nicht nur Eigenschaften, sie enthalten auch Plugins (@qq{engraver}
 genannt), die die einzelnen Notationselemente erstellen.  Ein
 @code{Voice}-Kontext enthält beispielsweise einen
 @code{Note_heads_engraver}, der die Notenköpfe erstellt, und ein
-@code{Staff}-Kontext einen @code{Key_signature_engraver}, der die
+@code{Staff}-Kontext einen @code{Key_engraver}, der die
 Vorzeichen erstellt.
 
 Eine vollständige Erklärung jedes Plugins findet sich in
@@ -594,7 +594,6 @@ geschieht, indem man einen neuen Kontext mit @code{\new} oder
 @code{\context} beginnt und ihn dann verändert:
 
 @funindex \with
-@funindex with
 
 @example
 \new @var{context} \with @{
@@ -617,16 +616,16 @@ Es folgt ein einfaches Beispiel, in dem der
 @code{Clef_engraver} (Engraver für den Schlüssel) aus dem
 @code{Staff}-Kontext entfernt werden:
 
-@lilypond[quote,relative=1,verbatim]
+@lilypond[quote,verbatim]
 <<
-  \new Staff {
-    f2 g
+  \new Staff \relative {
+    f'2 g
   }
   \new Staff \with {
      \remove "Time_signature_engraver"
      \remove "Clef_engraver"
-  } {
-    f2 g2
+  } \relative {
+    f'2 g2
   }
 >>
 @end lilypond
@@ -681,83 +680,343 @@ jedes System eine unterschiedliche Taktart hat:
 
 @knownissues
 
-Normalerweise spielt es keine Rolle, in welcher Reihenfolge
-Engraver angegeben werden, aber in einigen Spezialfällen
+Die Reihenfolge, in der die Engraver definiert werden,
+ist die Reihenfolge, in welcher sie aufgerufen werden, um
+ihre Verarbeitung vorzunehmen.  Normalerweise spielt die
+Reihenfolge, in welcher die Engraver angegeben werden,
+keine Rolle, aber in einigen Spezialfällen
 ist die Reihenfolge sehr wichtig.  Das kann beispielsweise
 vorkommen, wenn ein Engraver eine Eigenschaft erstellt und
 ein anderer von ihr liest, oder ein Engraver erstellt ein
-Grob und ein anderer wertet es aus.  Die Reihenfolge, in der
-Engraver angegeben werden, ist die Reihenfolge, in der sie
-aufgerufen werden, um ihre Tätigkeiten auszuführen.
+Grob und ein anderer wertet es aus.
 
-Folgende Reihenfolgen müssen beachtet werden: der
-@code{Bar_engraver} muss normalerweise zuerst kommen, und
+Folgende Reihenfolgen müssen beachtet werden:
+
+@itemize
+@item
+der @code{Bar_engraver} muss normalerweise zuerst kommen,
+
+@item
 der @code{New_fingering_engraver} muss vor dem
-@code{Script_column_engraver} kommen.  Es gibt möglicherweise weitere
-Abhängigkeiten von der Reihenfolge geben.
+@code{Script_column_engraver} kommen,
+
+@item
+der @code{Timing_translator} muss vor dem @code{Bar_number_engraver}
+kommen.
+@end itemize
+
+@seealso
+Installlierte Dateien:
+@file{ly/engraver-init.ly}.
 
 
 @node Die Standardeinstellungen von Kontexten ändern
 @subsection Die Standardeinstellungen von Kontexten ändern
 @translationof Changing context default settings
 
-Die Kontexteinstellungen, die standardmäßig in
-@code{Score}, @code{Staff} und @code{Voice}-Kontexten
-benutzt werden, können in einer @code{\layout}-Umgebung
-eingestellt werden, wie das folgende Beispiel zeigt.  Die
-@code{\layout}-Umgebung sollte innerhalb der
-@code{\score}-Umgebung gesetzt werden, auf die sie sich
-auswirken soll, aber außerhalb von Notation.
+@cindex Standardkontexteigenschaften, ändern
+@cindex Kontexteigenschaften, Einstellungen ändern
+
+Kontext- und Grob-Eigenschaften können mit den Befehlen @code{\set}
+und @code{\override} verändert werden, wie beschrieben in
+@ref{Eigenschaften verändern}.  Diese Befehle erstellen musikalische
+Ereignisse, damit die Veränderungen zum Zeitpunkt der Verarbeitung
+in den Noten erscheinen.
+
+Dieser Abschnitt hingegen erklärt, wie man die @emph{Standardwerte} von
+Kontext- und Grob-Eigenschaften zum Zeitpunkt, an dem der Kontext erstellt
+wird, verändert.  Es gibt hierzu zwei Möglichkeiten.  Die eine verändert
+die Standardeinstellungen aller Kontexte eines bestimmten Typs, die andere
+verändert die Standardwerte nur eines bestimmten Kontextes.
+
+@menu
+* Alle Kontexte des gleichen Typs verändern::
+* Nur einen bestimmten Kontext verändern::
+* Rangfolge von Kontextwerten::
+@end menu
+
+@node Alle Kontexte des gleichen Typs verändern
+@unnumberedsubsubsec Alle Kontexte des gleichen Typs verändern
+@translationof Changing all contexts of the same type
+
+@cindex \context in \layout-Umgebung
+@funindex \context
+@funindex \layout
+
+Die Kontexteinstellungen, die standardmäßig in @code{Score}, @code{Staff},
+@code{Voice} und anderen Kontexten eingesetzt werden, können in einer
+@code{\context}-Umgebung innerhalb einer beliebigen @code{\layout}-Umgebung
+spezifiziert werden.  Die @code{\layout}-Umgebung sollte innerhalb der
+@code{\score} (Partitur) stehen, auf die sie sich bezieht, nach den Noten.
+
+@example
+\layout @{
+  \context @{
+    \Voice
+    [Kontexteinstellungen für alle Voice-Kontexte]
+  @}
+  \context @{
+    \Staff
+    [Kontexteinstellungen für alle Staff-Kontexte]
+  @}
+@}
+@end example
+
+Folgende Einstellungstypen können angegeben werden:
+
+@itemize
+@item
+Ein @code{\override}-Befehl, aber ohne die Kontextbezeichnung:
+
+@lilypond[quote,verbatim]
+\score {
+  \relative {
+    a'4^"Thicker stems" a a a
+    a4 a a\ff a
+  }
+  \layout {
+    \context {
+      \Staff
+      \override Stem.thickness = #4.0
+    }
+  }
+}
+@end lilypond
 
-Auch muss der @code{\set}-Befehl und der Kontext weggelassen
-werden, wenn die Einstellungen für den Kontext auf diese Weise
-vorgenommen werden:
+@item
+Eine Kontexteigenschaft kann direkt gesetzt werden:
 
 @lilypond[quote,verbatim]
 \score {
-  \relative c'' {
-    a4^"Really small, thicker stems, no time signature" a a a
-    a a a a
+  \relative {
+    a'4^"Smaller font" a a a
+    a4 a a\ff a
   }
   \layout {
     \context {
       \Staff
       fontSize = #-4
-      \override Stem #'thickness = #4.0
-      \remove "Time_signature_engraver"
     }
   }
 }
 @end lilypond
 
-Hier zeigt der @code{\Staff}-Befehl an, dass die folgenden Einstellungen
-sich auf alle Systeme in dieser Partitur erstrecken sollen.
+@item
+Ein vordefinierter Befehl wie etwa @code{\dynamicUp} oder ein
+musikalischer Ausdruck wie @code{\accidentalStyle dodecaphonic}:
 
-Veränderungen können auch für den @code{Score}- oder alle
-@code{Voice}-Kontexte auf gleiche Weise vorgenommen werden.
+@lilypond[quote,verbatim]
+\score {
+  \relative {
+    a'4^"Dynamics above" a a a
+    a4 a a\ff a
+  }
+  \layout {
+    \context {
+      \Voice
+      \dynamicUp
+    }
+    \context {
+      \Staff
+      \accidentalStyle dodecaphonic
+    }
+  }
+}
+@end lilypond
 
-@knownissues
+@item
+Eine vom Benutzer definierte Variable, die eine @code{\with}-Umgebung enthält;
+zu Details der @code{\with}-Umgebung, siehe
+@ref{Nur einen bestimmten Kontext verändern}.
 
-Es ist nicht möglich, Kontextänderungen als Variable zu definieren und
-sie dann in der @code{\context}-Definition anzuwenden, indem man die
-Variable aufruft.
+@lilypond[quote,verbatim]
+StaffDefaults = \with {
+  fontSize = #-4
+}
 
-Der Befehl @code{\Staff \RemoveEmptyStaves} überschreibt die
-aktuellen Einstellungen für @code{Staff}.  Wenn die Einstellungen
-für Systeme verändert werden sollen, die @code{\Staff \RemoveEmptyStaves}
-benutzen, müssen die Veränderungen gemacht werden, nachdem
-@code{\Staff \RemoveEmptyStaves} aufgerufen wurde, etwa:
+\score {
+  \new Staff {
+    \relative {
+      a'4^"Smaller font" a a a
+      a4 a a a
+    }
+  }
+  \layout {
+    \context {
+      \Staff
+      \StaffDefaults
+    }
+  }
+}
+@end lilypond
 
-@example
-\layout @{
-  \context @{
-    \Staff \RemoveEmptyStaves
+@end itemize
 
-    \override Stem #'thickness = #4.0
-  @}
+Befehle, die die Eigenschaften verändern, können in einer @code{\layout}-Umgebung
+platziert werden, ohne von einer @code{\context}-Umgebung eingeschlossen zu werden.
+Derartige Einstellungen verhalten sich äquivalet wie Eigenschaftsveränderungen,
+die zu jedem Beginn eines bestimmten Kontextes angegeben werden.  Wenn kein
+Kontext angegeben wird, wird @emph{jeder} Kontext auf der untersten Ebene
+beeinflusst, siehe auch @ref{Unterste Kontexte -- Stimmen}.  Die Syntax eines
+Befehls zu Einstellung von Eigenschaftseinstellungen in einer @code{\layout}-Umgebung
+ist die gleiche wie für den Befehl direkt zwischen den Noten geschrieben.
+
+@lilypond[quote,verbatim]
+\score {
+  \new Staff {
+    \relative {
+      a'4^"Smaller font" a a a
+      a4 a a a
+    }
+  }
+  \layout {
+    \accidentalStyle dodecaphonic
+    \set fontSize = #-4
+    \override Voice.Stem.thickness = #4.0
+  }
+}
+@end lilypond
+
+
+@node Nur einen bestimmten Kontext verändern
+@unnumberedsubsubsec Nur einen bestimmten Kontext verändern
+@translationof Changing just one specific context
+
+@cindex \with
+@funindex \with
+
+Die Kontexteigenschaften nur eines bestimmten Kontextes können mit einer
+@code{\with}-Umgebung geändert werden.  Alle anderen Vorkommen des
+gleichen Kontexts behalten ihre Standardeinstellungen, möglicherweise
+durch Einstellungn in @code{\layout}-Umgebungen verändert.  Die
+@code{\with}-Umgebung muss direkt nach dem Befehl @code{\new}
+@var{Kontext-Typ} gesetzt werden:
+
+@example
+\new Staff
+\with @{
+  [enthält Einstellungen nur für diesen spezifischen Kontext]
+@} @{
+...
 @}
 @end example
 
+Folgende Arten von Einstellungen können angegeben werden:
+
+@itemize
+@item
+Ein @code{\override}-Befehl, dessen Kontextbezeichnung ausgelassen wird:
+
+@lilypond[quote,verbatim]
+\score {
+  \new Staff {
+    \new Voice
+    \with {
+      \override Stem.thickness = #4.0
+    }
+    {
+      \relative {
+        a'4^"Thick stems" a a a
+        a4 a a a
+      }
+    }
+  }
+}
+@end lilypond
+
+@item
+Eine Kontexeigenschaft direkt einstellen:
+
+@lilypond[quote,verbatim]
+\score {
+  <<
+    \new Staff {
+      \relative {
+        a'4^"Default font" a a a
+        a4 a a a
+      }
+    }
+    \new Staff
+    \with {
+      fontSize = #-4
+    } {
+      \relative {
+        a'4^"Smaller font" a a a
+        a4 a a a
+      }
+    }
+  >>
+}
+@end lilypond
+
+@item
+Ein vordefinierter Befehl wie etwa @code{\dynamicUp}
+
+@lilypond[quote,verbatim]
+\score {
+  <<
+    \new Staff {
+      \new Voice {
+        \relative {
+          a'4^"Dynamics below" a a a
+          a4 a a\ff a
+        }
+      }
+    }
+    \new Staff
+    \with { \accidentalStyle dodecaphonic }
+    {
+      \new Voice
+      \with { \dynamicUp }
+      {
+        \relative {
+          a'4^"Dynamics above" a a a
+          a4 a a\ff a
+        }
+      }
+    }
+  >>
+}
+@end lilypond
+
+@end itemize
+
+
+@node Rangfolge von Kontextwerten
+@unnumberedsubsubsec Rangfolge von Kontextwerten
+@translationof Order of precedence
+
+Der Wert einer Eigenschaft, die zu einer bestimmten Zeit aktiv ist, wird
+wie folgend bestimmt:
+
+@itemize
+@item
+wenn ein @code{\override}- oder @code{\set}-Befehl in der Eingabe aktiv ist,
+wird dieser Wert benützt,
+
+@item
+ansonsten wird der Standardwert aus einer @code{\with}-Umgebung zu
+Beginn des Kontextes benützt,
+
+@item
+ansonsten wied der Standardwert aus der letzten passenden
+@code{\context}-Umgebung in der letzten @code{\layout}-Umgebung benützt,
+
+@item
+ansonsten wird der Standardwert von LilyPond eingesetzt.
+@end itemize
+
+@seealso
+Handbuch zum Lernen:
+@rlearning{Kontexteigenschaften verändern}.
+
+Notationsreferenz:
+@ref{Was sind Kontexte?},
+@ref{Unterste Kontexte -- Stimmen},
+@ref{Der set-Befehl},
+@ref{Der override-Befehl},
+@ref{Die layout-Umgebung}.
+
 
 @node Neue Kontexte definieren
 @subsection Neue Kontexte definieren
@@ -767,17 +1026,11 @@ benutzen, müssen die Veränderungen gemacht werden, nachdem
 @cindex Engraver, in Kontexte einfügen
 
 @funindex \alias
-@funindex alias
 @funindex \name
-@funindex name
 @funindex \type
-@funindex type
 @funindex \consists
-@funindex consists
 @funindex \accepts
-@funindex accepts
 @funindex \denies
-@funindex denies
 
 Bestimme Kontexte, wie @code{Staff} oder @code{Voice}, werden
 erstellt, indem man sie mit einer Musikumgebung aufruft.  Es ist
@@ -798,18 +1051,18 @@ in Jazzmusik anzuzeigen.
   \consists "Note_heads_engraver"
   \consists "Rhythmic_column_engraver"
   \consists "Text_engraver"
-  \consists Pitch_squash_engraver
+  \consists "Pitch_squash_engraver"
   squashedPosition = #0
-  \override NoteHead #'style = #'slash
-  \override Stem #'transparent = ##t
+  \override NoteHead.style = #'slash
+  \hide Stem
   \alias Voice
 }
 \context { \Staff
   \accepts "ImproVoice"
 }}
 
-\relative c'' {
-  a4 d8 bes8 \new ImproVoice { c4^"ad lib" c
+\relative {
+  a'4 d8 bes8 \new ImproVoice { c4^"ad lib" c
    c4 c^"ausziehen" c_"während des Spiels :)" c }
   a1
 }
@@ -849,15 +1102,15 @@ Der Kontext gibt Noten und Text aus, darum müssen wir die Engraver
 hinzufügen, die für diese Aktionen zuständig sind:
 
 @example
-\consists Note_heads_engraver
-\consists Text_engraver
+\consists "Note_heads_engraver"
+\consists "Text_engraver"
 @end example
 
 @noindent
 aber die Noten sollen nur auf der mittleren Linie ausgegeben werden:
 
 @example
-\consists Pitch_squash_engraver
+\consists "Pitch_squash_engraver"
 squashedPosition = #0
 @end example
 
@@ -869,8 +1122,8 @@ das die Mittellinie.
 Die Noten sehen wie ein Querstrich aus und haben keine Hälse:
 
 @example
-\override NoteHead #'style = #'slash
-\override Stem #'transparent = ##t
+\override NoteHead.style = #'slash
+\hide Stem
 @end example
 
 Alle diese Engraver müssen zusammenarbeiten, und das wird erreicht mit
@@ -889,16 +1142,15 @@ Alles zusammen haben wir folgende Einstellungen:
   \type "Engraver_group"
   \consists "Note_heads_engraver"
   \consists "Text_engraver"
-  \consists Pitch_squash_engraver
+  \consists "Pitch_squash_engraver"
   squashedPosition = #0
-  \override NoteHead #'style = #'slash
-  \override Stem #'transparent = ##t
+  \override NoteHead.style = #'slash
+  \hide Stem
   \alias Voice
 @}
 @end example
 
 @funindex \accepts
-@funindex accepts
 
 Kontexte sind hierarchisch.  Wie wollen, dass @code{ImproVoice}
 sich als Unterkontext von @code{Staff} erkennt, wie eine normale
@@ -913,7 +1165,6 @@ Stimme.  Darum wird die Definition von @code{Staff} mit dem
 @end example
 
 @funindex \denies
-@funindex denies
 
 Das Gegenteil von @code{\accepts} ist @code{\denies} (verbietet), was
 manchmal gebraucht werden kann, wenn schon existierende Kontext-Definitionen
@@ -939,8 +1190,8 @@ Jetzt kann die Notation zu Beginn des Abschnitts folgendermaßen
 notiert werden:
 
 @example
-\relative c'' @{
-  a4 d8 bes8
+\relative @{
+  a'4 d8 bes8
   \new ImproVoice @{
     c4^"ad lib" c
     c4 c^"ausziehen"
@@ -951,82 +1202,112 @@ notiert werden:
 @end example
 
 
-@node Kontexte aneinander ausrichten
-@subsection Kontexte aneinander ausrichten
-@translationof Aligning contexts
-
-Neue Kontexte können über oder unter existierenden ausgerichtet
-werden.  Das kann nützlich sein, wenn man eine Chorparitur
-oder Ossia schreiben will:
+@node Reihenfolge des Kontextlayouts
+@subsection Reihenfolge des Kontextlayouts
+@translationof Context layout order
 
-@cindex Ossia
+@cindex Kontext, Layoutreihenfolge
+@funindex \accepts
+@funindex \denies
 
-@funindex alignAboveContext
-@funindex alignBelowContext
+Kontexte werden in einer Systemgruppe normalerweise von oben nach
+unten positioniert in der Reihenfolge, wie sie in der Quelldatei
+auftreten.  Wenn Kontext verschachtelt ewrden, enthält der äußere
+Kontexte geschachtelte innere Kontexte, wie in der Quelldatei
+angegeben, vorausgesetzt, die inneren Kontexte befinden sich auch
+in der @qq{accepts}-Liste.  Geschachtelte Kontexte, die nicht
+in dieser @qq{accepts}-Liste enthalten sind, werden unterhalb
+des äußeren Kontextes neu positioniert, anstatt innerhalb von ihm
+gesetzt zu werden.
+
+Die @qq{accepts}-Liste eines Kontextes kann mit dem Befehlen
+@code{\accepts} und @code{\denies} verändert werden.  @code{\accepts} 
+fügt einen Kontext zur @qq{accepts}-Liste, und @code{\denies}
+entfernt einen Kontext aus der Liste.  Akkordbezeichnungen sollen
+beispielsweise normalerweise nicht innerhalb eines @code{Staff}-Kontextes
+geschachtelt werden, sodass der @code{ChordNames}-Kontext nicht
+automatisch in der @qq{accepts}-Liste des @code{Staff}-Kontextes
+geführt ist.  Wenn er aber benötigt wird, kann er hinzugefügt werden:
 
-@lilypond[quote,ragged-right]
-ossia = { f4 f f f }
-\score{
-  \relative c' \new Staff = "main" {
-    c4 c c c
-    <<
-      \new Staff \with { alignAboveContext = #"main" } \ossia
-      { d8 f d f d f d f }
-    >>
+@lilypond[verbatim,quote]
+\score {
+  \new Staff {
+    c' d' e' f'
+    \chords { d1:m7 b1:min7.5- }
   }
 }
 @end lilypond
 
-@cindex verschachtelte Kontexte
-@cindex Kontexte, verschachtelt
-
-@funindex \accepts
-@funindex accepts
-@funindex \denies
-@funindex denies
-
-Kontexte wie @code{PianoStaff} können andere Kontexte innerhalb
-enthalten.  Kontexte, die als innere Kontexte akzeptiert werden,
-werden in einer @qq{accepts}-Liste für den bestimmten Kontext
-definiert.  Kontexte, die sich nicht in dieser Liste finden,
-werden unter den äußeren Kontext gesetzt.  Der
-@code{PianoStaff}-Kontext etwa akzeptiert die Kontexte @code{Staff}
-und @code{FiguredBass} innerhalb, aber beispielsweise keinen
-@code{Lyrics}-(Gesangstext)-Kontext.  In dem folgenden Beispiel
-wird deshalb der Gesangstext unter das gesamte Klaviersystem
-gesetzt, anstatt zwischen die beiden Notensysteme zu kommen:
-
-@lilypond[verbatim,quote,relative=1]
-\new PianoStaff
-<<
-  \new Staff { e4 d c2 }
-  \addlyrics { Three blind mice }
+@lilypond[verbatim,quote]
+\score {
   \new Staff {
-    \clef "bass"
-    { c,1 }
+    c' d' e' f'
+    \chords { d1:m7 b1:min7.5- }
   }
->>
+  \layout {
+    \context {
+      \Staff
+      \accepts "ChordNames"
+    }
+  }
+}
 @end lilypond
 
-Die @qq{accepts}-Liste eines Kontextes kann verändert werden, so
-dass sie weitere innere Kontexte akzeptiert.  Wenn also der
-Gesangstext als Teil eines Klaviersystems gesetzt werden soll,
-müsste man schreiben:
+@code{\denies} wird vorrangig eingesetzt, wenn ein neuer Kontext
+basierend auf einem existierenden erstellt wird, aber sein 
+Schachtelungsverhalten sich unterscheidet.  Der
+@code{VaticanaStaff}-Kontext beispielsweise basiert auf dem
+@code{Staff}-Kontext, hat aber den @code{VaticanaVoice}-Kontext
+anstellt des @code{Voice}-Kontexts in seiner @qq{accepts}-Liste.
 
-@lilypond[verbatim,quote,relative=1]
-\new PianoStaff \with { \accepts Lyrics }
-<<
-  \new Staff { e4 d c2 }
-  \addlyrics { Three blind mice }
-  \new Staff {
-    \clef "bass"
-    { c,1 }
-  }
->>
-@end lilypond
+Zur Erinnerung: ein Kontext wird automatisch erstellt, wenn ein
+Befehl auftritt, der in den aktuellen Kontexten nicht enthalten
+sein kann.  Dass kann zu unerwarteten neuen Systemgruppen oder Partituren
+führen.
 
-Das Gegenteil von @code{\accepts} ist @code{\denies}; es bedeutet,
-dass ein Kontext aus der @code{\accepts}-Liste gestrichen wird.
+@cindex alignAboveContext
+@cindex alignBelowContext
+@funindex alignAboveContext
+@funindex alignBelowContext
+
+Manchmal soll ein Kontext nur für einen kurzen Moment existieren,
+ein gutes Beispiel etwa ein System für ein Ossia.  Das wird normalerweise
+erreicht, indem man die Kontextdefinition an der richtigen Stelle parallel
+mit dem existierenden Abschnitt der Hauptnoten anlegt.  Standardmäßig wird
+der neue Kontext unter den existierenden Kontexten angelegt.  Um ihn aber
+über dem Kontext mit der Bezeichnung @qq{Hauptstimme} zu positionieren,
+sollte er folgenderweise erstellt werden:
+
+@example
+\new Staff \with @{ alignAboveContext = #"Hauptstimme" @}
+@end example
+
+Eine ähnliche Situation entsteht, wenn man einen zeitweiligen Gesangstext
+in einem Layout mit mehreren Notensystemen anlegen und positionieren will,
+etwa wenn eine zweite Strophe zu einem wiederholten Abschnitt in einem
+@code{ChoirStaff} hinzugefügt wird.  Standardmäßig wird der neue Text unter
+dem untersten System angelegt.  Wenn der Gesangstext mit der Eigenschaft
+@code{alignBelowContext} definiert wird, kann er korrekt unter dem
+(bezeichneten) Gesangstext positioniert werden, der die erste Strophe
+enthält.
+
+Beispiele, die diese Neuordnung von temporären Kontexten zeigen, finden sich
+an anderen Stellen; siehe @rlearning{Musikalische Ausdrücke ineinander verschachteln},
+@ref{Einzelne Systeme verändern} und @ref{Techniken für die Gesangstextnotation}.
+
+@seealso
+Handbuch zum Lernen:
+@rlearning{Musikalische Ausdrücke ineinander verschachteln}.
+
+Notationsreferenz:
+@ref{Einzelne Systeme verändern},
+@ref{Techniken für die Gesangstextnotation}.
+
+Handbuch zur Benutzung:
+@rprogram{Ein zusätzliches System erscheint}.
+
+Installierte Dateien:
+@file{ly/engraver-init.ly}.
 
 
 @node Die Referenz der Programminterna erklärt
@@ -1289,14 +1570,14 @@ weiter weg von der Note gesetzt werden.  Dieser Befehl beispielsweise
 fügt drei Notenlinienzwischenräume zwischen die Zahl und den Notenkopf:
 
 @example
-\once \override Voice.Fingering #'padding = #3
+\once \override Voice.Fingering.padding = #3
 @end example
 
 Wenn dieser Befehl in den Quelltext eingefügt wird, bevor der
 Fingersatz notiert ist, erhält man folgendes:
 
 @lilypond[quote,relative=2,verbatim]
-\once \override Voice.Fingering #'padding = #3
+\once \override Voice.Fingering.padding = #3
 c-2
 \stemUp
 f
@@ -1403,7 +1684,7 @@ Befehls betrachtet.
 Der Befehl
 
 @verbatim
-\override Staff.Stem #'thickness = #4.0
+\override Staff.Stem.thickness = #4.0
 @end verbatim
 
 @noindent
@@ -1413,12 +1694,12 @@ Befehl den Kontext @code{Staff} angibt, wirkt er sich nur auf
 das gerade aktuelle Notensystem aus.  Andere Systeme behalten
 ihr normales Aussehen.  Hier ein Beispiel mit diesem Befehl:
 
-@lilypond[quote,verbatim,relative=2]
-c4
-\override Staff.Stem #'thickness = #4.0
-c4
-c4
-c4
+@lilypond[quote,fragment,verbatim]
+c''4
+\override Staff.Stem.thickness = #4.0
+c''4
+c''4
+c''4
 @end lilypond
 
 Der @code{\override}-Befehl verändert die Definitionen von
@@ -1431,11 +1712,11 @@ Kontext ausgelassen werden, wobei dann immer implizit der
 @code{Voice}-Kontext angenommen wird.  Mit einem zusätzlichen
 @code{\once} wirkt sich die Änderung nur einmal aus:
 
-@lilypond[quote,verbatim,relative=2]
-c4
-\once \override Stem #'thickness = #4.0
-c4
-c4
+@lilypond[quote,fragment,verbatim]
+c''4
+\once \override Stem.thickness = #4.0
+c''4
+c''4
 @end lilypond
 
 Der @code{\override}-Befehl muss geschrieben sein, bevor das Objekt
@@ -1444,11 +1725,11 @@ ein Bogen verändert werden soll, muss der @code{\override}-Befehl
 schon geschrieben werden, bevor das Objekt begonnen wird.  In dem
 folgenden Beispiel
 
-@lilypond[quote,verbatim,relative=2]
-\override Slur #'thickness = #3.0
-c8[( c
-\override Beam #'beam-thickness = #0.6
-c8 c])
+@lilypond[quote,fragment,verbatim]
+\override Slur.thickness = #3.0
+c''8[( c''
+\override Beam.beam-thickness = #0.6
+c''8 c''])
 @end lilypond
 
 @noindent
@@ -1463,8 +1744,8 @@ nur Einstellungen betroffen, die sich im gleichen Kontext befinden.  Der
 weil er für den falschen Kontext gefordert wird.
 
 @example
-\override Voice.Stem #'thickness = #4.0
-\revert Staff.Stem #'thickness
+\override Voice.Stem.thickness = #4.0
+\revert Staff.Stem.thickness
 @end example
 
 Einige veränderbare Optionen werden als Untereigenschaften (engl.
@@ -1481,7 +1762,7 @@ Befehl folgende Form an:
 wie beispielsweise
 
 @example
-\override Stem #'(details beamed-lengths) = #'(4 4 3)
+\override Stem.details.beamed-lengths = #'(4 4 3)
 @end example
 @end ignore
 
@@ -1511,7 +1792,6 @@ oder einen Absturz des Programms hervorrufen.
 @cindex Verändern von Eigenschaften
 
 @funindex \set
-@funindex set
 
 Jeder Kontext kann unterschiedliche @emph{Eigenschaften} besitzen,
 Variablen, die in diesem Kontext definiert sind.  Sie können
@@ -1522,12 +1802,12 @@ wird der @code{\set}-Befehl eingesetzt:
 \set @var{Kontext}.@var{Eigenschaft} = #@var{Wert}
 @end example
 
-@var{Wert} ist ein Scheme-Objekt, weshalb ihm @code{#} vorangestellt
+@var{Wert} ist ein Scheme-Objekt, weshalb ihm@tie{}@code{#} vorangestellt
 werden muss.
 
 Kontexteigenschaften werden üblicherweise mit @code{kleinGroßbuchstabe}
 benannt.  Sie kontrollieren vor allem die Übersetzung von Musik in
-Notation, wie etwa @code{localKeySignature}, welche bestimmt, wann
+Notation, wie etwa @code{localAlterations}, welche bestimmt, wann
 ein Taktstrich gesetzt werden muss.  Kontexteigenschaften können
 ihren Wert mit der Zeit ändern, während eine Notationsdatei interpretiert
 wird.  Ein gutes Beispiel dafür ist @code{measurePosition}, was die
@@ -1538,7 +1818,7 @@ Mehrtaktpausen etwa können in einen Takt zusammengefasst werden, wenn die
 Kontexteigenschaft @code{skipBars} (Takte überspringen) auf @code{#t}
 (wahr) gesetzt wird:
 
-@lilypond[quote,verbatim,relative=2]
+@lilypond[quote,fragment,verbatim]
 R1*2
 \set Score.skipBars = ##t
 R1*2
@@ -1549,17 +1829,16 @@ der Befehl auf den gerade aktiven unterstmöglichen Kontext,
 üblicherweise @code{ChordNames}, @code{Voice} oder
 @code{Lyrics}.
 
-@lilypond[quote,verbatim,relative=2]
+@lilypond[quote,fragment,verbatim]
 \set Score.autoBeaming = ##f
-<<
-  {
-    e8 e e e
-    \set autoBeaming = ##t
-    e8 e e e
-  } \\ {
-    c8 c c c c8 c c c
-  }
->>
+\relative {
+  e''8 e e e
+  \set autoBeaming = ##t
+  e8 e e e
+} \\
+\relative {
+  c''8 c c c c8 c c c
+}
 @end lilypond
 
 Die Änderung wird zur Laufzeit während der Musik interpretiert, sodass
@@ -1573,7 +1852,7 @@ keine Auswirkung, weil er sich auf den @code{Voice}-Kontext
 bezieht, die Eigenschaft sich aber im @code{Score}-Kontext
 befindet:
 
-@lilypond[quote,verbatim,relative=2]
+@lilypond[quote,fragment,verbatim]
 R1*2
 \set skipBars = ##t
 R1*2
@@ -1585,7 +1864,6 @@ die Änderungen auf alle Stimmen (@code{Voice}), die in diesem
 Kontext enthalten sind.
 
 @funindex \unset
-@funindex unset
 
 Es gibt auch einen @code{\unset}-Befehl:
 
@@ -1599,18 +1877,17 @@ entfernt werden.  Dieser Befehl macht nur Einstellungen im richtigen
 Kontext rückgängig.  Wenn also im @code{Staff}-Kontext die
 Bebalkung ausgeschaltet wird:
 
-@lilypond[quote,verbatim,relative=2]
+@lilypond[quote,fragment,verbatim]
 \set Score.autoBeaming = ##t
-<<
-  {
-    \unset autoBeaming
-    e8 e e e
-    \unset Score.autoBeaming
-    e8 e e e
-  } \\ {
-    c8 c c c c8 c c c
-  }
->>
+\relative {
+  \unset autoBeaming
+  e''8 e e e
+  \unset Score.autoBeaming
+  e8 e e e
+} \\
+\relative {
+  c''8 c c c c8 c c c
+}
 @end lilypond
 
 Wie für @code{\set} muss das @var{Kontext}-Argument für den untersten
@@ -1625,16 +1902,15 @@ verhalten sich gleich, wenn die gegenwärtige Basis der
 @code{Voice}-Kontext ist.
 
 @funindex \once
-@funindex once
 
 Einstellungen, die nur einmal vorgenommen werden sollen, können
 mit @code{\once} notiert werden, etwa:
 
-@lilypond[quote,verbatim,relative=2]
-c4
+@lilypond[quote,fragment,verbatim]
+c''4
 \once \set fontSize = #4.7
-c4
-c4
+c''4
+c''4
 @end lilypond
 
 Eine vollständige Beschreibung aller vorhandenen Kontexteigenschaften
@@ -1663,7 +1939,6 @@ Internals Reference:
 @cindex graphische Objekte, Eigenschaften
 
 @funindex \override
-@funindex override
 
 Es gibt eine besondere Art von Kontexteigenschaft: die Grob-Beschreibung.
 Grob-Beschreibungen werden mit @code{GroßGroßbuchstabe} benannt.  Sie
@@ -1697,7 +1972,7 @@ man die @code{thickness}-Eigenschaft des @code{Stem}-Objekts verändert:
 
 @lilypond[quote, verbatim, relative=2]
 c4 c
-\override Voice.Stem #'thickness = #3.0
+\override Voice.Stem.thickness = #3.0
 c4 c
 @end lilypond
 
@@ -1705,11 +1980,11 @@ Wenn kein Kontext angegeben wird, wird der tiefste aktuelle Kontext
 benutzt:
 
 @lilypond[quote, verbatim, relative=2]
-{ \override Staff.Stem #'thickness = #3.0
+{ \override Staff.Stem.thickness = #3.0
   <<
     {
       e4 e
-      \override Stem #'thickness = #0.5
+      \override Stem.thickness = #0.5
       e4 e
     } \\ {
       c4 c c c
@@ -1724,16 +1999,15 @@ benutzt:
 @cindex \override rückgängig machen
 
 @funindex \revert
-@funindex revert
 
 Die Auswirkungen von @code{\override} können mit @code{\revert} wieder
 rückgängig gemacht werden:
 
 @lilypond[quote, verbatim, relative=2]
 c4
-\override Voice.Stem #'thickness = #3.0
+\override Voice.Stem.thickness = #3.0
 c4 c
-\revert Voice.Stem #'thickness
+\revert Voice.Stem.thickness
 c4
 @end lilypond
 
@@ -1745,11 +2019,11 @@ Grobs im entsprechenden Kontext aber der Stelle aus, an der sie gesetzt werden:
   <<
     {
       e4
-      \override Staff.Stem #'thickness = #3.0
+      \override Staff.Stem.thickness = #3.0
       e4 e e
     } \\ {
       c4 c c
-      \revert Staff.Stem #'thickness
+      \revert Staff.Stem.thickness
       c4
     }
   >>
@@ -1762,7 +2036,6 @@ Grobs im entsprechenden Kontext aber der Stelle aus, an der sie gesetzt werden:
 @cindex \override, nur einmal
 
 @funindex \once
-@funindex once
 
 @code{\once} kann zusammen mit @code{\override} benutzt werden,
 um nur den aktuellen Zeitwert zu verändern:
@@ -1771,11 +2044,11 @@ um nur den aktuellen Zeitwert zu verändern:
 {
   <<
     {
-      \override Stem #'thickness = #3.0
+      \override Stem.thickness = #3.0
       e4 e e e
     } \\ {
       c4
-      \once \override Stem #'thickness = #3.0
+      \once \override Stem.thickness = #3.0
       c4 c c
     }
   >>
@@ -1793,12 +2066,11 @@ um nur den aktuellen Zeitwert zu verändern:
 @cindex Veränderungen der Einstellungen
 @cindex Einstellungen verändern
 
-@funindex override
 @funindex \override
 
 Viele Eigenschaften können unabhängig von der Art der Daten, die
 sie enthalten, ausgeschaltet werden, indem man sie als @qq{falsch}
-(@code{##f}) definiert.  Dadurch wird diese Eigenschaft von LilyPond
+(@code{#f}) definiert.  Dadurch wird diese Eigenschaft von LilyPond
 ignoriert.  Das ist insbesondere nützlich, wenn man Grob-Eigenschaften
 ausschalten will, die Probleme verursachen.
 @end ignore
@@ -1815,7 +2087,6 @@ Referenz der Interna:
 @translationof The tweak command
 
 @funindex \tweak
-@funindex tweak
 
 @cindex Optimieren
 
@@ -1826,11 +2097,12 @@ aktuellen Kontextes.  Das kann mit dem @code{\tweak}-Befehl erreicht
 werden, mit dem man Optimierungen vornehmen kann:
 
 @example
-\tweak #'@code{grob-eigenschaft} #@code{Wert}
+\tweak @var{Layout-Objekt} #'grob-eigenschaft #Wert
 @end example
 
-Der @code{\tweak}-Befehl wirkt sich auf das Objekt aus, dass direkt auf
-@code{Wert} folgt.
+Die Angabe von @var{Layout-Objekt} ist optional.
+Der @code{\tweak}-Befehl wirkt sich auf das musikalische Objekt aus, dass direkt
+auf @code{Wert} folgt.
 
 @ignore
 In einigen Fällen ist es möglich, mit einem abgekürzten Befehl
@@ -1840,13 +2112,13 @@ eingesetzt werden:
 
 @lilypond[relative=2,verbatim]
 < c
-  \tweak #'color #red
+  \tweak color #red
   d
   g
-  \tweak #'duration-log #1
+  \tweak duration-log #1
   a
 > 4
--\tweak #'padding #8
+-\tweak padding #8
 -^
 @end lilypond
 
@@ -1879,15 +2151,15 @@ sodass die Veränderung funktioniert.
 An einem Beispiel demonstriert:  Das funktioniert:
 
 
-@lilypond[relative=2,verbatim,quote]
-<\tweak #'color #red c>4
+@lilypond[verbatim,fragment,quote]
+<\tweak color #red c''>4
 @end lilypond
 
 @noindent
 und das nicht:
 
-@lilypond[relative=2,verbatim,quote]
-\tweak #'color #red c4
+@lilypond[verbatim,fragment,quote]
+\tweak color #red c''4
 @end lilypond
 
 @end ignore
@@ -1915,42 +2187,50 @@ gleichen musikalischen Moment auftreten können sind unter Anderem:
 In diesem Beispiel wird die Farbe eines Notenkopfes und die Art eines
 anderen Notenkopfes innerhalb eines Akkordes verändert:
 
-@lilypond[relative=2,verbatim,quote]
-< c
-  \tweak #'color #red
-  d
-  g
-  \tweak #'duration-log #1
-  a
+@lilypond[verbatim,fragment,quote]
+< c''
+  \tweak color #red
+  d''
+  g''
+  \tweak duration-log #1
+  a''
 > 4
 @end lilypond
 
 @code{\tweak} kann auch benutzt werden, um Bögen zu verändern:
 
-@lilypond[verbatim,quote,relative=1]
-c-\tweak #'thickness #5 ( d e f)
+@lilypond[verbatim,quote]
+\relative { c'-\tweak thickness #5 ( d e f) }
 @end lilypond
 
 Damit der @code{\tweak}-Befehl funktioniert, muss er direkt vor dem
-Objekt stehen, auf das er sich bezieht.  Manchmal kommt es vor, dass
-LilyPond während der Kompilierung der Datei zusätzliche Elemente
-einfügt, die dann zwischen der Optimierung und dem Objekt stehen.
-Noten, auch einzlene Noten, werden beispielsweise intern von LilyPond
-immer wie Akkorde behandelt, sodass auch ein @code{\tweak}-Befehl
-für eine einzelne Note innerhalb von Akkordzeichen notiert werden
-muss:
+Objekt stehen, auf das er sich bezieht.  Einen ganzen Akkord kann man
+nicht mit @code{\tweak} verändern, weil der Akkord wie ein Kontainer
+ist, in dem alle Layoutelemente aus Ereignissen innerhalb von
+@code{EventChord} erstellt werden:
 
 @lilypond[relative=2,verbatim,quote]
-\tweak #'color #red c4
-<\tweak #'color #red c>4
+\tweak color #red <c e>4
+<\tweak color #red c e>4
 @end lilypond
 
-Der @code{\tweak}-Befehl kann @emph{nicht} eingesetzt werden, um
-Elemente zu verändern, die sich nicht direkt im Notentext befinden.
-Insbesondere Hälse, Balken oder Versetzungszeichen lassen sich nicht
-beeinflussen, weil diese später durch den Notenkopf erstellt werden
-und nicht direkt durch
-den Quelltext.  @code{\tweak} kann auch nicht verwendet werden,
+Der einfache @code{\tweak}-Befehl kann @emph{nicht} eingesetzt werden, um
+Elemente zu verändern, die nicht direkt aus der Eingabe erstellt werden.
+Insbesondere Hälse, automatische Balken oder Versetzungszeichen lassen sich nicht
+beeinflussen, weil diese später durch die Layoutobjekte des Notenkopfs erstellt
+werden und nicht direkt durch
+den Quelltext.
+
+Derartige indirekt erstellt Layoutobjekte können mit @code{\tweak} verändert
+werden, indem man die ausführliche Form des Befehls einsetzt:
+
+@lilypond[fragment,verbatim,quote]
+\tweak Stem.color #red
+\tweak Beam.color #green c''8 e''
+<c'' e'' \tweak Accidental.font-size #-3 ges''>4
+@end lilypond
+
+@code{\tweak} kann auch nicht verwendet werden,
 um Schlüssel oder Taktarten zu verändern, denn sie werden von
 dem @code{\tweak}-Befehl während der Interpretation durch
 automatisches Einfügen von zusätzlichen Kontextelementen getrennt.
@@ -1958,20 +2238,20 @@ automatisches Einfügen von zusätzlichen Kontextelementen getrennt.
 Mehrere @code{\tweak}-Befehle können vor ein Notationselement
 gesetzt werden und alle werden interpretiert:
 
-@lilypond[verbatim,quote,relative=1]
-c
--\tweak #'style #'dashed-line
--\tweak #'dash-fraction #0.2
--\tweak #'thickness #3
--\tweak #'color #red
- \glissando
-f'
+@lilypond[verbatim,fragment,quote]
+c'
+  -\tweak style #'dashed-line
+  -\tweak dash-fraction #0.2
+  -\tweak thickness #3
+  -\tweak color #red
 \glissando
+f''
 @end lilypond
 
 Der Strom der musikalischen Ereignisse (engl. music stream), der aus
 dem Quelltext erstellt wird, und zu dem auch die automatisch eingefügten
 Elemente gehören, kann betrachtet werden, siehe
-@ref{Musikalische Funktionen darstellen}.  Das kann nützlich sein,
+@rextend{Musikalische Funktionen darstellen}.  Das kann nützlich sein,
 wenn man herausfinden will, was mit dem @code{\tweak}-Befehl
 verändert werden kann.
 
@@ -1984,18 +2264,6 @@ Erweitern:
 
 @knownissues
 
-@cindex tweak-Befehl in einer Variable
-@cindex Variable, tweak-Befehl benutzen
-@cindex Optimierung innerhalb einer Variable
-
-Der @code{\tweak}-Befehl kann nicht innerhalb von einer Variable eingesetzt werden.
-
-@cindex tweaks-Befehl in Gesangstext
-@cindex lyrics und tweak-Befehl
-@cindex Gesangstext und tweak-Befehl
-
-Der @code{\tweak}-Befehl kann nicht innerhalb von @code{\lyricmode} eingesetzt werden.
-
 @cindex Kontrollpunkte und tweak
 @cindex tweak und Kontrollpunkte
 
@@ -2008,7 +2276,7 @@ wird der erste Bogen verändert, der in der Eingabedatei auftritt.
 @subsection @code{\\set} versus @code{\\override}
 @translationof set versus override
 
-TODO: überflüssig?
+@c TODO: überflüssig?
 
 @ignore
 Es wurden zwei unterschiedliche Methoden vorgestellt, mit denen
@@ -2019,7 +2287,7 @@ unterschiedliche Arten von Eigenschaften.
 Kontexte können Eigenschaften haben, deren Bezeichnungen
 üblicherweise dem Schema @code{kleinGroß} folgen.  Derartige
 Eigenschaften sind vor allen Dingen für die Übersetzung der
-Musik in Notation zuständig, beispielsweise @code{localKeySignature}
+Musik in Notation zuständig, beispielsweise @code{localAlterations}
 (um zu bestimmen, ob Versetzungszeichen ausgegeben werden
 müssen), @code{measurePosition} (um zu bestimmen, ob eine
 Taktlinie gesetzt werden muss).  Kontexteigenschaften können
@@ -2118,7 +2386,7 @@ Schlüssel zu verändern, wird ein geschachtelter Aufruf benutzt:
 % reduced space between staves
 \new PianoStaff \with {
   % this is the nested declaration
-  \override StaffGrouper #'staff-staff-spacing #'basic-distance = #7
+  \override StaffGrouper.staff-staff-spacing.basic-distance = #7
 } <<
   \new Staff { \clef treble c''1 }
   \new Staff { \clef bass   c1   }
@@ -2137,7 +2405,7 @@ kann mit einem Aufruf als Aliste vollständig verändert werden:
 
 @lilypond[quote,verbatim]
 \new PianoStaff \with {
-  \override StaffGrouper #'staff-staff-spacing =
+  \override StaffGrouper.staff-staff-spacing =
     #'((basic-distance . 0)
        (minimum-distance . 0)
        (padding . 0)
@@ -2157,10 +2425,10 @@ den Wert von @code{space} hat, wenn sie nicht definiert ist).  Somit sind
 folgende Aufrufe äquivalent:
 
 @example
-\override StaffGrouper #'staff-staff-spacing =
+\override StaffGrouper.staff-staff-spacing =
   #'((basic-distance . 7))
 
-\override StaffGrouper #'staff-staff-spacing =
+\override StaffGrouper.staff-staff-spacing =
   #'((basic-distance . 7)
      (minimum-distance . 0)
      (padding . 0)
@@ -2180,7 +2448,7 @@ Es ist also sicherer, geschachtelte Aufrufe zu benutzen, wenn man nicht
 bewusst alle Werte zurücksetzen will.
 
 @warning{Geschachtelte Aufrufe funktionieren nicht mit
-Kontexteigenschaften (wie etwa @code{beamExceptions}, @code{keySignature},
+Kontexteigenschaften (wie etwa @code{beamExceptions}, @code{keyAlterations},
 @code{timeSignatureSettings}, usw.)  Diese Eigenschaften können
 nur verändert werden, indem man sie vollständig als Alisten umdefiniert.}
 
@@ -2192,7 +2460,6 @@ nur verändert werden, indem man sie vollständig als Alisten umdefiniert.}
 @menu
 * Eingabe-Modi::
 * Richtung und Platzierung::
-* Reihenfolge des Kontextlayouts::
 * Abstände und Maße::
 * Eigenschaften des Staff-Symbols::
 * Strecker::
@@ -2345,17 +2612,19 @@ benutzen) normalerweise weggelassen werden.  In diesem Fall wird
 @item @code{\markup}-(Textbeschriftungs-)Befehlen
 @item @code{\tag}-Befehlen
 @item Textbeschriftungen in reiner Textform, wie etwa @code{-"string"}
-@item Fingersatzanweisungen: @code{-1}
-@item Abkürzungen von Artikulationen, wie @code{-.}, @code{->}, @code{--}
+@item Fingersatzanweisungen: @w{@code{-1}}
+@item Abkürzungen von Artikulationen, wie @w{@code{-.}}, @w{@code{->}}, @w{@code{--}}
 @end itemize
 
 Ausrichtungsmarkierer haben nur eine Auswirkung auf die nächste Note:
 
-@lilypond[verbatim,quote,relative=2]
-c2( c)
-c2_( c)
-c2( c)
-c2^( c)
+@lilypond[verbatim,quote]
+\relative {
+  c''2( c)
+  c2_( c)
+  c2( c)
+  c2^( c)
+}
 @end lilypond
 
 
@@ -2366,10 +2635,10 @@ Die Position oder Richtung vieler Layoutobjekte wird von der
 
 Der Wert der @code{direction}-Eigenschaft kann auf den Wert
 @code{1} gesetzt werden, was gleichbedeutend mit @qq{nach oben}
-bzw. @qq{oberhalb} ist, oder auf den Wert @code{-1}, was
+bzw. @qq{oberhalb} ist, oder auf den Wert @w{@code{-1}}, was
 @qq{nach unten} bzw. @qq{unterhalb} bedeutet.  Die Symbole
 @code{UP} und @code{DOWN} können anstelle von @code{1}
-und @code{-1} benutzt werden.  Die Standardausrichtung kann
+und @w{@code{-1}} benutzt werden.  Die Standardausrichtung kann
 angegeben werden, indem @code{direction} auf den Wert
 @code{0} oder @code{CENTER} gesetzt wird.  In vielen Fällen
 bestehen auch vordefinierte Befehle, mit denen die Ausrichtung
@@ -2387,7 +2656,7 @@ In wenigen Fällen, von denen Arpeggio das einzige häufiger
 vorkommende Beispiel darstellt, entscheidet der Wert von
 @code{direction}, ob das Objekt auf der rechten oder linken
 Seite das Ursprungsobjektes ausgegeben wird.  In diesem Fall
-bedeutet @code{-1} oder @code{LEFT} @qq{auf der linken Seite}
+bedeutet @w{@code{-1}} oder @code{LEFT} @qq{auf der linken Seite}
 und @code{1} oder @code{RIGHT} @qq{auf der rechten Seite}.  @code{0}
 oder @code{CENTER} bedeutet @qq{benutze Standardausrichtung}.
 
@@ -2395,44 +2664,27 @@ oder @code{CENTER} bedeutet @qq{benutze Standardausrichtung}.
 Diese Ausrichtungsanzeigen wirken sich auf alle Noten aus, bis sie
 rückgängig gemacht werden:
 
-@lilypond[verbatim,quote,relative=2]
-c2( c)
-\slurDown
-c2( c)
-c2( c)
-\slurNeutral
-c2( c)
+@lilypond[verbatim,quote]
+\relative {
+  c''2( c)
+  \slurDown
+  c2( c)
+  c2( c)
+  \slurNeutral
+  c2( c)
+}
 @end lilypond
 
-
-@node Reihenfolge des Kontextlayouts
-@subsection Reihenfolge des Kontextlayouts
-@translationof Context layout order
-
-@cindex Kontexte, Reihenfolge
-
-Kontexte werden normalerweise in einer Notensystemgruppe dargestellt,
-von oben nach unten in der Reihenfolge, in der sie
-in der Eingabedatei auftreten.  Wenn Kontexte verschachtelt sind,
-enthält der äußere Kontext die inneren geschachtelten Kontexte,
-wie in der Eingabedatei angegeben, vorausgesetzt die inneren
-Kontexte befinden sich in der @qq{accepts}-Liste des äußeren
-Kontextes.  Verschachtelte Kontexte, die nicht in dieser Liste
-auftauchen, werden neu unter den äußeren Kontext angeordnet, anstatt
-dass sie innerhalb dieses Kontextes gesetzt werden.
-
-Es ist wichtig zu erinnern, dass ein Kontext implizit erstellt
-werden kann, wenn ein Befehl vorkommt und kein passender Kontext
-zur Verfügung steht, um den Befehl auszuführen.  Dadurch können
-unerwartet neue Systeme oder Partituren erstellt werden.
-
-Die Standardreihenfolge, in der die Kontexte gesetzt werden und
-die @qq{accepts}-Liste können geändert werden, siehe auch
-@ref{Aligning contexts}.
+In polyphoner Musik ist es normalerweise besser, eine explizite
+Stimme (@code{voice} zu erstellen, als die Richtung eines Objektes zu
+ändern.  Zu mehr Information siehe @ref{Mehrere Stimmen}.
 
 @seealso
-Handbuch zum Lernen
-@rlearning{An extra staff appears}.
+Handbuch zum Lernen:
+@rlearning{within-staff (Objekte innerhalb des Notensystems)}.
+
+Notationsreferenz:
+@ref{Mehrere Stimmen}.
 
 
 @node Abstände und Maße
@@ -2524,11 +2776,11 @@ Anzahl der Notenlinien wird implizit definiert durch
 die Anzahl der Elemente in der Liste der Werte von
 @code{'line-positions}.}
 
-@lilypond[verbatim,quote,relative=1]
+@lilypond[verbatim,quote]
 \new Staff \with {
-  \override StaffSymbol #'line-positions = #'(7 3 0 -4 -6 -7)
+  \override StaffSymbol.line-positions = #'(7 3 0 -4 -6 -7)
 }
-{ a4 e' f b | d1 }
+\relative { a4 e' f b | d1 }
 @end lilypond
 
 Die Breite eines Notensystems kann verändert werden.  Die Einheit
@@ -2536,11 +2788,11 @@ ist in Notenlinienabständen.  Die Abstände von Objekten
 in diesem Notensystem wird durch diese Einstellung nicht
 beeinflusst.
 
-@lilypond[verbatim,quote,relative=1]
+@lilypond[verbatim,quote]
 \new Staff \with {
-  \override StaffSymbol #'width = #23
+  \override StaffSymbol.width = #23
 }
-{ a4 e' f b | d1 }
+\relative { a4 e' f b | d1 }
 @end lilypond
 
 
@@ -2586,7 +2838,7 @@ unten dargestellt.
 a~a
 a
 % increase the length of the tie
--\tweak #'minimum-length #5
+-\tweak minimum-length #5
 ~a
 @end lilypond
 
@@ -2595,7 +2847,7 @@ a1
 \compressFullBarRests
 R1*23
 % increase the length of the rest bar
-\once \override MultiMeasureRest #'minimum-length = #20
+\once \override MultiMeasureRest.minimum-length = #20
 R1*23
 a1
 @end lilypond
@@ -2603,7 +2855,7 @@ a1
 @lilypond[verbatim,quote,relative=2]
 a \< a a a \!
 % increase the length of the hairpin
-\override Hairpin #'minimum-length = #20
+\override Hairpin.minimum-length = #20
 a \< a a a \!
 @end lilypond
 
@@ -2613,12 +2865,12 @@ von Legato- und Phrasierungsbögen zu verändern:
 @lilypond[verbatim,quote,relative=2]
 a( a)
 a
--\tweak #'minimum-length #5
+-\tweak minimum-length #5
 ( a)
 
 a\( a\)
 a
--\tweak #'minimum-length #5
+-\tweak minimum-length #5
 \( a\)
 @end lilypond
 
@@ -2630,31 +2882,31 @@ auf @code{ly:spanner::set-spacing-rods} gesetzt werden.  Die
 Mindestlänge eines Glissandos etwa wird erst aktiv, wenn
 die @code{springs-and-rods}-Eigenschaft gesetzt ist:
 
-@lilypond[verbatim,quote,relative=1]
+@lilypond[verbatim,fragment,quote]
 % default
-e \glissando c'
+e' \glissando c''
 
 % not effective alone
-\once \override Glissando #'minimum-length = #20
-e, \glissando c'
+\once \override Glissando.minimum-length = #20
+e' \glissando c''
 
 % effective only when both overrides are present
-\once \override Glissando #'minimum-length = #20
-\once \override Glissando #'springs-and-rods = #ly:spanner::set-spacing-rods
-e, \glissando c'
+\once \override Glissando.minimum-length = #20
+\once \override Glissando.springs-and-rods = #ly:spanner::set-spacing-rods
+e' \glissando c''
 @end lilypond
 
 Das gilt auch für das @code{Beam}-(Balken-)Objekt:
 
-@lilypond[verbatim,quote,relative=1]
+@lilypond[verbatim,fragment,quote]
 % not effective alone
-\once \override Beam #'minimum-length = #20
-e8 e e e
+\once \override Beam.minimum-length = #20
+e'8 e' e' e'
 
 % effective only when both overrides are present
-\once \override Beam #'minimum-length = #20
-\once \override Beam #'springs-and-rods = #ly:spanner::set-spacing-rods
-e8 e e e
+\once \override Beam.minimum-length = #20
+\once \override Beam.springs-and-rods = #ly:spanner::set-spacing-rods
+e'8 e' e' e'
 @end lilypond
 
 @strong{@i{Die @code{to-barline}-Eigenschaft}}
@@ -2668,10 +2920,12 @@ Taktstrich erstreckt.  Wenn die Eigenschaft auf @qq{falsch} gesetzt
 wird, erstrecken sich die Strecker entsprechend über die Taktlinie
 hinüber und enden erst an der entsprechenden Note:
 
-@lilypond[verbatim,quote,relative=2]
-a \< a a a a \! a a a \break
-\override Hairpin #'to-barline = ##f
-a \< a a a a \! a a a
+@lilypond[verbatim,quote]
+\relative {
+  a' \< a a a a \! a a a \break
+  \override Hairpin.to-barline = ##f
+  a \< a a a a \! a a a
+}
 @end lilypond
 
 Diese Eigenschaft wirkt sich nicht auf alle Strecker aus.  Im Falle
@@ -2704,11 +2958,11 @@ werden müssen, sind zwei Ebenen in der Objekthierarchie
 tiefer angeordnet, aber die Syntax des @code{\override}-Befehls
 ist ziemlich einfach:
 
-@lilypond[relative=2,quote,verbatim]
-e2 \glissando b
-\once \override Glissando #'(bound-details left Y) = #3
-\once \override Glissando #'(bound-details right Y) = #-2
-e2 \glissando b
+@lilypond[quote,fragment,verbatim]
+e''2 \glissando b'
+\once \override Glissando.bound-details.left.Y = #3
+\once \override Glissando.bound-details.right.Y = #-2
+e''2 \glissando b'
 @end lilypond
 
 Die Einheiten für die @code{Y}-Eigenschaft werden in
@@ -2726,11 +2980,11 @@ Im Fall eines Zeilenumbruchs werden die Werte der Endpunkte
 in den Unterlisten @code{left-broken} bzw. @code{right-broken}
 von @code{bound-details} abgelegt.  Zum Beispiel:
 
-@lilypond[relative=2,ragged-right,verbatim,quote]
-\override Glissando #'breakable = ##t
-\override Glissando #'(bound-details right-broken Y) = #-3
-c1 \glissando \break
-f1
+@lilypond[ragged-right,fragment,verbatim,quote]
+\override Glissando.breakable = ##t
+\override Glissando.bound-details.right-broken.Y = #-3
+c''1 \glissando \break
+f''1
 @end lilypond
 
 Eine Anzahl weitere Eigenschaft der @code{left}- und
@@ -2750,7 +3004,7 @@ ist sein Wert mit 0 definiert.
 
 @item attach-dir
 Das entscheidet, wo die Linie auf der X-Achse beginnt und endet,
-relativ zum Elternobjekt.  Ein Wert @code{-1} (oder
+relativ zum Elternobjekt.  Ein Wert @w{@code{-1}} (oder
 @code{LEFT}) lässt die Linie an der linken Seite der Noten
 beginnen/enden, mit der sie verknüpft ist.
 
@@ -2771,10 +3025,10 @@ Das ist eine Textbeschriftung, die ausgewertet wird und die
 um @i{cresc.}, @i{tr} oder andere Texte an horizontale
 Strecker zu setzen.
 
-@lilypond[quote,ragged-right,relative=2,verbatim]
-\override TextSpanner #'(bound-details left text)
+@lilypond[quote,ragged-right,fragment,verbatim]
+\override TextSpanner.bound-details.left.text
    = \markup { \small \bold Slower }
-c2\startTextSpan b c a\stopTextSpan
+\relative { c''2\startTextSpan b c a\stopTextSpan }
 @end lilypond
 
 @item stencil-align-dir-y
@@ -2787,22 +3041,19 @@ definiert) zentriert, ausgegeben.  Wenn entweder
 gesetzt werden, wird das Symbol am Rand vertikal entsprechend
 des Endpunktes der Linie verschoben:
 
-@lilypond[relative=1,quote,verbatim]
-\override TextSpanner
-  #'(bound-details left stencil-align-dir-y) = #-2
-\override TextSpanner
-  #'(bound-details right stencil-align-dir-y) = #UP
+@lilypond[quote,fragment,verbatim]
+\override TextSpanner.bound-details.left.stencil-align-dir-y = #-2
+\override TextSpanner.bound-details.right.stencil-align-dir-y = #UP
 
-\override TextSpanner
-  #'(bound-details left text) = #"ggg"
-\override TextSpanner
-  #'(bound-details right text) = #"hhh"
-c4^\startTextSpan c c c \stopTextSpan
+\override TextSpanner.bound-details.left.text = #"ggg"
+\override TextSpanner.bound-details.right.text = #"hhh"
+
+\relative { c'4^\startTextSpan c c c \stopTextSpan }
 @end lilypond
 
 Dabei sollte beachtet werden, dass negative Werte das Objekt
 nach @emph{oben} verschieben, anders als man erwarten könnte,
-weil der Wert @code{-1} oder @code{DOWN} bedeutet, dass
+weil der Wert @w{@code{-1}} oder @code{DOWN} bedeutet, dass
 die @emph{Unterkante} des Textes mit der Streckerlinie
 ausgerichtet wird.  Ein Wert @code{1} oder @code{UP}
 richtet die Oberkante des Textes mit der Streckerlinie aus.
@@ -2826,11 +3077,13 @@ einer Note beendet, oder am nächsten Taktstrich, wenn
 @code{to-barline} auf wahr gesetzt ist und eine Taktlinie
 vor der nächsten Note erscheint.
 
-@lilypond[verbatim,quote,ragged-right,relative=2]
-\endSpanners
-c2 \startTextSpan c2 c2
-\endSpanners
-c2 \< c2 c2
+@lilypond[verbatim,quote,ragged-right]
+\relative c'' {
+  \endSpanners
+  c2 \startTextSpan c2 c2
+  \endSpanners
+  c2 \< c2 c2
+}
 @end lilypond
 
 Wenn man @code{\endSpanners} benutzt, ist es nicht
@@ -2897,11 +3150,11 @@ Funktion aufgerufen und also auch kein Objekt gezeichnet.
 Das Standardverhalten kann mit dem Befehl @code{\revert}
 wieder hergestellt werden.
 
-@lilypond[quote,verbatim,relative=1]
+@lilypond[quote,fragment,verbatim]
 a1 a
-\override Score.BarLine #'stencil = ##f
+\omit Score.BarLine
 a a
-\revert Score.BarLine #'stencil
+\undo \omit Score.BarLine
 a a a
 @end lilypond
 
@@ -2920,10 +3173,10 @@ die normalerweise auf den Wert @code{#f} gesetzt ist.  Wenn
 sie auf @code{#t} gesetzt wird, nimmt das Objekt immer noch
 den entsprechenden Platz ein, ist aber unsichtbar.
 
-@lilypond[quote,verbatim,relative=2]
-a4 a
-\once \override NoteHead #'transparent = ##t
-a a
+@lilypond[quote,fragment,verbatim]
+a'4 a'
+\once \hide NoteHead
+a' a'
 @end lilypond
 
 
@@ -2951,9 +3204,9 @@ in welcher die Objekte gesetzt werden.  Es kann also vorkommen,
 dass man die Umrisse des weißen Objektes erahnen kann, wie
 in diesem Beispiel:
 
-@lilypond[quote,verbatim,relative=2]
-\override Staff.Clef #'color = #white
-a1
+@lilypond[quote,fragment,verbatim]
+\override Staff.Clef.color = #white
+a'1
 @end lilypond
 
 Das kann man vermeiden, indem man die Satzreihenfolge der Objekte
@@ -2972,13 +3225,13 @@ Im oberen Beispiel wird der weiße Schlüssel, der einen Wert von
 @code{1} für @code{layer} hat, nach den Notenlinien gesetzt
 (die einen Wert von @code{0} für @code{layer} haben) und
 überschneidet sie also.  Um das zu ändern, muss dem @code{Clef}-Objekt
-(Notenschlüssel) ein niedrigerer Wert, etwa @code{-1}, gegeben
+(Notenschlüssel) ein niedrigerer Wert, etwa @w{@code{-1}}, gegeben
 werden, sodass es früher gesetzt wird:
 
-@lilypond[quote,verbatim,relative=2]
-\override Staff.Clef #'color = #white
-\override Staff.Clef #'layer = #-1
-a1
+@lilypond[quote,fragment,verbatim]
+\override Staff.Clef.color = #white
+\override Staff.Clef.layer = #-1
+a'1
 @end lilypond
 
 
@@ -3024,7 +3277,7 @@ definiert sind.  Die letzten drei Spalten der folgenden Tabelle
 zeigen an, ob das Layout-Objekt an einer bestimmten Position
 sichtbar sein wird oder nicht:
 
-@multitable {@code{begin-of-line-invisible}} {@code{'#(#t #t #t)}} {ja} {ja} {ja}
+@multitable {@code{begin-of-line-invisible}} {@code{'#(#t #t #t)}} {Vor} {Bei Nr.} {Nach}
 @headitem Funktion                   @tab Vektor                  @tab Vor @tab kein    @tab Nach
 @headitem Form                       @tab Form                    @tab Umbruch  @tab Umbruch    @tab Umbruch
 
@@ -3062,7 +3315,7 @@ jeweiligen Standardeinstellungen der Eigenschaft:
 @item @code{KeySignature} (Tonart)       @tab @code{Staff}          @tab @code{begin-of-line-visible}
 @c omit LeftEdge until it can be explained -td
 @c @item @code{LeftEdge}         @tab @code{Score}          @tab @code{center-invisible}
-@item @code{OctavateEight} (Oktavierungs-Acht)      @tab @code{Staff}          @tab @code{begin-of-line-visible}
+@item @code{ClefModifier} (Oktavierungs-Acht)      @tab @code{Staff}          @tab @code{begin-of-line-visible}
 @item @code{RehearsalMark} (Übungszeichen)      @tab @code{Score}          @tab @code{end-of-line-invisible}
 @item @code{TimeSignature} (Taktart)      @tab @code{Staff}          @tab @code{all-visible}
 
@@ -3075,7 +3328,7 @@ Sichtbarkeit von Taktlinien zu bestimmten:
 f4 g a b
 f4 g a b
 % Remove bar line at the end of the current line
-\once \override Score.BarLine #'break-visibility = #'#(#f #t #t)
+\once \override Score.BarLine.break-visibility = #'#(#f #t #t)
 \break
 f4 g a b
 f4 g a b
@@ -3133,16 +3386,18 @@ Zeile angezeigt werden.  Im nächsten Beispiel ist die Tonartangabe
 nach dem expliziten Wechsel zu B-Dur immer noch sichtbar, obwohl
 @code{all-invisible} eingesetzt wurde:
 
-@lilypond[quote,verbatim,relative=1,ragged-right]
-\key g \major
-f4 g a b
-% Try to remove all key signatures
-\override Staff.KeySignature #'break-visibility = #all-invisible
-\key bes \major
-f4 g a b
-\break
-f4 g a b
-f4 g a b
+@lilypond[quote,verbatim,ragged-right]
+\relative {
+  \key g \major
+  f'4 g a b
+  % Try to remove all key signatures
+  \override Staff.KeySignature.break-visibility = #all-invisible
+  \key bes \major
+  f4 g a b
+  \break
+  f4 g a b
+  f4 g a b
+}
 @end lilypond
 
 Die Sichtbarkeit derartiger expliziter Tonart- und Schlüsseländerungen
@@ -3160,15 +3415,17 @@ die Sichtbarkeit von Tonarten bzw. Schlüssel, die von expliziten
 Schlüssel zu Beginn einer Zeile -- um diese zu beeinflussen, muss
 @code{break-visibility} benutzt werden.
 
-@lilypond[quote,verbatim,relative=1,ragged-right]
-\key g \major
-f4 g a b
-\set Staff.explicitKeySignatureVisibility = #all-invisible
-\override Staff.KeySignature #'break-visibility = #all-invisible
-\key bes \major
-f4 g a b \break
-f4 g a b
-f4 g a b
+@lilypond[quote,verbatim,ragged-right]
+\relative {
+  \key g \major
+  f'4 g a b
+  \set Staff.explicitKeySignatureVisibility = #all-invisible
+  \override Staff.KeySignature.break-visibility = #all-invisible
+  \key bes \major
+  f4 g a b \break
+  f4 g a b
+  f4 g a b
+}
 @end lilypond
 
 @strong{@emph{Sichtbarkeit von erinnernden Versetzungszeichen}}
@@ -3177,16 +3434,18 @@ Um erinnernde Versetzungszeichen zu entfernen, die nach einer
 expliziten Tonartänderung auftreten, muss die @code{Staff}-Eigenschaft
 @code{printKeyCancellation} auf @code{#f} gesetzt werden:
 
-@lilypond[quote,verbatim,relative=1,ragged-right]
-\key g \major
-f4 g a b
-\set Staff.explicitKeySignatureVisibility = #all-invisible
-\set Staff.printKeyCancellation = ##f
-\override Staff.KeySignature #'break-visibility = #all-invisible
-\key bes \major
-f4 g a b \break
-f4 g a b
-f4 g a b
+@lilypond[quote,verbatim,ragged-right]
+\relative {
+  \key g \major
+  f'4 g a b
+  \set Staff.explicitKeySignatureVisibility = #all-invisible
+  \set Staff.printKeyCancellation = ##f
+  \override Staff.KeySignature.break-visibility = #all-invisible
+  \key bes \major
+  f4 g a b \break
+  f4 g a b
+  f4 g a b
+}
 @end lilypond
 
 Mit diesen Veränderungen bleiben nur noch die Versetzungszeichen
@@ -3219,10 +3478,10 @@ auftreten.
 @cindex Schlüssel, Sichtbarkeit der Oktavierung
 
 Das kleine Oktavierungssymbol von oktavierten Notenschlüsseln
-wird durch das @code{OctavateEight}-Layout-Objekt erstellt.
+wird durch das @code{ClefModifier}-Layout-Objekt erstellt.
 Seine Sichtbarkeit wird automatisch vom @code{Clef}-Objekt
 geerbt, sodass Veränderungen von @code{break-visibility}
-des @code{OctavateEight}-Layout-Objekts nicht auch noch
+des @code{ClefModifier}-Layout-Objekts nicht auch noch
 für unsichtbare Schlüssel zusätzlich vorgenommen werden müssen.
 
 Bei expliziten Schlüsseländerungn kontrolliert die
@@ -3231,7 +3490,7 @@ Schlüsselsymbol als auch das damit verknüpfte Oktavierungssymbol.
 
 @seealso
 Handbuch zum Lernen:
-@rlearning{Sichtbarkeit und Farbe von Objekten}
+@rlearning{Sichtbarkeit und Farbe von Objekten}.
 
 
 @node Linienstile
@@ -3255,16 +3514,18 @@ im gewünschten Linienstil.
 Hier einige Beispiele, welche Linienstile möglich sind
 und wie sie verändert werden können:
 
-@lilypond[relative=2,ragged-right,verbatim,quote]
-d2 \glissando d'2
-\once \override Glissando #'style = #'dashed-line
-d,2 \glissando d'2
-\override Glissando #'style = #'dotted-line
-d,2 \glissando d'2
-\override Glissando #'style = #'zigzag
-d,2 \glissando d'2
-\override Glissando #'style = #'trill
-d,2 \glissando d'2
+@lilypond[ragged-right,verbatim,quote]
+\relative {
+  d''2 \glissando d'2
+  \once \override Glissando.style = #'dashed-line
+  d,2 \glissando d'2
+  \override Glissando.style = #'dotted-line
+  d,2 \glissando d'2
+  \override Glissando.style = #'zigzag
+  d,2 \glissando d'2
+  \override Glissando.style = #'trill
+  d,2 \glissando d'2
+}
 @end lilypond
 
 Die Position der Endpunkte des Streckers werden in
@@ -3272,14 +3533,16 @@ Realzeit für jedes graphische Objekt errechnet, aber
 es ist möglich, sie manuell vorzugeben:
 
 @c TODO Complete
-@lilypond[relative=2,ragged-right,verbatim,quote]
-e2 \glissando f
-\once \override Glissando #'(bound-details right Y) = #-2
-e2 \glissando f
+@lilypond[ragged-right,verbatim,quote]
+\relative {
+  e''2 \glissando f
+  \once \override Glissando.bound-details.right.Y = #-2
+  e2 \glissando f
+}
 @end lilypond
 
 Der Wert von @code{Y} wird für den rechten Endpunkt auf
-@code{-2} gesetzt.  Die linke Seite kann ähnlich angepasst
+@w{@code{-2}} gesetzt.  Die linke Seite kann ähnlich angepasst
 werden, indem man @code{left} anstelle von @code{right} angibt.
 
 Wenn @code{Y} nicht gesetzt ist, wird der Wert ausgehend von
@@ -3300,12 +3563,12 @@ werden, aber die Methode, mit der die Änderung vorgenommen
 werden muss, unterscheidet sich je nach Objekt.
 
 @menu
-* Drehen von Objekten::
+* Drehen von Layout-Objekten::
 * Textbeschriftung drehen::
 @end menu
 
-@node Drehen von Objekten
-@unnumberedsubsubsec Drehen von Objekten
+@node Drehen von Layout-Objekten
+@unnumberedsubsubsec Drehen von Layout-Objekten
 @translationof Rotating layout objects
 
 @cindex Drehen von Objekten
@@ -3332,10 +3595,10 @@ Es gibt nur wenige Situationen, in welchen die Drehung eines
 Layout-Objektes sinnvoll ist.  Das folgende Beispiel zeigt
 eine sinnvolle Anwendung:
 
-@lilypond[quote,verbatim,relative=1]
-g4\< e' d' f\!
-\override Hairpin #'rotation = #'(20 -1 0)
-g,,4\< e' d' f\!
+@lilypond[quote,fragment,verbatim]
+g4\< e' d'' f''\!
+\override Hairpin.rotation = #'(20 -1 0)
+g4\< e' d'' f''\!
 @end lilypond
 
 
@@ -3354,12 +3617,12 @@ Beispiel wird die @code{outside-staff-priority}-Eigenschaft auf
 werden, wodurch andernfalls einige der Texte zu hoch geschoben werden
 würden.
 
-@lilypond[quote,verbatim,relative=1]
-\override TextScript #'outside-staff-priority = ##f
+@lilypond[quote,fragment,verbatim]
+\override TextScript.outside-staff-priority = ##f
 g4^\markup { \rotate #30 "a G" }
 b^\markup { \rotate #30 "a B" }
-des^\markup { \rotate #30 "a D-Flat" }
-fis^\markup { \rotate #30 "an F-Sharp" }
+des'^\markup { \rotate #30 "a D-Flat" }
+fis'^\markup { \rotate #30 "an F-Sharp" }
 @end lilypond
 
 
@@ -3375,18 +3638,21 @@ Aussehen des Notenbildes zu polieren.
 * Vertikale Gruppierung der grafischen Objekte („grob“s)::
 * stencils verändern::
 * Formen verändern::
+* Reine und unreine Container::
 @end menu
 
 
 @seealso
 Handbuch zum Lernen:
-@rlearning{Die Ausgabe verändern},
+@rlearning{Die Ausgabe verbessern},
 @rlearning{Mehr Information}.
 
 Notationsreferenz:
 @ref{Die Referenz der Programminterna erklärt},
-@ref{Eigenschaften verändern},
-@ref{Schnittstellen für Programmierer}.
+@ref{Eigenschaften verändern}.
+
+Erweitern:
+@rextend{Schnittstellen für Programmierer}.
 
 Installierte Dateien:
 @file{scm/define-grobs.scm}.
@@ -3469,15 +3735,15 @@ drei Noten mit der Standardposition von Fingersatzanweisungen
 und die Positionen, wenn @code{X-offset} und @code{Y-offset}
 verändert werden.
 
-@lilypond[verbatim,quote,relative=2]
-a-3
-a
--\tweak #'X-offset #0
--\tweak #'Y-offset #0
+@lilypond[verbatim,fragment,quote]
+a'-3
+a'
+-\tweak X-offset #0
+-\tweak Y-offset #0
 -3
-a
--\tweak #'X-offset #-1
--\tweak #'Y-offset #1
+a'
+-\tweak X-offset #-1
+-\tweak Y-offset #1
 -3
 @end lilypond
 
@@ -3545,27 +3811,27 @@ Zahl zugewiesen werden, in Einheiten der Hälfte der
 X-Gesamtausdehnung des Objekts.  Negative Werte verschieben
 das Objekt nach rechts, positive nach links.  Ein Wert von
 @code{0} zentriert das Objekt auf dem Referenzpunkt des
-Ursprungs, ein Wert von @code{-1} richtet die linke Ecke des
+Ursprungs, ein Wert von @w{@code{-1}} richtet die linke Ecke des
 Objekts am Referenzpunkt des Ursprungsobjektes aus, ein
 Wert von @code{1} richtet die rechte Ecke des Objektes am
 Referenzpunkt des Ursprungsobjektes aus.  Die Symbole
 @code{LEFT}, @code{CENTER} und @code{RIGHT} können anstelle
-von @code{-1, 0, 1} eingesetzt werden.
+von @w{@code{-1}}, @code{0} und @code{1} eingesetzt werden.
 
 Normalerweise würde der @code{\override}-Befehl benutzt werden, um
 die Werte von @code{self-alignment-X} zu verändern, aber der
 @code{\tweak}-Befehl kann benutzen, um verschiedene Anmerkungen
 an einer einzigen Note auszurichten:
 
-@lilypond[quote,verbatim,relative=1]
+@lilypond[quote,verbatim,fragment]
 a'
--\tweak #'self-alignment-X #-1
+-\tweak self-alignment-X #-1
 ^"left-aligned"
--\tweak #'self-alignment-X #0
+-\tweak self-alignment-X #0
 ^"center-aligned"
--\tweak #'self-alignment-X #RIGHT
+-\tweak self-alignment-X #RIGHT
 ^"right-aligned"
--\tweak #'self-alignment-X #-2.5
+-\tweak self-alignment-X #-2.5
 ^"aligned further to the right"
 @end lilypond
 
@@ -3582,14 +3848,14 @@ Berechnung benutzt werden.  Darum ist es kompliziert, den
 Wert für einige Objekte richtig anzupassen.  Die Einheiten
 sind Halbe der vertikalen Ausdehnung des Objektes, welche
 normalerweise recht klein ist, sodass ziemlich große Werte
-erforderlich sein können.  Der Wert @code{-1} richtet die
+erforderlich sein können.  Der Wert @w{@code{-1}} richtet die
 untere Kante des Objekts am Referenzpunkt des Ursprungsobjektes
 aus, der Wert @code{0} richtet die Mitte des Objekts am
 Referenzpunkt des Ursprungsobjektes aus und der Wert @code{1}
 richtet die Oberkante des Objektes am Referenzpunkt des
 Ursprungsobjektes aus.  Die Symbole @code{DOWN}, @code{CENTER}
-und @code{UP} können anstelle von @code{-1, 0, 1} benutzt
-werden.
+und @code{UP} können anstelle von @w{@code{-1}}, @code{0}
+und @code{1} benutzt werden.
 
 @emph{Automatische Ausrichtung in beide Richtungen}
 
@@ -3600,11 +3866,11 @@ werden.
 Das folgende Beispiel zeigt, wie man eine Fingersatzanweisung so
 ausrichtet, dass sie nah am Notenkopf bleibt.
 
-@lilypond[quote,verbatim,relative=2]
-a
--\tweak #'self-alignment-X #0.5  % move horizontally left
--\tweak #'Y-offset #ly:self-alignment-interface::y-aligned-on-self
--\tweak #'self-alignment-Y #-1  % move vertically up
+@lilypond[quote,verbatim,fragment]
+a'
+-\tweak self-alignment-X #0.5  % move horizontally left
+-\tweak Y-offset #ly:self-alignment-interface::y-aligned-on-self
+-\tweak self-alignment-Y #-1  % move vertically up
 -3  % third finger
 @end lilypond
 
@@ -3630,20 +3896,20 @@ Standardmäßig werden Übungszeichen und Taktzahlen horizontal
 
 @lilypond[verbatim,quote,relative=1]
 % The RehearsalMark will be centered above the Clef
-\override Score.RehearsalMark #'break-align-symbols = #'(clef)
+\override Score.RehearsalMark.break-align-symbols = #'(clef)
 \key a \major
 \clef treble
 \mark "↓"
 e1
 % The RehearsalMark will be centered above the TimeSignature
-\override Score.RehearsalMark #'break-align-symbols = #'(time-signature)
+\override Score.RehearsalMark.break-align-symbols = #'(time-signature)
 \key a \major
 \clef treble
 \time 3/4
 \mark "↓"
 e2.
 % The rehearsal mark will be centered above the Breath Mark
-\override Score.RehearsalMark #'break-align-symbols = #'(breathing-sign)
+\override Score.RehearsalMark.break-align-symbols = #'(breathing-sign)
 \key a \major
 \clef treble
 \time 4/4
@@ -3664,14 +3930,14 @@ ausgerichtet, an der sich der Taktstrich befinden würde.
 
 @lilypond[verbatim,quote,relative=1]
 % The RehearsalMark will be centered above the Key Signature
-\override Score.RehearsalMark #'break-align-symbols = #'(key-signature clef)
+\override Score.RehearsalMark.break-align-symbols = #'(key-signature clef)
 \key a \major
 \clef treble
 \mark "↓"
 e1
 % The RehearsalMark will be centered above the Clef
 \set Staff.explicitKeySignatureVisibility = #all-invisible
-\override Score.RehearsalMark #'break-align-symbols = #'(key-signature clef)
+\override Score.RehearsalMark.break-align-symbols = #'(key-signature clef)
 \key a \major
 \clef bass
 \mark "↓"
@@ -3679,7 +3945,7 @@ gis,,1
 % The rehearsal mark will be centered above the Bar Line
 \set Staff.explicitKeySignatureVisibility = #all-invisible
 \set Staff.explicitClefVisibility = #all-invisible
-\override Score.RehearsalMark #'break-align-symbols = #'(key-signature clef)
+\override Score.RehearsalMark.break-align-symbols = #'(key-signature clef)
 \key a \major
 \clef treble
 \mark "↓"
@@ -3694,19 +3960,19 @@ vornehmen.
 
 @lilypond[verbatim,quote,relative=1]
 % The RehearsalMark will be centered above the KeySignature
-\override Score.RehearsalMark #'break-align-symbols = #'(key-signature)
+\override Score.RehearsalMark.break-align-symbols = #'(key-signature)
 \key a \major
 \clef treble
 \time 4/4
 \mark "↓"
 e1
 % The RehearsalMark will be aligned with the left edge of the KeySignature
-\once \override Score.KeySignature #'break-align-anchor-alignment = #LEFT
+\once \override Score.KeySignature.break-align-anchor-alignment = #LEFT
 \mark "↓"
 \key a \major
 e1
 % The RehearsalMark will be aligned with the right edge of the KeySignature
-\once \override Score.KeySignature #'break-align-anchor-alignment = #RIGHT
+\once \override Score.KeySignature.break-align-anchor-alignment = #RIGHT
 \key a \major
 \mark "↓"
 e1
@@ -3718,14 +3984,14 @@ verschoben werden.  Die Einheiten sind in Notenlinienzwischenräumen:
 @lilypond[verbatim,quote,relative=1]
 % The RehearsalMark will be aligned with the left edge of the KeySignature
 % and then shifted right by 3.5 staff-spaces
-\override Score.RehearsalMark #'break-align-symbols = #'(key-signature)
-\once \override Score.KeySignature #'break-align-anchor = #3.5
+\override Score.RehearsalMark.break-align-symbols = #'(key-signature)
+\once \override Score.KeySignature.break-align-anchor = #3.5
 \key a \major
 \mark "↓"
 e1
 % The RehearsalMark will be aligned with the left edge of the KeySignature
 % and then shifted left by 2 staff-spaces
-\once \override Score.KeySignature #'break-align-anchor = #-2
+\once \override Score.KeySignature.break-align-anchor = #-2
 \key a \major
 \mark "↓"
 e1
@@ -3782,30 +4048,28 @@ wird.
 
 @lilypond[verbatim,quote]
 XinO = {
-  \once \override NoteHead  #'stencil = #ly:text-interface::print
-  \once \override NoteHead #'text = \markup {
+  \once \override NoteHead.stencil = #ly:text-interface::print
+  \once \override NoteHead.text = \markup {
     \combine
       \halign #-0.7 \draw-circle #0.85 #0.2 ##f
       \musicglyph #"noteheads.s2cross"
   }
 }
-\relative c'' {
-  a a \XinO a a
+\relative {
+  a' a \XinO a a
 }
 @end lilypond
 
-Alle Schriftzeichen in der feta-Schriftart können
+Alle Schriftzeichen in der Feta-Glyphe können
 mit dem @code{\musicglyph}-Befehl erreicht werden.
-Siehe auch @ref{Die Feta-Schriftart}.
-
-
+Siehe auch @ref{Die Emmentaler-Schriftart}.
 
 @seealso
 Notationsreferenz:
 @ref{Graphische Notation innerhalb einer Textbeschriftung},
 @ref{Text formatieren},
-@ref{Text markup commands},
-@ref{Die Feta-Schriftart}.
+@ref{Textbeschriftungsbefehle},
+@ref{Die Emmentaler-Schriftart}.
 
 
 
@@ -3849,11 +4113,11 @@ Hier ein Beispiel eines Falles, in dem der Bogen nicht optimal
 erscheint, und wo auch @code{\tieDown} das Problem nicht
 lösen würde.
 
-@lilypond[verbatim,quote,relative=1]
+@lilypond[verbatim,quote]
 <<
-  { e1 ~ e }
+  { e'1~ 1 }
 \\
-  { r4 <g c,> <g c,> <g c,> }
+  \relative { r4 <g' c,> <g c,> <g c,> }
 >>
 @end lilypond
 
@@ -3886,12 +4150,11 @@ wird.
 @lilypond[verbatim,quote,relative=1]
 <<
   {
-  \once \override Tie
-    #'control-points = #'((1 . -1) (3 . 0.6) (12.5 . 0.6) (14.5 . -1))
-  e1 ~ e1
+  \once \override Tie.control-points = #'((1 . -1) (3 . 0.6) (12.5 . 0.6) (14.5 . -1))
+  e1~ 1
   }
 \\
-  { r4 <g c,> <g c,> <g c,>4  }
+  { r4 <g c,> <g c,> <g c,>  }
 >>
 @end lilypond
 
@@ -3899,9 +4162,127 @@ wird.
 
 Es ist nicht möglich, die Form von Bögen anhand ihrer
 @code{control-points}-Eigenschaft zu verändern, wenn
-mehr als ein Bogen zum gleichen musikalischen Moment
-auftritt, nicht einmal mit dem @code{\tweak}-Befehl.
+mehrere Binde- oder Legatobögen zum gleichen musikalischen Moment
+auftreten, nicht einmal mit dem @code{\tweak}-Befehl.  Die Eigenschaft
+@code{tie-configuration} von @code{TieColumn} kann jedoch verändert
+werden, sodass Startlinie und Richtung wie benötigt platziert werden.
 
+@seealso
+Referenz der Interna:
+@rinternals{TieColumn}.
+
+
+@cindex Scheme, reine Container
+@cindex Scheme, unreine Container
+@cindex reine Container, Scheme
+@cindex unreine Container, Scheme
+@cindex horizontale Platzierung, verändern
+
+@node Reine und unreine Container
+@subsection Reine und unreine Container
+@translationof Unpure-pure containers
+
+Unreine und reine Container (engl. unpure/pure containers) sind
+nützlich, wenn man die Berechnungen der Platzierungen für die
+@emph{Y-Achse} verändern will, insbesondere für @code{Y-offset}
+und @code{Y-extent}.  Mit diesen Containern kann die Veränderung
+durch eine Scheme-Funktion anstelle einer direkten Zahl oder eines
+Paares vorgenommen werden.
+
+Für bestimmte Grobs basiert die Eigenschaft @code{Y-extent} auf
+der @code{stencil}-Eigenschaft.  Wenn diese mit @code{\override}
+verändert werden soll, braucht man eine zusätzliche Veränderung
+von @code{Y-extent} mit einem unreinen-reinen Container.  Wenn eine
+Funktion @code{Y-offset} und/oder @code{Y-extent} verändert, wird
+angenommen, dass dadurch Zeilenumbruchsberechnungen zu früh während
+der Kompilation aufgerufen werden.  Die Funktion wird also überhaupt
+nicht ausgewertet (und gibt also normalerweise den Wert @samp{0} oder
+@samp{'(0 . 0)} zurück), wodurch sich Zusammenstöße ergeben können.
+Eine @qq{saubere} Funktion beeinflusst keine Eigeschaften, Objekte
+oder Grob-Suizide, weshalb ihre Werte, die sich auf @code{Y-axis}
+beziehen, richtig berechnet werden.
+
+Es gibt zuzeit etwa 30 Funktionen, die schon als @qq{sauber} erachtet
+werden, und unsaubere-saubere Container sind eine Möglichkeit, auch
+Funktionen, die sich nicht auf dieser Liste befinden, als @qq{sauber}
+zu markieren.  Die @qq{saubere} Funktion wird ausgewertet, @emph{bevor}
+Seitenumbruch stattfindet, sodass die horizontale Platzierung
+@qq{rechtzeitig} stattfindet.  Die @qq{unsaubere} Funktion wird dann
+@emph{nach} dem Seitenumbruch ausgewertet.
+
+@warning{Da es schwierig ist, immer sicher zu sein, welche Funktionen sich
+auf dieser Liste befinden, wird empfohlen, dass die selbsterstellten
+@qq{sauberen} Funktionen nicht die Grobs @code{Beam} oder @code{VerticalAlignment}
+einsetzen.}
+
+Ein unsauberer-sauberer Container wird wie folgend erstellt:
+
+@code{(ly:make-unpure-pure-container f0 f1)}
+
+wobei @code{f0} eine Fuktion ist, die @var{n} Arguments braucht
+(@var{n >= 1}) und deren erstes Argument immer der Grob sein muss.
+Das ist die Funktion, die das eigentliche Resultat ausgibt.  @var{f1}
+ist die Funktion, die als @qq{sauber} bezeichnet wird, und braucht @var{n + 2}
+Argumente.  Wiederum muss das erste Argument immer der Grob sein, aber
+das erste und zweite Argument sind @qq{Beginn-} und @qq{Endeargumente}.
+
+@var{start} (Beginn) und @var{end} (Ende) sind absichtlich
+nur Platzhalter, die nur für die Strecker gelten (etwa @code{Hairpin} oder
+@code{Beam}), die unterschiedliche Höhenberechnungen je nach beginnender und
+endender Note ausgeben können.
+
+Der Rest sind andere Argumente für die erste Funktion (es können auch
+Null sein, wenn @var{n = 1}).
+
+Die Ergebnisse der zweiten Funktion werden als Näherungswert des benötigten
+Wertes benutzt, welche dann von der ersten Funktion eingesetzt wird,
+um den wirklichen Wert auszugeben, mit dem dann sehr viel später im
+Layoutprozess die Platzierung justiert werden soll.
+
+@lilypond[verbatim,quote,ragged-right]
+#(define (square-line-circle-space grob)
+(let* ((pitch (ly:event-property (ly:grob-property grob 'cause) 'pitch))
+      (notename (ly:pitch-notename pitch)))
+ (if (= 0 (modulo notename 2))
+     (make-circle-stencil 0.5 0.0 #t)
+     (make-filled-box-stencil '(0 . 1.0)
+                              '(-0.5 . 0.5)))))
+
+squareLineCircleSpace = {
+  \override NoteHead.stencil = #square-line-circle-space
+}
+
+smartSquareLineCircleSpace = {
+  \squareLineCircleSpace
+  \override NoteHead.Y-extent =
+   #(ly:make-unpure-pure-container
+      ly:grob::stencil-height
+      (lambda (grob start end) (ly:grob::stencil-height grob)))
+}
+
+\new Voice \with { \remove "Stem_engraver" }
+\relative c'' {
+  \squareLineCircleSpace
+  cis4 ces disis d
+  \smartSquareLineCircleSpace
+  cis4 ces disis d
+}
+@end lilypond
+
+Im ersten Takt weiß die Layoutmaschine ohne den unsauberen-sauberen
+Container nicht die Breite des Notenkopfes und lässt ihn deshalb mit
+den Versetzungszeichen zusammenstoßen.  Im zweiten Takt, mit
+unreinen-reinen Containern, weiß die Layoutmaschine die Breite
+des Notenkopfes und vermeidet den Zusammenstoßf, indem die Zeile
+entsprechend verlängert wird.
+
+Normalerweise können für eine einfache Berechnungen fast identische
+Funktionen für den @qq{unsauberen} und @qq{sauberen} Teil benutzt
+werden, indem nur die Zahl der Argumente und die Reichweite der
+Funktion verändert wird.
+
+@warning{Wenn eine Funktion als @qq{sauber} bezeichnet ist und das aber
+nicht ist, können unerwartete Ergebnisse auftreten.}
 
 
 @node Musikfunktionen benutzen
@@ -3920,7 +4301,7 @@ beschrieben in @rextend{Musikalische Funktionen}.
 
 @menu
 * Syntax der Ersetzungsfunktion::
-* Beispiele der Ersetzungsfunktion::
+* Beispiele der Ersetzungsfunktionen::
 @end menu
 
 @node Syntax der Ersetzungsfunktion
@@ -3934,7 +4315,7 @@ Funktionen ist:
 @example
 Funktion =
 #(define-music-function
-     (parser location @var{Arg1} @var{Arg2} @dots{})
+     (@var{Arg1} @var{Arg2} @dots{})
      (@var{Typ1?} @var{Typ2?} @dots{})
    #@{
      @var{@dots{}Noten@dots{}}
@@ -3953,11 +4334,12 @@ wobei
 den Wert @code{#t} ausgibt.
 
 @item @code{@var{@dots{}Noten@dots{}}}
-@tab normale LilyPond-Eingab, wobei @code{$} benutzt wird, um
+@tab normale LilyPond-Eingabe, wobei @code{$} (wenn nur LilyPond-Konstruktionen
+erlaubt sind) oder @code{#} (um es als Scheme-Wert oder Argument einer
+musikalischen Funktionen oder als Noten innerhalb von Notenlisten einzusetzen) benutzt wird, um
 Argumente zu referenzieren (etwa @samp{$Arg1}).
 @end multitable
 
-
 Die @code{parser} und @code{location}-Argumente sind zwingend und
 werden in einigen fortgeschrittenen Situationen benutzt, wie sie
 im @qq{Erweitern}-Handbuch beschrieben werden (siehe
@@ -3972,7 +4354,9 @@ benutzt werden, sind:
 @example
 boolean?
 cheap-list?  @emph{(benutze anstelle von }@q{list?}@emph{ für schnelleres Kompilieren)}
+ly:duration?
 ly:music?
+ly:pitch?
 markup?
 number?
 pair?
@@ -4014,14 +4398,14 @@ das Verschieben von @code{TextScript} erleichtert:
 @lilypond[quote,verbatim,ragged-right]
 padText =
 #(define-music-function
-     (parser location padding)
+     (padding)
      (number?)
    #{
-     \once \override TextScript #'padding = $padding
+     \once \override TextScript.padding = #padding
    #})
 
-\relative c''' {
-  c4^"piu mosso" b a b
+\relative {
+  c'''4^"piu mosso" b a b
   \padText #1.8
   c4^"piu mosso" d e f
   \padText #2.6
@@ -4032,23 +4416,20 @@ padText =
 Neben Zahlen können auch musikalische Ausdrücke wie Noten
 als Argumente für musikalische Funktionen eingesetzt werden:
 
-@c TODO: use a better example (the music argument is redundant).
-
 @lilypond[quote,verbatim,ragged-right]
 custosNote =
 #(define-music-function
-     (parser location note)
+     (note)
      (ly:music?)
    #{
-     \once \override Voice.NoteHead #'stencil =
-       #ly:text-interface::print
-     \once \override Voice.NoteHead #'text =
-       \markup \musicglyph #"custodes.mensural.u0"
-     \once \override Voice.Stem #'stencil = ##f
-     $note
+     \tweak NoteHead.stencil #ly:text-interface::print
+     \tweak NoteHead.text
+        \markup \musicglyph #"custodes.mensural.u0"
+     \tweak Stem.stencil ##f
+     #note
    #})
 
-\relative c' { c4 d e f \custosNote g }
+\relative { c'4 d e f \custosNote g }
 @end lilypond
 
 Ersetzungsfunktionen mit mehrfachen Argumenten können definiert
@@ -4057,17 +4438,17 @@ werden:
 @lilypond[quote,verbatim,ragged-right]
 tempoPadded =
 #(define-music-function
-     (parser location padding tempotext)
-     (number? string?)
+     (padding tempotext)
+     (number? markup?)
    #{
-     \once \override Score.MetronomeMark #'padding = $padding
-     \tempo \markup { \bold $tempotext }
+     \once \override Score.MetronomeMark.padding = #padding
+     \tempo \markup { \bold #tempotext }
    #})
 
-\relative c'' {
+\relative {
   \tempo \markup { "Low tempo" }
-  c4 d e f g1
-  \tempoPadded #4.0 #"High tempo"
+  c''4 d e f g1
+  \tempoPadded #4.0 "High tempo"
   g4 f e d c1
 }
 @end lilypond