]> git.donarmstrong.com Git - lilypond.git/blobdiff - Documentation/de/notation/changing-defaults.itely
Doc-de: updating includes, learning, notation
[lilypond.git] / Documentation / de / notation / changing-defaults.itely
index d910ac4be6323315ea23a2bfaf7b17c577678347..c3cce8cd6c5c3208d6f182f5707015ca23967447 100644 (file)
@@ -1,13 +1,14 @@
 @c -*- coding: utf-8; mode: texinfo; documentlanguage: de -*-
 
 @ignore
-    Translation of GIT committish: 7b70644b95f383b4281e9ffa146d315d2ada11d3
+    Translation of GIT committish: c1df40da9f8b2794e173583c363f9e736e5531bd
 
     When revising a translation, copy the HEAD committish of the
-    version that you are working on.  See TRANSLATION for details.
+    version that you are working on.  For details, see the Contributors'
+    Guide, node Updating translation committishes..
 @end ignore
 
-@c \version "2.12.0"
+@c \version "2.15.20"
 
 @c Translators: Till Paala
 
@@ -34,7 +35,7 @@ Die definitive Beschreibung der unterschiedlichen Einstellmöglichenkeiten
 findet sich in einem eigenen Dokument: @rinternalsnamed{Top,der Referenz
 der Interna}.  Diese Referenz zeigt alle Variablen, Funktionen und Optionen,
 die in LilyPond möglich sind.  Es existiert als ein HTML-Dokumente, das
-sich 
+sich
 @c leave the @uref as one long line.
 @uref{http://@/lilypond@/.org/@/doc/@/stable/@/Documentation/@/user/@/lilypond@/-internals/,on@/-line},
 aber auch lokal in das LilyPond-Dokumentationspaket integriert lesen lässt.
@@ -43,16 +44,17 @@ 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-Übung} enthält eine kurze Übung, wie
+man Zahlen, Listen, Zeichenketten und Symbole in Scheme notiert.}
 
 
 @menu
 * Interpretationskontexte::
 * Die Referenz der Programminterna erklärt::
-* Eignschaften verändern::
+* Eigenschaften verändern::
 * Nützliche Konzepte und Eigenschaften::
 * Fortgeschrittene Optimierungen::
+* Musikfunktionen benutzen::
 @end menu
 
 
@@ -70,7 +72,7 @@ verändern kann.
 * Umgebungs-Plugins verändern::
 * Die Standardeinstellungen von Kontexten ändern::
 * Neue Kontexte definieren::
-* Kontexte aneinander ausrichten::
+* Reihenfolge des Kontextlayouts::
 @end menu
 
 
@@ -79,8 +81,8 @@ Handbuch zum Lernen:
 @rlearning{Kontexte und Engraver}.
 
 Installierte Dateien:
-@file{ly/@/engraver@/-init@/.ly},
-@file{ly/@/performer@/-init@/.ly}.
+@file{ly/engraver-init.ly},
+@file{ly/performer-init.ly}.
 
 Schnipsel:
 @rlsr{Contexts and engravers}.
@@ -97,14 +99,14 @@ Referenz der Interna:
 Kontexte sind hierarchisch geordnet:
 
 @menu
-* Score - der Vater aller Kontexte::
+* Score -- der Vater aller Kontexte::
 * Oberste Kontexte -- Container für Systeme::
 * Mittlere Kontexte -- Systeme::
 * Unterste Kontexte -- Stimmen::
 @end menu
 
-@node Score - der Vater aller Kontexte
-@unnumberedsubsubsec Score - der Vater aller Kontexte
+@node Score -- der Vater aller Kontexte
+@unnumberedsubsubsec Score -- der Vater aller Kontexte
 @translationof Score - the master of all contexts
 
 @code{Score} (Partitur) ist der höchste Notationskontext.  Kein anderer Kontext
@@ -115,8 +117,7 @@ dafür, dass Elemente wie Schlüssel und Taktart- oder Tonartbezeichnungen
 
 Ein @code{Score}-Kontext wird eingerichtet, wenn eine
 @code{\score @{@dots{}@}} oder @code{\layout @{@dots{}@}}-Umgebung
-interpretiert wird, oder explizit mit dem @code{\new Score}-Befehl.
-
+interpretiert wird.
 
 @node Oberste Kontexte -- Container für Systeme
 @unnumberedsubsubsec Oberste Kontexte -- Container für Systeme
@@ -179,7 +180,7 @@ Ein Kontext zur Notation von Perkussion.  Er kann
 
 @strong{@emph{VaticanaStaff}}
 
-Entspricht @code{Staff}, aber eignet sich besondert zum Notensatz des
+Entspricht @code{Staff}, aber eignet sich besonders zum Notensatz des
 Gregorianischen Chorals.
 
 @strong{@emph{MensuralStaff}}
@@ -237,7 +238,7 @@ benutzt.  Er wird normalerweise implizit erstellt.
 
 Ein Stimmenkontext, der Noten in reduzierter Größe ausgibt und
 vor allem dazu da ist, Stichnoten zu setzen.  Siehe auch
-@ref{Formatting cue notes}.  Wird normalerweise implizit erstellt,
+@ref{Stichnoten formatieren}.  Wird normalerweise implizit erstellt,
 wenn Stichnoten gesetzt werden.
 
 
@@ -284,7 +285,7 @@ Eine praktische Anwendung von @code{\new} ist eine Partitur mit vielen
 Systemen.  Jede Stimme wird auf einem eigenen System notiert, das
 mit @code{\new Staff} begonnen wird.
 
-@lilypond[quote,verbatim,relative=2,ragged-right,fragment]
+@lilypond[quote,verbatim,relative=2,ragged-right]
 <<
   \new Staff { c4 c }
   \new Staff { d4 d }
@@ -361,12 +362,14 @@ arts = { s4-. s4-> }
 @end lilypond
 
 Durch diesen Mechanismus ist es möglich eine Urtextausgabe zu
-erstellen, mit der optionalen Möglichkeit, besimmte zusätzliche
+erstellen, mit der optionalen Möglichkeit, bestimmte zusätzliche
 Artikulationszeichen zu den gleichen Noten hinzuzufügen und so
 eine editierte Ausgabe zu erhalten.
 
+@cindex Kontexte erstellen
+
 @item
-Der dritte Befehl, um Kontexe zu erstellen, ist:
+Der dritte Befehl, um Kontexte zu erstellen, ist:
 
 @example
 \context @var{Kontext} @var{musik. Ausdruck}
@@ -374,7 +377,7 @@ Der dritte Befehl, um Kontexe zu erstellen, ist:
 
 @noindent
 Dies entspricht dem @code{\context} mit @code{= @var{ID}}, aber hier
-wird ein belieber Kontext des Typs @var{Kontext} gesucht und der
+wird ein beliebiger Kontext des Typs @var{Kontext} gesucht und der
 musikalische Ausdruck darin ausgewertet, unabhängig von der Bezeichnung,
 die dem Kontext gegeben wurde.
 
@@ -417,7 +420,7 @@ usw.  Das kann Schwierigkeiten ergeben, wenn auf frühere
 Kontexte verwiesen werden soll, die in der Zwischenzeit schon
 gestorben sind, beispielsweise wenn man Systemwechsel mit
 @code{\change}-Befehlen vornimmt, wenn Gesangstext einer
-Stimme mit dem @code{\lyricsto}-Befehl zu gewiesen wird oder
+Stimme mit dem @code{\lyricsto}-Befehl zugewiesen wird oder
 wenn weitere musikalische Ereignisse zu einem früheren Kontext
 hinzugefügt werden sollen.
 
@@ -431,7 +434,7 @@ angetroffen wird, wobei @code{<<...>>}-Konstruktionen ignoriert
 werden.
 
 Jeder Kontext kann am Leben gehalten werden, indem man sicherstellt
-dass er zu jedem musikalischen Moment etwas zu tun hat.  
+dass er zu jedem musikalischen Moment etwas zu tun hat.
 @code{Staff}-Kontexte werden am Leben gehalten, indem man sicherstellt,
 dass eine der enthaltenen Stimmen am Leben bleibt.  Eine Möglichkeit,
 das zu erreichen, ist es, unsichtbare Pause zu jeder Stimme
@@ -566,7 +569,7 @@ Notationskontexte (wie @code{Score} oder @code{Staff}) speichern
 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_head_engraver}, der die Notenköpfe erstellt, und ein
+@code{Note_heads_engraver}, der die Notenköpfe erstellt, und ein
 @code{Staff}-Kontext einen @code{Key_signature_engraver}, der die
 Vorzeichen erstellt.
 
@@ -575,15 +578,16 @@ Eine vollständige Erklärung jedes Plugins findet sich in
 @rinternals{Engravers and Performers}.
 @end ifhtml
 @ifnothtml
-Refernz der Interna: @expansion{} Translation @expansion{} Engravers.
+Referenz der Interna: @expansion{} Translation @expansion{} Engravers.
 @end ifnothtml
 Alle Kontexte sind erklärt in
 @ifhtml
-@rinternals{Contexts}
+@rinternals{Contexts},
 @end ifhtml
 @ifnothtml
-Referenz der Interna: @expansion{} Translation @expansion{} Context.
+Referenz der Interna: @expansion{} Translation @expansion{} Context,
 @end ifnothtml
+wobei die in diesem Kontext vorkommenden Engraver aufgelistet sind.
 
 Es kann teilweise nötig sein, diese Engraver umzupositionieren.  Das
 geschieht, indem man einen neuen Kontext mit @code{\new} oder
