+@menu
+* Introduction to tweaks::
+* Objects and interfaces::
+* Naming conventions of objects and properties::
+* Tweaking methods::
+@end menu
+
+@node Introduction to tweaks
+@subsection Introduction to tweaks
+
+@qq{Optimierung} (engl. tweaking) ist ein LilyPond-Begriff für die
+verschiedenen Methoden, die Aktionen zu beeinflussen, die während
+der Kompilation einer Notationsdatei vorgenommen werden sowie auf
+das Notenbild einzuwirken. Einige dieser Opitmierungen sind sehr
+einfach, andere dagegen recht komplex. Aber insgesamt erlaubt das
+System an Optimierungen so gut wie alle möglichen Erscheindungsformen
+für die Notenausgabe.
+
+In diesem Abschnitt werden die grundlegenden Konzepte vorgestellt,
+um die Optimierung zu verstehen. Später soll eine Anzahl von fertigen
+Befehlen bereitgestellt werden, die einfach in die Quelldatei
+kopiert werden können um den selben Effekt wie im Beispiel
+zu erhalten. Gleichzeitig zeigen diese Beispiele, wie die Befehle
+konstruiert werden, so dass Sie in der Lage sein werden, eigene
+Befehle auf dieser Grundlage zu entwickeln.
+
+Bevor Sie mit diesem Kapitel beginnen, könnte Sie ein Blick in den
+Abschnitt @ref{Contexts and engravers} interessieren, dann
+Kontexte und Engraver sowie die Eigenschaften, die mit ihnen
+verknüpft sind, sind die Voraussetzung, um die Funktionsweise
+von Optimierungen verstehen zu können.
+
+
+@node Objects and interfaces
+@subsection Objects and interfaces
+
+@cindex Objekte
+@cindex Grobs
+@cindex Spanners
+@cindex Interfaces
+@cindex Strecker
+@cindex Schnittstellen
+
+Optimierung bedeutet, die internen Operationen und Strukturen
+des LilyPond-Programmes zu verändern, darum sollen hier
+zunächst die wichtigesten Begriffe erklärt werden, die zur
+Beschreibung dieser Operationen und Strukturen benutzt werden.
+
+Der Begriff @qq{Objekt} ist ein allgemeiner Begriff, mit dem
+die Vielzahl an internen Strukturen bezeichnet wird, die LilyPond
+während der Bearbeitung des Quelltextes erstellt. Wenn etwa
+ein Befehl wie @code{\new Staff} auftritt, wird ein neues Objekt
+vom Typ @code{Staff} erstellt. Dieses Objekt @code{Staff} enthält
+dann alle Eigenschaften, die mit diesem speziellen Notensystem
+verknüpft sind, wie beispielsweise seine Bezeichnung, Tonart und
+spezifische Angaben über die Engraver, die innerhalb dieses Systems
+eingesetzt werden. Für alle anderen Kontexte gibt es genauso
+Objekte, die deren Eigenschaften beinhalten, beispielsweise für
+@code{Voice}-Objekte, @code{Score}-Objekte, @code{Lyrics}-Objekte,
+aber auch für Objekte, die Notationselemente wie die Taktlinien,
+Notenköpfe, Bögen und Dynamikbezeichnung enthalten. Jedes
+Objekt hat eine eigene Gruppe an Eigenschaftswerten.
+
+Bestimmte Objekttypen tragen besondere Bezeichnungen. Objekte, die
+Notationselemente der gesetzten Ausgabe repräsentieren, also
+Notenköpfe, Hälse, Bögen, Fingersatz, Schlüssel usw., werden
+@qq{Layout-Objekte}, oft auch @qq{Graphische Objekte} genannt.
+Daraus resultiert die künstliche Abkürzung @qq{Grob}.
+Diese sind auch Objekte im allgemeinen Sinn und haben genauso
+Eigenschaften, die mit ihnen verknüpft sind, wie etwa Größe, Position,
+Farbe usw.
+
+Einige Layout-Objekte sind etwas spezieller. Phrasierungsbögen,
+Crescendo-Klammern, Oktavierungszeichen und viele andere
+Grobs sind nicht an einer Stelle plaziert -- sie haben vielmehr
+einen Anfangspunkt, einen Endpunkt und eventuell noch andere
+Eigenschaften, die ihre Form bestimmen. Objekte mit solch
+einer erweiterten Gestalt werden als
+@qq{Strecker} (engl. Spanners)
+bezeichnet.
+
+Es bleibt uns noch übrig zu erklären, was @qq{Schnittstellen}
+(engl. interface) sind. Wenn auch viele Objekte sehr unterschiedlich
+sind, haben sie doch oft gemeinsame Eigenschaften, die auf
+die gleiche Weise verarbeitet werden. Alle Grobs beispielsweise
+haben eine Farbe, eine Größe, eine Position usw. und alle
+diese Eigenschaften werden von LilyPond auf die gleiche Weise
+verarbeitet, während der Quelltext in Notensatz umgesetzt wird.
+Um die internen Operationen zu vereinfachen, sind alle diese
+gemeinsamen Prozesse und Eigenschaften in einem Objekt
+mit der Bezeichnung @code{grob-interface} (Schnittstelle eines
+graphischen Objektes) zusammengefasst. Es gibt viele andere
+Gruppen gemeinsamer Eigenschaften, die jede eine Bezeichnung
+besitzen, welche auf @code{-interface} endet. Insgesamt
+gibt es über 100 dieser Schnittstellen. Wir werden später sehen,
+was es damit auf sich hat.
+
+Dies waren die Hauptbegriffe, die in diesem Kapitel zur Anwendung
+kommen sollen.
+
+
+@node Naming conventions of objects and properties
+@subsection Naming conventions of objects and properties
+
+Es wurden schon früher einige Regeln zur Benennung von
+Objekten vorgestellt, siehe
+@ref{Contexts and engravers}. Hier eine Referenzliste der
+häufigsten Objekt- und Eigenschaftsbezeichnungen mit
+den Regeln für ihre Bezeichnung und
+illustrierenden echten Bezeichnungen. Es wurde @qq{A}
+für einen beliebigen Großbuchstaben und @qq{aaa} für eine
+beliebige Anzahl an Kleinbuchstaben eingesetzt. Andere
+Zeichen werden explizit angegeben.
+
+@multitable @columnfractions .33 .33 .33
+@headitem Objekt-/Eigenschaftstyp
+ @tab Naming convention
+ @tab Beispiele
+@item Kontexte
+ @tab Aaaa oder AaaaAaaaAaaa
+ @tab Staff, GrandStaff
+@item Layout-Objekte
+ @tab Aaaa oder AaaaAaaaAaaa
+ @tab Slur, NoteHead
+@item Engraver
+ @tab Aaaa_aaa_engraver
+ @tab Clef_engraver, Note_heads_engraver
+@item Schnittstellen
+ @tab aaa-aaa-interface
+ @tab grob-interface, break-aligned-interface
+@item Kontext-Eigenschaften
+ @tab aaa oder aaaAaaaAaaa
+ @tab alignAboveContext, skipBars
+@item Layout-Objekt-Eigenschaften
+ @tab aaa oder aaa-aaa-aaa
+ @tab direction, beam-thickness
+@end multitable
+
+Es wird bald ersichtlich werden, dass die Eigenschaften von
+unterschiedlichen Objekttypen mit unterschiedlichen Befehlen
+geändert werden. Deshalb ist es nützlich, aus der
+Schreibweise zu erkennen, um was
+für ein Objekt es sich handelt, um den entsprechenden
+Befehl einsetzen zu können.
+
+
+@node Tweaking methods
+@subsection Tweaking methods
+
+@strong{Der \override-Befehl}
+
+@cindex override-Befehl
+@funindex \override
+
+Wir haben uns schon mit den Befehlen @code{\set}
+und @code{\with} bekannt gemacht, mit welchen
+Eigenschaften von @strong{Kontexten} verändert
+und @strong{Engraver} entfernt oder hinzugefügt
+werden können. Siehe dazu
+@ref{Modifying context properties} und @ref{Adding
+and removing engravers}. Jetzt wollen wir uns weitere
+wichtige Befehle anschauen.
+
+Der Befehl, um die Eigenschaften von @strong{Layout-Objekten}
+zu ändern, ist @code{\override}. Weil dieser Befehl interne
+Eigenschaften tief in der Programmstruktur von LilyPond
+verändern muss, ist seine Syntax nicht so einfach wie die der
+bisherigen Befehle. Man muss genau wissen, welche Eigenschaft
+welches Objektes in welchem Kontext geändert werder soll,
+und welches der neu zu setzende Wert dann ist. Schauen wir
+uns an, wie das vor sich geht.
+
+Die allgemeine Syntax dieses Befehles ist:
+
+@example
+\override @var{Kontext}.@var{LayoutObjekt} #'@var{layout-eigenschaft} = #@var{Wert}
+@end example
+
+@noindent
+Damit wir die Eigenschaft mit der Bezeichnung @var{layout-property}
+das Layout-Objektes mit der Bezeichnung@var{LayoutObject},
+welches ein Mitglied des @var{Kontext}-Kontextes ist, auf den
+Wert @var{value}.
+
+Der @var{Kontext} kann (und wird auch normalerweise) ausgelassen
+werden, wenn der benötigte Kontext eindeutig impliziert ist und einer
+der untersten Kontexte ist, also etwa @code{Voice}, @code{ChordNames}
+oder @code{Lyrics}. Auch in diesem Text wird der Kontext oft ausgelassen
+werden. Später soll gezeigt werden, in welchen Fällen er ausdrücklich
+definiert werden muss.
+
+Spätere Abschnitte behandeln umfassend Eigenschaften und ihre
+Werte, aber um ihre Funktion und ihr Format zu demonstrieren,
+werden wir hier nur einige einfache Eigenschaften und Werte einsetzen,
+die einfach zu verstehen sind.
+
+Für den Moment könne Sie die @code{#'}-Zeichen ignorieren, die vor jeder
+Layout-Eigenschaft, und die @code{#}-Zeichen, die vor jedem Wert
+stehen. Sie müssen immer in genau dieser Form geschrieben werden.
+Das ist der am häufigsten gebrauchte Befehl für die Optimierung,
+und der größte Teil dieses Abschnittes wird dazu benutzt, seine Benutzung
+zu erläutern. Hier ein einfaches Beispiel, um die Farbe des Notenkopfes
+zu ändern:
+
+@lilypond[quote,fragment,ragged-right,verbatim,relative=1]
+c d
+\override NoteHead #'color = #red
+e f g
+\override NoteHead #'color = #green
+a b c
+@end lilypond
+
+@strong{Der \revert-Befehl}
+
+@cindex revert-Befehl
+@funindex \revert
+
+Wenn eine Eigenschaft einmal überschrieben wurde, wird ihr
+neuer Wert so lange bewahrt, bis er noch einmal überschrieben
+wird oder ein @code{\revert}-Befehl vorkommt. Der
+@code{\revert}-Befehl hat die folgende Syntax und setzt den
+Wert der Eigenschaft zurück auf den Standardwert, nicht
+jedoch auf den vorigen Wert, wenn mehrere
+@code{\override}-Befehle benutzt wurden.
+
+@example
+\revert @var{Kontext}.@var{LayoutObjekt} #'@var{layout-eigenschaft}
+@end example
+
+Wiederum, genauso wie der @var{Kontext} bei dem @code{\override}-Befehl,
+wird @var{Kontext} oft nicht benötigt. Er wird in vielen der folgenden
+Beispiele ausgelassen. Im nächsten Beispiel wird die Farbe des Notenkopfes
+wieder auf den Standardwert für die letzten zwei Noten gesetzt.
+
+@lilypond[quote,fragment,ragged-right,verbatim,relative=1]
+c d
+\override NoteHead #'color = #red
+e f g
+\override NoteHead #'color = #green
+a
+\revert NoteHead #'color
+b c
+@end lilypond
+
+@strong{\once-Präfix}
+
+Sowohl der @code{\override}-Befehl als auch der @code{\set}-Befehl können mit
+dem Präfix @code{\once} (@emph{einmal}) versehen werden. Dadurch wird
+der folgende @code{\override}- oder @code{\set}-Befehl nur für den aktuellen
+Musik-Moment wirksam, bevor sich wieder der Standard einstellt. Am gleichen
+Beispiel demonstriert, kann damit die Farbe eines einzelnen Notenkopfes
+geändert werden:
+
+@lilypond[quote,fragment,ragged-right,verbatim,relative=1]
+c d
+\once \override NoteHead #'color = #red
+e f g
+\once \override NoteHead #'color = #green
+a b c
+@end lilypond
+
+@strong{Der \overrideProperty-Befehl}
+
+@cindex overrideProperty-Befehl
+@funindex \overrideProperty
+
+Es gibt eine andere Form des @code{override}-Befehls,
+@code{\overrideProperty} (überschreibe Eigenschaft),
+welcher ab und zu benötigt wird. Es wird hier nur der
+Vollständigkeit halber erwähnt, sein Einsatz wird demonstriert
+in @ruser{Difficult tweaks}.
+@c Maybe explain in a later iteration -td
+
+@strong{Der \tweak-Befehl}
+
+@cindex tweak-Befehl
+@funindex \tweak
+
+Der letzte Optimierungsbefehl in LilyPond ist @code{\tweak}
+(engl. optimieren). Er wird eingesetzt um Eigenschaften
+von Objekten zu verändern, die zum selben Musik-Moment
+auftreten, wie etwa die Noten eines Akkordes. Ein
+@code{\override} würde alle Noten des Akkords beeinflussen,
+während mit @code{\tweak} nur das nächste Objekt der
+Eingabe geändert wird.
+
+Hier ein Beispiel. Angenommen, die Größe des mittleren
+Notenkopfes (ein E) in einem C-Dur-Akkord soll geändert
+werden. Schauen wir zuerst, was wir mit
+@code{\once \override} erhalten:
+
+@lilypond[quote,fragment,ragged-right,verbatim,relative=1]
+ <c e g>4
+ \once \override NoteHead #'font-size = #-3
+ <c e g>
+ <c e g>
+@end lilypond
+
+Wie man sehen kann, beeinflusst @code{override} @emph{alle}
+Notenköpfe des Akkordes. Das liegt daran, dass alle die Noten
+eines Akkordes zum selben Musik-Moment auftreten und
+die Funktion von @code{\once} ist es, die Optimierung auf
+an allen Objekten auszuführen, die zum selben Musik-Moment
+auftreten wie der @code{\override}-Befehl.
+
+Der @code{\tweak}-Befehl funktioniert anders. Er bezieht sich
+auf das direkt folgende Element in der Eingabe-Datei. Es wirkt
+aber auch nur mit Objekten, die direkt von der Eingabe kreirt
+werden, insbesondere Notenköpfe und Artikulationszeichen.
+Objekte wie etwa Hälse oder Versetzungszeichen werden erst
+später erstellt und lassen sich nicht auf diese Weise ändern.
+Zusätzlich @emph{müssen} sich etwa Notenköpfe innerhalb
+eines Akkordes befinden, d. h. sie müssen von einfachen spitzen
+Klammern umschlossen sein. Um also eine einzelne Note
+mit @code{\tweak} zu verändern, muss der Befehl innerhalb
+der spitzen Klammern zusammen mit der Note eingegeben werden.
+
+Um also zu unserem Beispiel zurückzukommen, könnte man die
+mittlere Note eines Akkordes auf diese Weise ändern:
+
+@lilypond[quote,fragment,ragged-right,verbatim,relative=1]
+ <c e g>4
+ <c \tweak #'font-size #-3 e g>4
+@end lilypond
+
+Beachten Sie, dass die Syntax des @code{\tweak}-Befehls sich
+von der des @code{\override}-Befehls unterscheidet. Weder
+Kontext noch Layout-Objekt konnen angegeben werden, denn
+das würde zu einem Fehler führen. Beide Angaben sind
+durch das folgende Element impliziert. Die verallgemeinerte
+Syntax des @code{\tweak}-Befehls ist also einfach
+
+@example
+\tweak #'@var{layout-eigenschaft} = #@var{Wert}
+@end example
+
+Ein @code{\tweak}-Befehl kann auch benutzt werden, um nur
+eine von mehreren Artikulationen zu ändern, wie im nächsten
+Beispiel zu sehen ist.
+
+@lilypond[quote,fragment,ragged-right,verbatim,relative=2]
+a ^Black
+ -\tweak #'color #red ^Red
+ -\tweak #'color #green _Green
+@end lilypond
+
+@noindent
+Beachten Sie, dass dem @code{\tweak}-Befehl ein Artikulationsmodifikartor
+vorangestellt werden muss, ganz als ob er selbst ein Artikulationszeichen
+wäre.
+
+@cindex Triolen, geschachtelt
+@cindex N-tolen, geschachtelt
+@cindex Klammer, Triole
+@cindex Triolenklammer
+@cindex N-tolenklammer
+@cindex Komplizierte Rhythmen, Schachtelung von
+@funindex TupletBracket
+
+Der @code{\tweak}-Befehl muss auch benutzt werden, wenn das
+Aussehen einer vor mehreren geschachtelten Triolenklammern
+geändert werden soll, die zum selben Zeitpunkt beginnen.
+Im folgenden Beispiel beginnen die lange Klammer und die
+erste Triolenklammer zum selben Zeitpunkt, sodass ein
+@code{\override}-Befehl sich auf beide beziehen würde.
+In dem Beispiel wird @code{\tweak} benutzt, um zwischen
+ihnen zu unterscheiden. Der erste @code{\tweak}Befehl
+gibt an, dass die lange Klammer über den Noten gesetzt
+werden soll, und der zweite, dass die Zahl der rhythmischen
+Aufteilung für die erste der kurzen Klammern in rot
+gesetzt wird.
+
+@lilypond[quote,ragged-right,verbatim,fragment,relative=2]
+\tweak #'direction #up
+\times 4/3 {
+ \tweak #'color #red
+ \times 2/3 { c8[ c8 c8] }
+ \times 2/3 { c8[ c8 c8] }
+ \times 2/3 { c8[ c8 c8] }
+}
+@end lilypond
+
+Wenn geschachtelte N-tolen nicht zum gleichen Zeitpunkt
+beginnen, kann ihr Aussehen auf die übliche Art mit dem
+@code{\override}-Befehl geändert werden:
+
+@c NOTE Tuplet brackets collide if notes are high on staff
+@c See issue 509
+@lilypond[quote,ragged-right,verbatim,fragment,relative=1]
+\times 2/3 { c8[ c c]}
+\once \override TupletNumber
+ #'text = #tuplet-number::calc-fraction-text
+\times 2/3 {
+ c[ c]
+ c[ c]
+ \once \override TupletNumber #'transparent = ##t
+ \times 2/3 { c8[ c c] }
+\times 2/3 { c8[ c c]}
+}
+@end lilypond
+
+@seealso
+
+Notationsreferenz:
+@ruser{The tweak command}.
+
+
+
+
+
+@node The Internals Reference manual
+@section The Internals Reference manual
+
+@menu
+* Properties of layout objects::
+* Properties found in interfaces::
+* Types of properties::
+@end menu
+
+@node Properties of layout objects
+@subsection Properties of layout objects
+
+@cindex Eigenschaften von Layout-Objekten
+@cindex Eigenschaften von Grobs
+@cindex Grobs, Eigenschaften von
+@cindex Layout-Objekte, Eigenschaften von
+@cindex Property (Layout-Objekte, Grobs)
+
+Angenommen, in Ihrer Partitur tritt ein Legatobogen
+auf, der Ihrer Meinung nach zu dünn ausgefallen ist.
+Sie würden ihn gerne etwas schwerer gezeichnet
+sehen. Wie gehen Sie vor? Von den Anmerkungen in
+früheren Abschnitten wissen Sie schon, dass LilyPond
+sehr flexibel ist und eine derartige Modifikation
+möglich sein sollte, und Sie erraten vielleicht,
+dass ein @code{\override}-Befehl angebracht ist.
+Aber gibt es eine Eigenschaft für die Dicke eines
+Legatobogens (engl. slur), und wenn es sie gibt,
+auf welche Weise lässt sie sich verändern? Hier
+kommt die Referenz der Interna zur Geltung. Dort
+finden sich alle Informationen, um den beschriebenen
+und alle anderen @code{\override}-Befehle zu
+konstruieren.
+
+Bevor Sie jetzt in die Referenz der Interna wechseln, ist
+eine Warnung angebracht. Es handelt sich um ein
+@strong{Referenz}dokument, was heißt, dass es sehr
+wenig oder gar keine Erklärungen enthält: seine Aufgabe
+ist es, Information klar und genau darzustellen. Das
+bedeutet, dass es auf den ersten Blick entmutigend
+wirkt. Die Einführung und Erklärung in diesem Abschnitt
+wird Ihnen aber schnell ermöglichen, genau die Information
+aus der Referenz zu entnehmen, die Sie benötigen.
+@c For German users
+Beachten Sie, dass die Referenz der Interna nur auf Englisch
+existiert. Um die Eigenschaftsbezeichnung eines bestimmten
+Objektes zu finden, können Sie das Glossar (siehe
+@rglosnamed{Top,Musikglossar})
+ verwenden, in dem
+die englischen Begriffe in viele andere Sprachen übersetzt sind.
+
+@cindex Override-Beispiel
+@cindex Referenz der Interna, Benutzung
+@cindex IR (Referenz der Interna), Benutzung
+
+Das Vorgehen soll an einem konkreten Beispiel einer echten
+Komposition demonstriert werden. Hier das Beispiel:
+
+@lilypond[quote,verbatim,relative=2]
+{
+ \time 6/8
+ {
+ r4 b8 b[( g]) g |
+ g[( e]) e d[( f]) a |
+ a g
+ }
+ \addlyrics {
+ The man who feels love's sweet e -- mo -- tion
+ }
+}
+@end lilypond
+
+Angenommen also, wir wollen die Legatobögen etwas
+dicker setzten. Ist das möglich? Die Legatobögen sind mit
+Sicherheit ein Layout-Objekt, die Frage muss also lauten:
+@qq{Gibt es eine Eigenschaft von Legatobögen, die die
+Dicke bestimmt?} Um diese Frage zu beantworten, müssen
+wir in der Referenz der Interna ( kurz IR) nachschauen.
+
+Die IR für die LilyPond-Version, die Sie benutzen, findet sich
+auf der LilyPond-Webseite unter der Adresse
+@uref{http://lilypond.org}. Gehen Sie zur Dokumentationsseite
+und klicken Sie auf den Link zur Referenz der Interna.
+@c Addition for German users
+Die Sprache ändert sich ab hier nach englisch. Für diese Übung
+sollten Sie die HTML-Version benutzen, nicht die
+@qq{auf einer großen Seite} oder die PDF-Version.
+Damit Sie die nächsten Absätze verstehen können, müssen Sie
+genauso vorgehen, während Sie weiterlesen.
+
+Unter der Überschrift @strong{Top} befinden sich fünf Links.
+Wählen Sie den Link zum @emph{Backend}, wo sich die Information
+über Layout-Objekte befindet. Hier, unter der Überschrift
+@strong{Backend}, wählen Sie den Link @emph{All layout objects}.
+Die Seite, die sich öffnet, enthält ein Liste aller Layout-Objekte,
+die in Ihrerer LilyPond-Version benutzt werden, in alphabetischer
+Ordnung. Wählen Sie den Link @emph{Slur} und die Eigenschaften
+der Legatobögen (engl. slur) werden aufgelistet.
+
+Eine alternative Methode, auf diese Seite zu gelangen, ist von
+der Notationsreferenz aus. Auf einer der Seiten zu Legatobögen
+findet sich ein Link zur Referenz der Interna. Dieser Link führt
+Sie direkt auf diese Seite. Wenn Sie aber eine Ahnung haben,
+wie die Bezeichnung des Layout-Objektes lauten könnte, das sie
+ändern wollen, ist es oft schneller, direkt zur IR zu gehen und
+dort nachzuschlagen.
+
+Aus der Slur-Seite in der IR könne wir entnehmen, dass
+Legatobögen (Slur-Objekte) durch den Slur_engraver erstellt
+werden. Dann werden die Standardeinstellungen aufgelistet.
+Beachten Sie, dass diese @strong{nicht} in alphabetischer Reihenfolge
+geordnet sind. Schauen Sie sich die Liste an, ob sie eine Eigenschaft
+enthält, mit der die Dicke von Legatobögen kontrolliert werden kann.
+Sie sollten folgendes finden:
+
+@example
+@code{thickness} (number)
+ @code{1.2}
+ Line thickness, generally measured in @code{line-thickness}
+@end example
+
+Das sieht ganz danach aus, als ob damit die Dicke geändert
+werden kann. Es bedeutet, dass der Wert von
+@code{thickness} einfach eine Zahl (@emph{number}) ist,
+dass der Standardwert 1.2 ist, und dass die Einheit
+für die Dicke eine andere Eigenschaft mit der
+Bezeichnung @code{line-thickness} ist.
+
+Wie schon früher gesagt, gibt es wenig bis gar keine Erklärungen
+in der IR, aber wir haben schon genug Informationen, um
+zu versuchen, die Dicke eines Legatobogens zu ändern. Die
+Bezeichnung des Layout-Objekts ist offensichtlich
+@code{Slur} und die Bezeichnung der Eigenschaft, die geändert
+werden soll
+@code{thickness}. Der neue Wert sollte etwas mehr als 1.2 sein,
+denn der Bogen soll ja dicker werden.
+
+Den benötigten @code{\override}-Befehl können wir jetzt einfach
+konstruieren, indem wir die Werte für die Bezeichnungen in den
+Modellbefehl einfügen und den Kontext auslassen. Setzen wir
+einmal einen sehr großen Wert für die Dicke um zu sehen, ob der
+Befehl auch funktioniert. Also:
+
+@example
+\override Slur #'thickness = #5.0
+@end example
+
+Vergessen Sie nicht das Rautenzeichen und Apostroph
+(@code{#'}) vor der Eigenschaftsbezeichnung und das
+Rautenzeichen vor dem neuen Wert!
+
+Die nächste Frage ist nun: @qq{Wohin soll dieser Befehl geschrieben
+werden?} Solange wir uns noch im Lernstadium befinden, ist
+die beste Antwort: @qq{Innerhalb der Noten, vor den ersten
+Legatobogen und nahe bei ihm.} Also etwa so:
+
+@lilypond[quote,verbatim,relative=2]
+{
+ \time 6/8
+ {
+ % Increase thickness of all following slurs from 1.2 to 5.0
+ \override Slur #'thickness = #5.0
+ r4 b8 b[( g]) g |
+ g[( e]) e d[( f]) a |
+ a g
+ }
+ \addlyrics {
+ The man who feels love's sweet e -- mo -- tion
+ }
+}
+@end lilypond
+
+@noindent
+und wirklich wird der Legatobogen dicker.
+
+Das ist also die grundlegende Herangehensweise,
+@code{\override}-Befehl zu formulieren. Es gibt einige
+zusätzliche Komplikationen, denen wir uns später widmen
+werden, aber Sie haben jetzt das Handwerkszeug, um Ihre
+eigenen Befehle zu konstruieren -- wenn Sie auch noch etwas
+Übung benötigen. Die sollen Sie durch die folgenden Übungen
+erhalten.
+
+@subheading Finding the context
+@cindex Kontext, Finden
+
+Manchmal muss dennoch der Kontext spezifiziert werden.
+Welcher aber ist der richtige Kontext? Wir könnten raten,
+dass Legatobögen sich im @code{Voice}-Kontext befinden,
+denn sie sind immer einzelnen Melodielinien zugewiesen.
+Aber wir können uns dessen nicht sicher sein. Um unsere
+Annahme zu überprüfen, gehen wir wieder zu der Seite im
+IR, die die Legatobögen beschreibt und die Überschrift
+@emph{Slur} hat. Dort steht: @qq{Slur objects are created
+by: Slur engraver}. Legatobögen werden also in dem Kontext
+erstellt, in dem sich der @code{Slur_engraver} befindet.
+Folgen Sie dem Link zu der @code{Slur_engraver}-Seite.
+Unten auf der Seite steht, dass der @code{Slur_engraver}
+sich in fünf Stimmen-Kontexten befindet, unter anderem
+auch im normalen @code{Voice}-Kontext. Unsere Annahme
+war also richtig. Und weil @code{Voice} einer der Kontexte
+der untersten Ebene ist, welcher eindeutig schon dadurch
+definiert ist, dass wir Noten eingeben, kann er an dieser Stelle
+auch weggelassen werden.
+
+@subheading Overriding once only
+
+@cindex Override nur einmal
+@cindex once override
+@funindex \once
+
+Im Beispiel oben wurden @emph{alle} Legatobögen dicker
+gesetzt. Vielleicht wollen Sie aber nur den ersten Bogen
+dicker haben. Das können Sie mit dem @code{\once}-Befehl
+erreichen. Er wird direkt vor den @code{\override}-Befehl
+gesetzt und bewirkt, dass nur der Bogen geändert wird, der
+@strong{unmittelbar an der nächsten Note beginnt.} Wenn
+die nächste Note keinen Bogenbeginn hat, dann passiert
+gar nichts -- der Befehl wird nicht gespeichert, sondern einfach
+vergessen. Der Befehl, mit @code{\once} zusammen benutzt,
+muss also wie folgt positioniert werden:
+
+@lilypond[quote,verbatim,relative=2]
+{
+ \time 6/8
+ {
+ r4 b8
+ % Increase thickness of immediately following slur only
+ \once \override Slur #'thickness = #5.0
+ b[( g]) g |
+ g[( e]) e d[( f]) a |
+ a g
+ }
+ \addlyrics {
+ The man who feels love's sweet e -- mo -- tion
+ }
+}
+@end lilypond
+
+@noindent
+Jetzt bezieht er sich nur noch auf den ersten Legatobogen.
+
+Der @code{\once}-Befehl kann übrigens auch vor einem @code{\set}-Befehl
+eingesetzt werden.
+
+@subheading Reverting
+
+@cindex Revert
+@cindex Rückgängig machen
+@cindex Wiederherstellen von Standardeinstellungen
+@cindex Standardeinstellungen, Wiederherstellen
+@funindex \revert
+
+Eine weitere Möglichkeit: nur die beiden ersten Legatobögen sollen
+dicker gesetzt werden. Gut, wir könnten jetzt zwei Befehle benutzen,
+jeden mit dem @code{\once}-Präfix und direkt vor die entsprechende
+Note gestellt, an welcher der Bogen beginnt:
+
+@lilypond[quote,verbatim,relative=2]
+{
+ \time 6/8
+ {
+ r4 b8
+ % Increase thickness of immediately following slur only
+ \once \override Slur #'thickness = #5.0
+ b[( g]) g |
+ % Increase thickness of immediately following slur only
+ \once \override Slur #'thickness = #5.0
+ g[( e]) e d[( f]) a |
+ a g
+ }
+ \addlyrics {
+ The man who feels love's sweet e -- mo -- tion
+ }
+}
+@end lilypond
+
+@noindent
+Wir könnten aber auch den @code{\once}-Befehl weglassen und anstelle
+dessen später den @code{\revert}-Befehl einsetzen, um die
+@code{thickness}-Eigenschaft wieder auf ihren Standardwert zurückzusetzen:
+
+@lilypond[quote,verbatim,relative=2]
+{
+ \time 6/8
+ {
+ r4 b8
+ % Increase thickness of all following slurs from 1.2 to 5.0
+ \override Slur #'thickness = #5.0
+ b[( g]) g |
+ g[( e])
+ % Revert thickness of all following slurs to default of 1.2
+ \revert Slur #'thickness
+ e d[( f]) a |
+ a g
+ }
+ \addlyrics {
+ The man who feels love's sweet e -- mo -- tion
+ }
+}
+@end lilypond
+
+@noindent
+Der @code{\revert}-Befehl kann benutzt werden, um eine beliebige
+Eigenschaft, die mit @code{\override} geändert worden ist, wieder in
+ihre Standardeinstellungen zurückzuversetzen. In unserem Beispiel können
+Sie die Methode benutzen, die Ihnen lieber ist, beide haben das gleiche
+Resultat.
+
+Damit endet die Einleitung in die Referenz der Interna (IR) und die
+grundlegenden Optimierungsmethoden. Einige Beispiele folgen in späteren
+Abschnitten dieses Kapitel, einerseits um Sie mit weiteren Möglichkeiten
+der IR bekanntzumachen, andererseits um Ihnen mehr Übungsmöglichkeiten
+zu geben, die relevante Information dort zu finden. Die Beispiele werden
+Schritt für Schritt immer weniger Erklärungen beinhalten.
+
+
+@node Properties found in interfaces
+@subsection Properties found in interfaces
+
+@cindex Interface-Eigenschaften
+@cindex Eigenschaften von Interfaces
+@cindex Schnittstellen, Eigenschaften von
+@cindex Eigenschaften von Schnittstellen
+
+Der Text unseres Beispiels soll jetzt kursiv gesetzt werden. Was für
+ein @code{\override}-Befehl wird dazu benötigt? Schauen wir
+uns zunächst das Inhaltsverzeichnis in der IR an: @qq{All layout objects},
+wie auch schon zuvor. Welches Objekt könnte die Darstellung des
+Textes (engl. lyrics) beeinflussen? Es gibt den Eintrag @code{LyricText},
+das hört sich schon sehr gut an. Ein Klick hierauf zeigt alle Eigenschaften
+an, die verändert werden können. Dazu gehört
+@code{font-series} und @code{font-size}, aber nichts, womit man kursiven
+Text erreichen könnte. Das liegt daran, dass die Schnitteigenschaft allen
+Schrift-Objekten gemeinsam ist. Sie findet sich also nicht in jedem einzlenen
+Layout-Objekt aufgelistet, sondern ist mit anderen ähnlichen Eigenschaften
+zusammen in einem @strong{Interface} -- einer Schnittstelle -- verortet;
+in diesem Fall das
+@code{font-interface}.
+
+Jetzt müssen wir also lernen, wie wir Eigenschaften von Schnittstellen finden
+und wie wir herausfinden, welche Objekte diese Schnittstelleneigenschaften
+benutzen.
+
+Schauen Sie sich noch einmal die Seite in der IR an, die @code{LyricText}
+beschreibt. Unten auf der Seite ist eine klickbare Liste (in der HTML-Version
+der IR) an Eigenschaften, die von @code{LyricText} unterstützt
+werden. Diese Liste enthält sieben Einträge, darunter auch
+@code{font-interface}. Ein Klick hierauf bringt uns zu den Eigenschaften,
+die mit dieser Schnittstelle verbunden sind, also auch @code{LyricText}.
+
+Jetzt sehen wir alle die Eigenschaften, die der Benutzer verändern kann,
+um die Schriftartendarstellung zu beeinflussen. Dazu gehört nun auch
+@code{font-shape(symbol)}, wobei @code{symbol} auf die Werte
+@code{upright} (gerade), @code{italics} (kursiv) oder @code{caps}
+(Kapitälchen) gesetzt werden kann.
+
+Sie werden gemerkt haben, dass @code{font-series} und @code{font-size}
+hier auch aufgelistet sind. Es stellt sich die Frage, warum diese
+allgemeinen Schriftarteigenschaften @code{font-series} und
+@code{font-size} sowohl unter der Überschrift
+@code{LyricText} als unter dem @code{font-interface} aufgelistet
+sind, aber @code{font-shape} befindet sich nur im
+@code{font-interface}? Die Antwort ist: Die globalen Einstellungen
+von @code{font-series} und @code{font-size} werden geändert, wenn
+ein @code{LyricText}-Objekt erstellt wird, aber @code{font-shape}
+wird davon nicht beeinflusst. Die zusätzlichen Einträge unter der
+Überschrift @code{LyricText} beinhalten dann die Werte der
+Standardeinstellungen dieser zwei Eigenschaften, wenn es sich
+um ein @code{LyricText}-Objekt handelt. Andere Objekte,
+die auch das @code{font-interface} unterstützen, setzen diese
+Eigenschaften anders, wenn sie erstellt werden.
+
+Versuchen wir nun einen @code{\override}-Befehl zu konstruieren,
+der den Gesantext kursiv setzt. Das Objekt hat die Bezeichnung
+@code{LyricText}, die Eigenschaft ist @code{font-shape}
+und der Wert @code{italic}. Wie vorher schon lassen wir den
+Kontext aus.
+
+Am Rande sei angemerkt, dass die Werte der @code{font-shape}-Eigenschaft
+mit einem Apostroph (@code{'}) gekennzeichnet werden
+müssen, weil es sich um Symbole handelt. Aus dem gleichen
+Grund mussten auch für @code{thickness} weiter oben im
+Text ein Apostroph gesetzt werden. Symbole sind besondere
+Bezeichnungen, die LilyPond intern bekannt sind. Einige
+sind Bezeichnungen von Eigenschaften, wie eben @code{thickness}
+oder @code{font-shape}. Andere sind besondere Werte,
+die an Eigenschaften übergeben werden können, wie
+@code{italic}. Im Unterschied hierzu gibt es auch beliebige
+Zeichenketten, die immer mit Anführungszeichen, also
+als @code{"Zeichenkette"} auftreten. Für weitere
+Einzelheiten zu Zeichenketten und Werten, siehe
+@ref{Scheme tutorial}.
+
+Gut, der @code{\override}-Befehl, mit dem der Gesangstext
+kursiv gesetzt wird, lautet:
+
+@example
+\override LyricText #'font-shape = #'italic
+@end example
+
+@noindent
+und er muss direkt vor den Text gesetzt werden, auf den er sich
+bezieht, etwa so:
+
+@lilypond[quote,fragment,ragged-right,verbatim,relative=2]
+{
+ \time 6/8
+ {
+ r4 b8 b[( g]) g |
+ g[( e]) e d[( f]) a |
+ a g
+ }
+ \addlyrics {
+ \override LyricText #'font-shape = #'italic
+ The man who feels love's sweet e -- mo -- tion
+ }
+}
+@end lilypond
+
+@noindent
+Jetzt wird der Text kursiv gesetzt.
+
+@subheading Specifying the context in lyric mode
+@cindex context, specifying in lyric mode
+
+Bei Gesangstexten funktioniert der @code{\override}-Befehl
+nicht mehr, wenn Sie den Kontext im oben dargestellten
+Format angeben. Eine Silbe wird im Gesangtextmodus
+(lyricmode) entweder von einem Leerzeichen, einer
+neuen Zeile oder einer Zahl beendet. Alle anderen
+Zeichen werden als Teil der Silbe integriert. Aus diesem
+Grund muss auch vor der schließenden Klammer
+@code{@}} ein Leerzeichen gesetzt oder eine neue
+Zeile begonnen werden. Genauso müssen Leerzeichen
+vor und nach einem Punkt benutzt werden, um die
+Kontext-Bezeichnung von der Objekt-Bezeichnung zu
+trennen, denn sonst würden beide Bezeichnungen als
+ein Begriff interpretiert und von LilyPond nicht verstanden
+werden. Der Befehl muss also lauten:
+
+@example
+\override Lyrics . LyricText #'font-shape = #'italic
+@end example
+
+@warning{Innerhalb von Gesangstext muss immer ein
+Leerzeichen zwischen der letzten Silbe und der schließenden
+Klammer gesetzt werden.}
+
+@warning{Innerhalb von @code{\override}-Befehlen in
+Gesangstexten müssen Leerzeichen um Punkte zwischen
+Kontext- und Objektbezeichnungen gesetzt werden.}
+
+
+@node Types of properties
+@subsection Types of properties
+
+@cindex Eigenschaftsarten
+
+Bis jetzt hatten wir es mit zwei Arten von Eigenschaften zu
+tun: @code{number} (Zahl) und @code{symbol}. Damit
+ein Befehl funktioniert, muss der Wert einer Eigenschaft
+vom richtigen Typ sein und die Regeln befolgen, die
+für diesen Typ gelten. Der Eigenschaftstyp ist in der
+IR in Klammern hinter der Eigenschaftsbezeichnung
+angegeben. Hier eine Liste der Typen, die Sie vielleicht
+benötigen werden, mit den Regeln, die für den jeweiligen
+Typ gelten und einigen Beispielen. Sie müssen immer
+ein Rautenzeichen (@code{#}) vor den Typeintrag setzen,
+wenn sie in einem @code{\override}-Befehl benutzt werden.
+
+@multitable @columnfractions .2 .45 .35
+@headitem Eigenschaftstyp
+ @tab Regeln
+ @tab Beispiele
+@item Boolesch
+ @tab Entweder wahr oder falsch, dargestellt als #t oder #f
+ @tab @code{#t}, @code{#f}
+@item Dimension (in Notenlinienabständen)
+ @tab Eine positive Dezimalzahl (in Notenlinienabstand-Einheiten)
+ @tab @code{2.5}, @code{0.34}
+@item Richtung
+ @tab Eine gültige Richtungskonstante oder das numerische Äquivalent
+ @tab @code{LEFT}, @code{CENTER}, @code{UP},
+ @code{1}, @code{-1}
+@item Integer
+ @tab Eine positive ganze Zahl
+ @tab @code{3}, @code{1}
+@item Liste
+ @tab Eine eingeklammerte Anzahl von Einträgen, mit Klammern getrennt
+ und angeführt von einem Apostroph
+ @tab @code{'(left-edge staff-bar)}, @code{'(1)},
+ @code{'(1.0 0.25 0.5)}
+@item Textbeschriftung (markup)
+ @tab Beliebige gültige Beschriftung
+ @tab @code{\markup @{ \italic "cresc." @}}
+@item Moment
+ @tab Ein Bruch einer ganzen Note, mit der make-moment-Funktion
+ konstruiert
+ @tab @code{(ly:make-moment 1 4)},
+ @code{(ly:make-moment 3 8)}
+@item Zahl
+ @tab Eine beliebige positive oder negative Dezimalzahl
+ @tab @code{3.5}, @code{-2.45}
+@item Paar (Zahlenpaar)
+ @tab Zwei Zahlen getrennt von @qq{Leerzeichen . Leerzeichen}, eingeklammert
+ und angeführt von einem Apostroph
+ @tab @code{'(2 . 3.5)}, @code{'(0.1 . -3.2)}
+@item Symbol
+ @tab Eine beliebige Anzahl von Symbolen, die für die Eigenschaft
+ gültig sind, angeführt von einem Apostroph
+ @tab @code{'italic}, @code{'inside}
+@item Unbekannt
+ @tab Eine Prozedur oder @code{#f} (um keine Aktion hervorzurufen)
+ @tab @code{bend::print}, @code{ly:text-interface::print},
+ @code{#f}
+@item Vektor
+ @tab Eine Liste mit drei Einträgen, eingeklammert und mit
+ Apostroph-Raute ( @code{'#}) angeführt.
+ @tab @code{'#(#t #t #f)}
+@end multitable
+
+@seealso
+
+Handbuch zum Lernen: @ref{Scheme tutorial}.
+
+
+@node Appearance of objects
+@section Appearance of objects
+
+In diesem Abschnitt wollen wir zeigen, wie die Kenntnisse der
+vorigen Abschnitte in der Praxis angewandt werden können,
+um das Aussehen des Musiksatzes zu beeinflussen.
+
+@menu
+* Visibility and color of objects::
+* Size of objects::
+* Length and thickness of objects::
+@end menu