GNU LilyPond Benutzerhandbuch: 3.1.3 File structure

### 3.1.3 File structure

Eine `.ly`-Datei kann eine belibige Anzahl an Ausdrücken auf der obersten Ebene beinhalten, wobei ein Ausdrück der obersten Ebene einer der folgenden sein kann:

- Eine Ausgabedefinition, wie `\paper`, `\midi` und `\layout`. Derartige Definitionen auf oberster Ebene verändern die globalen Einstellungen für das ganze „Buch“. Wenn mehr als eine derarte Definition desselben Typs angegeben wird, hat die spätere Vorrang.
- Ein direkter Scheme-Ausdruck, wie etwa `#(set-default-paper-size "a7" 'landscape)` oder `#(ly:set-option 'point-and-click #f)`.
- Eine `\header`-Umgebung. Damit wird die globale Titelei eingestellt. Das ist die Umgebung, in der sich Definition für das ganze Buch befinden, wie Komponist, Titel usw.
- Eine `\score`-Umgebung. Die in ihr enthaltene Partitur wird zusammen mit anderen vorkommenden `\score`-Umgebungen gesammelt und in ein `\book` zusammengefasst. Dieses Verhalten kann verändert werden, indem die Variable `toplevel-score-handler` auf höchster Ebene gesetzt wird. Die Definition des Standards findet sich in der Datei ‘`../scm/lily.scm`’.
- Eine `\book`-Umgebung fasst mehrere Sätze (d. h. mehrere `\score`-Umgebungen) logisch in ein Dokument zusammen. Wenn mehrere `\score`-Partituren vorkommen, wird für jede `\book`-Umgebung eine eigene Ausgabedatei erstellt, in der alle in der Umgebung enthaltenen Partituren zusammengefasst sind. Der einzige Grund, explizit eine `\book`-Umgebung zu setzen, ist, wenn mehrere Ausgabedateien aus einer einzigen Quelldatei erstellt werden sollen. Eine Ausnahme sind lilypond-book-Dokumente, in denen eine `\book`-Umgebung explizit hinzugefügt werden muss, wenn mehr als eine `\score`- oder `\markup`-Umgebung im gleichen Beispiel angezeigt werden soll. Dieses Verhalten kann verändert werden, indem die Variable `toplevel-book-handler` auf höchster Ebene gesetzt wird. Die Definition des Standards findet sich in der Datei ‘`../scm/lily.scm`’.
- Eine `\bookpart`-Umgebung. Ein Buch (`\book`) kann in mehrere Teile untergliedert sein, indem `\bookpart`-Umgebungen eingesetzt werden. Jeder Buchabschnitt beginnt auf einer neuen Seite und kann eigene Papierdefinitionen in einer `\paper`-Umgebung haben.
- Ein zusammengesetzter musikalischer Ausdruck wie etwa

  >     { c'4 d' e'2 }

  Dieses Beispiel wird von LilyPond automatisch in einer `\score`-Umgebung in einem Buch interpretiert und mit anderen `\score`-Umgebungen und musikalischen Ausdrücken auf der höchsten Ebene zusammen ausgegeben. Anders gesagt: eine Datei, die nur das obige Beispiel beinhaltet, wird übersetzt zu

  >     \book {
  >       \score {
  >         \new Staff {
  >           \new Voice {
  >             { c'4 d' e'2 }
  >           }
  >         }
  >       }
  >     	\layout { }
  >     	\header { }
  >     }

  Dieses Verhalten kann verändert werden, indem die Variable `toplevel-music-handler` auf der oberseten Ebene gesetzt wird. Die Definition des Standards findet sich in der Datei ‘`../scm/lily.scm`’.

- Eine Textbeschriftung, eine Strophe etwa:

  >     \markup {
  >        2.  Die erste Zeile der zweiten Strophe.
  >     }

  Textbeschriftungen werden über, zwischen oder unter musikalischen Ausdrücken gesetzt, so wie sie notiert werde.

- Eine Variable, wie

  >     foo = { c4 d e d }

  Sie kann dann später in der Datei eingesetzt werden, indem `\foo` geschrieben wird. Die Beizeichnung der Variable darf nur aus alphabetischen Zeichen bestehen, keine Zahlen, Unter- oder Bindestriche.

Das folgende Beispiel zeigt drei Dinge, die auf der obersten Ebene notiert werden können:

>     \layout {
>       % Zeilen rechtsbündig setzen
>       ragged-right = ##t
>     }

>     \header {
>        title = "Do-re-mi"
>     }

>     { c'4 d' e2 }

An einer beliebigen Stelle der Datei kann jede der folgenden lexikalen Anweisungen notiert werden:

- `\version`
- `\include`
- `\sourcefilename`
- `\sourcefileline`
- Ein einzeiliger Kommentar, beginnend mit `%`.
- Ein mehrzeiliger Kommentar, umgeben von `%{ .. %}`.

#### See also

Hanbuch zum Lernen: How LilyPond input files work.

Other languages: English, español.

#### Notation Reference