@@ -613,7 +617,7 @@ 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,fragment]
+@lilypond[quote,relative=1,verbatim]
 <<
   \new Staff {
     f2 g
@@ -635,7 +639,7 @@ mit denen Objekte unsichtbar gemacht werden können, finden sich in
 @rlearning{Sichtbarkeit und Farbe von Objekten}.
 
 Das nächste Beispiel zeigt eine Anwendung in der Praxis.  Taktstriche
-und Taktart werden normalerweise in einer Paritur synchronisiert.  Das
+und Taktart werden normalerweise in einer Partitur synchronisiert.  Das
 geschieht durch @code{Timing_translator} und @code{Default_bar_line_engraver}.
 Diese Plugins sorgen sich um die Verwaltung der Taktzeiten und die
 Stelle innerhalb des Taktes, zu dem eine Note erscheint usw.  Indem
@@ -647,26 +651,32 @@ jedes System eine unterschiedliche Taktart hat:
 @cindex Taktarten, mehrere in Partitur
 @cindex Taktarten, unterschiedliche per System
 
-@lilypond[quote,relative=1,ragged-right,verbatim,fragment]
-\new Score \with {
-  \remove "Timing_translator"
-  \remove "Default_bar_line_engraver"
-} <<
+@lilypond[quote,verbatim]
+\score {
+  <<
+    \new Staff \with {
+      \consists "Timing_translator"
+      \consists "Default_bar_line_engraver"
+    } {
+        \time 3/4
+        c4 c c c c c
+    }
   \new Staff \with {
     \consists "Timing_translator"
     \consists "Default_bar_line_engraver"
   } {
-      \time 3/4
+      \time 2/4
       c4 c c c c c
   }
-  \new Staff \with {
-    \consists "Timing_translator"
-    \consists "Default_bar_line_engraver"
-  } {
-       \time 2/4
-       c4 c c c c c
-  }
 >>
+\layout {
+  \context {
+    \Score
+    \remove "Timing_translator"
+    \remove "Default_bar_line_engraver"
+    }
+  }
+}
 @end lilypond
 
 @knownissues
@@ -726,33 +736,70 @@ sich auf alle Systeme in dieser Partitur erstrecken sollen.
 Veränderungen können auch für den @code{Score}- oder alle
 @code{Voice}-Kontexte auf gleiche Weise vorgenommen werden.
 
-@knownissues
+Kontextänderungen können in eine Variable geschrieben werden und dann
+einer @code{\context}-Definition zu gewiesen werden, indem man der
+Veränderung ein @code{\with} voranstellt:
 
-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]
+blubb = \with {
+  fontSize = #-4
+  \override Stem #'thickness = #4.0
+  \remove "Time_signature_engraver"
+}
 
-Der Befehl @code{\RemoveEmptyStaffContext} überschreibt die
-aktuellen Einstellungen für @code{Staff}.  Wenn die Einstellungen
-für Systeme verändert werden sollen, die @code{\RemoveEmptyStaffContext}
-benutzen, muüssen die Veränderungen gemacht werden, nachdem
-@code{\RemoveEmptyStaffContext} aufgerufen wurde, etwa:
+bla = \with {
+  fontSize = #3
+  \override Stem #'thickness = #-2.0
+}
 
-@example
-\layout @{
-  \context @{
-    \RemoveEmptyStaffContext
+melody = \relative c'' {
+  a4 a a a |
+  a4 a a a |
+}
 
-    \override Stem #'thickness = #4.0
-  @}
-@}
-@end example
+\score {
+  <<
+    \new Staff <<
+      \melody
+      s1*0^"Small, thicker stems, no time signature"
+    >>
+    \new Staff \bla <<
+      \melody
+      s1*0^"Different"
+    >>
+  >>
+  \layout {
+    \context {
+      \Staff
+      \blubb
+    }
+  }
+}
+@end lilypond
 
+ @c TODO: add \with in here.
 
 @node Neue Kontexte definieren
 @subsection Neue Kontexte definieren
 @translationof Defining new contexts
 
+@cindex Kontexte, neue definieren
+@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
 aber auch möglich, eigene neue Kontexte zu definieren, in denen
@@ -776,6 +823,7 @@ in Jazzmusik anzuzeigen.
   squashedPosition = #0
   \override NoteHead #'style = #'slash
   \override Stem #'transparent = ##t
+  \override Flag #'transparent = ##t
   \alias Voice
 }
 \context { \Staff
@@ -845,6 +893,7 @@ Die Noten sehen wie ein Querstrich aus und haben keine Hälse:
 @example
 \override NoteHead #'style = #'slash
 \override Stem #'transparent = ##t
+\override Flag #'transparent = ##t
 @end example
 
 Alle diese Engraver müssen zusammenarbeiten, und das wird erreicht mit
@@ -867,6 +916,7 @@ Alles zusammen haben wir folgende Einstellungen:
   squashedPosition = #0
   \override NoteHead #'style = #'slash
   \override Stem #'transparent = ##t
+  \override Flag #'transparent = ##t
   \alias Voice
 @}
 @end example
@@ -925,82 +975,75 @@ 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:
-
-@cindex Ossia
-
-@funindex alignAboveContext
-@funindex alignBelowContext
-
-@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 }
-    >>
-  }
-}
-@end lilypond
-
-@cindex verschachtelte Kontexte
-@cindex Kontexte, verschachtelt
+@node Reihenfolge des Kontextlayouts
+@subsection Reihenfolge des Kontextlayouts
+@translationof Context layout order
 
+@cindex Kontext, Layoutreihenfolge
 @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:
+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[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- }
   }
->>
+}
 @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:
-
-@lilypond[verbatim,quote,relative=1]
-\new PianoStaff \with { \accepts Lyrics }
-<<
-  \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
 
-Das Gegenteil von @code{\accepts} ist @code{\denies}; es bedeutet,
-dass ein Kontext aus der @code{\accepts}-Liste gestrichen wird.
+@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.
+
+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.
+
+@seealso
+Handbuch zur Benutzung:
+@rprogram{Ein zusätzliches System erscheint}.
+
+Installierte Dateien:
+@file{ly/engraver-init.ly}.
 
 
 @node Die Referenz der Programminterna erklärt
@@ -1028,22 +1071,31 @@ darum sind auch die Beispiele dieses Abschnittes nicht
 Folgende Aufgabe wird bearbeitet:  Der Fingersatz aus dem Beispiel
 unten soll verändert werden:
 
-@lilypond[quote,fragment,relative=2,verbatim]
+@lilypond[quote,relative=2,verbatim]
 c-2
 \stemUp
 f
 @end lilypond
 
-In der Dokumentation über Fingersatz (
+In der Dokumentation über Fingersatz (in
 @ref{Fingersatzanweisungen}) gibt es folgenden Abschnitt:
 
 @quotation
 @strong{Siehe auch:}
 
-Referez der Interna: @rinternals{Fingering}.
+Referenz der Interna: @rinternals{Fingering}.
 
 @end quotation
 
+@c all ignored text just left out
+
+@ifnothtml
+Die Referenz der Interna gibt es als HTML-Dokument.  Sie sollten sie als
+HTML-Dokument lesen, entweder online oder indem Sie die HTML-Dokumentation
+herunterladen.  Dieser Abschnitt ist sehr viel schwieriger zu verstehen,
+wenn Sie die PDF-Version verwenden.
+@end ifnothtml
+
 Gehen Sie über diesen Link zum Abschnitt @rinternals{Fingering}.
 Oben auf der Seite findet sich:
 
@@ -1069,6 +1121,7 @@ Music event type @code{fingering-event} is in Music expressions named
 @rinternals{FingeringEvent}
 @end itemize
 
+@c translation of the above
 Fingersatz-Objekte werden also durch den @code{Fingering_engraver}
 erstellt, welcher folgende Musikereignistypen akzeptiert:
 @code{fingering-event}.  Ein Musikereignis vom Typ
@@ -1081,6 +1134,7 @@ arbeitet sich voran zur Eingabe.  Man könnte auch mit einem
 Eingabe-Ereignis starten und dann die Links zurückverfolgen,
 bis man zum Ausgabe-Objekt gelangt.
 
+
 Die Referenz der Interna kann auch wie ein normales Dokument
 durchsucht werden.  Sie enthält Kapitel über
 @ifhtml
@@ -1099,13 +1153,13 @@ die benutzt und verändert werden können.
 @translationof Layout interfaces
 
 @cindex Layout-Schnittstelle
-@cindex Schnittstellt, Layout-
+@cindex Schnittstelle, Layout-
 @cindex Grob
 
 Die HTML-Seite, die im vorigen Abschnitt betrachtet wurde,
 beschreibt ein Layoutobjekt mit der Bezeichnung
 @code{Fingering}.  Ein derartiges Objekt ist ein Symbol
-in der Paritur.  Es hat Eigenschaften, die bestimmte
+in der Partitur.  Es hat Eigenschaften, die bestimmte
 Zahlen speichern (wie etwa Dicke und Richtung), aber auch
 Weiser auf verwandte Objekte.  Ein Layoutobjekt wird auch
 als @qq{Grob} bezeichnet, die Abkürzung für @emph{Gr}aphisches
@@ -1131,7 +1185,7 @@ beispielsweise hat folgende Aspekte:
 
 @itemize
 @item
-Seine Größe is unabhängig von der horizontalen Platzaufteilung,
+Seine Größe ist unabhängig von der horizontalen Platzaufteilung,
 anders als etwa bei Legatobögen.
 
 @item
@@ -1175,7 +1229,7 @@ Eigenschaften}), andere aber können verändert werden.
 
 Es wurde immer von einem @code{Fingering}-Objekt gesprochen, aber
 eigentlich handelt es sich nicht um sehr viel.  Die Initialisierungsdatei
