+@cindex Kontext-Eigenschaften, Verändern
+@cindex Eigenschaften von Kontexten
+@cindex Verändern von Kontext-Eigenschaften
+@funindex \set
+@funindex \unset
+@funindex set
+@funindex unset
+
+Kontexte sind dafür verantwortlich, die Werte bestimmter
+Kontext-@emph{Eigenschaften} zu speichern. Viele davon
+können verändert werden, um die Interpretation der
+Eingabe zu beeinflussen und die Ausgabe zu verändern.
+Kontexte werden mit dem @code{\set}-Befehl geändert.
+Er wird in Form
+
+@example
+\set @var{KontextBezeichnung}.@var{eigenschaftsBezeichnung} = #@var{Wert}
+@end example
+
+@noindent
+verwendet, wobei @var{KontextBezeichnung} üblicherweise
+ @code{Score},
+@code{Staff} oder @code{Voice} ist. Der erste Teil kann auch
+ausgelassen werden; in diesem Fall wird @code{Voice} eingesetzt.
+
+Die Bezeichnung von Kontexten-Eigenschaften besteht
+aus zwei Wörtern, die ohne Unterstrich oder Bindestrich
+verbunden sind. Alle außer dem ersten werden am Anfang
+groß geschrieben. Hier einige Beispiele der gebräuchlichsten
+Kontext-Eigenschaften. Es gibt sehr viel mehr.
+
+@c attempt to force this onto a new page
+@need 50
+@multitable @columnfractions .25 .15 .45 .15
+@headitem eigenschaftsBezeichnung
+ @tab Typ
+ @tab Funktion
+ @tab Beispiel-Wert
+@item extraNatural
+ @tab boolescher Wert
+ @tab Wenn wahr, werden zusätzliche Auflösungszeichen vor Versetzungszeichen gesetzt.
+ @tab @code{#t}, @code{#f}
+@item currentBarNumber
+ @tab Integer
+ @tab Setzt die aktuelle Taktnummer.
+ @tab @code{50}
+@item doubleSlurs
+ @tab boolescher Wert
+ @tab Wenn wahr, werden Legatobögen über und unter die Noten gesetzt.
+ @tab @code{#t}, @code{#f}
+@item instrumentName
+ @tab Text
+ @tab Setzt die Instrumentenbezeichnung am Anfang eines Systems.
+ @tab @code{"Cello I"}
+@item fontSize
+ @tab reale Zahl
+ @tab Vergrößert oder verkleinert die Schriftgröße.
+ @tab @code{2.4}
+@item stanza
+ @tab Text
+ @tab Setzt den Text zu Beginn einer Strophe.
+ @tab @code{"2"}
+@end multitable
+
+@noindent
+Ein boolischer Wert ist entweder wahr (@code{#t})
+oder falsch (@code{#f}),
+ein Integer eine positive ganze Zahl, eine reale Zahl eine positive
+oder negative Dezimalzahl, und Text wird in doppelte
+Anführungszeichen (Shift+2) eingeschlossen. Beachten Sie
+das Vorkommen des Rautenzeichens
+(@code{#}) an unterschiedlichen Stellen: als Teil eines
+booleschen Wertes vor dem @code{t} oder @code{f}, aber
+auch vor einem @emph{Wert} in der
+@code{\set}-Befehlskette. Wenn ein boolescher Wert
+eingegeben werden soll, braucht man also zwei
+Rautenzeichen, z. B. @code{##t}.
+
+@cindex Eigenschaften in Kontexten
+@cindex Veränderung von Eigenschaften in Kontexten
+
+Bevor eine Eigenschaft geändert werden kann, muss man wissen,
+in welchem Kontext sie sich befindet. Manchmal versteht das
+sich von selbst, aber in einigen Fällen kann es zunächst
+unverständlich erscheinen. Wenn der falsche Kontext angegeben
+wird, wird keine Fehlermeldung produziert, aber die
+Veränderung wird einfach nicht ausgeführt.
+@code{instrumentName} befindet sich offensichtlich innerhalb
+von einem @code{Staff}-Kontext, denn das Notensystem soll
+benannt werden. In dem folgenden Beispiel erhält das erste
+System korrekt die Instrumentenbezeichnung, das zweite aber
+nicht, weil der Kontext ausgelassen wurde.
+
+@lilypond[quote,verbatim,ragged-right]
+<<
+ \new Staff \relative c'' {
+ \set Staff.instrumentName = #"Soprano"
+ c4 c
+ }
+ \new Staff \relative c' {
+ \set instrumentName = #"Alto" % Wrong!
+ d4 d
+ }
+>>
+@end lilypond
+
+Denken Sie daran, dass der Standardkontext @code{Voice} ist; in dem
+zweiten @code{\set}-Befehl wird also die Eigenschaft @code{instrumentName}
+im @code{Voice}-Kontext auf @qq{Alto}, gesetzt, aber weil LilyPond diese
+Eigenschaft nicht im @code{Voice}-Kontext vermutet, passiert einfach
+gar nichts. Das ist kein Fehler, und darum wird auch keine Fehlermeldung
+prodziert.
+
+Ebenso gibt es keine Fehlermeldung, wenn die Kontext-Bezeichnung
+falsch geschrieben wird und die Änderung also nicht ausgeführt werden
+kann. Tatsächlich kann eine beliebige (ausgedachte) Kontextbezeichnung
+mit dem @code{\set}-Befehl eingesetzt werden, genauso wie die, die
+wirklich existieren. Aber wenn LilyPond diese Bezeichnung nicht
+zuordnen kann, bewirkt der Befehl einfach gar nichts. Manche Editoren,
+die Unterstützung für LilyPond-Befehle mitbringen, markieren existierende
+Kontextbezeichnungen mit einem Punkt, wenn man mit der Maus darüber
+fährt (wie etwa JEdit mit dem LilyPondTool), oder markieren
+unbekannte Bezeichnungen anders (wie ConTEXT). Wenn Sie keinen
+Editor mit LilyPond-Unterstützung einsetzen, wird empfohlen, die
+Bezeichnungen in der Interna-Referenz zu überprüfen: siehe
+@rinternals{Tunable context properties}, oder
+@rinternals{Contexts}.
+
+Die Eigenschaft @code{instrumentName} wird erst aktiv, wenn sie
+ineinem @code{Staff}-Kontext gesetzt wird, aber manche Eigenschaften
+können in mehr als einem Kontext benutzt werden. Als Beispiel mag die
+@code{extraNatural}-Eigenschaft dienen, die zusätzliche Erniedrigungszeichen
+setzt. Die Standardeinstellung ist ##t (wahr) in allen Systemen.
+Wenn sie nur in einem @code{Staff} (Notensystem) auf ##f (falsch)
+gesetzt wird, wirkt sie sich auf alle Noten in diesem System aus. Wird
+sie dagegen in der @code{Score}-Umgebung gesetzt, wirkt sich das
+auf alle darin enthaltenen Systeme aus.
+
+Das also bewirkt, dass die zusätzlichen Erniedrigungszeichen in einem System
+ausgeschaltet sind:
+
+@lilypond[quote,verbatim,ragged-right]
+<<
+ \new Staff \relative c'' {
+ ais4 aes
+ }
+ \new Staff \relative c'' {
+ \set Staff.extraNatural = ##f
+ ais4 aes
+ }
+>>
+@end lilypond
+
+@noindent
+während das dazu dient, sie in allen Systemen auszuschalten:
+
+@lilypond[quote,verbatim,ragged-right]
+<<
+ \new Staff \relative c'' {
+ ais4 aes
+ }
+ \new Staff \relative c'' {
+ \set Score.extraNatural = ##f
+ ais4 aes
+ }
+>>
+@end lilypond
+
+Ein anderes Beispiel ist die Eigenschaft @code{clefOctavation}:
+wenn sie im @code{Score}-Kontext gesetzt wird, ändert sich sofort
+der Wert der Oktavierung in allen aktuellen Systemen und wird
+auf einen neuen Wert gesetzt, der sich auf alle Systeme auswirkt.
+
+Der gegenteilige Befehl, @code{\unset}, entfernt die Eigenschaft
+effektiv wieder von dem Kontext: in den meisten Fällen wird der
+Kontext auf ihre Standardeinstellungen zurückgesetzt.
+Normalerweise wird aber @code{\unset} nicht benötigt,
+denn ein neues @code{\set} erledigt alles, was man braucht.
+
+Die @code{\set}- und @code{\unset}-Befehle könne überall im
+Eingabequelltext erscheinen und werden aktiv von dem Moment, an
+dem sie auftreten bis zum Ende der Partitur oder bis die Eigenschaft
+mit @code{\set} oder @code{\unset} neu gesetzt wird. Versuchen
+wir als Beispiel, die Schriftgröße mehrmals zu ändern, was sich unter anderem
+auf die Notenköpfe auswirkt. Die Änderung bezieht sich immer auf den Standard,
+nicht vom letzten gesetzten Wert.
+
+@lilypond[quote,verbatim,ragged-right,relative=1,fragment]
+c4
+% make note heads smaller
+\set fontSize = #-4
+d e
+% make note heads larger
+\set fontSize = #2.5
+f g
+% return to default size
+\unset fontSize
+a b
+@end lilypond
+
+Wir haben jetzt gesehen, wie sich die Werte von unterschiedlichen
+Eigenschaften ändern lassen. Beachten Sie, dass Integre und
+Zahlen immer mit einem Rautenzeichen beginnen, während
+die Werte wahr und falsch (mit @code{##t} und @code{##f}
+notiert) immer mit zwei Rauten beginnen. Eine Eigenschaft, die
+aus Text besteht, muss in doppelte Anführungsstriche gesetzt werden,
+auch wenn wir später sehen werden, dass Text auf eine sehr viel
+allgmeinere und mächtigere Art mit dem @code{markup}-Befehl
+eingegeben werden kann.
+
+@subsubheading Setting context properties with @code{\with}
+
+@funindex \with
+@funindex with
+@cindex Kontexteigenschaft, setzen mit \with
+
+Kontexteigenschaften können auch gesetzt werden, wenn der Kontext
+erstellt wird. Das ist in manchen Fällen eine deutlichere Art,
+eine Eigenschaft zu bestimmen, die für die gesamte Partitur
+erhalten bleichen soll. Wenn ein Kontext mit einem
+@code{\new}-Befehl erstellt wird, dem direkt eine
+@code{\with @{ .. @}}-Umgebung folgt, können hier die
+Eigenschaften bestimmt werden. Wenn also die zusätzlichen
+Auflösungszeichen für eine ganze Partitur gelten sollen, könnte
+man schreiben:
+
+@example
+\new Staff \with @{ extraNatural = ##f @}
+@end example
+
+@noindent
+etwa so:
+
+@lilypond[quote,verbatim,ragged-right]
+<<
+ \new Staff
+ \relative c'' {
+ gis ges aes ais
+ }
+ \new Staff \with { extraNatural = ##f }
+ \relative c'' {
+ gis ges aes ais
+ }
+>>
+@end lilypond
+
+Eigenschaften, die auf diese Arte gesetzt werden, können immer noch
+dynamisch mit dem @code{\set}-Befehl geändert werden und mit
+@code{\unset} auf ihre Standardeinstellungen zurückgesetzt werden.
+
+@cindex Schriftgröße, Standardeinstellung
+@cindex fontSize (Schriftgröße), Standardeinstellung
+
+Die @code{fontSize}-Eigenschaft wird anders behandelt. Wenn sie mit
+einer @code{\with}-Umgebung gesetzt wird, wird die Standardschriftgröße
+neu gesetzt. Wenn die Schriftgröße später mit @code{\set} verändert
+wird, kann dieser neue Standardwert mit dem Befehl
+@code{\unset fontSize} erreicht werden.
+
+@subsubheading Setting context properties with @code{\context}
+
+@cindex Kontexteigenschaften, mit \context setzen
+@cindex Eigenschaften von Kontexten, mit \context setzen
+@funindex \context
+@funindex context
+
+Die Werte von Kontext-Eigenschaften können in @emph{allen} Kontexten
+eines bestimmten Typs (etwa alle @code{Staff}-Kontexte)
+gleichzeitig mit einem Befehl gesetzt werden. Der Kontext wird
+spezifieziert, indem seine Bezeichnung benutzt wird, also etwa
+@code{Staff}, mit einem Backslash davor: @code{\Staff}. Der Befehl
+für die Eigenschaft ist der gleiche, wie er auch in der
+@code{\with}-Konstruktion benutzt wird, wie oben gezeigt. Er wird in
+eine @code{\context}-Umgebung eingebettet, welche wiederum innerhalb
+von einer @code{\layout}-Umgebung steht. Jede @code{\context}-Umgebung
+wirkt sich auf alle Kontexte dieses Types aus, welche sich in der
+aktuellen Partitur befinden (d. h. innherhalb einer @code{\score}-
+oder @code{\book}-Umgebung. Hier ist ein Beispiel, wie man diese
+Funktion anwendet:
+
+@lilypond[verbatim,quote]
+\score {
+ \new Staff {
+ \relative c'' {
+ cis4 e d ces
+ }
+ }
+ \layout {
+ \context {
+ \Staff
+ extraNatural = ##t
+ }
+ }
+}
+@end lilypond
+
+@noindent
+Kontext-Eigenschaften, die auf diese Weise gestzt werden, können für
+bestimmten Kontexte überschrieben werden, indem die
+@code{\with}-Konstruktion eingesetzt wird, oder mit @code{\set}-Befehlen
+innerhalb der aktuellen Noten.
+
+
+@seealso
+Notationsreferenz:
+@ruser{Changing context default settings}.
+@c FIXME
+@c uncomment when backslash-node-name issue is resolved -pm
+@c @ruser{The set command}.
+
+Referenz der Interna:
+@rinternals{Contexts},
+@rinternals{Tunable context properties}.
+