[ << Die Ausgabe verbessern ] | [Top][Contents][Index] | [ Vorlagen >> ] |
[ < Variablen für Layout Anpassungen einsetzen ] | [ Up : Weitere Optimierungen ] | [ Mehr Information > ] |
5.7.3 Formatvorlagen
Die Ausgabe von LilyPond kann sehr stark verändert werden, siehe zu Einzelheiten Die Ausgabe verbessern. 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 #()
nicht verstehen. Das wird
in Fortgeschrittene Optimierungen mit Scheme erklärt.
mpdolce = \tweak self-alignment-X #-0.6 #(make-dynamic-script #{ \markup { \dynamic mp \normal-text \italic \bold dolce } #}) inst = #(define-music-function (string) (string?) #{ <>^\markup \bold \box #string #}) \relative { \tempo 4=50 a'4.\mpdolce d8 cis4--\glissando a | b4 bes a2 | \inst "Clarinet" cis4.\< d8 e4 fis | g8(\! fis)-. e( d)-. cis2 | }
Vielleicht können die Definitionen von mpdolce
und 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 #()
irgendwie hässlich. Verstecken
wir sie also:
%%% in Datei "definitions.ily" speichern mpdolce = \tweak self-alignment-X #-0.6 #(make-dynamic-script #{ \markup { \dynamic mp \normal-text \italic \bold dolce } #}) inst = #(define-music-function (string) (string?) #{ <>^\markup \bold \box #string #})
Diese Datei wir mit dem \include
-Befehl ziemlich weit oben
in der Datei eingefügt. (Die Erweiterung .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 music.ly).
\include "definitions.ily" \relative { \tempo 4=50 a'4.\mpdolce d8 cis4--\glissando a | b4 bes a2 | \inst "Clarinet" cis4.\< d8 e4 fis | g8(\! fis)-. e( d)-. cis2 | }
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 „C“-Taktangaben, das ändern wir also in „4/4“.
Ändern Sie jetzt jedoch nicht music.ly. Ändern Sie die definitions.ily mit dem Folgenden:
%%% definitions.ily mpdolce = \tweak self-alignment-X #-0.6 #(make-dynamic-script #{ \markup { \dynamic mp \normal-text \italic \bold dolce } #}) inst = #(define-music-function (string) (string?) #{ <>^\markup \bold \box #string #}) \layout{ \context { \Score \override MetronomeMark.extra-offset = #'(-5 . 0) \override MetronomeMark.padding = #'3 } \context { \Staff \override TimeSignature.style = #'numbered } \context { \Voice \override Glissando.thickness = #3 \override Glissando.gap = #0.1 } }
Das sieht besser aus! Aber nehmen wir an, Ich will dieses Stück publizieren. Mein Professor mag die „C“-Taktangabe nicht, mir gefällt sie aber sehr gut. Kopieren wir also die Datei definitions.ily nach 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.
%%% web-publish.ily mpdolce = \tweak self-alignment-X #-0.6 #(make-dynamic-script #{ \markup { \dynamic mp \normal-text \italic \bold dolce } #}) inst = #(define-music-function (string) (string?) #{ <>^\markup \bold \box #string #}) #(set-global-staff-size 23) \layout{ \context { \Score \override MetronomeMark.extra-offset = #'(-5 . 0) \override MetronomeMark.padding = #'3 } \context { \Staff } \context { \Voice \override Glissando.thickness = #3 \override Glissando.gap = #0.1 } }
In der Eingabedatei muss jetzt nur noch die Zeile
\include "definitions.ily"
mit
\include "web-publish.ily"
ersetzt werden. Das könnte
man natürlich noch besser machen. Es könnte eine Datei
definitions.ily mit allen Definitionen (also
mpdolce
und inst
) geben, eine Datei
web-publish.ily, die nur die \layout
-Veränderung
enthält und eine Datei university.ily, die nur die
Prozedur enthält, die Ausgabe meinem Professor angenehm zu machen.
Der Anfang von music.ly würde dann folgendermaßen aussehen:
\include "definitions.ily" %%% nur eine der zwei Zeilen auskommentieren! \include "web-publish.ily" %\include "university.ily"
Diese Herangehensweise kann auch schon nützlich sein, wenn man
nur ein paar Stimmen schreiben will. Ich habe eine ganze Anzahl
an „Formatvorlagen“ (engl. Stylesheets) für meine Projekte. Ich fange jede Datei mit
der Zeile \include "../global.ily"
an, die etwa folgendes
einbindet:
%%% global.ily \version "2.25.22" #(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"
[ << Die Ausgabe verbessern ] | [Top][Contents][Index] | [ Vorlagen >> ] |
[ < Variablen für Layout Anpassungen einsetzen ] | [ Up : Weitere Optimierungen ] | [ Mehr Information > ] |