-@file{scm/@/define@/-grobs@/.scm} zeigt den Inhalt dieses @qq{Objekts}
+@file{scm/define-grobs.scm} zeigt den Inhalt dieses @qq{Objekts}
 (zu Information, wo diese Dateien sich finden siehe
 @rlearning{Mehr Information}):
 
@@ -1190,7 +1244,7 @@ eigentlich handelt es sich nicht um sehr viel.  Die Initialisierungsdatei
      (script-priority . 100)
      (stencil . ,ly:text-interface::print)
      (direction . ,ly:script-interface::calc-direction)
-     (font-encoding . fetaNumber)
+     (font-encoding . fetaText)
      (font-size . -5)          ; don't overlap when next to heads.
      (meta . ((class . Item)
      (interfaces . (finger-interface
@@ -1214,7 +1268,7 @@ Referenz der Interna ist direkt aus diesen Anweisungen generiert.
 
 Die Position der @b{2} aus dem Beispiel unten soll also geändert werden:
 
-@lilypond[quote,fragment,relative=2,verbatim]
+@lilypond[quote,relative=2,verbatim]
 c-2
 \stemUp
 f
@@ -1258,7 +1312,7 @@ fügt drei Notenlinienzwischenräume zwischen die Zahl und den Notenkopf:
 Wenn dieser Befehl in den Quelltext eingefügt wird, bevor der
 Fingersatz notiert ist, erhält man folgendes:
 
-@lilypond[quote,relative=2,fragment,verbatim]
+@lilypond[quote,relative=2,verbatim]
 \once \override Voice.Fingering #'padding = #3
 c-2
 \stemUp
@@ -1288,42 +1342,45 @@ folgen bestimmten Regeln:
 
 @item
     Scheme-Funktionen: ly:plus-scheme-stil
-    
+
 @item
     Musikalische Ereignisse, Musikklassen und Musikeigenschaften: wie-scheme-funktionen
 
 @item
     Grob-Schnittstellen: scheme-stil
-    
+
 @item
     backend-Eigenschaften: scheme-stil (aber X und Y)
-    
+
 @item
     Kontexte: Großbuchstabe, oder GroßbuchstabeZwischenWörtern (CamelCase)
 
 @item
     Kontext-Eigenschaften: kleinbuchstabeMitFolgendenGroßbuchstaben
-    
+
 @item
     Engraver:  Großbuchstabe_gefolgt_von_kleinbuchstaben_mit_unterstrichen
 @end itemize
 
+@c todos left out
 
-@node Eignschaften verändern
-@section Eignschaften verändern
+
+@node Eigenschaften verändern
+@section Eigenschaften verändern
 @translationof Modifying properties
 
 @menu
-* Überblick über verändernde Eigenschaften::
+* Grundlagen zum Verändern von Eigenschaften::
 * Der set-Befehl::
 * Der override-Befehl::
 * Der tweak-Befehl::
 * set versus override::
+* Alisten verändern::
 @end menu
 
 
-@node Überblick über verändernde Eigenschaften
-@subsection Überblick über verändernde Eigenschaften
+@node Grundlagen zum Verändern von Eigenschaften
+@subsection Grundlagen zum Verändern von Eigenschaften
 @translationof Overview of modifying properties
 
 Jeder Kontext ist verantwortlich für die Erstellung bestimmter
@@ -1331,6 +1388,18 @@ graphischer Objekte.  Die Einstellungen für diese Objekte werden
 auch in dem Kontext gespeichert.  Wenn man diese Einstellungen
 verändert, kann die Erscheinung der Objekte geändert werden.
 
+Es gibt zwei unterschiedliche Eigenschaftenarten, die in Kontexten
+gespeichert werden: Kontexteigenschaften und Grob-Eigenschaften.
+Kontexteigenschaften sind Eigenschaften, die sich auf den gesamten Kontext
+beziehen und seine Darstellung beinflussen.  Grob-Eigenschaften dagegen
+wirken sich nur auf bestimmte graphische Objekte aus, die in einem
+Kontext dargestellt werden.
+
+Die @code{\set}- und @code{\unset}-Befehle werden benutzt, um die Werte
+von Kontexteigenschaften zu ändern.  Die Befehle @code{\override} und
+@code{\revert} hingegen verändern die Werte von Grob-Eigenschaften.
+
+@ignore
 Die Syntax hierzu lautet:
 
 @example
@@ -1339,13 +1408,13 @@ Die Syntax hierzu lautet:
 
 
 @var{Bezeichnung} ist die Bezeichnung eines graphischen Objekts,
-wie @code{Stem} (Hals) oder @code{NoteHead} (Notenkopf), und 
+wie @code{Stem} (Hals) oder @code{NoteHead} (Notenkopf), und
 @var{Eigenschaft} ist eine interne Variable des Formatierungssystems
 (eine @qq{Grob-Eigenschaft} oder @qq{Layout-Eigenschaft}).  Diese
 Eigenschaft ist ein Symbol, muss also mit einem Anführungsstrich
 versehen werden.  Wie die Felder @var{Bezeichnung}, @var{Eigenschaft}
-und @var{Wert} richtig gefüllt werden, zeigt der Abscnitt
-@ref{Eignschaften verändern}.  Hier wird nur die Funktionalität des
+und @var{Wert} richtig gefüllt werden, zeigt der Abschnitt
+@ref{Eigenschaften verändern}.  Hier wird nur die Funktionalität des
 Befehls betrachtet.
 
 Der Befehl
@@ -1361,7 +1430,7 @@ 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,fragment]
+@lilypond[quote,verbatim,relative=2]
 c4
 \override Staff.Stem #'thickness = #4.0
 c4
@@ -1379,7 +1448,7 @@ 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,fragment,verbatim,relative=2]
+@lilypond[quote,verbatim,relative=2]
 c4
 \once \override Stem #'thickness = #4.0
 c4
@@ -1392,10 +1461,10 @@ 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,fragment,verbatim,relative=2]
+@lilypond[quote,verbatim,relative=2]
 \override Slur #'thickness = #3.0
 c8[( c
-\override Beam #'thickness = #0.6
+\override Beam #'beam-thickness = #0.6
 c8 c])
 @end lilypond
 
@@ -1431,7 +1500,7 @@ wie beispielsweise
 @example
 \override Stem #'(details beamed-lengths) = #'(4 4 3)
 @end example
-
+@end ignore
 
 @seealso
 Referenz der Interna:
@@ -1452,15 +1521,16 @@ oder einen Absturz des Programms hervorrufen.
 
 
 @node Der set-Befehl
-@subsection Der @code{\set}-Befehl
+@subsection Der @code{@bs{}set}-Befehl
 @translationof The set command
 
 @cindex Eigenschaften
 @cindex Verändern von Eigenschaften
+
 @funindex \set
 @funindex set
 
-Jeder Kontext kann unterschiedliche @emph{Eigenschafte} besitzen,
+Jeder Kontext kann unterschiedliche @emph{Eigenschaften} besitzen,
 Variablen, die in diesem Kontext definiert sind.  Sie können
 während der Interpretation des Kontextes verändert werden.  Hierzu
 wird der @code{\set}-Befehl eingesetzt:
@@ -1469,36 +1539,50 @@ wird der @code{\set}-Befehl eingesetzt:
 \set @var{Kontext}.@var{Eigenschaft} = #@var{Wert}
 @end example
 
-Das kann beispielsweise so aussehen:
+@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
+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
+Position der Noten im Takt angibt.  Kontexteigenschaften werden mit dem
+@code{\set}-Befehl verändert.
+
+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,fragment]
+@lilypond[quote,verbatim,relative=2]
 R1*2
 \set Score.skipBars = ##t
 R1*2
 @end lilypond
 
-Mit diesem Befehl werden Takte übersprungen, die keine Noten
-haben.  Als Resultat werden Ganztaktpausentakte komprimiert.
-Der Wert, der der Eigenschaft zugewiesen wird, ist ein
-Scheme-Objekt.  In diesem Fall ist es @code{#t}, der
-Boolsche Wert für @qq{wahr}.
-
 Wenn das @var{Kontext}-Argument ausgelassen wird, bezieht sich
 der Befehl auf den gerade aktiven unterstmöglichen Kontext,
 üblicherweise @code{ChordNames}, @code{Voice} oder
-@code{Lyrics}.  In diesem Beispiel:
+@code{Lyrics}.
 
-@lilypond[quote,verbatim,relative=2,fragment]
-c8 c c c
-\set autoBeaming = ##f
-c8 c c c
+@lilypond[quote,verbatim,relative=2]
+\set Score.autoBeaming = ##f
+<<
+  {
+    e8 e e e
+    \set autoBeaming = ##t
+    e8 e e e
+  } \\ {
+    c8 c c c c8 c c c
+  }
+>>
 @end lilypond
 
-@noindent
-wurde das @var{Kontext}-Argument für den @code{\set}-Befehl
-ausgelassen, sodass automatische Bebalkung für die aktuelle
-Stimme (@code{Voice}-Kontext) abgeschaltet wird.  Dabei
-gilt zu beachten, dass der unterste Kontext nicht immer die
+Die Änderung wird zur Laufzeit während der Musik interpretiert, sodass
+diese Einstellung sich nur auf die zweite Gruppe von Achteln auswirkt.
+
+Dabei gilt zu beachten, dass der unterste Kontext nicht immer die
 Eigenschaft enthält, die verändert werden soll.  Wenn man
 beispielsweise @code{skipBars} aus dem oberen Beispiel
 ohne Angabe des Kontextes zu verändern sucht, hat der Befehl
@@ -1506,7 +1590,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,fragment]
+@lilypond[quote,verbatim,relative=2]
 R1*2
 \set skipBars = ##t
 R1*2
