+@node Globale Formatierung
+@subsection Globale Formatierung
+@translationof Style sheets
+
+Die Ausgabe von LilyPond kann sehr stark verändert werden, siehe
+zu Einzelheiten @ref{Die Ausgabe verändern}. Aber was ist,
+wenn man mehrere Eingabedateien hat, die die gleichen Anpassungen
+erfahren sollen? Oder wenn Sie einfach nur die Anpassungen von
+der eigentlichen Musik trennen wollen? Das lässt sich recht einfach
+erreichen.
+
+Schauen wir uns ein Beispiel an. Sorgen Sie sich nicht, wenn Sie
+den Abschnitt mit den vielen @code{#()} nicht verstehen. Das wird
+erklärt in @ref{Fortgeschrittene Optimierungen mit Scheme}.
+
+@lilypond[quote,verbatim,ragged-right]
+mpdolce =
+ #(make-dynamic-script
+ #{ \markup { \hspace #0
+ \translate #'(5 . 0)
+ \line { \dynamic "mp"
+ \text \italic "dolce" } }
+ #})
+
+inst =
+#(define-music-function
+ (parser location string)
+ (string?)
+ #{ ^\markup \bold \box #string #})
+
+\relative c'' {
+ \tempo 4=50
+ a4.\mpdolce d8 cis4--\glissando a |
+ b4 bes a2 |
+ \inst "Clarinet"
+ cis4.\< d8 e4 fis |
+ g8(\! fis)-. e( d)-. cis2 |
+}
+@end lilypond
+
+Vielleicht können die Definitionen von @code{mpdolce} und @code{inst} noch
+etwas verbessert werden.
+Sie erstellen die gewünschte Ausgabe, aber wir wollen sie vielleicht
+auch in einem anderen Stück verwenden. Wir könnten sie immer wieder
+kopieren und oben in jedes Stück einfügen, aber das ist sehr aufwändig.
+Dadurch werden die Definitionen auch in der Eingabedatei belassen,
+und ich finde diese @code{#()} irgendwie hässlich. Verstecken
+wir sie also:
+
+@example
+%%% in Datei "definitions.ily" speichern
+mpdolce =
+ #(make-dynamic-script
+ #@{ \markup @{ \hspace #0
+ \translate #'(5 . 0)
+ \line @{ \dynamic "mp"
+ \text \italic "dolce" @} @}
+ #@})
+
+inst =
+#(define-music-function
+ (parser location string)
+ (string?)
+ #@{ ^\markup \bold \box #string #@})
+@end example
+
+Diese Datei wir mit dem @code{\include}-Befehl ziemlich weit oben
+in der Datei eingefügt. (Die Erweiterung @file{.ily} wird benutzt,
+um diese Datei als eine eingefügte, inkludierte zu kennzeichnen, die
+man nicht alleinstehend kompilieren kann.) Jetzt ändern wir die
+Noten (in der Datei @file{music.ly}).
+
+@c We have to do this awkward example/lilypond-non-verbatim
+@c because we can't do the \include stuff in the manual.
+
+@example
+\include "definitions.ily"
+
+\relative c'' @{
+ \tempo 4=50
+ a4.\mpdolce d8 cis4--\glissando a |
+ b4 bes a2 |
+ \inst "Clarinet"
+ cis4.\< d8 e4 fis |
+ g8(\! fis)-. e( d)-. cis2 |
+@}
+@end example
+
+@lilypond[quote,ragged-right]
+mpdolce =
+ #(make-dynamic-script
+ #{ \markup { \hspace #0
+ \translate #'(5 . 0)
+ \line { \dynamic "mp"
+ \text \italic "dolce" } }
+ #})
+
+inst =
+#(define-music-function
+ (parser location string)
+ (string?)
+ #{ ^\markup \bold \box #string #})
+
+\relative c'' {
+ \tempo 4=50
+ a4.\mpdolce d8 cis4--\glissando a |
+ b4 bes a2 |
+ \inst "Clarinet"
+ cis4.\< d8 e4 fis |
+ g8(\! fis)-. e( d)-. cis2 |
+}
+@end lilypond
+
+Das sieht schon besser aus, aber einige Änderungen könnten wir noch vornehmen.
+Das Glissando ist kaum sichtbar, machen wir es also etwas dicker und
+näher an den Notenkopf. Die Metronombezeichnung soll über dem
+Schlüssel stehen, anstatt über der ersten Note. Und schließlich
+mag mein Kompositionsprofessor keine @qq{C}-Taktangaben, das ändern
+wir also in @qq{4/4}.
+
+Ändern Sie jetzt jedoch nicht @file{music.ly}. Ändern Sie die
+@file{definitions.ily} mit dem Folgenden:
+
+@example
+%%% definitions.ily
+mpdolce =
+#(make-dynamic-script
+ #@{ \markup @{ \hspace #0
+ \translate #'(5 . 0)
+ \line @{ \dynamic "mp"
+ \text \italic "dolce" @} @}
+ #@})
+
+inst =
+#(define-music-function
+ (parser location string)
+ (string?)
+ #@{ ^\markup \bold \box #string #@})
+
+\layout@{
+ \context @{
+ \Score
+ \override MetronomeMark.extra-offset = #'(-9 . 0)
+ \override MetronomeMark.padding = #'3
+ @}
+ \context @{
+ \Staff
+ \override TimeSignature.style = #'numbered
+ @}
+ \context @{
+ \Voice
+ \override Glissando.thickness = #3
+ \override Glissando.gap = #0.1
+ @}
+@}
+@end example
+
+@lilypond[quote,ragged-right]
+mpdolce =
+#(make-dynamic-script
+ #{ \markup { \hspace #0
+ \translate #'(5 . 0)
+ \line { \dynamic "mp"
+ \text \italic "dolce" } }
+ #})
+
+inst =
+#(define-music-function
+ (parser location string)
+ (string?)
+ #{ ^\markup \bold \box #string #})
+
+\layout{
+ \context {
+ \Score
+ \override MetronomeMark.extra-offset = #'(-9 . 0)
+ \override MetronomeMark.padding = #'3
+ }
+ \context {
+ \Staff
+ \override TimeSignature.style = #'numbered
+ }
+ \context {
+ \Voice
+ \override Glissando.thickness = #3
+ \override Glissando.gap = #0.1
+ }
+}
+
+\relative c'' {
+ \tempo 4=50
+ a4.\mpdolce d8 cis4--\glissando a |
+ b4 bes a2 |
+ \inst "Clarinet"
+ cis4.\< d8 e4 fis |
+ g8(\! fis)-. e( d)-. cis2 |
+}
+@end lilypond
+
+Das sieht besser aus! Aber nehmen wir an, Ich will dieses Stück publizieren.
+Mein Professor mag die @qq{C}-Taktangabe nicht, mir gefällt sie aber sehr
+gut. Kopieren wir also die Datei @file{definitions.ily} nach
+@file{web-publish.ily} und verändern diese. Weil die Noten als PDF
+auf dem Monitor dargestellt werden sollen, wird auch die Notengröße
+global geändert.
+
+@example
+%%% definitions.ily
+mpdolce =
+#(make-dynamic-script
+ #@{ \markup @{ \hspace #0
+ \translate #'(5 . 0)
+ \line @{ \dynamic "mp"
+ \text \italic "dolce" @} @}
+ #@})
+
+inst =
+#(define-music-function
+ (parser location string)
+ (string?)
+ #@{ ^\markup \bold \box #string #@})
+
+#(set-global-staff-size 23)
+
+\layout@{
+ \context @{
+ \Score
+ \override MetronomeMark.extra-offset = #'(-9 . 0)
+ \override MetronomeMark.padding = #'3
+ @}
+ \context @{
+ \Staff
+ @}
+ \context @{
+ \Voice
+ \override Glissando.thickness = #3
+ \override Glissando.gap = #0.1
+ @}
+@}
+@end example
+
+@lilypond[quote,ragged-right]
+mpdolce =
+#(make-dynamic-script
+ #{ \markup { \hspace #0
+ \translate #'(5 . 0)
+ \line { \dynamic "mp"
+ \text \italic "dolce" } }
+ #})
+
+inst =
+#(define-music-function
+ (parser location string)
+ (string?)
+ #{ ^\markup \bold \box #string #})
+
+#(set-global-staff-size 23)
+
+\layout{
+ \context { \Score
+ \override MetronomeMark.extra-offset = #'(-9 . 0)
+ \override MetronomeMark.padding = #'3
+ }
+ \context { \Voice
+ \override Glissando.thickness = #3
+ \override Glissando.gap = #0.1
+ }
+}
+
+\relative c'' {
+ \tempo 4=50
+ a4.\mpdolce d8 cis4--\glissando a |
+ b4 bes a2 |
+ \inst "Clarinet"
+ cis4.\< d8 e4 fis |
+ g8(\! fis)-. e( d)-. cis2 |
+}
+@end lilypond
+
+In der Eingabedatei muss jetzt nur noch die Zeile
+@code{\include "definitions.ily"} mit
+@code{\include "web-publish.ily"} ersetzt werden. Das könnte
+man natürlich noch besser machen. Es könnte eine Datei
+@file{definitions.ily} mit allen Definitionen (also
+@code{mpdolce} und @code{inst}) geben, eine Datei
+@file{web-publish.ily}, die nur die @code{\layout}-Veränderung
+enthält und eine Datei @file{university.ily}, die nur die
+Prozedur enthält, die Ausgabe meinem Professor angenehm zu machen.
+Der Anfang von @file{music.ly} würde dann folgendermaßen aussehen:
+
+@example
+\include "definitions.ily"
+
+%%% nur eine der zwei Zeilen auskommentieren!
+\include "web-publish.ily"
+%\include "university.ily"
+@end example
+
+Diese Herangehensweise kann auch schon nützlich sein, wenn man
+nur ein paar Stimmen schreiben will. Ich habe eine ganze Anzahl
+an @qq{Stylesheets} für meine Projekte. Ich fange jede Datei mit
+der Zeile @code{\include "../global.ily"} an, die etwa folgendes
+einbindet:
+
+@example
+%%% global.ily
+\version @w{"@version{}"}
+
+#(ly:set-option 'point-and-click #f)
+
+\include "../init/init-defs.ly"
+\include "../init/init-layout.ly"
+\include "../init/init-headers.ly"
+\include "../init/init-paper.ly"
+@end example
+
+
+