X-Git-Url: https://git.donarmstrong.com/?a=blobdiff_plain;f=Documentation%2Fde%2Flearning%2Ftweaks.itely;h=338985f9e6af719c21dd0cb059f7ce4b71ef41d8;hb=5198521ee5e91631a2cbf236d79489b12624797b;hp=7de0f1359618f9555ea54344d0920d31dcd33837;hpb=95a4237d0aca94993bd3b91afc4ff0e4e2daec9f;p=lilypond.git diff --git a/Documentation/de/learning/tweaks.itely b/Documentation/de/learning/tweaks.itely index 7de0f13596..338985f9e6 100644 --- a/Documentation/de/learning/tweaks.itely +++ b/Documentation/de/learning/tweaks.itely @@ -1,14 +1,14 @@ @c -*- coding: utf-8; mode: texinfo; documentlanguage: de -*- @ignore - Translation of GIT committish: aa632c095138aaaa0f50f73c90e72efb4b61d745 + Translation of GIT committish: e5a609e373eae846857f9a6d70a402a3d42b7d94 When revising a translation, copy the HEAD committish of the version that you are working on. For details, see the Contributors' Guide, node Updating translation committishes. @end ignore -@c \version "2.13.36" +@c \version "2.16.0" @node Die Ausgabe verändern @chapter Die Ausgabe verändern @@ -240,7 +240,8 @@ werden. Später soll gezeigt werden, in welchen Fällen er ausdrücklich definiert werden muss. Spätere Abschnitte behandeln umfassend Eigenschaften und ihre -Werte, aber um ihre Funktion und ihr Format zu demonstrieren, +Werte, siehe @ref{Typen von Eigenschaften}. Aber um ihre Funktion und ihr +Format zu demonstrieren, werden wir hier nur einige einfache Eigenschaften und Werte einsetzen, die einfach zu verstehen sind. @@ -310,9 +311,11 @@ b4 c | @funindex once Sowohl der @code{\override}-Befehl als auch der @code{\set}-Befehl können mit -dem Präfix @code{\once} (@emph{einmal}) versehen werden. Dadurch wird +dem Präfix @code{\once} (@emph{einmal}) versehen werden. Dadurch wird der folgende @code{\override}- oder @code{\set}-Befehl nur für den aktuellen -Musik-Moment wirksam, bevor sich wieder der Standard einstellt. Am gleichen +Musik-Moment wirksam, bevor sich wieder der vorherige Zustand herstellt +(dieser kann sich vom Standard unterscheiden, wenn etwa noch ein anderer +@code{\override}-Befehl aktiv ist). Am gleichen Beispiel demonstriert, kann damit die Farbe eines einzelnen Notenkopfes geändert werden: @@ -323,10 +326,12 @@ geändert werden: @lilypond[quote,fragment,ragged-right,verbatim,relative=1] c4 d -\once \override NoteHead #'color = #red +\override NoteHead #'color = #red e4 f | \once \override NoteHead #'color = #green -g4 a b c | +g4 a +\revert NoteHead #'color +b c | @end lilypond @@ -339,7 +344,7 @@ g4 a b c | Es gibt eine andere Form des @code{override}-Befehls, @code{\overrideProperty} (überschreibe Eigenschaft), -welcher ab und zu benötigt wird. Es wird hier nur der +welcher ab und zu benötigt wird. Es wird hier nur der Vollständigkeit halber erwähnt, sein Einsatz wird demonstriert in @rextend{Schwierige Korrekturen}. @c Maybe explain in a later iteration -td @@ -352,16 +357,17 @@ in @rextend{Schwierige Korrekturen}. @funindex tweak Der letzte Optimierungsbefehl in LilyPond ist @code{\tweak} -(engl. optimieren). Er wird eingesetzt um Eigenschaften -von Objekten zu verändern, die zum selben Musik-Moment -auftreten, wie etwa die Noten eines Akkordes. Ein +(engl. optimieren). Er wird eingesetzt um Eigenschaften +nur eines Objektes von mehreren Objekten zu verändern, +die zum selben Musik-Moment +auftreten, wie etwa die Noten eines Akkordes. Ein @code{\override} würde alle Noten des Akkords beeinflussen, während mit @code{\tweak} nur das nächste Objekt der Eingabe geändert wird. Hier ein Beispiel. Angenommen, die Größe des mittleren Notenkopfes (ein E) in einem C-Dur-Akkord soll geändert -werden. Schauen wir zuerst, was wir mit +werden. Schauen wir zuerst, was wir mit @code{\once \override} erhalten: @cindex Schriftgröße, Beispiel @@ -376,23 +382,17 @@ werden. Schauen wir zuerst, was wir mit @end lilypond Wie man sehen kann, beeinflusst @code{override} @emph{alle} -Notenköpfe des Akkordes. Das liegt daran, dass alle die Noten +Notenköpfe des Akkordes. Das liegt daran, dass alle die Noten eines Akkordes zum selben Musik-Moment auftreten und die Funktion von @code{\once} ist es, die Optimierung auf an allen Objekten auszuführen, die zum selben Musik-Moment auftreten wie der @code{\override}-Befehl. Der @code{\tweak}-Befehl funktioniert anders. Er bezieht sich -auf das direkt folgende Element in der Eingabe-Datei. Es wirkt -aber auch nur mit Objekten, die direkt von der Eingabe kreiert -werden, insbesondere Notenköpfe und Artikulationszeichen. -Objekte wie etwa Hälse oder Versetzungszeichen werden erst -später erstellt und lassen sich nicht auf diese Weise ändern. -Zusätzlich @emph{müssen} sich etwa Notenköpfe innerhalb -eines Akkordes befinden, d. h. sie müssen von einfachen spitzen -Klammern umschlossen sein. Um also eine einzelne Note -mit @code{\tweak} zu verändern, muss der Befehl innerhalb -der spitzen Klammern zusammen mit der Note eingegeben werden. +auf das direkt folgende Element in der Eingabe-Datei. In seiner +einfachsten Form ist der Befehl nur an Objekten wirksam, die direkt +vom vorhergehenden Element erstellt worden sind, insbesondere +Notenköpfe und Artikulation. Um also zu unserem Beispiel zurückzukommen, könnte man die mittlere Note eines Akkordes auf diese Weise ändern: @@ -407,12 +407,12 @@ mittlere Note eines Akkordes auf diese Weise ändern: @end lilypond Beachten Sie, dass die Syntax des @code{\tweak}-Befehls sich -von der des @code{\override}-Befehls unterscheidet. Weder -Kontext noch Layout-Objekt können angegeben werden, denn -das würde zu einem Fehler führen. Beide Angaben sind -durch das folgende Element impliziert. Hier sollte auch +von der des @code{\override}-Befehls unterscheidet. Der +Kontext dürfen nicht angegeben werden, denn +das würde zu einem Fehler führen. Sowohl Kontext als auch das Layout-Objekt sind +durch das folgende Element im Inputstream impliziert. Hier sollte auch kein Gleichheitszeichen vorhanden sein. Die verallgemeinerte -Syntax des @code{\tweak}-Befehls ist also einfach +Syntax des @code{\tweak}-Befehls ist also @example \tweak #'@var{layout-eigenschaft} #@var{Wert} @@ -432,9 +432,32 @@ a4^"Black" @end lilypond @noindent -Beachten Sie, dass dem @code{\tweak}-Befehl ein Artikulationsmodifikator -vorangestellt werden muss, ganz als ob er selbst ein Artikulationszeichen -wäre. +Beachten Sie, dass ein Artikulationsmodifikator vor dem @code{\tweak}-Befehl +geschrieben werden muss, weil auch der @code{\tweak}-Ausdruck als +Artikulation angefügt wird. Im Falle von mehreren Richtungsmodifikatoren +(@code{^} or @code{_}) gilt der Modifikator links außen, weil er als +letzter angefügt wird. + +@cindex @code{\tweak}, Versetzungszeichen +@cindex @code{\tweak}, bestimmtes Layout-Objekt + +Objekte wie Hälse und Versetzungszeichen werden später erstellt und nicht +direkt aus dem vorhergehenden Ereignis. Es ist dennoch möglich, @code{\tweak} +mit solchen indirekt erstelltn Objekten zu verwenden, indem man die +Layout-Objekte direkt benennt, vorausgesetzt dass LilyPond ihre Herkunft +bis zu dem ursprünglichen Ereignis zurück verfolgen kann: + +@lilypond[quote,fragment,ragged-right,verbatim,relative=2] +<\tweak Accidental #'color #red cis4 + \tweak Accidental #'color #green es + g> +@end lilypond + +Diese Langform des @code{\tweak}-Befehls kann wie folgend beschrieben werden: + +@example +\tweak @var{layout-object} #'@var{layout-property} @var{value} +@end example @cindex Triolen, geschachtelt @cindex N-tolen, geschachtelt @@ -511,7 +534,7 @@ Notationsreferenz: @menu * Eigenschaften von Layoutobjekten:: -* Eigenschaften, die Schnittstellen besitzen können:: +* Eigenschaften die Schnittstellen besitzen können:: * Typen von Eigenschaften:: @end menu @@ -634,7 +657,7 @@ Sie sollten folgendes finden: @end example Das sieht ganz danach aus, als ob damit die Dicke geändert -werden kann. Es bedeutet, dass der Wert von +werden kann. Es bedeutet, dass der Wert von @code{thickness} einfach eine Zahl (@emph{number}) ist, dass der Standardwert 1.2 ist, und dass die Einheit für die Dicke eine andere Eigenschaft mit der @@ -642,18 +665,17 @@ Bezeichnung @code{line-thickness} ist. Wie schon früher gesagt, gibt es wenig bis gar keine Erklärungen in der IR, aber wir haben schon genug Informationen, um -zu versuchen, die Dicke eines Legatobogens zu ändern. Die -Bezeichnung des Layout-Objekts ist offensichtlich -@code{Slur} und die Bezeichnung der Eigenschaft, die geändert -werden soll -@code{thickness}. Der neue Wert sollte etwas mehr als 1.2 sein, +zu versuchen, die Dicke eines Legatobogens zu ändern. Die +Bezeichnung des Layout-Objekts ist offensichtlich @code{Slur} +und die Bezeichnung der Eigenschaft, die geändert werden soll +@code{thickness}. Der neue Wert sollte etwas mehr als 1.2 sein, denn der Bogen soll ja dicker werden. Den benötigten @code{\override}-Befehl können wir jetzt einfach konstruieren, indem wir die Werte für die Bezeichnungen in den -Modellbefehl einfügen und den Kontext auslassen. Setzen wir +Modellbefehl einfügen und den Kontext auslassen. Setzen wir einmal einen sehr großen Wert für die Dicke um zu sehen, ob der -Befehl auch funktioniert. Also: +Befehl auch funktioniert. Also: @example \override Slur #'thickness = #5.0 @@ -852,7 +874,7 @@ zu geben, die relevante Information dort zu finden. Die Beispiele werden Schritt für Schritt immer weniger Erklärungen beinhalten. -@node Eigenschaften, die Schnittstellen besitzen können +@node Eigenschaften die Schnittstellen besitzen können @subsection Eigenschaften, die Schnittstellen besitzen können @translationof Properties found in interfaces @@ -1034,7 +1056,7 @@ wenn sie in einem @code{\override}-Befehl benutzt werden. @item Richtung @tab Eine gültige Richtungskonstante oder das numerische Äquivalent @tab @code{LEFT}, @code{CENTER}, @code{UP}, - @code{1}, @code{-1} + @code{1}, @w{@code{-1}} @item Integer @tab Eine positive ganze Zahl @tab @code{3}, @code{1} @@ -1053,7 +1075,7 @@ wenn sie in einem @code{\override}-Befehl benutzt werden. @code{(ly:make-moment 3 8)} @item Zahl @tab Eine beliebige positive oder negative Dezimalzahl - @tab @code{3.5}, @code{-2.45} + @tab @code{3.5}, @w{@code{-2.45}} @item Paar (Zahlenpaar) @tab Zwei Zahlen getrennt von @qq{Leerzeichen . Leerzeichen}, eingeklammert und angeführt von einem Apostroph @@ -1107,7 +1129,7 @@ eingefügt. Wie verhindern wir, dass sie ausgegeben werden? Bevor wir uns hieran machen, sei daran erinnert, dass Objekteigenschaften in sogenannten @emph{Schnittstellen} -- engl. interface -- gruppiert sind, siehe auch -@ref{Eigenschaften, die Schnittstellen besitzen können}. Das dient ganz einfach +@ref{Eigenschaften die Schnittstellen besitzen können}. Das dient ganz einfach dazu, die Eigenschaften zusammenzufassen, die üblicherweise zusammen benötigt werden -- wenn eine davon für ein Objekt gilt, dann auch die anderen. Manche Objekte brauchen die @@ -1228,7 +1250,7 @@ Versuchen wir es also, und berücksichtigen wir auch den @code{Staff}-Kontext. Beachten Sie auch, dass Sie @code{#'#} vor der öffnenden Klammer schreiben müssen: @code{'#} wird benötigt als Teil des Wertes, um einen Vektor zu -signalisieren, und das erste @code{#} wird benötigt, um +signalisieren, und das erste@tie{}@code{#} wird benötigt, um den Wert in einem @code{\override}-Befehl anzuführen. @cindex Taktlinie, Beispiel zur Veränderung @@ -1909,7 +1931,7 @@ a4 g c a @end lilypond Hier werden die Konstanten @code{DOWN} und @code{UP} -eingesetzt. Sie haben die Werte @code{-1} bzw. @code{+1}, und +eingesetzt. Sie haben die Werte @w{@code{-1}} bzw. @code{+1}, und diese numerischen Werte können ebenso benutzt werden. Auch der Wert @code{0} kann in manchen Fällen benutzt werden. Er bedeutet für die Hälse das gleiche wie @code{UP}, für einige @@ -2101,7 +2123,7 @@ Wenn die Fingersatzbezeichnung zu gedrungen aussieht, kann auch die Schriftgröße (@code{font-size}) verringert werden. Der Standardwert kann aus dem @code{Fingering}-Objekt in der IR entnommen werden, -er ist @code{-5}, versuchen wir es also mit @code{-7}. +er ist @w{@code{-5}}, versuchen wir es also mit @w{@code{-7}}. @lilypond[quote,fragment,ragged-right,verbatim,relative=1] \override Fingering #'font-size = #-7 @@ -2140,9 +2162,7 @@ von allen Layout-Objekten. Standardmäßig ist sie für alle Objekte auf falsch (@code{#f}) gesetzt; dieser Wert wird in einen numerischen Wert dem Objekt entsprechend geändert, wenn das Objekt für die Notenausgabe erstellt wird. Die Tabelle unten zeigt die -Standardwerte für die meistbenutzten @code{outside-staff}-Objekte, -die den Voreinstellungen nach im @code{Staff}- oder -@code{Voice}-Kontext gesetzt werden. +Standardwerte für die meistbenutzten @code{outside-staff}-Objekte. @cindex spanners @cindex Strecker @@ -2165,12 +2185,21 @@ beinhaltet. @headitem Layout-Objekt @tab Priorität @tab Kontrolliert Position von: -@item @code{MultiMeasureRestText} - @tab @code{450} - @tab Text über Ganztaktpausen +@item @code{RehearsalMark} + @tab @code{1500} + @tab Übungszeichen +@item @code{MetronomeMark} + @tab @code{1000} + @tab Metronomzeichen +@item @code{VoltaBracketSpanner} + @tab @code{600} + @tab Volta-Wiederholungsklammern @item @code{TextScript} @tab @code{450} @tab Textbeschriftung +@item @code{MultiMeasureRestText} + @tab @code{450} + @tab Text über Ganztaktpausen @item @code{OttavaBracket} @tab @code{400} @tab Ottava (Oktavierungsklammern) @@ -2180,9 +2209,9 @@ beinhaltet. @item @code{DynamicLineSpanner} @tab @code{250} @tab Alle Dynamik-Bezeichnungen -@item @code{VoltaBracketSpanner} - @tab @code{100} - @tab Volta-Klammern +@item @code{BarNumber} + @tab @code{ 100} + @tab Taktzahlen @item @code{TrillSpanner} @tab @code{50} @tab Triller-Strecker @@ -2244,28 +2273,6 @@ Im Beispiel wird auch gezeigt, wie Oktavierungsklammern @cindex Übungszeichenposition verändern @cindex Verändern der Übungszeichenposition -Beachten Sie, dass Taktnummern, Metronombezeichnungen -und Übungszeichen nicht gezeigt werden. Sie werden -standardmäßig im @code{Score}-(Partitur)-Kontext -erstellt und ihre @code{outside-staff-priority} wird -in Bezug auf die Layout-Objekte, die im @code{Staff}-Kontext -erstellt werden, ignoriert. Wenn Sie Taktnummern, -Metronombezeichnungen oder Übungszeichen entsprechend -ihrer Außersystem-Priorität setzen wollen, müssen Sie -die entsprechenden Engraver (@code{Bar_number_engraver}, -@code{Metronome_mark_engraver} oder @code{Mark_engraver}) -vom @code{Score}-Kontext entfernen und dem -@code{Staff}-Kontext hinzufügen. Wenn die Engraver so -geändert werden, erhalten sie folgenden Werte für -@code{outside-staff-priority}: - -@multitable @columnfractions .3 .3 -@headitem Layout-Objekt @tab Priorität -@item @code{RehearsalMark} @tab @code{1500} -@item @code{MetronomeMark} @tab @code{1000} -@item @code{BarNumber} @tab @code{ 100} -@end multitable - Wenn die Standardwerte der @code{outside-staff-priority} nicht die Positionierung hervorrufen, die Sie wünschen, kann die Priorität eines jeden Objektes geändert werden. Als Beispiel @@ -2306,6 +2313,11 @@ c4\ff c \stopTextSpan c,4 c c c @end lilypond +Beachten Sie, dass einige dieser Objekte, insbesondere Taktzahlen, +Metronomzeichen und Übungszeichen standardmäßig im @code{Score}-Kontext +zu Hause sind; benutzen Sie also den richtigen Kontext, wenn sie +deren Einstellungen verändern wollen. + @cindex Legatobögen und outside-staff-priority @cindex Legatobögen und Artikulationszeichen @cindex Artikulationszeichen und Legatobögen @@ -2685,12 +2697,12 @@ Objekten benutzt werden, die das @code{self-alignment-interface} unterstützen. Das sind üblicherweise Objekte, die Text enthalten. Die möglichen Werte der Eigenschaft sind @code{LEFT}, @code{RIGHT} oder @code{CENTER}. Alternativ kann ein -numerischer Wert zwischen @code{-1} und @code{+1} -bestimmt werden: @code{-1} heißt linksbündig, @code{+1} +numerischer Wert zwischen @w{@code{-1}} und @code{+1} +bestimmt werden: @w{@code{-1}} heißt linksbündig, @code{+1} rechtsbündig und Zahlen dazwischen bewegen den Text schrittweise von links nach rechts. Zahlen größer als @code{1} können angegeben werden, um den Text -noch weiter nach links zu bewegen, oder weniger als @code{-1}, +noch weiter nach links zu bewegen, oder weniger als @w{@code{-1}}, um ihn weiter nach rechts zu schieben. Eine Änderung um @code{1} des Wertes entspricht einer Bewegung um die halbe Textbreite. @@ -3012,7 +3024,7 @@ also die zweite Stimme in der @code{<<@{...@} \\ @{...@}>>}-Konstruktion) wird die Position auf dem System (@code{staff-position}) auf -4 für @code{MultiMeasureRest}, in unserem Beispiel muss -es also bspw. auf die Position @code{-8} gesetzt werden, +es also bspw. auf die Position @w{@code{-8}} gesetzt werden, d.h. vier halbe Notenlinienabstände weiter nach unten: @cindex MultiMeasureRest, Beispiel zur Veränderung @@ -3103,22 +3115,29 @@ r4 \acciaccatura e8\( d8 c~ c d c d\) @end lilypond -Hier noch ein weiteres Beispiel aus der Einleitung von Chopins -Prelude Op. 28 Nr. 2, das untere System. Wie zu sehen ist, -stößt der Balken mit den oberen Noten zusammen: +Hier noch ein weiteres Beispiel. Wie zu sehen ist, +stößt der Balken mit den oberen Bögen zusammen: @lilypond[quote,verbatim,fragment,ragged-right] { - \clef "bass" - << { b,8 ais, b, g, } \\ { e, g e, g } >> - << { b,8 ais, b, g, } \\ { e, g e, g } >> + \time 4/2 + << + { c'1 ~ c'2. e'8 f' } + \\ + { e''8 e'' e'' e'' e'' e'' e'' e'' f''2 g'' } + >> + << + { c'1 ~ c'2. e'8 f' } + \\ + { e''8 e'' e'' e'' e'' e'' e'' e'' f''2 g'' } + >> } @end lilypond @noindent Das kann manuell gelöst werden, indem beide Enden des Balkens -von ihrer Position 2 Notenlinienabstände über der Mittellinie -hochgeschoben werden, etwa auf 3: +von ihrer Position 1.81 Notenlinienabstände unter der Mittellinie +hochgeschoben werden, etwa auf 1: @cindex Balken, Beispiel zur Veränderung @cindex positions-Eigenschaft, Beispiel @@ -3126,20 +3145,26 @@ hochgeschoben werden, etwa auf 3: @lilypond[quote,verbatim,fragment,ragged-right] { - \clef "bass" + \time 4/2 << - \override Beam #'positions = #'(3 . 3) - { b,8 ais, b, g, } - \\ - { e, g e, g } + { c'1 ~ c'2. e'8 f' } + \\ + { + \override Beam #'positions = #'(-1 . -1) + e''8 e'' e'' e'' e'' e'' e'' e'' f''2 g'' + } + >> + << + { c'1 ~ c'2. e'8 f' } + \\ + { e''8 e'' e'' e'' e'' e'' e'' e'' f''2 g'' } >> - << { b,8 ais, b, g, } \\ { e, g e, g } >> } @end lilypond @noindent -Hier ist zu beobachten, dass die Veränderung sich auch auf die -weiteren Achtelbalken der ersten Stimme auswirkt, während sie keine +Hier ist zu beobachten, dass die Veränderung sich auch auf den +die erste Stimme des weiteren Taktes mit Achtelnoten auswirkt, während sie keine Auswirkung auf die Balken der zweiten Stimme hat. @subheading force-hshift (vertikale Verschiebunseigenschaft) @@ -3158,29 +3183,26 @@ gebracht: << { c2 aes4. bes8 } \\ - { aes2 f4 fes } + { 2 des } \\ - { - \voiceFour - 2 des - } + \\ + { aes'2 f4 fes } >> | 1 | } @end lilypond @noindent -Die unteren zwei Noten des ersten Akkords (also die in der -dritten Stimme) sollten nicht aus der Notenkolumne der -oberen zwei Noten weggeschoben werden. Um das zu -korrigieren, setzen wir @code{force-hshift}, das eine -Eigenschaft von -@code{NoteColumn} ist, für diese Noten auf Null. -Die untere Note des zweiten Akkordes wird am besten -direkt rechts von den oberen Noten gesetzt. Das erreichen -wir, indem wir @code{force-hshift} für diese Note auf -0.5 setzen, also eine halbe Notenkopfbreite nach rechts von -der Kolumne der oberen Noten aus. +Die inneren Noten des ersten Akkordes (also das As in der vierten Stimme) +müssen nicht mit shift verschoben aus der Noten-Kolumne der höheren Stimme +verschoben werden. Um das zu korrigieren, setzen wir den Wert von +@code{force-hshift}, einer Eigenschaft von @code{NoteColumn}, auf Null. + +Im zweiten Akkord wollen wir, dass das F sich am A orientiert und die +tiefste Note leicht nach rechts verschoben wird, damit ein Zusammenstoß +der Hälse vermieden wird. Das erreicht man mit @code{force-hshift} in +@code{NoteColumn} des unteren Des, um es nach rechts um einen halben +Notenlinienzwischenraum zu verschieben. Hier das Endergebnis: @@ -3194,15 +3216,17 @@ Hier das Endergebnis: << { c2 aes4. bes8 } \\ - { aes2 f4 fes } - \\ { - \voiceFour - \once \override NoteColumn #'force-hshift = #0 - 2 + 2 \once \override NoteColumn #'force-hshift = #0.5 des2 } + \\ + \\ + { + \override NoteColumn #'force-hshift = #0 + aes'2 f4 fes + } >> | 1 | } @@ -3247,7 +3271,8 @@ rhMusic = \relative c'' { c,8~ % Reposition the c2 to the right of the merged note \once \override NoteColumn #'force-hshift = #1.0 - % Move the c2 out of the main note column so the merge will work + % Move the c2 out of the main note column + % so the merge will work \shiftOnn c2 } @@ -3257,7 +3282,8 @@ rhMusic = \relative c'' { % Stem on the d2 must be down to permit merging \stemDown % Stem on the d2 should be invisible - \once \override Stem #'transparent = ##t + \tweak Stem #'transparent ##t + \tweak Flag #'transparent ##t d2 } \new Voice { @@ -3695,7 +3721,8 @@ rhMusic = \relative c'' { c,8~ % Reposition the c2 to the right of the merged note \once \override NoteColumn #'force-hshift = #1.0 - % Move the c2 out of the main note column so the merge will work + % Move the c2 out of the main note column + % so the merge will work \shiftOnn c2 } @@ -3705,7 +3732,7 @@ rhMusic = \relative c'' { % Stem on the d2 must be down to permit merging \stemDown % Stem on the d2 should be invisible - \once \override Stem #'transparent = ##t + \tweak Stem #'transparent ##t d2 } \new Voice { @@ -3751,7 +3778,6 @@ lhMusic = \relative c' { * Variablen für Optimierungen einsetzen:: * Globale Formatierung:: * Mehr Information:: -* Vermeiden von Optimierungen durch langsamere Übersetzung:: * Fortgeschrittene Optimierungen mit Scheme:: @end menu @@ -3795,7 +3821,8 @@ den Stimmen stattfindet: @lilypond[quote,fragment,relative=2,verbatim] << { - \once \override Stem #'transparent = ##t + \tweak Stem #'transparent ##t + \tweak Flag #'transparent ##t b8~ b\noBeam } \\ @@ -3811,8 +3838,9 @@ gesetzt wird: @lilypond[quote,fragment,relative=2,verbatim] << { - \once \override Stem #'transparent = ##t - \once \override Stem #'length = #8 + \tweak Stem #'transparent ##t + \tweak Flag #'transparent ##t + \tweak Stem #'length #8 b8~ b\noBeam } \\ @@ -3969,7 +3997,7 @@ VerseOne = \lyrics { } VerseTwo = \lyricmode { - O | \emphasize Christ, \normal whose voice the | wa -- ters heard, + O | \once \emphasize Christ, whose voice the | wa -- ters heard, } VerseThree = \lyricmode { @@ -4018,20 +4046,18 @@ 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"))) + #(make-dynamic-script + #{ \markup { \hspace #0 + \translate #'(5 . 0) + \line { \dynamic "mp" + \text \italic "dolce" } } + #}) inst = #(define-music-function (parser location string) (string?) - (make-music - 'TextScriptEvent - 'direction UP - 'text (markup #:bold (#:box string)))) + #{ ^\markup \bold \box #string #}) \relative c'' { \tempo 4=50 @@ -4043,9 +4069,8 @@ inst = } @end lilypond -Es gibt einige Probleme mit sich überschneidender Ausgabe, die wird -zurechtgerückt mit den Techniken von @ref{Verschieben von Objekten}. -Aber jetzt zu den Definitionen von @code{mpdolce} und @code{inst}. +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. @@ -4056,24 +4081,22 @@ 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"))) + #(make-dynamic-script + #@{ \markup @{ \hspace #0 + \translate #'(5 . 0) + \line @{ \dynamic "mp" + \text \italic "dolce" @} @} + #@}) inst = #(define-music-function (parser location string) (string?) - (make-music - 'TextScriptEvent - 'direction UP - 'text (markup #:bold (#:box 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 @code{.ily} wird benutzt, +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}). @@ -4096,20 +4119,18 @@ Noten (in der Datei @file{music.ly}). @lilypond[quote,ragged-right] mpdolce = -#(make-dynamic-script - (markup #:hspace 0 - #:translate '(5 . 0) - #:line (#:dynamic "mp" - #:text #:italic "dolce"))) + #(make-dynamic-script + #{ \markup { \hspace #0 + \translate #'(5 . 0) + \line { \dynamic "mp" + \text \italic "dolce" } } + #}) inst = #(define-music-function (parser location string) (string?) - (make-music - 'TextScriptEvent - 'direction UP - 'text (markup #:bold (#:box string)))) + #{ ^\markup \bold \box #string #}) \relative c'' { \tempo 4=50 @@ -4135,19 +4156,17 @@ wir also in @qq{4/4}. %%% definitions.ily mpdolce = #(make-dynamic-script - (markup #:hspace 0 - #:translate '(5 . 0) - #:line (#:dynamic "mp" - #:text #:italic "dolce"))) + #@{ \markup @{ \hspace #0 + \translate #'(5 . 0) + \line @{ \dynamic "mp" + \text \italic "dolce" @} @} + #@}) inst = #(define-music-function (parser location string) (string?) - (make-music - 'TextScriptEvent - 'direction UP - 'text (markup #:bold (#:box string)))) + #@{ ^\markup \bold \box #string #@}) \layout@{ \context @{ @@ -4170,19 +4189,17 @@ inst = @lilypond[quote,ragged-right] mpdolce = #(make-dynamic-script - (markup #:hspace 0 - #:translate '(5 . 0) - #:line (#:dynamic "mp" - #:text #:italic "dolce"))) + #{ \markup { \hspace #0 + \translate #'(5 . 0) + \line { \dynamic "mp" + \text \italic "dolce" } } + #}) inst = #(define-music-function (parser location string) (string?) - (make-music - 'TextScriptEvent - 'direction UP - 'text (markup #:bold (#:box string)))) + #{ ^\markup \bold \box #string #}) \layout{ \context { @@ -4222,19 +4239,17 @@ global geändert. %%% definitions.ily mpdolce = #(make-dynamic-script - (markup #:hspace 0 - #:translate '(5 . 0) - #:line (#:dynamic "mp" - #:text #:italic "dolce"))) + #@{ \markup @{ \hspace #0 + \translate #'(5 . 0) + \line @{ \dynamic "mp" + \text \italic "dolce" @} @} + #@}) inst = #(define-music-function (parser location string) (string?) - (make-music - 'TextScriptEvent - 'direction UP - 'text (markup #:bold (#:box string)))) + #@{ ^\markup \bold \box #string #@}) #(set-global-staff-size 23) @@ -4258,19 +4273,17 @@ inst = @lilypond[quote,ragged-right] mpdolce = #(make-dynamic-script - (markup #:hspace 0 - #:translate '(5 . 0) - #:line (#:dynamic "mp" - #:text #:italic "dolce"))) + #{ \markup { \hspace #0 + \translate #'(5 . 0) + \line { \dynamic "mp" + \text \italic "dolce" } } + #}) inst = #(define-music-function (parser location string) (string?) - (make-music - 'TextScriptEvent - 'direction UP - 'text (markup #:bold (#:box string)))) + #{ ^\markup \bold \box #string #}) #(set-global-staff-size 23) @@ -4345,22 +4358,27 @@ das richtige Verzeichnis auf Ihrem System finden. Die Position hängt a) davon ab, ob Ihre LilyPond-Installation mit der vorkompilierten Version von der LilyPond-Internetseite vorgenommen wurde oder Sie die Version durch Ihren Paketmanager installiert haben (also -z. B. in einer Linux-Distribution oder unter fink oder cygwin +z. B. in einer GNU/Linux-Distribution oder unter fink oder cygwin installiert), und b) auf welchem Betriebssystem Sie das Programm benutzen: @strong{Von lilypond.org heruntergeladen} @itemize @bullet -@item Linux +@item GNU/Linux Wechseln Sie in das Verzeichnis -@file{@var{INSTALL_VERZ}/lilypond/usr/share/lilypond/current/} +@example +@file{@var{INSTALL_VERZ}/lilypond/usr/@/share/lilypond/current/} +@end example @item MacOS X Wechseln Sie in das Verzeichnis -@file{@var{INSTALL_VERZ}/LilyPond.app/Contents/Resources/share/lilypond/current/} +@example +@file{@var{INSTALL_VERZ}/LilyPond.app/Contents/@/Resources/share/lilypond/current/} +@end example + indem Sie entweder mit dem Befehl @code{cd} vom Terminal aus in das Verzeichnis wechseln, oder mit Control-Klick auf das LilyPond-Programmsymbol gehen und @qq{Show Package Contents} @@ -4369,7 +4387,9 @@ auswählen. @item Windows Wechseln Sie mit dem Windows Explorer ins Verzeichnis -@file{@var{INSTALL_VERZ}/LilyPond/usr/share/lilypond/current/} +@example +@file{@var{INSTALL_VERZ}/LilyPond/usr/@/share/lilypond/current/} +@end example @end itemize @@ -4393,7 +4413,7 @@ In diesem Ordner sind die zwei interessanten Unterordner: Schauen wir uns zuerst einige Dateien in @file{ly/} an. Öffnen Sie @file{ly/property-init.ly} in einem Texteditor. -Der, den Sie normalerweise für @code{.ly}-Dateien benutzen, +Der, den Sie normalerweise für @file{.ly}-Dateien benutzen, genügt. Diese Datei enthält die Definitionen aller vordefinierten Befehle für LilyPond, wie etwa @code{\stemUp} und @code{\slurDotted}. Sie können sehen, dass es sich um @@ -4465,46 +4485,6 @@ interessante Dateien: @end multitable -@node Vermeiden von Optimierungen durch langsamere Übersetzung -@subsection Vermeiden von Optimierungen durch langsamere Übersetzung -@translationof Avoiding tweaks with slower processing - -LilyPond kann einige zusätzliche Tests durchführen, während -die Noten gesetzt werden. Dadurch braucht das Programm länger, -um den Notensatz zu produzieren, aber üblicherweise werden -weniger nachträgliche Anpassungen nötig sein. Wenn eine -Textsilbe oder eine Beschriftung aus dem Rand der Partitur -ragt, wird durch diese Tests die Zeile gerade so weit komprimiert, -dass sie sich innerhalb der Ränder befindet. - -Damit diese Tests immer funktionieren, müssen sie aktiviert werden, -indem die @bs{}@code{override}-Befehle in einer @code{context}-Umgebung -innerhalb der @code{layout}-Umgebung notiert werden und nicht innerhalb -der Noten: - -@example -\score @{ - @{ @dots{}Noten@dots{} @} - \layout @{ - \context @{ - \Score - % Um sicher zu gehen, dass Texte und Liedtext - % innerhalb der Papierränder bleiben - \override PaperColumn #'keep-inside-line = ##t - \override NonMusicalPaperColumn #'keep-inside-line = ##t - @} - @} -@} -@end example - -@code{keep-inside-line} braucht jedoch sehr viel Berechnungen, -sodass es sich anbietet, diese Funktion zunächst nicht zu aktivieren -und erst einzufügen, wenn man die endgültige Version erstellt. -Auf diese Weise muss man nicht mit der Hand @code{\break}-Befehle -hinzufügen, um zu vermeiden, dass Text über den rechten Rand der -Seite hinausragt. - - @node Fortgeschrittene Optimierungen mit Scheme @subsection Fortgeschrittene Optimierungen mit Scheme @translationof Advanced tweaks with Scheme