@@ -1515,9 +1599,7 @@ R1*2
 Kontexte sind hierarchisch angeordnet.  Wenn ein übergeordneter
 Kontext angegeben wird, etwa @code{Staff}, dann beziehen sich
 die Änderungen auf alle Stimmen (@code{Voice}), die in diesem
-Kontext enthalten sind.  Da der Befehl zu dem Zeitpunkt gültig
-wird, an dem er im Quelltext auftritt, wird im Bebalkungsbeispiel
-oben die Einstellung erst für die zweite Achtelgruppe wirksam.
+Kontext enthalten sind.
 
 @funindex \unset
 @funindex unset
@@ -1534,38 +1616,30 @@ entfernt werden.  Dieser Befehl macht nur Einstellungen im richtigen
 Kontext rückgängig.  Wenn also im @code{Staff}-Kontext die
 Bebalkung ausgeschaltet wird:
 
-@example
-\set Staff.autoBeaming = ##f
-@end example
-
-@noindent
-bezieht sich das auch auf die in dem @code{Staff} enthaltenen Stimmen.
-Der Befehl
-
-@example
-\unset Voice.autoBeaming
-@end example
-
-@noindent
-ist jedoch ungültig und bewirkt nichts.  Damit die Einstellung richtig
-rückgängig gemacht werden kann, muss der Befehl auf der gleichen
-Kontextebene ausgeführt werden wie der ursprüngliche @code{\set}-Befehl.
-Hier braucht man also den Befehl:
-
-@example
-\unset Staff.autoBeaming
-@end example
+@lilypond[quote,verbatim,relative=2]
+\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
+  }
+>>
+@end lilypond
 
-Genauso wie für @code{\set}, muss auch für @code{\unset} der unterste
-Kontext nicht angegeben werden, die zwei Befehle
+Wie für @code{\set} muss das @var{Kontext}-Argument für den untersten
+Kontext nicht mitangegeben werden.  Die zwei Versionen
 
 @example
 \set Voice.autoBeaming = ##t
 \set autoBeaming = ##t
 @end example
 
-@noindent
-bedeuten also das Gleiche.
+verhalten sich gleich, wenn die gegenwärtige Basis der
+@code{Voice}-Kontext ist.
 
 @funindex \once
 @funindex once
@@ -1573,20 +1647,15 @@ bedeuten also das Gleiche.
 Einstellungen, die nur einmal vorgenommen werden sollen, können
 mit @code{\once} notiert werden, etwa:
 
-@lilypond[quote,verbatim,relative=2,fragment]
+@lilypond[quote,verbatim,relative=2]
 c4
 \once \set fontSize = #4.7
 c4
 c4
 @end lilypond
 
-@noindent
-Damit wirkt sich die Änderung der Schriftgröße nur auf die zweite
-Note aus und wird automatisch wieder rückgängig gemacht.
-
 Eine vollständige Beschreibung aller vorhandenen Kontexteigenschaften
 findet sich in der Referenz der Interna, siehe
-
 @ifhtml
 @rinternals{Tunable context properties}.
 @end ifhtml
@@ -1594,41 +1663,144 @@ findet sich in der Referenz der Interna, siehe
 @qq{Translation @expansion{} Tunable context properties}.
 @end ifnothtml
 
+@seealso
+
+Internals Reference:
+
+@rinternals{Tunable context properties}.
+
 
 
 @node Der override-Befehl
-@subsection Der \override-Befehl
+@subsection Der @code{\\override}-Befehl
 @translationof The override command
 
-Befehle, die die Ausgabe grundlegend verändern, haben folgende
-Form:
+@cindex Grob-Eigenschaften
+@cindex Eigenschaften von Grob
+@cindex graphische Objekte, Eigenschaften
 
-@example
-\override Voice.Stem #'thickness = #3.0
-@end example
+@funindex \override
+@funindex override
 
-@noindent
-Um derartige Einstellungen vorzunehmen, müssen folgende Informationen
-bekannt sein:
+Es gibt eine besondere Art von Kontexteigenschaft: die Grob-Beschreibung.
+Grob-Beschreibungen werden mit @code{GroßGroßbuchstabe} benannt.  Sie
+enthalten @qq{Standardeinstellungen} für ein bestimmtes Grob als eine
+assoziative Liste.  Siehe @file{scm/define-grobs.scm} für die
+Einstellungen aller Grob-Beschreibungen.  Grob-Beschreibungen werden
+mit @code{\override} verändert.
 
-@itemize
-@item der Kontext: in diesem Fall @code{Voice}.
-@item das Layout-Objekt: in diesem Fall @code{Stem}.
-@item die Layout-Eigenschaft: in diesem Fall @code{thickness}.
-@item ein vernünftiger Wert: in diesem Fall @code{3.0}.
-@end itemize
+@code{\override} ist eigentlich eine Kurzform, der Befehl
 
-Einige veränderbare Optionen werden als Untereigenschaften (engl.
-subproperties) bezeichnet und befinden sich innerhalb der Eigenschaften.
-Um sie zu verändern, werden Befehl in der Form
+@example
+\override @var{Kontext}.@var{GrobBezeichnung} #'@var{Eigenschaft} = #@var{Wert}
+@end example
+
+ist äquivalent zu
 
 @example
-\override Stem #'(details beamed-lengths) = #'(4 4 3)
+\set @var{Kontext}.@var{GrobBezeichnung}  =
+  #(cons (cons '@var{Eigenschaft} @var{Wert})
+         <vorheriger Wert von @var{Kontext}.@var{GrobBezeichnung}>)
 @end example
 
-@noindent
-eingesetzt.
+Der Wert von @code{Kontext}.@code{GrobBezeichnung} (die assoz. Liste @qq{alist}) wird benutzt um die Eigenschaften von individuellen Grobs
+zu initialisieren.  Grobs haben Eigenschaften, die im Scheme-Stil mit
+@code{bindestrich-wörtern} benannt sind.  Diese Werte der Grob-Eigenschaften
+verändern sich während des Notensetzens:  LilyPonds Notensatz heißt im
+Grunde, die Eigenschaften mit Callback-Fuktionen auszurechnen.
+
+Beispielsweise kann die Dicke eines Notenhalses verändert werden, indem
+man die @code{thickness}-Eigenschaft des @code{Stem}-Objekts verändert:
+
+@lilypond[quote, verbatim, relative=2]
+c4 c
+\override Voice.Stem #'thickness = #3.0
+c4 c
+@end lilypond
+
+Wenn kein Kontext angegeben wird, wird der tiefste aktuelle Kontext
+benutzt:
+
+@lilypond[quote, verbatim, relative=2]
+{ \override Staff.Stem #'thickness = #3.0
+  <<
+    {
+      e4 e
+      \override Stem #'thickness = #0.5
+      e4 e
+    } \\ {
+      c4 c c c
+    }
+  >>
+}
+@end lilypond
+
+@cindex rückgängig machen von Kontextveränderungen
+@cindex Kontextveränderungen rückgängig machen
+@cindex override rückgängig machen
+@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
+c4 c
+\revert Voice.Stem #'thickness
+c4
+@end lilypond
+
+Die Auswirkungen von @code{\override} und @code{\revert} wirken sich auf alle
+Grobs im entsprechenden Kontext aber der Stelle aus, an der sie gesetzt werden:
+
+@lilypond[quote, verbatim, relative=2]
+{
+  <<
+    {
+      e4
+      \override Staff.Stem #'thickness = #3.0
+      e4 e e
+    } \\ {
+      c4 c c
+      \revert Staff.Stem #'thickness
+      c4
+    }
+  >>
+}
+@end lilypond
+
+@cindex Veränderung von Kontexten nur einmal
+@cindex Einmal verändern von Kontexten
+@cindex Kontexte, einmal verändern
+@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:
+
+@lilypond[quote, verbatim, relative=2]
+{
+  <<
+    {
+      \override Stem #'thickness = #3.0
+      e4 e e e
+    } \\ {
+      c4
+      \once \override Stem #'thickness = #3.0
+      c4 c c
+    }
+  >>
+}
+@end lilypond
 
+
+@ignore
 @cindex Referenz der Interna
 @cindex Grafische Objekte, Finden
 @cindex Finden von graphischen Objekten
@@ -1643,13 +1815,20 @@ eingesetzt.
 
 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
+
+
+@seealso
+
+Referenz der Interna:
+@rinternals{Backend}.
 
 
 @node Der tweak-Befehl
-@subsection Der @code{\tweak}-Befehl
+@subsection Der @code{\\tweak}-Befehl
 @translationof The tweak command
 
 @funindex \tweak
@@ -1657,6 +1836,20 @@ ausschalten will, die Probleme verursachen.
 
 @cindex Optimieren
 
+Wenn man Grob-Eigenschaften mit @code{\override} verändert, verändern sich
+alle fraglichen Objekte zu dem gegebenen musikalischen Moment.  Manchmal
+will man allerdings nur ein Grob verändern, anstatt allen Grobs des
+aktuellen Kontextes.  Das kann mit dem @code{\tweak}-Befehl erreicht
+werden, mit dem man Optimierungen vornehmen kann:
+
+@example
+\tweak #'@code{grob-eigenschaft} #@code{Wert}
+@end example
+
+Der @code{\tweak}-Befehl wirkt sich auf das Objekt aus, dass direkt auf
+@code{Wert} folgt.
+
+@ignore
 In einigen Fällen ist es möglich, mit einem abgekürzten Befehl
 graphische Objekte zu verändern.  Wenn Objekte direkt von einem
 Element des Quelltextes erstellt werden, kann der @code{\tweak}-Befehl
@@ -1714,6 +1907,10 @@ und das nicht:
 \tweak #'color #red c4
 @end lilypond
 
