LilyPond Benutzerhandbuch: 5.1.5 Die Standardeinstellungen von Kontexten ändern

### 5.1.5 Die Standardeinstellungen von Kontexten ändern

Kontext- und Grob-Eigenschaften können mit den Befehlen `\set` und `\override` verändert werden, wie beschrieben in Eigenschaften verändern. Diese Befehle erstellen musikalische Ereignisse, damit die Veränderungen zum Zeitpunkt der Verarbeitung in den Noten erscheinen.

Dieser Abschnitt hingegen erklärt, wie man die Standardwerte von Kontext- und Grob-Eigenschaften zum Zeitpunkt, an dem der Kontext erstellt wird, verändert. Es gibt hierzu zwei Möglichkeiten. Die eine verändert die Standardeinstellungen aller Kontexte eines bestimmten Typs, die andere verändert die Standardwerte nur eines bestimmten Kontextes.

#### Alle Kontexte des gleichen Typs verändern

Die Kontexteinstellungen, die standardmäßig in `Score`, `Staff`, `Voice` und anderen Kontexten eingesetzt werden, können in einer `\context`-Umgebung innerhalb einer beliebigen `\layout`-Umgebung spezifiziert werden. Die `\layout`-Umgebung sollte innerhalb der `\score` (Partitur) stehen, auf die sie sich bezieht, nach den Noten.

>     \layout {
>       \context {
>         \Voice
>         [Kontexteinstellungen für alle Voice-Kontexte]
>       }
>       \context {
>         \Staff
>         [Kontexteinstellungen für alle Staff-Kontexte]
>       }
>     }

Folgende Einstellungstypen können angegeben werden:

- Ein `\override`-Befehl, aber ohne die Kontextbezeichnung:

  >     \score {
  >       \relative {
  >         a'4^"Thicker stems" a a a
  >         a4 a a\ff a
  >       }
  >       \layout {
  >         \context {
  >           \Staff
  >           \override Stem.thickness = #4.0
  >         }
  >       }
  >     }

- Eine Kontexteigenschaft kann direkt gesetzt werden:

  >     \score {
  >       \relative {
  >         a'4^"Smaller font" a a a
  >         a4 a a\ff a
  >       }
  >       \layout {
  >         \context {
  >           \Staff
  >           fontSize = #-4
  >         }
  >       }
  >     }

- Ein vordefinierter Befehl wie etwa `\dynamicUp` oder ein musikalischer Ausdruck wie `\accidentalStyle dodecaphonic`:

  >     \score {
  >       \relative {
  >         a'4^"Dynamics above" a a a
  >         a4 a a\ff a
  >       }
  >       \layout {
  >         \context {
  >           \Voice
  >           \dynamicUp
  >         }
  >         \context {
  >           \Staff
  >           \accidentalStyle dodecaphonic
  >         }
  >       }
  >     }

- Eine vom Benutzer definierte Variable, die eine `\with`-Umgebung enthält; zu Details der `\with`-Umgebung, siehe Nur einen bestimmten Kontext verändern.

  >     StaffDefaults = \with {
  >       fontSize = #-4
  >     }

  >     \score {
  >       \new Staff {
  >         \relative {
  >           a'4^"Smaller font" a a a
  >           a4 a a a
  >         }
  >       }
  >       \layout {
  >         \context {
  >           \Staff
  >           \StaffDefaults
  >         }
  >       }
  >     }

Befehle, die die Eigenschaften verändern, können in einer `\layout`-Umgebung platziert werden, ohne von einer `\context`-Umgebung eingeschlossen zu werden. Derartige Einstellungen verhalten sich äquivalet wie Eigenschaftsveränderungen, die zu jedem Beginn eines bestimmten Kontextes angegeben werden. Wenn kein Kontext angegeben wird, wird jeder Kontext auf der untersten Ebene beeinflusst, siehe auch Unterste Kontexte – Stimmen. Die Syntax eines Befehls zu Einstellung von Eigenschaftseinstellungen in einer `\layout`-Umgebung ist die gleiche wie für den Befehl direkt zwischen den Noten geschrieben.

>     \score {
>       \new Staff {
>         \relative {
>           a'4^"Smaller font" a a a
>           a4 a a a
>         }
>       }
>       \layout {
>         \accidentalStyle dodecaphonic
>         \set fontSize = #-4
>         \override Voice.Stem.thickness = #4.0
>       }
>     }

#### Nur einen bestimmten Kontext verändern

Die Kontexteigenschaften nur eines bestimmten Kontextes können mit einer `\with`-Umgebung geändert werden. Alle anderen Vorkommen des gleichen Kontexts behalten ihre Standardeinstellungen, möglicherweise durch Einstellungn in `\layout`-Umgebungen verändert. Die `\with`-Umgebung muss direkt nach dem Befehl `\new` Kontext-Typ gesetzt werden:

>     \new Staff
>     \with {
>       [enthält Einstellungen nur für diesen spezifischen Kontext]
>     } {
>     ...
>     }

Folgende Arten von Einstellungen können angegeben werden:

- Ein `\override`-Befehl, dessen Kontextbezeichnung ausgelassen wird:

  >     \score {
  >       \new Staff {
  >         \new Voice
  >         \with {
  >           \override Stem.thickness = #4.0
  >         }
  >         {
  >           \relative {
  >             a'4^"Thick stems" a a a
  >             a4 a a a
  >           }
  >         }
  >       }
  >     }

- Eine Kontexeigenschaft direkt einstellen:

  >     \score {
  >       <<
  >         \new Staff {
  >           \relative {
  >             a'4^"Default font" a a a
  >             a4 a a a
  >           }
  >         }
  >         \new Staff
  >         \with {
  >           fontSize = #-4
  >         } {
  >           \relative {
  >             a'4^"Smaller font" a a a
  >             a4 a a a
  >           }
  >         }
  >       >>
  >     }

- Ein vordefinierter Befehl wie etwa `\dynamicUp`

  >     \score {
  >       <<
  >         \new Staff {
  >           \new Voice {
  >             \relative {
  >               a'4^"Dynamics below" a a a
  >               a4 a a\ff a
  >             }
  >           }
  >         }
  >         \new Staff
  >         \with { \accidentalStyle dodecaphonic }
  >         {
  >           \new Voice
  >           \with { \dynamicUp }
  >           {
  >             \relative {
  >               a'4^"Dynamics above" a a a
  >               a4 a a\ff a
  >             }
  >           }
  >         }
  >       >>
  >     }

#### Rangfolge von Kontextwerten

Der Wert einer Eigenschaft, die zu einer bestimmten Zeit aktiv ist, wird wie folgend bestimmt:

- wenn ein `\override`- oder `\set`-Befehl in der Eingabe aktiv ist, wird dieser Wert benützt,
- ansonsten wird der Standardwert aus einer `\with`-Umgebung zu Beginn des Kontextes benützt,
- ansonsten wied der Standardwert aus der letzten passenden `\context`-Umgebung in der letzten `\layout`-Umgebung benützt,
- ansonsten wird der Standardwert von LilyPond eingesetzt.

#### Siehe auch

Handbuch zum Lernen: Kontexteigenschaften verändern.

Notationsreferenz: Was sind Kontexte?, Unterste Kontexte – Stimmen, Der `\set`-Befehl, Der `\\override`-Befehl, Die `\layout`-Umgebung.

#### LilyPond – Notationsreferenz v2.22.2 (stabiler Zweig).