+@end ignore
+
+Eine Einleitung der Syntax und Benutzungen des @code{\tweak}-(Optimierungs)-Befehls findet sich in @rlearning{Optimierungsmethoden}.
+
 Wenn mehrere gleichartige Elemente zum gleichen musikalischen
 Moment auftreten, kann der @code{\override}-Befehl nicht
 benutzt werden, um nur einen von ihnen zu verändern: hier braucht
@@ -1730,29 +1927,52 @@ gleichen musikalischen Moment auftreten können sind unter Anderem:
 
 @c TODO add examples of these
 
-@noindent
-@code{\tweak} kann eingesetzt werden, um ein einzelnes Element aus der Gruppe
-zu verändern.
+@cindex Akkord, eine Noten verändern
 
-Der @code{\tweak}-Befehl kann @emph{nicht} eingesetzt werden, um
-Hälse, Balken oder Versetzungszeichen zu verändern, weil diese
-später durch den Notenkopf erstellt werden und nicht direkt durch
-den Quelltext.  @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.
+In diesem Beispiel wird die Farbe eines Notenkopfes und die Art eines
+anderen Notenkopfes innerhalb eines Akkordes verändert:
 
-Der @code{\tweak}-Befehl @emph{kann} aber als Alternative des
-@code{\override}-Befehls eingesetzt werden, wenn die zu verändernden
-Elemente keine zusätzlichen impliziten Elemente während der
-Interpretation hinzufügen.  Legatobögen können also auch auf
-die folgende Weise verändert werden:
+@lilypond[relative=2,verbatim,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)
 @end lilypond
 
-Mehrere @code{\tweak}-Befehle können vor ein Notatioselement
+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:
+
+@lilypond[relative=2,verbatim,quote]
+\tweak #'color #red c4
+<\tweak #'color #red c>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,
+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.
+
+Mehrere @code{\tweak}-Befehle können vor ein Notationselement
 gesetzt werden und alle werden interpretiert:
 
 @lilypond[verbatim,quote,relative=1]
@@ -1776,13 +1996,14 @@ verändert werden kann.
 Handbuch zum Lernen:
 @rlearning{Optimierungsmethoden}.
 
-Notationsreferenz:
-@ref{Musikalische Funktionen darstellen}.
+Erweitern:
+@rextend{Musikalische Funktionen darstellen}.
 
 @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.
 
@@ -1801,9 +2022,12 @@ wird der erste Bogen verändert, der in der Eingabedatei auftritt.
 
 
 @node set versus override
-@subsection @code{\set} versus @code{\override}
+@subsection @code{\\set} versus @code{\\override}
 @translationof set versus override
 
+@c TODO: überflüssig?
+
+@ignore
 Es wurden zwei unterschiedliche Methoden vorgestellt, mit denen
 Eigenschaften verändert werden können: @code{\set} und
 @code{\override}.  Im Grunde genommen gibt es auch zwei
@@ -1826,7 +2050,7 @@ Elementbeschreibung.  Diese Eigenschaften werden mit
 @code{GroßGroß} benannt (beginnen also auch mit einem
 Großbuchstaben).  Sie beinhalten die Standardeinstellungen
 für die besagten graphischen Objekte in Form einer
-Assosiationsliste.  Siehe auch die Datei @file{scm/@/define@/-grobs@/.scm}
+Assosiationsliste.  Siehe auch die Datei @file{scm/define-grobs.scm}
 für ein Beispiel zu diesen Einstellungen.  Elementbeschreibungen
 können mit dem Befehl @code{\override} verändert werden.
 
@@ -1856,6 +2080,126 @@ Callback-Funktionen eingesetzt werden.
 @code{\override ... #'font-size} für alle möglichen Objekte.
 Weil es sich hier um eine globale Änderung handelt, wurde
 die spezielle Form (die mit @code{\set} verändert wird) erstellt.
+@end ignore
+
+
+@node Alisten verändern
+@subsection Alisten verändern
+@translationof Modifying alists
+
+Einige vom Benutzer einstellbare Eigenschaften sind intern als
+@emph{alists} (Assoziative Listen) dargestellt, die Paare von
+Schlüsseln und Werten speichern.  Die Struktur einer Aliste ist:
+
+@example
+'((@var{Schlüssel1} . @var{Wert1})
+  (@var{Schlüssel2} . @var{Wert2})
+  (@var{Schlüssel3} . @var{Wert3})
+  @dots{})
+@end example
+
+Wenn eine Aliste eine Grob-Eigenschaft oder eine Variable der
+@code{\paper}-Umgebung ist, können ihre Schlüssel einzeln verändert
+werden, ohne andere Schlüssel zu beeinflussen.
+
+Um beispielsweise den Freiraum zwischen benachbarten Systemen
+in einer Systemgruppe zu verkleinern, kann man die
+@code{staff-staff-spacing}-Eigenschaft des
++@code{StaffGrouper}-Grobs benutzen.  Die Eigenschaft ist eine
+Aliste mit vier Schlüsseln: : @code{basic-distance} (Grund-Abstand),
+@code{minimum-distance} (minimaler Abstand), @code{padding} (Verschiebung)
+und @code{stretchability} (Dehnbarkeit).  Die Standardwerte dieser
+Eigenschaft finden sich im Abschnitt @qq{Backend} der Referenz der
+Interna (siehe @rinternals{StaffGrouper}):
+
+@example
+'((basic-distance . 9)
+  (minimum-distance . 7)
+  (padding . 1)
+  (stretchability . 5))
+@end example
+
+Eine Möglichkeit, die Systemen dichter zueinander zu zwingen,
+ist es, der Wert des  @code{basic-distance}-Schlüssels (@code{9}) zu
+verändern, sodass der den gleichen Wert wie
+@code{minimum-distance} (@code{7}) hat.  Um einen einzelnen
+Schlüssel zu verändern, wird ein geschachtelter Aufruf benutzt:
+
+@lilypond[quote,verbatim]
+% default space between staves
+\new PianoStaff <<
+  \new Staff { \clef treble c''1 }
+  \new Staff { \clef bass   c1   }
+>>
+
+% reduced space between staves
+\new PianoStaff \with {
+  % this is the nested declaration
+  \override StaffGrouper #'staff-staff-spacing #'basic-distance = #7
+} <<
+  \new Staff { \clef treble c''1 }
+  \new Staff { \clef bass   c1   }
+>>
+@end lilypond
+
+Wenn man diese Art des geschachtelten Aufrufs einsetzt, wird der
+spezifische Schlüssel (@code{basic-distance} im obigen Beispiel) verändert,
+ohne dass sich andere Wert für die gleiche Eigenschaft ändern würden.
+
+Nun sollen die Systeme so dicht wie möglich gesetzt werden, ohne das
+Überlappungen vorkommen.  Die einfachste Möglichkeit, das zu tun, wäre
+es, alle vier Wert auf 0 zu setzen.  Man muss jedoch nicht vier
+Werte definieren, sondern die Eigenschaft
+kann mit einem Aufruf als Aliste vollständig verändert werden:
+
+@lilypond[quote,verbatim]
+\new PianoStaff \with {
+  \override StaffGrouper #'staff-staff-spacing =
+    #'((basic-distance . 0)
+       (minimum-distance . 0)
+       (padding . 0)
+       (stretchability . 0))
+} <<
+  \new Staff { \clef treble c''1 }
+  \new Staff { \clef bass   c1   }
+>>
+@end lilypond
+
+Dabei sollte beachtet werden, dass alle Schlüssel, die bei dieser
+Weise des Aufrufs nicht explizit aufgelistet sind, auf den Standardwert
+gesetzt werden, den sie hätten, wenn sie nicht definiert werden.
+Im Falle von @code{staff-staff-spacing} würden alle nicht genannten
+Schlüsselwerte auf 0 gesetzt (außer @code{stretchability}, welche immer
+den Wert von @code{space} hat, wenn sie nicht definiert ist).  Somit sind
+folgende Aufrufe äquivalent:
+
+@example
+\override StaffGrouper #'staff-staff-spacing =
+  #'((basic-distance . 7))
+
+\override StaffGrouper #'staff-staff-spacing =
+  #'((basic-distance . 7)
+     (minimum-distance . 0)
+     (padding . 0)
+     (stretchability . 7))
+@end example
+
+Eine möglicherweise ungewollte Konsequenz hiervon ist, dass alle
+Standardwerte, die etwa in einer Initialisierungsdatei
+zu Beginn einer LilyPond-Partitur geladen werden, nach dem Aufruf
+rückgängig gemacht werden.  Im obigen Beispiel werden die
+initialisierten Standardwerte für @code{padding} und @code{minimum-distance}
+(definiert in @file{scm/define-grobs.scm}) auf den Standard zurückgesetzt,
+den sie uninitialisiert hätten (0 in beiden Fällen).  Wenn eine Eigenschaft oder
+Variable in Form einer Aliste (jeder Größe) definiert wird, werden
+immer alle Schlüsselwerte auf den uninitialisierten Zustand zurückgesetzt.
+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},
+@code{timeSignatureSettings}, usw.)  Diese Eigenschaften können
+nur verändert werden, indem man sie vollständig als Alisten umdefiniert.}
 
 
 @node Nützliche Konzepte und Eigenschaften
@@ -1865,12 +2209,11 @@ die spezielle Form (die mit @code{\set} verändert wird) erstellt.
 @menu
 * Eingabe-Modi::
 * Richtung und Platzierung::
-* Reihenfolge des Kontextlayouts::
 * Abstände und Maße::
 * Eigenschaften des Staff-Symbols::
 * Strecker::
 * Sichtbarkeit von Objekten::
-* Zeilenstile::
+* Linienstile::
 * Drehen von Objekten::
 @end menu
 
@@ -1940,7 +2283,7 @@ den @code{\fret-diagram}-Befehl einsetzt (siehe
 
 Man erreicht ihn mit dem Befehl @code{\lyricmode}.  Die Eingabe
 wird entsprechend der Syntax für Silben eines Gesangstextes
-interpretiert, wobei optional Dauern und verknüpfte 
+interpretiert, wobei optional Dauern und verknüpfte
 Gesangstextveränderer möglich  sind, siehe @ref{Notation von Gesang}.
 
 Der Gesangstextmodus wird auch durch den Befehl @code{\addlyrics}
@@ -1952,7 +2295,7 @@ nachfolgenden Gesangstext mit der vorhergehenden Musik verknüpft.
 
 Man erreicht ihn mit dem Befehl @code{\markup}.  Die Eingabe wird
 entsprechend der Syntax für Textbeschriftung interpretiert, siehe
-@ref{Text markup commands}.
+@ref{Textbeschriftungsbefehle}.
 
 @c silly work-around for texinfo broken-ness
 @c (@strong{Note...} causes a spurious cross-reference in Info)
@@ -1994,7 +2337,7 @@ enge Auswahl begrenzt: Notenhälse beispielsweise können entweder nach
 oben oder nach unten zeigen, Gesangstext, Dynamikzeichen und andere
 Ausdrucksbezeichnungen können über oder unter dem System gesetzt werden,
 Text kann rechts, links oder mittig ausgerichtet werden usw.  Die meisten
-dieser Eintscheidungen können LilyPond direkt überlassen werden; in
+dieser Entscheidungen können LilyPond direkt überlassen werden; in
 einigen Fällen kann es allerdings nötig sein, eine bestimmte Richtung
 oder eine Position zu erzwingen.
 
@@ -2018,8 +2361,8 @@ 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 Fingersagzanweisungen: @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:
@@ -2039,10 +2382,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
@@ -2060,10 +2403,11 @@ 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}.
 
+@c ignore left out
 Diese Ausrichtungsanzeigen wirken sich auf alle Noten aus, bis sie
 rückgängig gemacht werden:
 
@@ -2077,36 +2421,6 @@ 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}.
-
-@seealso
-Handbuch zum Lernen
-@rlearning{An extra staff appears}.
-
-
 @node Abstände und Maße
 @subsection Abstände und Maße
 @translationof Distances and measurements
@@ -2132,7 +2446,7 @@ eines Zolls).  Abstände des Seitenlayouts können auch in
 skalierbaren Einheiten (siehe folgenden Absatz) definiert
 werden, indem man den Befehl @code{\staff-space} an die
 Zahl hängt.  Das Seitenlayout ist genauer beschrieben in
-@ref{Seitenformatierung}.
+@ref{Seitenlayout}.
 
 Skalierbare Abstände werden immer in Einheiten von
 Notenlinienabständen angegeben, oder seltener in halben
@@ -2173,7 +2487,7 @@ Handbuch zum Lernen:
 @rlearning{Länge und Dicke von Objekten}.
 
 Notationsreferenz:
-@ref{Seitenformatierung},
+@ref{Seitenlayout},
 @ref{Die Notensystemgröße einstellen}.
 
 
@@ -2186,7 +2500,7 @@ Notationsreferenz:
 @cindex Veränderung des Notensystems
 
 Die vertikale Position der Notenlinien und die Anzahl der
-Notenlinien kann gleichzeit definiert werden.  Wie das
+Notenlinien kann gleichzeitig definiert werden.  Wie das
 folgende Beispiel zeigt, werden Notenpositionen nicht
 durch die Position der Notenlinien verändert:
 
@@ -2203,7 +2517,7 @@ die Anzahl der Elemente in der Liste der Werte von
 { a4 e' f b | d1 }
 @end lilypond
 
-Die Breite eines Notensystes kann verändert werden.  Die Einheit
+Die Breite eines Notensystems kann verändert werden.  Die Einheit
 ist in Notenlinienabständen.  Die Abstände von Objekten
 in diesem Notensystem wird durch diese Einstellung nicht
 beeinflusst.
@@ -2398,7 +2712,7 @@ 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,fragment]
+@lilypond[relative=2,ragged-right,verbatim,quote]
 \override Glissando #'breakable = ##t
 \override Glissando #'(bound-details right-broken Y) = #-3
 c1 \glissando \break
@@ -2422,7 +2736,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.
 
@@ -2443,7 +2757,7 @@ 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,fragment,relative=2,verbatim]
+@lilypond[quote,ragged-right,relative=2,verbatim]
 \override TextSpanner #'(bound-details left text)
    = \markup { \small \bold Slower }
 c2\startTextSpan b c a\stopTextSpan
@@ -2456,10 +2770,10 @@ die Matrize (engl. stencil) einfach am Endpunkt des Streckers,
 auf seiner Mittellinie (wie durch @code{X} und @code{Y}
 definiert) zentriert, ausgegeben.  Wenn entweder
 @code{stencil-align-dir-y} oder @code{stencil-offset}
-gesetzt werden, wird das Symbol am Rand vertiakl entsprechend
+gesetzt werden, wird das Symbol am Rand vertikal entsprechend
 des Endpunktes der Linie verschoben:
 
-@lilypond[relative=1,fragment,verbatim]
+@lilypond[relative=1,quote,verbatim]
 \override TextSpanner
   #'(bound-details left stencil-align-dir-y) = #-2
 \override TextSpanner
@@ -2474,7 +2788,7 @@ c4^\startTextSpan c c c \stopTextSpan
 
 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.
@@ -2498,7 +2812,7 @@ 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,fragment]
+@lilypond[verbatim,quote,ragged-right,relative=2]
 \endSpanners
 c2 \startTextSpan c2 c2
 \endSpanners
@@ -2553,7 +2867,7 @@ Abschnitt behandelt.
 
 
 @node Einen stencil entfernen
-@unnumberedsubsubsec Einen stencil entfernen
+@unnumberedsubsubsec Einen @code{stencil} entfernen
 @translationof Removing the stencil
 
 @cindex stencil, entfernen
@@ -2632,7 +2946,7 @@ Das kann man vermeiden, indem man die Satzreihenfolge der Objekte
 verändert.  Alle Layout-Objekte haben eine @code{layer}-Eigenschaft,
 die auf eine ganze Zahl gesetzt sein muss.  Objekte mit der
 niedrigsten Zahl in der @code{layer}-Eigenschaft werden zuerst
-gesetzt, dann die nächstne Objekte in ansteigender Ordnung.  Objekte
+gesetzt, dann die nächsten Objekte in ansteigender Ordnung.  Objekte
 mit höheren Werten überschneiden also Objekte mit niedrigeren
 Werten.  Die meisten Objekte bekommen den Wert @code{1} zugewiesen,
 einige wenige Objekte, unter die auch @code{StaffSymbol} (die
@@ -2644,7 +2958,7 @@ 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]
@@ -2655,10 +2969,11 @@ a1
 
 
 @node break-visibility (unsichtbar machen) benutzen
-@unnumberedsubsubsec break-visibility (unsichtbar machen) benutzen
+@unnumberedsubsubsec @code{break-visibility} (unsichtbar machen) benutzen
 @translationof Using break-visibility
 
 @funindex break-visibility
+
 @cindex break-visibility
 
 Die meisten Layout-Objekte werden nur einmal gesetzt, aber
@@ -2683,16 +2998,16 @@ Dieses Verhalten wird von der @code{break-visibility}-Eigenschaft
 kontrolliert, die erklärt wird in
 @c Leave this ref on a newline - formats incorrectly otherwise -td
 @rlearning{Sichtbarkeit und Farbe von Objekten}.  Die Eigenschaft
-bruacht einen Vektor von drei Boolschen Werten, die in ihrer
+braucht einen Vektor von drei Booleschen Werten, die in ihrer
 Reihenfolge bestimmte, ob das Objekt a) zu Ende der Zeile,
 b) innerhalb einer Zeile oder c) zu Beginn einer Zeile gesetzt
 wird.  Oder, genauer gesagt, vor einem Zeilenumbruch, an Stellen,
 wo kein Zeilenumbruch auftritt oder nach einem Zeilenumbruch.
 
 Die acht möglichen Kombinationen können auch durch vordefinierte
-Funktionen besetimmt werden, welche in der Datei @file{scm/@/output@/-lib@/.scm}
+Funktionen bestimmt werden, welche in der Datei @file{scm/output-lib.scm}
 definiert sind.  Die letzten drei Spalten der folgenden Tabelle
-zeigen an, ob das Layout-Objekt an einer besetimmten Position
+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}
@@ -2759,15 +3074,27 @@ Layout-Objekt, und einige Kombinationen können sogar
 Fehler hervorrufen.  Es gelten die folgenden Einschränkungen:
 
 @itemize @bullet
-@item Taktstriche können nicht zu Beginn einer Zeile gesetzt werden.
-@item Eine Taktzahl kann nicht zu Beginn der ersten Zeile gesetzt
+@item
+Taktstriche können nicht zu Beginn einer Zeile gesetzt werden.
+
+@item
+Eine Taktzahl kann nicht zu Beginn der ersten Zeile gesetzt
 werden, außer wenn er nicht 1 ist.
-@item Schlüssel -- siehe unten.
-@item Doppel-Prozent-Wiederholungen werden entweder alle ausgegeben
+
+@item
+Schlüssel -- siehe unten.
+
+@item
+Doppel-Prozent-Wiederholungen werden entweder alle ausgegeben
 oder alle unterdrückt.  Mit @code{begin-of-line-invisible} werden
 sie ausgegeben, mit @code{all-invisible} unterdrückt.
-@item Tonart -- siehe unten.
-@item Oktavieruns-Acht -- siehe unten.
+
+@item
+Tonart -- siehe unten.
+
+@item
+Oktavierungs-Acht -- siehe unten.
+
 @end itemize
 
 
@@ -2808,7 +3135,7 @@ Die Sichtbarkeit derartiger expliziter Tonart- und Schlüsseländerungen
 wird von den @code{explicitKeySignatureVisibility}- und
 @code{explicitClefVisibility}-Eigenschaften kontrolliert.  Sie
 entsprechen der @code{break-visibility}-Eigenschaft und beide
-brauchen drei Boolsche Werte bzw. die oben aufgelisteten vordefinierten
+brauchen drei Boolesche Werte bzw. die oben aufgelisteten vordefinierten
 Funktionen als Argument, genau wie @code{break-visibility}.
 Beide sind Eigenschaft des @code{Staff}-Kontextes, nicht der
 Layout-Objekte selber, weshalb sie mit dem Befehl @code{\set}
@@ -2879,10 +3206,10 @@ auftreten.
 
 Das kleine Oktavierungssymbol von oktavierten Notenschlüsseln
 wird durch das @code{OctavateEight}-Layout-Objekt erstellt.
-Seine Sichtbarkeit wird unabhängig vom @code{Clef}-Objekt
-bestimmt, sodass notwendige Veränderungen von @code{break-visibility}
-sowohl für @code{Clef} als auch für @code{OctavateEight} vorgenommen
-werden müssen, damit derartige Schlüssel entfernt werden.
+Seine Sichtbarkeit wird automatisch vom @code{Clef}-Objekt
+geerbt, sodass Veränderungen von @code{break-visibility}
+des @code{OctavateEight}-Layout-Objekts nicht auch noch
+für unsichtbare Schlüssel zusätzlich vorgenommen werden müssen.
 
 Bei expliziten Schlüsseländerungn kontrolliert die
 @code{explicitClefVisibility}-Eigenschaft wohl das
@@ -2893,8 +3220,8 @@ Handbuch zum Lernen:
 @rlearning{Sichtbarkeit und Farbe von Objekten}
 
 
-@node Zeilenstile
-@subsection Zeilenstile
+@node Linienstile
+@subsection Linienstile
 @translationof Line styles
 
 Einige Aufführungsanweisungen (z. B. @i{rallentando} und
@@ -2914,7 +3241,7 @@ 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,fragment]
+@lilypond[relative=2,ragged-right,verbatim,quote]
 d2 \glissando d'2
 \once \override Glissando #'style = #'dashed-line
 d,2 \glissando d'2
@@ -2930,16 +3257,16 @@ Die Position der Endpunkte des Streckers werden in
 Realzeit für jedes graphische Objekt errechnet, aber
 es ist möglich, sie manuell vorzugeben:
 
-@c FIXME Complete
-@lilypond[relative=2,ragged-right,verbatim,fragment]
+@c TODO Complete
+@lilypond[relative=2,ragged-right,verbatim,quote]
 e2 \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
-werden, indem man @code{left} antelle von @code{right} angibt.
+@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
 der vertikalen Position der linken und rechten Anbindepunkte
@@ -3044,11 +3371,11 @@ Handbuch zum Lernen:
 
 Notationsreferenz:
 @ref{Die Referenz der Programminterna erklärt},
-@ref{Eignschaften verändern},
+@ref{Eigenschaften verändern},
 @ref{Schnittstellen für Programmierer}.
 
 Installierte Dateien:
-@file{scm/@/define@/-grobs@/.scm}.
+@file{scm/define-grobs.scm}.
 
 Schnipsel:
 @rlsr{Tweaks and overrides}.
@@ -3072,25 +3399,26 @@ Ausdehnung und eine vertikale Ausdehnung.  Die horizontale Ausdehnung ist
 ein Zahlenpaar, mit dem die Verschiebung der rechten und linken Ecken
 ausgehend vom Referenzpunkt angegeben werden, wobei Verschiebungen
 nach links mit negativen Zahlen notiert werden.  Die vertikale Ausdehnung
-ist ein Zahlenparr, das die Verschiebung der unteren und oberen
+ist ein Zahlenpaar, das die Verschiebung der unteren und oberen
 Ränder vom Referenzpunkt ausgehend angibt, wobei Verschiebungen nach
 unten mit negativen Zahlen notiert werden.
 
 Die Position eines Objektes auf dem Notensystem wird mit Werten
 von @code{X-offset} und @code{Y-offset} angegeben.  Der Wert von
-@code{X-offset} gibt die Verschiebung von der x-Koordinate des
+@code{X-offset} gibt die Verschiebung von der X-Koordinate des
 Referenzpunkts des Elternobjektes an, der Wert von @code{Y-offset}
 die Verschiebung ausgehend von der Mittellinie des Notensystemes.
 Die Werte von @code{X-offset} und @code{Y-offset} können direkt
 bestimmt werden oder durch Prozeduren errechnet werden, sodass
-eine Ausrichtung mit dem Elternobjekt auf verschiedene Weise
-erreicht werden kann.
+eine Ausrichtung mit dem Elternobjekt erreicht werden kann.
 
 @warning{Viele Objekte brauchen besondere Überlegungen zu ihrer
 Position, weshalb in manchen Fällen manuell gesetzte Werte von
 @code{X-offset} oder @code{Y-offset} ignoriert oder verändert
 werden können, obwohl das Objekt das
-@code{self-alignment-interface} unterstützt.}
+@code{self-alignment-interface} unterstützt.  Wenn man @code{X-offset}
+oder @code{Y-offset} auf einen festen Wert setzt, wird die entsprechende
+@code{self-alignment}-Eigenschaft ignoriert.}
 
 Ein Versetzungszeichen beispielsweise kann vertikal durch Veränderung
 von @code{Y-offset} verschoben werden, aber Änderungen von
@@ -3099,21 +3427,29 @@ von @code{Y-offset} verschoben werden, aber Änderungen von
 Übungszeichen können an trennbaren Objekten (wie Taktstrichen,
 Schlüsseln, Taktarten und Tonartvorzeichen) ausgerichtet werden.
 In @code{break-aligned-interface} finden sich besondere Eigenschaften,
-mit denen Übungszeichen an derartigen objekten ausgerichtet werden können.
+mit denen Übungszeichen an derartigen Objekten ausgerichtet werden können.
+
+@seealso
+
+Notationshandbuch:
+@ref{Benutzung des break-alignable-interface}.
+
+Erweitern:
+@rextend{Callback functions}.
 
 
 @menu
-* @code{X-offset} und @code{Y-offset} direkt setzen::
-* Das @code{side-position-interface} benutzen::
-* Das @code{self-alignment-interface} benutzen::
-* Benutzung des @code{break-aligned-interface}::
+* X-offset und Y-offset direkt setzen::
+* Das side-position-interface benutzen::
+* Das self-alignment-interface benutzen::
+* Benutzung des break-alignable-interface::
 @end menu
 
-@node @code{X-offset} und @code{Y-offset} direkt setzen
+@node X-offset und Y-offset direkt setzen
 @unnumberedsubsubsec @code{X-offset} und @code{Y-offset} direkt setzen
-@translationof Setting @code{X-offset} and @code{Y-offset} directly
+@translationof Setting X-offset and Y-offset directly
 
-Numereische Werte können den @code{X-offset}- und @code{Y-offset}-Eigesnchaften
+Numerische Werte können den @code{X-offset}- und @code{Y-offset}-Eigenschaften
 vieler Objekte zugewiesen werden.  Das folgende Beispiel zeigt
 drei Noten mit der Standardposition von Fingersatzanweisungen
 und die Positionen, wenn @code{X-offset} und @code{Y-offset}
 
 
 
-@node Das @code{side-position-interface} benutzen
+@node Das side-position-interface benutzen
 @unnumberedsubsubsec Das @code{side-position-interface} benutzen
-@translationof Using the @code{side-position-interface}
+@translationof Using the side-position-interface
 
-Ein Objekt, das die @code{side-position-interface}-Schnittstellt
+Ein Objekt, das die @code{side-position-interface}-Schnittstelle
 unterstützt, kann neben sein Elternobjekt gesetzt werden,
 sodass zwei definierte Enden der Objekte sich berühren.
 Das Objekt kann über, unter, rechts oder links vom
@@ -3179,9 +3515,9 @@ angeordnet wird, entsprechend dem Wert der @code{direction}-Eigenschaft.
 
 
 
-@node Das @code{self-alignment-interface} benutzen
+@node Das self-alignment-interface benutzen
 @unnumberedsubsubsec Das @code{self-alignment-interface} benutzen
-@translationof Using the @code{self-alignment-interface}
+@translationof Using the self-alignment-interface
 
 @emph{Selbstausrichtende Objekte horizontal}
 
@@ -3195,12 +3531,12 @@ 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
@@ -3232,18 +3568,18 @@ 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}
 
-Indem sowohl @code{X-offset} als auch @code{Y-offset} eingestllt
+Indem sowohl @code{X-offset} als auch @code{Y-offset} eingestellt
 werden, kann ein Objekt gleichzeitig in beiden Richtungen ausgerichtet
 werden.
 
@@ -3261,9 +3597,9 @@ a
 
 
 
-@node Benutzung des @code{break-aligned-interface}
-@unnumberedsubsubsec Benutzung des @code{break-aligned-interface}
-@translationof Using the @code{break-alignable-interface}
+@node Benutzung des break-alignable-interface
+@unnumberedsubsubsec Benutzung des @code{break-alignable-interface}
+@translationof Using the break-alignable-interface
 
 @cindex Ausrichtung an Objekten
 
@@ -3279,20 +3615,27 @@ Standardmäßig werden Übungszeichen und Taktzahlen horizontal
 über dem Objekt zentriert:
 
 @lilypond[verbatim,quote,relative=1]
-e1
-% the RehearsalMark will be centered above the Clef
+% The RehearsalMark will be centered above the Clef
 \override Score.RehearsalMark #'break-align-symbols = #'(clef)
 \key a \major
 \clef treble
 \mark "↓"
-e
-% the RehearsalMark will be centered above the TimeSignature
+e1
+% The RehearsalMark will be centered above the TimeSignature
 \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)
+\key a \major
+\clef treble
+\time 4/4
+e1
+\breathe
+\mark "↓"
 @end lilypond
 
 Eine Liste von möglichen Objekten zur Ausrichtung kann definiert
@@ -3306,20 +3649,28 @@ Wenn der Taktstrich unsichtbar ist, wird das Objekt an der Stelle
 ausgerichtet, an der sich der Taktstrich befinden würde.
 
 @lilypond[verbatim,quote,relative=1]
-e1
-% the RehearsalMark will be centered above the Key Signature
+% The RehearsalMark will be centered above the Key Signature
 \override Score.RehearsalMark #'break-align-symbols = #'(key-signature clef)
 \key a \major
 \clef treble
 \mark "↓"
-e
-% the RehearsalMark will be centered above the Clef
+e1
+% The RehearsalMark will be centered above the Clef
 \set Staff.explicitKeySignatureVisibility = #all-invisible
 \override Score.RehearsalMark #'break-align-symbols = #'(key-signature clef)
-\key a \minor
+\key a \major
 \clef bass
 \mark "↓"
-e,
+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)
+\key a \major
+\clef treble
+\mark "↓"
+e''1
+
 @end lilypond
 
 Die Ausrichtung des Übungszeichen relativ zum Notationsobjekt kann
@@ -3339,12 +3690,12 @@ e1
 \once \override Score.KeySignature #'break-align-anchor-alignment = #LEFT
 \mark "↓"
 \key a \major
-e
+e1
 % The RehearsalMark will be aligned with the right edge of the KeySignature
 \once \override Score.KeySignature #'break-align-anchor-alignment = #RIGHT
 \key a \major
 \mark "↓"
-e
+e1
 @end lilypond
 
 Das Übungszeichen kann auch nach rechts oder links um einen beliebigen Wert
@@ -3357,13 +3708,13 @@ verschoben werden.  Die Einheiten sind in Notenlinienzwischenräumen:
 \once \override Score.KeySignature #'break-align-anchor = #3.5
 \key a \major
 \mark "↓"
-e
+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
 \key a \major
 \mark "↓"
-e
+e1
 @end lilypond
 
 
@@ -3389,7 +3740,7 @@ jedes Notensystem, Gesangstext usw. hat eine eigene
 
 Alle Layout-Objekte haben eine @code{stencil}-(Stempel-)Eigenschaft,
 die ein Teil von @code{grob-interface} ist.  Diese Eigenschaft
-ist normalerweise als eine Funktion definiert, die auf das jweilige
+ist normalerweise als eine Funktion definiert, die auf das jeweilige
 Objekt angepasst ist und das Symbol erstellt, dass dann im Druckbild
 erscheint.  Beispielsweise die Standardeinstellung für die
 @code{stencil}-Eigenschaft von @code{MultiMeasureRest}
@@ -3439,7 +3790,7 @@ Siehe auch @ref{Die Feta-Schriftart}.
 Notationsreferenz:
 @ref{Graphische Notation innerhalb einer Textbeschriftung},
 @ref{Text formatieren},
-@ref{Text markup commands},
+@ref{Textbeschriftungsbefehle},
 @ref{Die Feta-Schriftart}.
 
 
@@ -3467,7 +3818,6 @@ dritter Ordnung gezeichnet.  Wenn die Form eines automatischen
 Bogens nicht optimal ist, kann sie manuell verändert werdne,
 indem man die vier erforderlichen Kontrollpunkte angibt.
 
-
 Bézierkurven dritter Ordnung (auch als quadratische Bézierkurven
 bezeichnet) werden durch vier Kontrollpunkte definiert.  Der
 erste und vierte Kontrollpunkt geben Beginn und Ende der Kurve
@@ -3487,7 +3837,7 @@ lösen würde.
 
 @lilypond[verbatim,quote,relative=1]
 <<
-  { e1 ~ e }
+  { e1~ e }
 \\
   { r4 <g c,> <g c,> <g c,> }
 >>
@@ -3507,7 +3857,7 @@ zu schätzen und dann die zwei Zwischenpunkte zu erraten.
 Die optimalen Werte können nur durch Ausprobieren gefunden
 werden.
 
-Es lohnt sich daran zu denken, dass eine symmtrische Kurve
+Es lohnt sich daran zu denken, dass eine symmetrische Kurve
 symmetrische Kontrollpunkte benötigt, und dass Bézierkurven
 die nützliche Eigenschaft haben, dass eine Transformation
 der Kurve wie eine Übersetzung, Drehung oder Skalierung
@@ -3524,10 +3874,10 @@ wird.
   {
   \once \override Tie
     #'control-points = #'((1 . -1) (3 . 0.6) (12.5 . 0.6) (14.5 . -1))
-  e1 ~ e1
+  e1~ e1
   }
 \\
-  { r4 <g c,> <g c,> <g c,>4  }
+  { r4 <g c,> <g c,> <g c,>  }
 >>
 @end lilypond
 
@@ -3535,11 +3885,186 @@ 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}.
+
+
+
+@node Musikfunktionen benutzen
+@section Musikfunktionen benutzen
+@translationof Using music functions
+
+@c TODO -- add @seealso, etc. to these subsections
+
+Wenn Optimierungen von unterschiedlichen musikalischen Ausdrücken
+wiederverwendet werden sollen, bietet es sich oft an, den
+@qq{Optimierungsanteil} einer @emph{musikalischen Funktion} zu
+erstellen.  In diesem Abschnitt sollen nur @emph{Ersetzungen}
+erklärt werden, wo es darum geht, eine Variable mit einem Stück
+LilyPond-Code zu ersetzen.  Andere komplexere Funktionen werden
+beschrieben in @rextend{Musikalische Funktionen}.
+
+@menu
+* Syntax der Ersetzungsfunktion::
+* Beispiele der Ersetzungsfunktion::
+@end menu
+
+@node Syntax der Ersetzungsfunktion
+@subsection Syntax der Ersetzungsfunktion
+@translationof Substitution function syntax
+
+Es ist einfach eine Funktion zu erstellen, die eine Variable
+in LilyPond-Code umwandelt.  Die generelle Form dieser
+Funktionen ist:
 
+@example
+Funktion =
+#(define-music-function
+     (parser location @var{Arg1} @var{Arg2} @dots{})
+     (@var{Typ1?} @var{Typ2?} @dots{})
+   #@{
+     @var{@dots{}Noten@dots{}}
+   #@})
+@end example
+
+@noindent
+wobei
+
+@multitable @columnfractions .33 .66
+@item @code{@var{ArgN}}
+@tab @var{n}tes Argument
+
+@item @code{@var{TypN?}}
+@tab ein Scheme @emph{Typenprädikat}, für das @code{@var{ArgN}}
+den Wert @code{#t} ausgibt.
 
+@item @code{@var{@dots{}Noten@dots{}}}
+@tab normale LilyPond-Eingabe, wobei @code{$} (wenn nur LilyPond-Konstruktionen
+erlaubt sind) oder @code{#} (um es als Scheme-Wert oder Argument einer
+musikalischen Funktionen 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
+@rextend{Musikalische Funktionen}).  In Ersetzungsfunktionen
+gehen Sie einfach sicher, dass sie die beiden Wörter auch mit
+aufnehmen.
+
+Die Liste der Typenprädikate ist auch notwendig.  Einige der
+häufigsten Typenprädikate, die in musikalischen Funktionen
+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?
+string?
+symbol?
+@end example
 
+@noindent
+Eine Liste aller Typprädikate findet sich unter
+@ref{Vordefinierte Typprädikate}.  Eigene Typprädikate
+sind auch erlaubt.
+
+
+@seealso
+
+Notationsreferenz:
+@ref{Vordefinierte Typprädikate}.
+
+Erweitern:
+@rextend{Musikalische Funktionen}.
+
+Installierte Dateien:
+@file{lily/music-scheme.cc},
+@file{scm/c++.scm},
+@file{scm/lily.scm}.
+
+
+@node Beispiele der Ersetzungsfunktionen
+@subsection Beispiele der Ersetzungsfunktionen
+@translationof Substitution function examples
+
+Dieser Abschnitt zeigt einige Beispiele von Ersetzungsfunktionen.
+Sie sind nicht vollständig, sondern sollen einige der
+Möglichkeiten von einfachen Ersetzungsfunktionen aufzeigen.
+
+Im ersten Beispiel wird eine Funktione definiert, die
+das Verschieben von @code{TextScript} erleichtert:
+
+@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
+}
+@end lilypond
+
+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)
+     (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
+   #})
+
+\relative c' { c4 d e f \custosNote g }
+@end lilypond
+
+Ersetzungsfunktionen mit mehrfachen Argumenten können definiert
+werden:
+
+@lilypond[quote,verbatim,ragged-right]
+tempoPadded =
+#(define-music-function
+     (parser location padding tempotext)
+     (number? string?)
+   #{
+     \once \override Score.MetronomeMark #'padding = #padding
+     \tempo \markup { \bold #tempotext }
+   #})
+
+\relative c'' {
+  \tempo \markup { "Low tempo" }
+  c4 d e f g1
+  \tempoPadded #4.0 #"High tempo"
+  g4 f e d c1
+}
+@end lilypond