1 @c -*- coding: utf-8; mode: texinfo; -*-
2 @c This file is part of lilypond.tely
4 Translation of GIT committish: 99b5022dc4baadd7000c94d5868cdb7cb9a8ed53
6 When revising a translation, copy the HEAD committish of the
7 version that you are working on. See TRANSLATION for details.
14 @chapter Spacing issues
16 Das finale Layout der Seite wird von drei Faktoren bestimmt: dem Layout
17 der Seite, den Zeilenumbrüchen und der Platzverteilung. Jeder Faktor
18 beeinflusst auch die anderen mit. Die Wahl der Platzverteilung
19 entscheidet, wie eng die Notensysteme gesetzt werden. Das wiederum
20 hat Einfluss auf die gewählten Zeilenumbrüche und letztendlich also
21 auch darauf, wieviele Seiten ein Stück beansprucht.
23 Die Verteilung der Musik auf der Seite geschieht grob gesagt in
24 vier Schritten. Zuerst werden flexible Entfernungen (@qq{springs})
25 gewählt, die auf den Notendauern basieren. Alle möglichen
26 Zeilenumbrüche werden getestet und ein @qq{Schlechtigkeitsscore}
27 für die Umbrüche erstellt. Danach wird die mögliche Höhe eines Systems
28 ermittelt und schließlich wird eine bestimmte Kombination aus
29 Seiten- und Zeilenumbruch ausgewählt, sodass weder die horizontale
30 noch die vertikale Platzverteilung zu eng oder zu weit gesetzt wird.
32 Einstellungen, die das Layout beeinflussen, können in zwei Umgebungen
33 gesetzt werden: Die @code{\paper @{...@}}-Umgebung wird außerhalb einer
34 @code{\score @{...@}}-Umgebung geschrieben und enthält Einstellungen,
35 die für das gesamte Dokument gelten. Die @code{\layout @{...@}}-Umgebung
36 wird innerhalb von einer @code{\score @{...@}}-Umgebung notiert und
37 enthält die Einstellungen für eine bestimmte Partitur. Wenn Sie
38 nur eine @code{\score @{...@}}-Umgebung in der Datei haben, haben
39 beide Umgebungen den gleichen Effekt. Die Befehle, die in diesem Abschnitt
40 erklärt werden, können in beiden Umgebungen nach Bedarf gesetzt werden.
47 * Horizontal spacing::
48 * Fitting music onto fewer pages::
53 @section Paper and pages
55 Dieser Abschnitt behandelt die Grenzen, die Notationsgebiete
65 @subsection Paper size
72 Zwei Funktionen ermöglichen es, die Papiergröße zu ändern:
73 @code{set-default-paper-size} und @code{set-paper-size}.
74 @code{set-default-paper-size} muss auf der obersten Ebene in
75 der Quelldatei gesetzt werden, @code{set-paper-size} hingegegen
76 muss sich in einer @code{\paper}-Umgebung befinden:
79 #(set-default-paper-size "a4")
84 #(set-paper-size "a4")
89 @code{set-default-paper-size} bestimmt die Größe aller Seiten, während
90 @code{set-paper-size} nur die Seitengröße für die Seiten definiert,
91 auf die sich die aktuelle @code{\paper}-Umgebung bezieht. Wenn die
92 @code{\paper}-Umgebung auf der höchsten Ebene steht, bezieht sich die
93 Papiergröße auf alle Seiten, wenn sie aber innerhalb einer
94 @code{\book}-Umgebung definiert wird, nur auf die Seiten innerhalb
97 Die normalen Papierformate sind definiert, u.A. @code{a4},
98 @code{letter}, @code{legal} und @code{11x17} (auch als
99 Tabloit bekannt). Sehr viel mehr Formate sind unterstützt.
100 Einzelheiten finden sich in der Datei
101 @file{scm/@/paper@/.scm} in der Definition von
104 @warning{Das Standardformat ist @code{a4}.}
106 Weitere Papierformate können hinzugefügt werden, indem die
107 Definition von @code{paper-alist} in der Datei
108 @file{scm/@/paper@/.scm} verändert wird. Derartige
109 Änderungen werden jedoch bei einer Aktualisierung des
110 Programmes überschrieben.
112 @cindex Ausrichtung, Papier
113 @cindex Papier, Ausrichtung
114 @cindex hochkant, Papier
119 Wenn das Symbol @code{'landscape} als Argument an die Funktion
120 @code{set-default-paper-size}gehänt wird, werden die Seiten um
121 90° gedreht und die Notensysteme entsprechend breiter gesetzt.
124 #(set-default-paper-size "a6" 'landscape)
127 Wenn man die Seitengröße setzt, werden einige Variablen der
128 @code{\paper}-Umgebung verändert, wie etwa Seitenränder. Um
129 eine bestimmte Papiergröße mit veränderten @code{\paper}-Variablen
130 zubenuttzen, muss die Papiergröße definiert werden, bevor diese
131 Variablen neu gesetzt werden.
135 Installierte Dateien:
136 @file{scm/@/paper@/.scm}.
142 @node Page formatting
143 @subsection Page formatting
145 Ränder, Kopf- und Fußzeilen und andere Layoutvariablen werden
146 entsprechend dem Papierformat automatisch gesetzt.
148 Dieser Abschnitt zeigt einige der Papiervariablen, die geändert
152 * Vertical dimensions::
153 * Horizontal dimensions::
154 * Other layout variables::
158 @node Vertical dimensions
159 @unnumberedsubsubsec Vertical dimensions
161 Diese Variablen werden benutzt um andere vertikale Verhältnisse
162 auf einer Seite zu produzieren:
165 @funindex after-title-space
166 @funindex before-title-space
167 @funindex between-system-padding
168 @funindex between-system-space
169 @funindex between-title-space
170 @funindex bottom-margin
171 @funindex foot-separation
172 @funindex head-separation
173 @funindex page-top-space
174 @funindex paper-height
179 @item after-title-space
181 Die Größe des Abstands zwischen der Überschrift und dem ersten
182 Notensystem. Standard: @code{5\mm}.
184 @item before-title-space
186 Die Größe des Abstands zwischen dem letzten Notensystem einer
187 Partitur und dem Titel der nächsten Partitur. Standard: @code{10\mm}.
189 @item between-system-padding
191 Der Mindestabstand zwischen dem untersten Symbol in einem Notensystem
192 und dem obersten Symbol im sich darunter befindlichen System.
193 Standard: @code{4\mm}.
195 Wenn dieser Wert erhöht wird, werden Systeme, deren @qq{bounding box}
196 sich beinahe berühren, weiter auseinander gezogen.
198 @item between-system-space
200 Der Abstand zwischen Systemen. Das ist der ideale Abstand zwischen
201 der Mitte des eines Systems (bzw. des untersten Systems einer Systemgruppe)
202 und der Mitte des nächsten Systems (bzw. des obersten System der
203 nächsten Systemgruppe). Standard: @code{20\mm}.
205 Wenn dieser Wert erhöhrt wird, erscheinen die Noten auf der Seite gleichmäßiger,
206 wobei sie aber auch mehr Platz einnehmen.
208 @item between-title-space
210 Der Abstand zwischen aufeinanderfolgenden Überschriften (etwa die
211 Überschrift für ein @code{book} und die Überschrift einer Partitur.
212 Standard: @code{2\mm}.
216 Der Rand zwischen der Fußzeile und dem unteren Rand der Seite.
217 Standard: @code{6\mm}.
219 @item foot-separation
221 Der Abstand zwischen dem untersten Notensystem und der Fußzeile.
222 Standard: @code{4\mm}.
224 @item head-separation
226 Der Abstand zwischen dem obersten System und der Kopfzeile. Standard:
231 Der Abstand von der Oberkante des druckbaren Bereichs bis zur
232 Mitte des ersten Notensystems. Das funktioniert nur für Systeme,
233 die nicht vertikal ausgedehnt sind. Hohe Systeme bzw. Systemgruppen
234 werden mit ihrer @qq{bounding box} an der Oberkante des
235 druckbaren Bereichs ausgerichtet. Standard: @code{12\mm}.
239 Die Höhe der Seite. Standard: Die Höhe des aktuellen Papierformats.
240 Zu Einzelheiten siehe @ref{Paper size}.
244 Der Rand zwischen der Kopfzeile und dem oberen Rand der Seite. Standard:
252 Kopf- und Fußzeile werden von den Funktionen @code{make-footer} und
253 @code{make-header} erstellt, welche in der @code{\paper}-Umgebung definiert
254 werden. Die Standardeinstellungen sind in den Dateien
255 @file{ly/paper-defaults.ly} und @code{ly/titling-init.ly} dargestellt.
257 Das Seitenlayout wird durch zwei Funktionen der @code{\paper}-Umgebung
258 bestimmt: @code{page-music-height} und @code{page-make-stencil}. Die erste
259 teilt dem Zeilenumbruchsalgorithmus mit, wieviel Platz auf einer Seite
260 belegt werden kann, die zweite hingegegen erstellt die konkrete Seite,
261 nachdem sie die Systeme entgegengenommen hat, die auf der Seite platziert
271 ragged-last-bottom = ##t
275 Das nächste Beispiel zentriert Seitenzahlen unten auf jeder Seite:
279 print-page-number = ##t
280 print-first-page-number = ##t
281 oddHeaderMarkup = \markup \fill-line @{ " " @}
282 evenHeaderMarkup = \markup \fill-line @{ " " @}
283 oddFooterMarkup = \markup @{ \fill-line @{
284 \bold \fontsize #3 \on-the-fly #print-page-number-check-first
285 \fromproperty #'page:page-number-string @} @}
286 evenFooterMarkup = \markup @{ \fill-line @{
287 \bold \fontsize #3 \on-the-fly #print-page-number-check-first
288 \fromproperty #'page:page-number-string @} @}
292 Werte der @code{\paper}-Umgebung können in Scheme definiert werden. In diesem
293 Fall sind @code{mm}, @code{in}, @code{pt} und @code{cm} Variablen,
294 die in der Datei @file{paper-defaults.ly} mit Millimeter-Werten definiert
295 sind. Darum muss der Wert 2 cm in dem Beispiel unten multilpliziert werden
300 #(define bottom-margin (* 2 cm))
306 @ref{Vertical spacing between systems}.
312 @node Horizontal dimensions
313 @unnumberedsubsubsec Horizontal dimensions
315 @funindex horizontal-shift
317 @funindex left-margin
319 @funindex paper-width
320 @funindex short-indent
322 @warning{Wenn @code{paper-width} manuell gesetzt wird, müssen
323 möglicherweise auch die Werte von @code{line-width},
324 @code{left-margin}, @code{indent} und @code{short-indent} angepasst
327 Es gibt einige Variablen, die die horizontalen Dimensionen der Seite
332 @item horizontal-shift
334 Der Wert, um den alle Systeme (und auch Überschriften und Systemtrenner)
335 nach rechts verschoben werden. Standard: @code{0.0}.
339 Der Einzug für das erste System einer Partitur. Standard:
340 @code{paper-width} geteilt durch @code{14}, definiert in
341 @code{set-default-paper-size} bzw. @code{set-paper-size}.
345 Der Rand zwischen dem linken Rand der Seite und dem Anfang der Notensysteme.
346 Standard: @code{10\mm}, definiert in
347 @code{set-default-paper-size} oder @code{set-paper-size}.
351 Die Breite der Notensystems. Standard: @code{paper-width} minus
352 @code{20\mm}, dfiniert in @code{set-default-paper-size} bzw.
353 @code{set-paper-size}.
357 Die Breite der Seite. Standard: Die Breite des aktuellen
358 Papierformats. Zu Einzelheiten siehe @ref{Paper size}.
362 Der Einzug für alle Systeme einer Partitur ausschließlich das
363 erste System. Standard: @code{0}, dfiniert in
364 @code{set-default-paper-size} bzw. @code{set-paper-size}.
376 Die Option @code{right-margin} ist definiert, bestimmt aber nicht den
377 rechten Rand der Seite. Der Wert für den rechten Rand ergibt sich
378 aus den Werten des linken Randes (@code{left-margin}) und der Zeilenbreite
382 @node Other layout variables
383 @unnumberedsubsubsec Other layout variables
385 Diese Variablen können verwendet werden, um das allgemeine Layout der Seite
388 @funindex auto-first-page-number
389 @funindex blank-last-page-force
390 @funindex blank-page-force
391 @funindex first-page-number
392 @funindex page-breaking-between-system-padding
394 @funindex page-limit-inter-system-space
395 @funindex page-limit-inter-system-space-factor
396 @funindex page-spacing-weight
397 @funindex print-all-headers
398 @funindex print-first-page-number
399 @funindex print-page-number
400 @funindex ragged-bottom
401 @funindex ragged-last
402 @funindex ragged-last-bottom
403 @funindex ragged-right
404 @funindex system-separator-markup
405 @funindex system-count
409 @item auto-first-page-number
411 Der Seitenumbruchsalgorithmus wird davon beeinflusst, ob die erste
412 Seitenzahl gerade oder ungerade ist. Wenn die Variable auf wahr
413 gesetzt wird, entscheidet der Seitenumbruchsalgorithmus selber,
414 ob die Noten auf einer geraden oder ungeraden Seite beginnen sollen.
415 Das hat dann zur Folge, dass die erste Seite entweder bleibt wie
416 sie ist oder um eins erhöht wird. Standard: @code{##f}.
420 FIXME: this variable is used, but I don't know what it does. -pm
421 @item blank-after-score-page-force
422 @funindex blank-after-score-page-force
428 @item blank-last-page-force
430 Die Strafpunkte, wenn eine Partitur auf einer ungeraden Seite
431 beendet wird. Stadnard: @code{0}.
433 @item blank-page-force
435 Die Strafpunkte, wenn eine leere Seite mitten in einer Partitur
436 auftritt. Das wird nicht benutzt von @code{ly:optimal-breaking},
437 weil hiermit niemals leere Seiten mitten in einer Partitur zugelassen
438 werden. Standard: @code{5}.
440 @item first-page-number
442 Der Wert der Seitenzahl auf der ersten Seite. Standard: @code{#1}.
444 @item page-breaking-between-system-padding
446 Überlistet die Seitenumbruchfunktion, indem ihr ein anderer Wert
447 für @code{between-system-padding} mitgeteilt wird, als in Wirklichkeit
448 eingestellt ist. Wenn diese Variable beispielsweise auf einen
449 deutlich größeren Wert als @code{between-system-padding} gesetzt
450 wird, setzt die Seitenumbruchsfunktion weniger Systeme auf eine
451 Seite. Standard: nicht gesetzt.
455 Die Zahl der Seiten, die für eine Partitur benutzt werden sollen.
456 Standard: nicht gesetzt.
458 @item page-limit-inter-system-space
460 Wenn wahr, wird Platz zwischen Systemen eingeschränkt, wenn viel
461 Platz auf der Seite ist. Standard: @code{##f}. Einzelheiten siehe
462 @ref{Vertical spacing between systems}.
464 @item page-limit-inter-system-space-factor
466 Der Faktor, der von @code{page-limit-inter-system-space} verwendet
467 wird. Standard: @code{1.4}. Einzelheiten siehe
468 @ref{Vertical spacing between systems}.
470 @item page-spacing-weight
472 Die relative Gewichtung von (vertikalem) Abstand auf der Seite und
473 (horizontalem) Abstand innerhalb der Zeilen. Hohe Werte gewichten
474 die vertikalen Abstände mehr. Standard: @code{#10}.
476 @item print-all-headers
478 Wenn wahr, werden alle Einträge des Titelfeldes (@code{\header}-Umgebung)
479 für jede Partitur ausgegeben. Normalerweise wird nur die
480 Satzbezeichnung und die Opuszahl (@code{piece} und @code{opus})
481 ausgegeben. Standard: @code{##f}.
483 @item print-first-page-number
485 Wenn wahr, wird auch auf der ersten Seite die Seitenzahl ausgegeben.
486 Standard: @code{##f}.
488 @item print-page-number
490 Wenn falsch, werden Seitenzahl nicht ausgegeben. Standard:
495 Wenn wahr, werden die Systeme nicht gleichmäßig über die Seite
496 verteilt sondern am oberen Seitenrand beginnend eng angeordnet.
497 Das wirkt sich nicht auf die letzte Seite aus. Standard: @code{##f}.
499 Die Variable sollte auf wahr gesetzt werden für Stücke, die nur
500 zwei oder drei Systeme pro Seite haben, wie etwa Orchesterpartituren.
504 Wenn wahr, wird die letzte Notenzeile einer Partitur nicht bis
505 zum Zeilenende durchgezogen, sondern entsprechend mit Noten
506 gefüllt und dann abgebrochen. Standard: @code{##f}.
508 @item ragged-last-bottom
510 Wenn falsch, werden Systeme gleichmäßig über die letzte Seite
511 verteilt. Standard: @code{##t}.
513 Stücke, die zwei oder mehr Seiten gut füllen, sollten die Option auf wahr
516 Sie wirkt sich auch auf die letzte Seite von Buchteilen aus, d.h.
517 Teilen eines Buches, die mit der @code{\bookpart}-Umgebung erstellt werden.
521 Wenn wahr, werden Systeme nicht im Blocksatz gesetzt, sondern erhalten
522 nur ihre normale Breite. Standard: @code{##f}.
524 Wenn eine Partitur nur ein System hat, ist der Standardwert @code{##t}.
526 @item system-separator-markup
528 Ein Beschriftungsobjekt, das zwischen zwei Systeme gesetzt wird. Das
529 wird oft in Orchesterpartituren eingesetzt. Standard: nicht gesetzt.
531 Der Beschriftungsbefehl @code{\slashSeparator} kann für einen Trenner
532 benutzt werden, etwa so:
534 @lilypond[quote,ragged-right]
535 #(set-default-paper-size "a6" 'landscape)
538 \relative { c1 \break c1 }
541 system-separator-markup = \slashSeparator
548 Die Anzahl der Systeme, auf denen eine Partitur gesetzt werden soll.
549 Standard: nicht gesetzt.
561 Die Standard-Kopfzeilendefinition setzt die Seitenzahl und das
562 @code{instrument}-Feld aus der @code{\header}-Umgebung in eine
565 Die Überschriften (aus der @code{\header}-Umgebung) werden als
566 ein System interpretiert, sodass @code{ragged-bottom} und
567 @code{ragged-last-bottom} Platz zwischen die Überschrift und
568 das erste System der Partitur setzen.
572 @section Music layout
575 * Setting the staff size::
580 @node Setting the staff size
581 @subsection Setting the staff size
583 @cindex Schriftgröße, Einstellung
584 @cindex Systemgröße, Einstellung
585 @cindex Verändern der Schriftgröße
586 @cindex Verändern der Systemgröße
587 @funindex layout file
589 Die Standardgröße der Notensysteme beträgt 20 Punkte (pt).
590 Das kann auf zwei Arten geändert werden:
592 Um die Systemgröße global für alle Partituren einer
593 Datei (bzw. einer @code{\book}-Umgebung) zu verändern,
594 geht man wie folgt vor:
597 #(set-global-staff-size 14)
601 Hiermit wird die Standardhöhe der Notensysteme auf 14 pt
602 gesetzt. Die Schriftarten werden entsprechend verkleinert.
604 Um die Systemhöhe für jede Partitur einzeln zu verändern,
611 #(layout-set-staff-size 15)
619 Die Feta-Schriftart stellt die Noten- und Musiksymbole
620 für acht verschiedene Größen zur Verfügung. Jede
621 Schriftgröße ist einer bestimmten Systemgröße angepasst:
622 für kleinere Schriftgrößen werden die Zeichen etwas
623 schwerer, um mit den ebenfalls dickeren Notenlinien
624 zu harmonieren. Die empfohlenen Notensystemgrößen
625 sind in der Tabelle aufgeführt:
628 @multitable @columnfractions .15 .2 .22 .2
630 @item @b{Schriftbezeichnung}
631 @tab @b{Höhe des Systems (pt)}
632 @tab @b{Höhe des Systems (mm)}
638 @tab Taschenparituren
663 @tab Orchesterstimmen
674 @c modern rental material?
679 Diese Schriftarten sind in allen Größen erhältlich. Die Kontext-Eigenschaft
680 @code{fontSize} und die Layout-Eigenschaft @code{staff-space} (in
681 @code{StaffSymbol}) können benutzt werden, um die Schriftgröße für
682 einzelne Systeme zu verändern. Die Größe von einzelnen Systemen
683 ist relativ zur globalen Systemgröße.
688 @ref{Selecting notation font size}.
696 @code{layout-set-staff-size} verändert nicht den Abstand zwischen den
701 @subsection Score layout
703 @cindex Partitur, Layout
704 @cindex Layout, Partitur
708 Während die @code{\paper}-Umgebung Einstellungen für die Formatierung
709 der Seiten eines gesamten Dokuments enthalten, enthält die
710 @code{\layout}-Umgebung Einstellungen für einzelne Parituren.
716 \override VerticalAxisGroup #'minimum-Y-extent = #'(-6 . 6)
719 \override TextScript #'padding = #1.0
720 \override Glissando #'thickness = #3
727 @ref{Changing context default settings}.
739 * Optimal page breaking::
740 * Optimal page turning::
741 * Minimal page breaking::
743 * Using an extra voice for breaks::
748 @subsection Line breaking
750 @cindex Zeilenumbrüche
751 @cindex Umbrüche von Zeilen
753 Zeilenumbrüche werden normalerweise automatisch erstellt. Sie
754 werden so ausgewählt, dass die Zeilen weder gedrängt nocht zu
755 weit gespreizt wirken und aufeinander folgende Seiten einen
756 ähnlichen Grauwert haben. In seltenen Fällen kann es jedoch
757 nötig sein, manuell Zeilenumbrüche einzufügen. Das geschieht
758 mit dem Befehl @code{\break}. Hiermit wird direkt nach dem Befehl
759 ein Zeilenumbruch erzwungen. Zeilenumbrüche können jedoch nur
760 am Ende von @qq{vollständigen} Takten stattfinden. Damit sind
761 Takte gemeint, in welchen alle Noten mit der letzten Taktzeit
762 komplett abgeschlossen sind und nicht über das Taktende hinausragen.
763 Wenn Sie einen Zeilenumbruch an einer Stelle benötigen, an der
764 keine Taktlinie vorliegt, können Sie mit @code{\bar ""} eine
765 unsichtbare Taktlinie hinzufügen, die dann den Zeilenumbruch
766 erlaubt. Wiederum gilt, dass keine Noten überstehen dürfen,
767 sonst wird diese unsichtbare Taktlinie ignoriert.
769 Mit dem Befehl @code{\noBreak} wird ein Zeilenumbruch an dem
770 entsprechenden Taktstrich verboten.
772 Die grundlegenden Einstellungen, die Einfluss auf die Zeilenlänge
773 haben, sind @code{indent} (Einzug) und @code{line-width}
774 (Zeilenbreite). Sie werden in der @code{\layout}-Umgebung
775 einestellt. Der erste Befehl bestimmt den Einzug der ersten
776 Zeile, der zweite die Zeilenlänge der weiteren Notenzeilen.
778 Wenn @code{ragged-right} eingestellt ist (als in der
779 @code{\layout}-Umgebung auf den Wert @code{#t} gesetzt wurde),
780 werden die Systeme linksbündig gesetzt und nicht bis zum
781 rechten Rand hin durchgezogen, sondern den Noten entsprechend
782 gesetzt. Das ist oftmals nützlich für kleine Notenfragmente
783 und um zu überprüfen, wie eng die Noten natürlicherweise
784 gesetzt werden würden.
786 Die Option @code{ragged-last} verhält sich ähnlich zu @code{ragged-right},
787 aber wirkt sich nur auf die letzte Zeile eines Stückes aus.
797 @cindex regelmäßige Zeilenumbrüche
798 @cindex Zeilenumbrüche in Intervallen
800 Um Zeilenumbrüche zu erzwingen, die in festgelegten Intervallen
801 stattfinden, kann der Befehl @code{\break} in Kombination
802 mit unsichtbaren Noten und einer Wiederholung eingesetzt
803 werden. Das folgende Beispiel etwa setzt die nächsten
804 28 Takte (im 4/4-Takt) in Zeilen zu jeweils 4 Takten:
807 << \repeat unfold 7 @{
808 s1 \noBreak s1 \noBreak
809 s1 \noBreak s1 \break @}
810 @notation{Hier die Noten}
814 Eine Zeilenumbruchkonfiguration kann auch als eine @code{.ly}-Datei
815 automatisch gespeichert werden. Damit kann die vertikale Ausrichtung
816 während eines zweiten Programmdurchlaufs angepasst werden um die
817 Seiten besser zu füllen. Diese Eigenschaft ist recht neu und
818 kompliziert. Mehr Einzelheiten finden sich in
830 Referenz der Interna:
831 @rinternals{LineBreakEvent}.
838 Zeilenumbrüche können nur gesetzt werden, wenn eine
839 @qq{richtige} Taktlinie vorliegt. Wenn eine Note
840 über die Taktlinie übersteht, wie etwa in folgendem
843 @lilypond[quote,ragged-right,relative=2,fragment,verbatim]
844 c4 c2 << c2 {s4 \break } >> % this does nothing
845 c2 c4 | % a break here would work
846 c4 c2 c4 ~ \break % as does this break
851 kann ein Umbruchbefehl nicht ausgeführt werden. Dieses
852 Verhalten kann jedoch vermieden werden, indem der
853 @code{Forbid_line_break_engraver} aus dem Stimmen-Kontext
856 @lilypond[quote,ragged-right,verbatim]
858 \remove Forbid_line_break_engraver
860 c4 c2 << c2 {s4 \break } >> % now the break is allowed
866 Entsprechend werden Umbrüche auch verhindert, wenn Balken über
867 Taktlinien reichen. Das kann mit folgendem Befehl verhindert
868 werden: @code{\override Beam #'breakable = ##t}.
872 @subsection Page breaking
874 @cindex Seiteumbrüche
875 @cindex Umbrüche, Seite
877 Die Standardseitenumbrüche können verändert werden, indem
878 man die Befehle @code{\pageBreak} bzw. @code{\noPageBreak}
879 benutzt. Sie verhalten sich analog zu den Befehlen
880 @code{\break} und @code{\noBreak}. Sie sollten an einem
881 Taktstrich notiert werden. Diese Befehle erzwingen bzw.
882 verbieten einen Seitenumbruch. Mit dem @code{\pageBreak}-Befehl
883 wird natürlich gleichzeitig auch ein Zeilenumbruch erzwungen.
885 Die @code{\pageBreak} und @code{\noPageBreak}-Befehle können
886 auch auf der höchsten Ebene einer Datei benutzt werden, etwa
887 zwischen Partituren und Textbeschriftungen.
889 Es gibt auch vertikale Gegenstücke zu den Variablen
890 @code{ragged-right} und @code{ragged-last}:
891 @code{ragged-bottom} und @code{ragged-last-bottom}. Wenn diese
892 Variablen auf @code{##t} gesetzt werden, werden im ersten
893 Fall die Notensysteme auf allen Seiten eng nach oben orientiert
894 gesetzt werden. Im zweiten Fall bezieht sich dies nur auf die
897 Zu Einzelheiten siehe @ref{Vertical spacing}.
899 Seitenumbrüche werden von der @code{page-breaking}-Funktion errechnet.
900 LilyPond kennt drei Algorithmen um Seitenumbrüche zu errechnen:
901 @code{ly:optimal-breaking}, @code{ly:page-turn-breaking} und
902 @code{ly:minimal-breaking}. Der Standard ist @code{ly:optimal-breaking},
903 aber der Wert kann in der @code{\paper}-Umgebung geändert werden:
907 #(define page-breaking ly:page-turn-breaking)
911 Der alte Algorithmus für Umbruch hat die Bezeichnung
912 @code{optimal-page-breaks}. Wenn Sie Problememit der neuen
913 Umbruchsfunktion haben, können sie die alte vorläufig wieder
918 When a book has many scores and pages, the page breaking problem may be
919 difficult to solve, requiring large processing time and memory. To ease
920 the page breaking process, @code{\bookpart} blocks are used to divide
921 the book into several parts: the page breaking occurs separately on each
922 part. Different page breaking functions may also be used in different
931 %% In einem Abschnitt, der vor allem Text hat,
932 %% funktioniert womöglich ly:minimal-breaking besser
933 #(define page-breaking ly:minimal-breaking)
935 \markup @{ @dots{} @}
939 %% In diesem Abschnitt mit Noten wird
940 %% die Standard-Seitenumbruchsfunktion benutzt.
942 subtitle = "Erster Satz"
950 @funindex \noPageBreak
962 @node Optimal page breaking
963 @subsection Optimal page breaking
965 @funindex ly:optimal-breaking
967 Die @code{ly:optimal-breaking}-Funktion ist die Standardmethode für
968 LilyPond, um Seitenumbrüche zu errechnen. Hiermit wird versucht,
969 Seitenumbrüche zu finden, die das Stauchen oder Strecken von Zeilen
970 minimieren, sowohl horizontal als auch vertikal. Anders als die
971 @code{ly:page-turn-breaking}-Funktion hat diese Methode keine
972 Möglichkeit, Überlegungen zum Umblättern mit einzubeziehen.
979 @node Optimal page turning
980 @subsection Optimal page turning
982 @funindex ly:page-turn-breaking
984 Es ist oft nötig, die Seiten so umzubrechen, dass sich eine Pause am
985 Ende jeder zweiten Seite befindet, damit der Musiker es leichter hat,
986 die Seite umzublättern ohne das Spielen zu Unterbrechen. Die
987 @code{ly:page-turn-breaking}-Funktion versucht, Seitenumbrüche zu
988 finden, died das Stauchen oder Strecken von Zeilen minimieren und
989 gleichzeitig auch noch Seitenumbrüchen an angegebenen Stellen
990 den Vorrang zu geben.
992 Die Funktion wird in zwei Schritten eingesetzt. Zunächst muss sie
993 in der @code{\paper}-Umgebung aktiviert werden, wie gezeigt in
994 @ref{Page breaking}. Dann muss noch angegeben werden, welche Stellen
995 bevorzugt für Seitenumbrüche benutzt werden sollen.
997 Für diesen zweiten Schritt gibt es zwei Methoden. Am Einfachsten ist
998 es, die möglichen Seitenumbrüche mit dem Befehl @code{\allowPageTurn}
999 an jeder Stelle manuell anzugeben.
1001 Wenn Ihnen das zu aufwändig ist, können Sie den @code{Page_turn_engraver}
1002 zu einem @code{Staff}- oder @code{Voice}-Kontext hinzufügen. Dieser
1003 Engraver durchsucht den entsprechenden Kontext nach Stellen ohne Noten.
1004 (Es wird also nicht nach Pausen gesucht, sondern nach Stellen ohne
1005 Noten. Dieses Verhalten verhindert, dass an polyphonen Stellen umgebrochen
1006 wird, wo nur in einer Stimme Pausen vorhanden sind.) Wenn eine
1007 derartige Stelle ohne Noten gefunden wird, fügt der Engraver den
1008 Befehl @code{\allowPageTurn} am letzten Taktstrich des Abschnitts ein. Wenn
1009 in dem Abschnitt ein besonderer Taktstrich vorkommt (wie etwa ein
1010 Doppelstrich), wird der Befehl nach diesem Taktstrich gesetzt.
1012 @funindex minimumPageTurnLength
1014 Der @code{Page_turn_engraver} list die Kontexteigenschaft
1015 @code{minimumPageTurnLength} um zu erkennen, wie lang eine Stelle
1016 frei von Noten sein muss, damit ein Seitenumbruch in Frage kommt. Der
1017 Standardwert hierfür ist @code{#(ly:make-moment 1 1)}. Wenn Sie
1018 Seitenumbrüche zum Umblättern ausschalten wollen, können Sie
1019 einen sehr großen Wert angeben.
1022 \new Staff \with @{ \consists "Page_turn_engraver" @}
1025 R1 | % Ein Seitenumbruch zum Umblättern erlaubt
1027 \set Staff.minimumPageTurnLength = #(ly:make-moment 5 2)
1028 R1 | % Seitenumbruch nicht erlaubt
1030 R1*2 | % Seitenumbruch erlaubt
1035 @funindex minimumRepeatLengthForPageTurn
1037 Der @code{Page_turn_engraver} erkennt Wiederholungen vom Typ @code{volta}.
1038 Ein Seitenumbruch zum Umblättern wird nur zugelassen, wenn vor und nach
1039 der Wiederholung genug Zeit ist, um die Seite wieder zurückzublättern.
1040 Wenn die Wiederholung sehr kurz ist, kann auch Umblättern verboten
1041 werden. Wenn Sie die Kontexteigenschaft
1042 @code{minimumRepeatLengthForPageTurn} definieren, erlaubt der
1043 @code{Page_turn_engraver} nur Umblättern in Wiederholungen, deren
1044 Dauer länger als dieser Wert ist.
1046 Die Seitenumblätter-Befehle @code{\pageTurn}, @code{\noPageTurn} und
1047 @code{\allowPageTurn} können auch auf oberster Dateiebene benutzt
1048 werden, etwa zwischen Parituren und Textabschnitten.
1051 @funindex \noPageTurn
1052 @funindex \allowPageTurn
1057 @code{\allowPageTurn}.
1066 In einer Partitur sollte nur ein @code{Page_turn_engraver} vorkommen. Wenn
1067 mehr als einer definiert werden, stören sie sich gegenseitig.
1070 @node Minimal page breaking
1071 @subsection Minimal page breaking
1073 @funindex ly:minimal-breaking
1075 Die @code{ly:minimal-breaking}-Funktion benötigt nur minimale Berechnungen,
1076 um die Seitenumbrüche zu bestimmen. Die Seite wird mit möglichst
1077 vielen Systemen gefüllt und dann zur nächsten Seite gewechselt. Die
1078 Funktion kann benutzt werden um Partituren mit vielen Seiten zu
1079 setzen, wenn die anderen Seitenumbruchsfunktionen zu langsam wären
1080 oder zu viel Speicher beanspruchen. Auch für Seiten mit viel Text
1081 ist die Funktion geeignet. Sie wird folgendermaßen aktiviert:
1085 #(define page-breaking ly:minimal-breaking)
1095 @node Explicit breaks
1096 @subsection Explicit breaks
1098 Es kann vorkommen, dass LilyPond direkte @code{\break} oder
1099 @code{\pageBreak}-Befehl nicht beachtet. Mit folgenden
1100 Einstellungen kann dieses Verhalten ausgeschaltet werden:
1103 \override NonMusicalPaperColumn #'line-break-permission = ##f
1104 \override NonMusicalPaperColumn #'page-break-permission = ##f
1107 Wenn @code{line-break-permission} die Einstellung falsch
1108 (@code{##f}) hat, werden Zeilenumbrüche nur an den Befehlen
1109 @code{\break} eingefügt und nirgendwo anders. Wenn
1110 @code{page-break-permission} die Einstellung falsch
1111 (@code{##f}) hat, werden Seitenumbrüche nur an den Befehlen
1112 @code{\pageBreak} eingefügt und nirgendwo anders.
1114 @lilypond[quote,verbatim]
1123 \override NonMusicalPaperColumn #'line-break-permission = ##f
1124 \override NonMusicalPaperColumn #'page-break-permission = ##f
1127 \repeat unfold 2 { c'8 c'8 c'8 c'8 } \break
1128 \repeat unfold 4 { c'8 c'8 c'8 c'8 } \break
1129 \repeat unfold 6 { c'8 c'8 c'8 c'8 } \break
1130 \repeat unfold 8 { c'8 c'8 c'8 c'8 } \pageBreak
1131 \repeat unfold 8 { c'8 c'8 c'8 c'8 } \break
1132 \repeat unfold 6 { c'8 c'8 c'8 c'8 } \break
1133 \repeat unfold 4 { c'8 c'8 c'8 c'8 } \break
1134 \repeat unfold 2 { c'8 c'8 c'8 c'8 }
1145 @node Using an extra voice for breaks
1146 @subsection Using an extra voice for breaks
1148 Zeilen- und Seitenumbruchbefehle werden normalerweise direkt
1149 zusammen mit den Noten eingegeben.
1154 \repeat unfold 2 @{ c'4 c'4 c'4 c'4 @}
1156 \repeat unfold 3 @{ c'4 c'4 c'4 c'4 @}
1161 Hierdurch sind zwar die Befehle @code{\break} und @code{\pageBreak}
1162 einfach zu notieren, es werden aber Informationen zur Notation
1163 mit Informationen zur Anordnung auf der Seite vermischt. Man kann
1164 diese Informationen auch voneinander trennen, indem man eine zusätzliche
1165 Stimme einfügt, in der Zeilen- und Seitenumbrüche vorgenommen werden.
1166 Diese zusätzliche Stimme enthält nur unsichtbare Noten und die
1169 @lilypond[quote,verbatim]
1179 \repeat unfold 2 { c'4 c'4 c'4 c'4 }
1180 \repeat unfold 3 { c'4 c'4 c'4 c'4 }
1181 \repeat unfold 6 { c'4 c'4 c'4 c'4 }
1182 \repeat unfold 5 { c'4 c'4 c'4 c'4 }
1188 Mit dieser Herangehensweise kann der Code insbesondere
1189 dann klarer notiert werden, wenn man Einstellungen der
1190 @code{line-break-system-details}-Eigenschaft oder
1191 anderer Eigenschaften von
1192 @code{NonMusicalPaperColumnGrob} vornimmt (hierzu auch
1193 @ref{Vertical spacing}).
1195 @lilypond[quote,verbatim]
1200 \overrideProperty "Score.NonMusicalPaperColumn"
1201 #'line-break-system-details #'((Y-offset . 0))
1204 \overrideProperty "Score.NonMusicalPaperColumn"
1205 #'line-break-system-details #'((Y-offset . 35))
1208 \overrideProperty "Score.NonMusicalPaperColumn"
1209 #'line-break-system-details #'((Y-offset . 70))
1212 \overrideProperty "Score.NonMusicalPaperColumn"
1213 #'line-break-system-details #'((Y-offset . 105))
1217 \repeat unfold 2 { c'4 c'4 c'4 c'4 }
1218 \repeat unfold 3 { c'4 c'4 c'4 c'4 }
1219 \repeat unfold 6 { c'4 c'4 c'4 c'4 }
1220 \repeat unfold 5 { c'4 c'4 c'4 c'4 }
1229 @ref{Vertical spacing}.
1235 @node Vertical spacing
1236 @section Vertical spacing
1238 @cindex vertikale Positionierung
1239 @cindex Positionierung, vertikal
1240 @cindex Abstände, vertikal
1242 Vertikale Abstände werden durch drei Eigenschaften
1243 bestimmt: wieviel Platz frei ist (etwa Papiergröße
1244 und Ränder), wieviel Platz zwischen Systemgruppen
1245 (engl. system) gesetzt werden soll und wieviel
1246 Platz zwischen Notensystemen (engl. staff, Pl. staves)
1247 innerhalb von Gruppen gesetzt wird.
1250 * Vertical spacing inside a system::
1251 * Vertical spacing between systems::
1252 * Explicit staff and system positioning::
1253 * Two-pass vertical spacing::
1254 * Vertical collision avoidance::
1258 @node Vertical spacing inside a system
1259 @subsection Vertical spacing inside a system
1261 @cindex Abstand zwischen Notensystemen
1262 @cindex Notensystemabstand
1263 @cindex Platz zwischen Notensystemen
1264 @cindex Platz innerhalb von Systemgruppen
1265 @cindex Systemgruppen, Abstände innerhalb
1267 Die Höhe jeder Notensystemgruppe (engl. system) wird automatisch errechnet.
1268 Um einzelne Notensysteme daran zu hindern, sich zu überschneiden,
1269 werden Minimalabstände festgelegt. Indem man diese ändert,
1270 können die Systeme enger zusammen gerückt werden. Dadurch
1271 brauchen die Gruppen weniger Platz und es passen mehr Gruppen
1274 Normalerweise werden die Notensysteme vertikal gestapelt. Damit
1275 die Systeme einen bestimten Abstand einhalten, haben sie
1276 Füllabstände, die in der Eigenschaft @code{minimum-Y-extent}
1277 definiert sind. Wenn diese Eigenschaft für ein
1278 @code{VerticalAxisGroup}-Objekt gesetzt wird, kann eingestellt
1279 werden, wieviel Platz nach unten oder oben die vertikale Linie
1280 (also das Notensystem oder eine Textzeile) einnimmt. Die
1281 Eigenschaft braucht ein Zahlenpaar; der Standardwert ist
1282 @code{#'(-4 . 4)}. Um also ein Notensystem schmaler zu machen,
1286 \override Staff.VerticalAxisGroup #'minimum-Y-extent = #'(-3 . 3)
1290 Damit wird die vertikale Größe des Systems auf jeweils drei
1291 Notenlinienzwischenräume nach oben und unten von der Systemmitte
1292 aus eingestellt. Der Wert @code{(-3 . 3)} wird als ein
1293 Intervall ausgewertet, dessen Zentrum bei 0 liegt; deshalb
1294 ist die erste Zahl immer negativ. Die Zahlen müssen nicht
1295 gleich sein: man kann etwa die Ausdehnung nach unten vergrößern,
1296 indem man @code{(-6 . 4)} setzt.
1298 Nachdem die Seitenumbrüche bestimmt wurden, wird die vertikale
1299 Platzverteilung innerhalb jeder Systemgruppe neu ausgewertet
1300 um die Seite so gleichmäßig wie möglich zu füllen. Wenn auf
1301 einer Seite viel Platz übrigbleibt, werden die Gruppen etwas
1302 gedehnt um die Seite besser auszufüllen. Die Größe dieser
1303 Dehnung kann mit der @code{max-stretch}-Eigenschaft
1304 des @code{VerticalAlignment}-Grobs eingestellt werden.
1305 Standardmäßig hat @code{max-stretch} den Wert 0, sodass
1306 die Dehnung ausgeschaltet ist. Um sie einzuschalten, kann
1307 als guter Wert für @code{max-stretch} der Wert von
1308 @code{ly:align-interface::calc-max-stretch} eingesetzt werden.
1310 In manchen Situationen sollen zwar die meisten Systeme gedehnt
1311 werden, einige Gruppen sollen aber einen festen Abstand einhalten.
1312 Das kann etwa der Fall sein, wenn ein Klaviersystem in der
1313 Mitte einer Orchesterpartitur vorkommt. Mit der
1314 @code{keep-fixed-while-stretching}-Eigenschaft des
1315 @code{VerticalAxisGroup}-Objektes kann das erreicht werden.
1316 Wenn sie auf @code{##t} gesetzt wird, wird das entsprechende
1317 System (oder die Textzeile) nicht von der Zeile entfernt, die
1318 sich direkt darüber befindet. Man müsste diese Einstellung
1319 als beispielsweise für das zweite Notensystem eines Klaviersystems
1323 #(set-default-paper-size "a6")
1324 #(set-global-staff-size 14.0)
1328 ragged-last-bottom = ##f
1333 \override VerticalAlignment #'max-stretch = #ly:align-interface::calc-max-stretch
1340 \new Staff {c' d' e' f'}
1341 \new Staff {c' d' e' f'}
1342 \new Staff {c' d' e' f'}
1347 \new Staff {c' d' e' f'}
1349 \override VerticalAxisGroup #'keep-fixed-while-stretching = ##t
1356 \new Staff {c' d' e' f'}
1357 \new Staff {c' d' e' f'}
1364 Die vertikale Ausrichtung von Notensystemen wird
1365 von dem @code{VerticalAlignment}-Objekt vorgenommen.
1366 Die Kontextparameter für die vertikale Ausdehnung
1367 werden für den @code{Axis_group_engraver} angegeben.
1373 @c @lsr{spacing,page-spacing.ly},
1374 @c @lsr{spacing,alignment-vertical-spacing.ly}.
1376 Referenz der Interna:
1377 @rinternals{VerticalAlignment},
1378 @rinternals{Axis_group_engraver}.
1381 @node Vertical spacing between systems
1382 @subsection Vertical spacing between systems
1384 Der Platz zwischen Notensystembruppen wird von vier
1385 Variablen in der @code{\paper}-Umgebung kontrolliert:
1389 between-system-space = 1.5\cm
1390 between-system-padding = #1
1392 ragged-last-bottom=##f
1396 Wenn nur ein paar schmale Systeme auf eine Seite gesetzt werden,
1397 kann die vertikale Platzverteilung recht negativ ausfallen, so
1398 dass etwa ein System ganz oben auf der Seite und das nächste
1399 unten auf der Seite erscheint, mit einer großen Lücke dazwischen.
1400 Um derartige Situationen zu umgehen, kann der Platz, der zwischen
1401 Gruppen eingefügt wird, begrenzt werden. Dieses Verhalten wird
1402 aktiviert, indem die @code{page-limit-inter-system-space}-Variable
1403 in der @code{\paper}-Umgebung auf @code{##t} gesetzt wird. Die
1404 Variable @code{page-limit-inter-system-space-factor} bestimmt,
1405 um wieviel der Platz zwischen Gruppen gedehnt werden darf: Bei
1406 einem Wert von @code{1.3} etwa darf der Platz 30% größer sein
1407 als er es wäre, wenn die Seite mit der Option @code{ragged-bottom}
1408 gesetzt worden wäre.
1410 Im folgenden Beispiel würde das zweite System der ersten Seite
1411 unten auf der Seite gesetzt werden, wenn der Platz zwischen
1412 den Systemen nicht begrenzt wäre. Weil aber die Begrenzung
1413 eingesetzt wurde, wird das zweite System näher am ersten
1414 platziert. Wenn @code{page-limit-inter-system-space-factor}
1415 auf @code{1} gesetzt wird, wäre die Platzverteilung die gleiche
1416 auf einer Seite mit @code{ragged-bottom}, wie etwa die letzte
1417 Seite einer Partitur.
1420 #(set-default-paper-size "a6")
1423 page-limit-inter-system-space = ##t
1424 page-limit-inter-system-space-factor = 1.3
1426 oddFooterMarkup = \markup "page bottom"
1427 evenFooterMarkup = \markup "page bottom"
1428 oddHeaderMarkup = \markup \fill-line {
1429 "page top" \fromproperty #'page:page-number-string }
1430 evenHeaderMarkup = \markup \fill-line {
1431 "page top" \fromproperty #'page:page-number-string }
1433 \new Staff << \repeat unfold 4 { g'4 g' g' g' \break }
1434 { s1*2 \pageBreak } >>
1444 @node Explicit staff and system positioning
1445 @subsection Explicit staff and system positioning
1447 Man kann die Einstellungen des @code{VerticalAxisGroup}-Objekts
1448 und der @code{\paper}-Umgebung, wie sie im vorigen Abschnitt
1449 erklärt wurden, als eine Sammlung verschiedenerer Einstellmöglichkeiten
1450 verstehen, die vor allem die Größe des vertikalen Platzes zwischen
1451 Notensystemen und Gruppen auf der Seite kontrollieren.
1453 Die vertikale Platzverteilung kann aber auch auf andere Weise
1454 eingestellt werden: mit den Optionen von
1455 @code{NonMusicalPaperColumn #'line-break-system-details}. Während
1456 Einstellungen in @code{VerticalAxisGroup} und @code{\paper} Füllplatz
1457 definieren, werden mit
1458 @code{NonMusicalPaperColumn #'line-break-system-details} absolute vertikale
1459 Positionen auf der Seite festgelegt.
1461 @code{NonMusicalPaperColumn #'line-break-system-details} akzeptiert eine
1462 Liste aus fünf unterschiedlichen Einstellungen:
1465 @item @code{X-offset}
1466 @item @code{Y-offset}
1467 @item @code{alignment-offsets}
1468 @item @code{alignment-extra-space}
1469 @item @code{fixed-alignment-extra-space}
1472 Veränderungen von Grobs (wozu auch @code{NonMusicalPaperColumn} gehört),
1473 können an drei unterschiedlichen Stellen in der Quelldatei vorgenommen
1477 @item mitten im Notentext
1478 @item in einer @code{\context}-Umgebung
1479 @item in einer @code{\with}-Umgebung
1482 Wenn der Grob @code{NonMusicalPaperColumn} verändert werden soll,
1483 wird der @code{\override}-Befehl in der @code{\context} oder
1484 @code{\with}-Umgebung eingesetzt. Wenn die Veränderungen aber
1485 mitten im Notentext stattfinden sollen, müssen Sie den Befehl
1486 @code{\overrideProperty} einsetzen. Einige Beispiele für eine
1487 Veränderungen von @code{NonMusicalPaperColumn} mit dem
1488 @code{\overrideProperty}-Befehl sind hier aufgelistet:
1491 \overrideProperty NonMusicalPaperColumn
1492 #'line-break-system-details #'((X-offset . 20))
1494 \overrideProperty NonMusicalPaperColumn
1495 #'line-break-system-details #'((Y-offset . 40))
1497 \overrideProperty NonMusicalPaperColumn
1498 #'line-break-system-details #'((X-offset . 20) (Y-offset . 40))
1500 \override NonMusicalPaperColumn
1501 #'line-break-system-details #'((alignment-offsets . (0 -15)))
1503 \override NonMusicalPaperColumn
1504 #'line-break-system-details #'((X-offset . 20) (Y-offset . 40)
1505 (alignment-offsets . (0 -15)))
1508 Um zu verstehen, wie jede dieser unterschiedlichen Einstellungen
1509 funktioniert, wollen wir uns ein Beispiel vornehmen, dass überhaupt
1510 keine Einstellungen (d.h. @code{override}-Befehle) enthält:
1512 @c \book { } is required in these examples to ensure the spacing
1513 @c overrides can be seen between systems. -np
1516 \header { tagline = ##f }
1517 \paper { left-margin = 0\mm }
1527 \new Voice { \repeat unfold 15 { c'4 c' c' c' } }
1530 \repeat unfold 15 { d'4 d' d' d' }
1537 Diese Partitur nimmt Zeilen- und Seitenumbruchinformationen in einer
1538 eigenen Stimme vor. Mit dieser Methode kann die Layout-Information
1539 einfach von den Noten getrennt werden, was sehr hilfreich ist, wenn
1540 das Beispiel komplizierter wird. Siehe auch
1541 @ref{Using an extra voice for breaks}.
1543 Ausdrückliche @code{\break}-Befehle teilen die Noten in sechs Takte
1544 lange Zeilen. Die vertikale Platzverteilung wird von LilyPond
1545 errechnet. Um den vertikalen Beginn einer jeden Systemgruppe
1546 genau anzugeben, kann @code{Y-offset} in der
1547 @code{line-break-system-details}-Eigenschaft des
1548 @code{NonMusicalPaperColumn}-Grobs wie in dem Beispiel
1549 ersichtlich benutzt werden:
1552 \header { tagline = ##f }
1553 \paper { left-margin = 0\mm }
1559 \overrideProperty #"Score.NonMusicalPaperColumn"
1560 #'line-break-system-details #'((Y-offset . 0))
1562 \overrideProperty #"Score.NonMusicalPaperColumn"
1563 #'line-break-system-details #'((Y-offset . 40))
1565 \overrideProperty #"Score.NonMusicalPaperColumn"
1566 #'line-break-system-details #'((Y-offset . 80))
1569 \new Voice { \repeat unfold 15 { c'4 c' c' c' } }
1572 \repeat unfold 15 { d'4 d' d' d' }
1579 In der @code{line-break-system-details}-Eigenschaft kann eine Liste
1580 mit vielen Einstellungen eingegeben werden, aber hier wird nur eine
1581 Einstellung angegeben. Die @code{Y-offset}-Eigenschaft bestimmt
1582 hier die exakte vertikale Position auf der Seite, an welcher jede
1583 neue Systemgruppe begonnen wird.
1585 Da jetzt der exakte Beginn eines jeden Systems explizit festgelegt wurde,
1586 können wir auch den exakten Beginn eines jeden Notensystems in der
1587 Gruppe festlegen. Dies geschieht mit der @code{alignment-offsets}-Eigenschaft
1588 von @code{line-break-system-details}.
1591 \header { tagline = ##f }
1592 \paper { left-margin = 0\mm }
1598 \overrideProperty #"Score.NonMusicalPaperColumn"
1599 #'line-break-system-details #'((Y-offset . 20)
1600 (alignment-offsets . (0 -15)))
1602 \overrideProperty #"Score.NonMusicalPaperColumn"
1603 #'line-break-system-details #'((Y-offset . 60)
1604 (alignment-offsets . (0 -15)))
1606 \overrideProperty #"Score.NonMusicalPaperColumn"
1607 #'line-break-system-details #'((Y-offset . 100)
1608 (alignment-offsets . (0 -15)))
1611 \new Voice { \repeat unfold 15 { c'4 c' c' c' } }
1614 \repeat unfold 15 { d'4 d' d' d' }
1621 Dem @code{line-break-system-details}-Attribut des
1622 @code{NonMusicalPaperColumn}-Grobs werden zwei Eigenschaften
1623 zugewiesen. Auch wenn die Liste (alist) von
1624 @code{line-break-system-details} sehr viel mehr Platzierungsparameter
1625 akzeptiert, müssen hier nu die Parameter @code{Y-offset} und
1626 @code{alignment-offsets} gesetzt werden, um den vertikalen Beginn
1627 jedes Systems und jeder Systemgruppe zu kontrollieren. @code{Y-offset}
1628 bestimmt also die vertikale Position von Systemgruppen und @code{alignment-offsets}
1629 die vertikale Position von einzelnen Notensystemen.
1632 \header { tagline = ##f }
1633 \paper { left-margin = 0\mm }
1639 \overrideProperty #"Score.NonMusicalPaperColumn"
1640 #'line-break-system-details #'((Y-offset . 0)
1641 (alignment-offsets . (0 -30 -40)))
1643 \overrideProperty #"Score.NonMusicalPaperColumn"
1644 #'line-break-system-details #'((Y-offset . 60)
1645 (alignment-offsets . (0 -10 -20)))
1647 \overrideProperty #"Score.NonMusicalPaperColumn"
1648 #'line-break-system-details #'((Y-offset . 100)
1649 (alignment-offsets . (0 -10 -40)))
1652 \new Voice { \repeat unfold 15 { c'4 c' c' c' } }
1655 \new Staff { \repeat unfold 15 { d'4 d' d' d' } }
1656 \new Staff { \repeat unfold 15 { e'4 e' e' e' } }
1663 Einige Dinge sollten beachtet werden:
1666 @item Wenn @code{alignment-offsets} benutzt wird, werden Gesangtextzeilen
1667 als ein System gezählt.
1669 @item Die Einheiten der Zahlen, die für @code{X-offset},
1670 @code{Y-offset} und @code{alignment-offsets} benutzt werden, werden als
1671 Vielfaches des Abstandes zwischen zwei Notenlinien gewertet. Positive
1672 Werte verschieben Systeme und Gesangstext nach oben, negative Werte nach
1675 @item Weil die Einstellungen von @code{NonMusicalPaperColumn #'line-break-system-details}
1676 es möglich machen, Notensysteme und Gruppen an beliebigen Stellen auf der
1677 Seite zu platzieren, kann man damit auch Ränder überschreiben oder sogar
1678 Notensysteme übereinander platzieren. Sinnvolle Werte für diese
1679 Parameter werden derartiges Verhalten vermeiden.
1688 @node Two-pass vertical spacing
1689 @subsection Two-pass vertical spacing
1691 @warning{Vertikale Positionierung in zwei Durchgängen ist veraltet
1692 (deprecated) und wird in zukünftigen Versionen von LilyPond entfernt
1693 werden. Systeme werden jetzt automatisch in einem einzigen
1694 Durchlauf gedehnt. Siehe auch @ref{Vertical spacing inside a system}.}
1696 Um Systeme zu dehnen, sodass sie den restlichen Platz auf der Seite
1697 auffüllen, kann ein Verfahren benutzt werden, dass die Positionierung
1698 in zwei Durchläufen ermittelt:
1701 @item Im ersten Durchlauf wird der Platz berechnet, um den jede
1702 Systemgruppe gedehnt werden sollte und in eine Datei geschrieben.
1703 @item Im zweiten Durchlauf werden die Systemgruppen anhand der
1704 Daten aus dieser Datei entsprechend gedehnt.
1707 Die @code{ragged-bottom}-Eigenschaft fügt den Platz zwischen
1708 Systemgruppen ein, während mit der Technik in zwei Durchläufen
1709 die Systemgruppen selber gedehnt werden.
1711 Um dieses Verhalten zu erzeugen, muss die @code{tweak-key}-Eigenschaft
1712 in der @code{\layout}-Umgebung jeder Partitur definiert werden und diese
1713 Anpassungen dann in jeder Paritur mit dem Befehl @code{\scoreTweak}
1718 %% die erstellte Layout-Datei einfügen
1719 \includePageLayoutFile
1724 %% Anpassungen für diese Partitur einfügen
1725 \scoreTweak "scoreA"
1726 { \clef french c''1 \break c''1 }
1728 \new Staff { \clef soprano g'1 g'1 }
1729 \new Staff { \clef mezzosoprano e'1 e'1 }
1730 \new Staff { \clef alto g1 g1 }
1731 \new Staff { \clef bass c1 c1 }
1734 piece = "Score with tweaks"
1736 %% Definieren, wie die Anpassungen für diese Datei genannt werden:
1737 \layout { #(define tweak-key "scoreA") }
1742 Für den ersten Durchgang sollte die @code{dump-tweaks}-Option gesetzt
1743 werden, damit die Layout-Datei erstellt wird.
1746 lilypond -dbackend=null -d dump-tweaks <file>.ly
1756 @node Vertical collision avoidance
1757 @subsection Vertical collision avoidance
1759 @cindex Vermeidung von vertikalen Zusammenstößen
1760 @cindex Zusammenstöße, vertikal, vermeiden
1761 @cindex vertikale Zusammenstöße, vermeiden
1762 @cindex Kollisionen, vertikal, vermeiden
1764 @funindex outside-staff-priority
1765 @funindex outside-staff-padding
1766 @funindex outside-staff-horizontal-padding
1768 Intuitiv gibt es in der Notation einige Objekte, die zu dem Notensystem
1769 gehören, und einige andere, die immer außerhalb des Notensystems
1770 positioniert werden sollten. Zu diesen letzteren gehören etwa
1771 Übungszeichen, Textbeschriftung und Dynamikbezeichnung (die als
1772 Objekte außerhalb des Systems bezeichnet werden können). LilyPonds
1773 Regeln um diese Objekte zu positionieren lautet: so nah am Notensystem
1774 wie möglich, aber gerade so weit weg, dass sie nicht mit anderen
1775 Objekten zusammenstoßen.
1777 Dabei setzt LilyPon die @code{outside-staff-priority}-Eigenschaft
1778 ein um herauszufinden, ob ein Grob ein Objekt außerhalb des Systems
1779 ist: wenn @code{outside-staff-priority} eine Zahl ist, dann handelt
1780 es sich um ein Objekt außerhalb des Systems. Zusätzlich teilt
1781 @code{outside-staff-priority} noch mit, in welcher Reihenfolge
1782 die Objekte außerhalb des Systems gesetzt werden sollen.
1784 Zuerst werden alle Objekte gesetzt, die nicht außerhalb des Systems
1785 gehören. Dann werden die Objekte außerhalb des Systems nach dem Wert
1786 ihrer @code{outside-staff-priority} (in aufsteigender Anordnung)
1787 sortiert. Eins nach dem anderen werden diese Objekte schließlich
1788 genommen und so platziert, dass sie nicht mit den Objekten zusammenstoßen,
1789 die bereits platziert worden sind. Wenn also zwei Objekte außerhalb
1790 des Systems um den gleichen Platz streiten, wird das mit dem
1791 geringeren Wert von @code{outside-staff-priority} näher an das
1792 entsprechende Notensystem gesetzt.
1794 @lilypond[quote,ragged-right,relative=2,fragment,verbatim]
1797 \once \override TextScript #'outside-staff-priority = #1
1798 c4_"Text"\pp % this time the text will be closer to the staff
1800 % by setting outside-staff-priority to a non-number,
1801 % we disable the automatic collision avoidance
1802 \once \override TextScript #'outside-staff-priority = ##f
1803 \once \override DynamicLineSpanner #'outside-staff-priority = ##f
1804 c4_"Text"\pp % now they will collide
1807 Der Platz, der zwischen einem Objekt außerhalb des Systems und
1808 dem vorhergehenden Objekt eingefügt werden kann (auch als
1809 padding bezeichnet), kann durch @code{outside-staff-padding}
1810 kontrolliert werden.
1812 @lilypond[quote,ragged-right,relative=2,fragment,verbatim]
1813 \once \override TextScript #'outside-staff-padding = #0
1814 a'^"This text is placed very close to the note"
1815 \once \override TextScript #'outside-staff-padding = #3
1816 c^"This text is padded away from the previous text"
1817 c^"This text is placed close to the previous text"
1820 Standardmäßig werden Objekte außerhalb des Systems so gesetzt,
1821 dass sie eine horizontale Überschneidung mit einem der
1822 vorher gesetzten Grobs vermeiden. Das kann zu Situationen
1823 führen, in denen Objekte sehr dicht nebeneinander gesetzt
1824 werden. Der vertikale Platz zwischen Notensystemen kann
1825 auch gesetzt werden, sodass Objekte außerhalb des Systems
1826 ineinander greifen. Mit der Eigenschaft
1827 @code{outside-staff-horizontal-padding} können Objekte vertikal
1828 verschoben werden und derartige Situationen kommen nicht
1831 @lilypond[quote,ragged-right,relative=2,fragment,verbatim]
1832 % the markup is too close to the following note
1836 % setting outside-staff-horizontal-padding fixes this
1838 \once \override TextScript #'outside-staff-horizontal-padding = #1
1849 @node Horizontal spacing
1850 @section Horizontal spacing
1852 @cindex horizontale Platzierung
1853 @cindex horizontale Anordnung
1854 @cindex Anordnung, horizontal
1857 * Horizontal spacing overview::
1858 * New spacing area::
1859 * Changing horizontal spacing::
1861 * Proportional notation::
1865 @node Horizontal spacing overview
1866 @subsection Horizontal spacing overview
1868 Die Setzmaschine interpretiert unterschiedliche Notendauern als
1869 dehnbare Abstände (engl. spring) unterschiedlicher Länge. Längere
1870 Dauern erhalten mehr Platz, kürzere weniger. Die kürzeste Dauer
1871 erhält eine feste Breite (die mit @code{shortest-duration-space}
1872 im @code{SpacingSpanner}-Objekt kontrolliert werden kann). Je
1873 länger die Dauer, umso mehr Platz erhält die Note: wenn ihre
1874 Dauer verdoppelt wird, wird ein bestimmter Platz hinzugefügt
1875 (dessen Breite durch @code{spacing-increment} bestimmt werden
1878 Das folgende Stück beispielsweise enthält Halbe, Viertel und Achtel.
1879 Die Achtelnote wird gefolgt von einem Notenkopfabstand (NKA). Die
1880 Viertel wird von 2 NKA gefolgt, die Halbe von 3 NKA usw.
1882 @lilypond[quote,fragment,verbatim,relative=1]
1883 c2 c4. c8 c4. c8 c4. c8 c8
1887 Normalerweise ist @code{spacing-increment} definiert als 1.2 mal
1888 der Abstand zwischen zwei Notenlinien, was in etwa die Breite eines
1889 Notenkopfes ist. @code{shortest-duration-space} ist definiert als
1890 2.0, was bedeutet, dass die kürzeste Note 2.4 Notenlinienabstände
1891 2.0 mal der Wert von @code{spacing-increment}) horizontalen
1892 Abstand erhält. Der Abstand wirdvon der linken Kande des Symbols
1893 errechnet, so dass die kürzeste Note üblicherweise von 1 NKA
1894 Abstand gefolgt wird.
1896 Wenn diese Herangehensweise konsequent angewandt würde, würde eine
1897 einzige Zweiunddreißigstel eine Partitur, in der vor allem Achtel und
1898 Sechzehntel vorkommen, sehr weit auseinanderdehnen. Die kürzeste
1899 Note wäre nun keine Sechzehntel mehr, sondern eine Zweiunddreißigstel,
1900 wodurch an jede Note der Wert von 1 NKA hinzugefügt würde. Um das
1901 zu vermeiden, ist die kürzeste Dauer für die Platzverteilung nicht die
1902 kürzeste Note einer Partitur, sondern die, die am häufigsten vorkommt.
1904 Die Notendauer, die am häufigsten vorkommt, wird auf folgende
1905 Weise bestimmt: in jedem Takt wird die kürzeste Note bestimmt. Die
1906 häufigste kürzeste Note wird dann als Grundlage für die Platzverteilung
1907 der Noten herangezogen, mit der Bedingung, dass diese kürzeste
1908 Note immer ein Achtel oder kürzer sein soll. Die kürzeste Dauer
1909 wird ausgegeben, wenn @code{lilypond} mit der Option @code{--verbose}
1912 Diese Dauern können aber auch angepasst werden. Wenn Sie die Eigenschaft
1913 @code{common-shortest-duration} in dem @code{SpacingSpanner} setzen,
1914 dann wird hiermit die Grunddauer für die Platzverteilung eingestellt.
1915 Die maximale Dauer für diesen Grundwert (normalerweise eine Achtel)
1916 wird definiert mit @code{base-shortest-duration}.
1918 @funindex common-shortest-duration
1919 @funindex base-shortest-duration
1920 @funindex stem-spacing-correction
1923 Noten, die noch kürzer sind als die häufigste kürzeste Note, werden
1924 durch einen Platz voneinander getrennt, der proportional zu ihrer
1925 Dauer in Beziehung zur häufigsten kürzesten Note ist. Wenn also
1926 nur ein paar Sechszehntel zu dem obigen Beispiel hinzugefügt werden,
1927 würden sie von 1/2 NKA gefolgt werden:
1929 @lilypond[quote,fragment,verbatim,relative=2]
1930 c2 c4. c8 c4. c16[ c] c4. c8 c8 c8 c4 c4 c4
1933 In der Einleitung (siehe @rlearning{Engraving}) wurde erklärt, dass die
1934 Richtung der Notenhälse die Platzverteilung beeinflusst. Das wird
1935 kontrolliert durch die @code{stem-spacing-correction}-Eigenschaft
1936 in dem @code{NoteSpacing}-Objekt. Dieses Objekt wird für jeden
1937 @code{Voice}-Kontext erstellt. Das @code{StaffSpacing}-Objekt (in
1938 einem @code{Staff}-Kontext erstellt) enthält die gleiche Eigenschaft,
1939 um die Verteilung von Hälsen neben Taktlinien zu kontrollieren. In
1940 dem folgenden Beispiel werden diese Einstellungen gezeigt, einmal
1941 mit den Standardwerten und dann mit größeren Werten, damit man sie
1944 @lilypond[quote,ragged-right]
1948 \override Staff.NoteSpacing #'stem-spacing-correction = #1.5
1949 \override Staff.StaffSpacing #'stem-spacing-correction = #1.5
1955 Proportionale Notation ist unterstützt, siehe @ref{Proportional notation}.
1961 Referenz der Interna:
1962 @rinternals{SpacingSpanner},
1963 @rinternals{NoteSpacing},
1964 @rinternals{StaffSpacing},
1965 @rinternals{SeparationItem}.
1969 Es gibt keine sinnvolle Möglichkeit, die horizontale Verteilung der
1970 Noten zu unterdrücken. Die folgende Problemumgehung kann benutzt
1971 werden, um zusätzlichen Platz in eine Partitur einzufügen.
1974 \once \override Score.SeparationItem #'padding = #1
1977 Es gibt derzeit keine Möglichkeit, den Platz zu verringern.
1980 @node New spacing area
1981 @subsection New spacing area
1983 @cindex horizontale Notenabstände, Abschnitte definierten
1984 @cindex Notenabstände, Abschnitte definieren
1985 @cindex Abschnitte definieren, Notenabstände
1987 Neue Abschnitte mit unterschiedlichen Notenabstandsparametern
1988 können mit dem Befehl @code{newSpacingSection} begonnen werden.
1989 Das ist hilfreich, wenn in verschiedenen Abschnitten die
1990 Verhältnisse von kurzen und langen Noten sehr unterschiedlich
1993 Im folgenden Beispiel wird durch die neue Taktart ein neuer
1994 Abschnitt begonnen, in dem die Sechszehntel weiter außeinander
1995 gesetzt werden sollen.
1997 @lilypond[relative,fragment,verbatim,quote]
2000 c8 c c4 c16[ c c8] c4
2006 Der @code{\newSpacingSection}-Befehl erstellt ein neues
2007 @code{SpacingSpanner}-Objekt, weshalb auch neue Anpassungen
2008 mit dem @code{\override}-Befehl an dieser Stelle eingesetzt
2015 Referenz der Interna:
2016 @rinternals{SpacingSpanner}.
2019 @node Changing horizontal spacing
2020 @subsection Changing horizontal spacing
2022 @cindex Notenabstände, horizontal
2023 @cindex horizontale Abstände
2024 @cindex horizontale Notenabstände
2026 Die horizontalen Abstände können mit der
2027 @code{base-shortest-duration}-Eigenschaft
2028 verändert werden. In den folgenden Beispielen
2029 werden die gleichen Noten eingesetzt, zuerst
2030 ohne die Eigenschaft zu verändern, im zweiten
2031 Beispiel dann mit einem anderen Wert. Größere
2032 Werte für @code{ly:make-moment} ergeben dichtere
2033 Noten. @code{ly:make-moment} erstellt eine Dauer,
2034 die als Bruch notiert wird, sodass @code{1 4}
2035 eine größere Dauer ist als @code{1 16}.
2037 @lilypond[verbatim,line-width=12\cm]
2040 g4 e e2 | f4 d d2 | c4 d e f | g4 g g2 |
2041 g4 e e2 | f4 d d2 | c4 e g g | c,1 |
2042 d4 d d d | d4 e f2 | e4 e e e | e4 f g2 |
2043 g4 e e2 | f4 d d2 | c4 e g g | c,1 |
2048 @lilypond[verbatim,line-width=12\cm]
2051 g4 e e2 | f4 d d2 | c4 d e f | g4 g g2 |
2052 g4 e e2 | f4 d d2 | c4 e g g | c,1 |
2053 d4 d d d | d4 e f2 | e4 e e e | e4 f g2 |
2054 g4 e e2 | f4 d d2 | c4 e g g | c,1 |
2059 \override SpacingSpanner
2060 #'base-shortest-duration = #(ly:make-moment 1 16)
2069 Standardmäßig wird die Platzverteilung in Triolen und andern
2070 rhythmischen Aufteilungen nach verschiedenen nicht von der
2071 Dauer abgeleiteten Faktoren (wie Versetzungszeichen,
2072 Schlüsselwechseln usw.) berechnet. Um diese Symbole zu
2073 ignorieren und eine gleichmäßige Verteilung der Noten
2074 zu erzwingen, kann die gleichmäßige Dehnung (engl.
2075 uniform stretching) zu Beginn einer Partitur eingeschaltet
2078 @lilypond[quote,ragged-right,relative=2,fragment,verbatim]
2080 \override SpacingSpanner #'uniform-stretching = ##t
2097 Wenn @code{strict-note-spacing} eingestellt ist, werden Noten
2098 gesetzt, ohne dass Schlüssel, Taktlinine oder Verzierungsnoten
2099 zusätzlichen Platz erhalten.
2101 @lilypond[quote,ragged-right,relative=2,fragment,verbatim]
2102 \override Score.SpacingSpanner #'strict-note-spacing = ##t
2103 \new Staff { c8[ c \clef alto c \grace { c16[ c] } c8 c c] c32[ c32] }
2113 @subsection Line length
2115 @cindex Seitenumbrüche
2116 @cindex Umbrechen von Seiten
2118 @cindex Länge von Zeilen
2121 @funindex line-width
2122 @funindex ragged-right
2123 @funindex ragged-last
2125 @c Although line-width can be set in \layout, it should be set in paper
2126 @c block, to get page layout right.
2127 @c Setting indent in \paper block makes not much sense, but it works.
2129 @c Bit verbose and vague, use examples?
2130 Die grundlegenden Einstellungen, die Einfluss auf die Zeilenlänge
2131 haben, sind @code{indent} (Einzug) und @code{line-width}
2132 (Zeilenbreite). Sie werden in der @code{\layout}-Umgebung
2133 einestellt. Der erste Befehl bestimmt den Einzug der ersten
2134 Zeile, der zweite die Zeilenlänge der weiteren Notenzeilen.
2136 Wenn @code{ragged-right} eingestellt ist (als in der
2137 @code{\layout}-Umgebung auf den Wert @code{#t} gesetzt wurde),
2138 werden die Systeme linksbündig gesetzt und nicht bis zum
2139 rechten Rand hin durchgezogen, sondern den Noten entsprechend
2140 gesetzt. Das ist oftmals nützlich für kleine Notenfragmente
2141 und um zu überprüfen, wie eng die Noten natürlicherweise
2142 gesetzt werden würden.
2144 Die Option @code{ragged-last} verhält sich ähnlich zu @code{ragged-right},
2145 aber wirkt sich nur auf die letzte Zeile eines Stückes aus.
2146 Für diese letzte Zeile gibt es keine Einschränkungen. Das
2147 Resultat erinnert an Textabsätze im Blocksatz, wo die letzte
2148 Zeile des Absatzes mit ihrer natürlichen Länge gestzt wird.
2163 @node Proportional notation
2164 @subsection Proportional notation
2166 LilyPond hat Unterstützung für proportionale Notation. Dabei handelt
2167 es sich um eine horizontale Platzverteilung, die jeder Note einen
2168 exakt ihrer Dauer entsprechenden Platz zuordnet. Man kann es vergleichen
2169 mit der Notenplatzierung auf einem Raster. In einigen Partituren
2170 des späten 20. und frühen 21. Jahrhunderts wird dies proportionale
2171 Notation benutzt, um sehr komplizierte rhythmische Verhältnisse
2172 klarer darzustellen, oder um einen Zeitstrahl oder ähnliche Graphiken
2173 direkt in die Partitur zu integrieren.
2175 LilyPond hat Unterstützung für fünf verschiedene Einstellungen der
2176 proportionalen Notation, die alle zusammen oder jede für sich
2177 benutzt werden können:
2180 @item @code{proportionalNotationDuration} (proportionale Notendauer)
2181 @item @code{uniform-stretching} (gleichmäßige Dehnung)
2182 @item @code{strict-note-spacing} (strenge Notenverteilung)
2183 @item @code{\remove Separating_line_group_engraver} (entferne Liniengruppentrennungsengraver)
2184 @item @code{\override PaperColumn #'used = ##t} (PapierSpalte benutzt = wahr)
2187 In den Beispielen unten werden diese fünf unterschiedlichen Einstellungen
2188 für die proportionale Notation vorgestellt und ihre Wirkungen
2189 untereinander illustriert.
2191 Es soll mit diesem 1 Takt langen Beispiel begonnen werden, in welchem
2192 die klassischen Abstände und Flattersatz (ragged-right) eingesetzt werden:
2194 @lilypond[quote,verbatim,ragged-right]
2196 \new RhythmicStaff {
2200 c'16 c'16 c'16 c'16 c'16
2206 Die Halbe, mit der der Takt beginnt, braucht weitaus weniger
2207 Platz als die Hälfte des Taktes. Gleichermaßen haben die
2208 Sechszehntel und die Sechszehntel-Quintolen (oder Zwanzigstel),
2209 mit denen der Takt endet, insgesamt weitaus mehr als die Hälfte
2212 Im klassischen Notensatz kann dieses Verhalten genau das gewünschte
2213 Ergebnis bringen, weil dadurch horizontaler Platz von der Halben
2214 weggenommen werden kann und so insgesamt Platz in dem Takt eingespart
2217 Wenn allerdings ein Zeitstrahl oder andere zeitliche ablaufende
2218 Graphiken über oder unter dem Takt eingefügt werden soll, braucht man
2219 eine Notenplatzierung, die exakt der von ihnen eingenommenen Dauer
2220 entspricht. Auf folgende Art wird die proportionale Notation
2223 @lilypond[quote,verbatim,ragged-right]
2225 proportionalNotationDuration = #(ly:make-moment 1 20)
2227 \new RhythmicStaff {
2231 c'16 c'16 c'16 c'16 c'16
2237 Die Halbe zu Beginn des Taktes und die schnelleren Noten in der zweiten
2238 Takthälfte nehmen jetzt genau den gleichen horizontalen Platz ein. Jetzt
2239 könnte man einen Zeitstrahl mit dem Takt synchronisieren.
2241 Die Einstellung von @code{proportionalNotationDuration} gehört zum
2242 @code{Score}-Kontext. Kontexteinstellungen können an drei verschiedenen
2243 Stellen in der Quelldatei geschrieben werden: in einer @code{\with}-Umgebung,
2244 in einer @code{\context}-Unmgebung oder direkt in den Noten mit dem
2245 @code{\set}-Befehl. Alle drei Positionen sind gleichwertig und es hängt
2246 vom Benutzer ab, welche bevorzugt wird.
2248 Die Eigenschaft @code{proportionalNotationDuration} braucht ein Argument,
2249 welches die Referenzdauer ist, anhand welcher alle Noten platziert werden.
2250 Hier wird die LilyPond Scheme-Funktion @code{make-moment} eingesetzt. Sie
2251 braucht zwei Argumente: einen Zähler und einen Nenner, die einen Bruch einer
2252 Ganzen darstellen. Die Funktion @code{#(ly:make-moment 1 20)} ergibt also
2253 eine Referenzdauer von einer Zwanzigstel. Genauso gut können etwa die Dauern
2254 @code{#(ly:make-moment 1 16)}, @code{#(ly:make-moment 1 8)} oder
2255 @code{#(ly:make-moment 3 97)} eingesetzt werden.
2257 Die richtige Referenzdauer, mit der eine vernünftige Verteilung der Noten
2258 proportional möglich ist, muss durch Ausprobieren herausgefunden werden.
2259 Dabei sollte man mit einer Dauer beginnen, die der kleinsten Note des
2260 Stückes nahekommt. Kleine Referenzdauern lassen die Noten sehr gedehnt
2261 erscheinen, größere Referenzdauern zwingen sie dichter zusammen.
2263 @lilypond[quote,verbatim,ragged-right]
2265 proportionalNotationDuration = #(ly:make-moment 1 8)
2267 \new RhythmicStaff {
2271 c'16 c'16 c'16 c'16 c'16
2277 proportionalNotationDuration = #(ly:make-moment 1 16)
2279 \new RhythmicStaff {
2283 c'16 c'16 c'16 c'16 c'16
2289 proportionalNotationDuration = #(ly:make-moment 1 32)
2291 \new RhythmicStaff {
2295 c'16 c'16 c'16 c'16 c'16
2301 Man muss beachten, dass die Referenzdauer nicht zu groß ist
2302 (wie die Achtel in dem Beispiel oben), denn dadurch werden
2303 die Noten so dicht gesetzt, dass sich eventuell sogar Notenköpfe
2304 von sehr kleinen Notenwerten überschneiden können. Die proportionale
2305 Notation nimmt üblicherweise mehr Platz ein als die klassische
2306 Platzverteilung. Der rhythmischen Klarheit muss ein eng gesetztes
2307 Notenbild geopfert werden.
2309 In Folgenden soll betrachtet werden, wie sich überlappende
2310 rhythmische Aufteilungen am besten positioniert werden. Als Referenz
2311 wird das erste Beispiel herangezogen, zu welchem ein zweites
2312 System mit anderen rhythmischen Werten hinzugefügt wird:
2314 @lilypond[quote,verbatim,ragged-right]
2316 \new RhythmicStaff {
2320 c'16 c'16 c'16 c'16 c'16
2323 \new RhythmicStaff {
2325 c'8 c'8 c'8 c'8 c'8 c'8 c'8 c'8 c'8
2331 Die Platzaufteilung ist schlecht, weil die gleichlangen Noten des
2332 untersten Systems nicht gleichmäßig verteilt sind. Im klassischen
2333 Notensatz kommen komplexe rhythmische Verhältnisse wie dieses sehr
2334 selten vor, sodass der Notensatz nicht in Hinsicht auf sie optimiert
2335 ist. @code{proportionalNotationDuration} hilft in
2336 dieser Situation deutlich:
2338 @lilypond[quote,verbatim,ragged-right]
2340 proportionalNotationDuration = #(ly:make-moment 1 20)
2342 \new RhythmicStaff {
2346 c'16 c'16 c'16 c'16 c'16
2349 \new RhythmicStaff {
2351 c'8 c'8 c'8 c'8 c'8 c'8 c'8 c'8 c'8
2357 Aber bei sehr genauer Betrachtung sind die Noten der zweiten Hälfte
2358 der Nonole doch immernoch eine Spur weiter gesetzt als die Noten
2359 der ersten Hälfte. Um wirklich gleichmäßige Abstände zu erzwingen,
2360 sollte auch noch die gleichmäßige Dehnung angeschaltet werden:
2362 @lilypond[quote,verbatim,ragged-right]
2364 proportionalNotationDuration = #(ly:make-moment 1 20)
2365 \override SpacingSpanner #'uniform-stretching = ##t
2367 \new RhythmicStaff {
2371 c'16 c'16 c'16 c'16 c'16
2374 \new RhythmicStaff {
2376 c'8 c'8 c'8 c'8 c'8 c'8 c'8 c'8 c'8
2382 Das Beispiel mit den zwei Systemen ist nun exakt nach den
2383 rhythmischen Werten der Noten gesetzt, sodass ein Zeitstrahl
2384 oder ähnliches eingefügt werden könnte.
2386 Alle Einstellungen zur proportionalen Notation erwarten,
2387 dass die @code{uniform-stretching}-Eigenschaft des
2388 @code{SpacingSpanner}-Objekts auf wahr gesetzt wird. Andernfalls
2389 kann es vorkommen, dass bestimmte Abstände (etwa von
2390 unsichtbaren Noten) nicht richtig gesetzt werden.
2392 Das @code{SpacingSpanner}-Objekt ist ein abstraktes Grob, dass sich im
2393 @code{Score}-Kontext befindet. Genauso wie die Einstellungen
2394 von @code{proportionalNotationDuration} können auch diese
2395 Veränderungen an den drei Stellen in der Quelldatei vorkommen:
2396 in der @code{\with}-Umgebung innerhalb von @code{Score}, in
2397 einer @code{\context}-Umgebung oder direkt im Notentext.
2399 Standardmäßig gibt es nur ein @code{SpacingSpanner} pro @code{Score}.
2400 Das heißt, dass @code{uniform-stretching} für die gesamte Partitur
2401 (d.h. für die Reichweite von @code{Score}) entweder an- oder
2402 ausgeschaltet ist. Man kann allerdings in einer Partitur unterschiedliche
2403 Abschnitte mit verschiedenem Platzierungsverhalten definieren.
2404 Hierzu ist der Befehl @code{\newSpacingSection} da. Siehe auch @ref{New spacing area}.
2406 Im Folgenden soll gezeigt werden, wie sich der @code{Separating_line_group_engraver}
2407 auswirkt und warum er normalerweise für proportionale Notation ausgeschaltet wird.
2408 In diesem Beispiel wird verdeutlicht, dass vor jeder ersten Note eines Notensystems
2409 immer etwas zusätzlicher Platz gesetzt wird:
2411 @lilypond[quote,verbatim,ragged-right]
2423 Der gleiche horizontale Platz wird vor eine Noten gesetzt, wenn sie
2424 einer Taktart, einem Schlüssel oder einer Tonartbezeichnung folgt.
2425 Dieser Platz wird durch @code{Separating_line_group_engraver}
2426 eingefügt; wenn wir ihn aus der Partitur entfernen, entfällt
2427 auch dieser zusätzliche Platz:
2429 @lilypond[quote,verbatim,ragged-right]
2435 \remove Separating_line_group_engraver
2443 Nichmusikalische Elemente wir Takt- und Tonartangaben, Schlüssel und
2444 Versetzungszeichen sind problematisch in proportionaler
2445 Notation. Keine dieser Elemente hat eine rhythmische Dauer, aber
2446 alle brauchen horizontalen Platz. Das Problem wird auf unterschiedliche
2449 Es ist manchmal möglich, Probleme mit Tonarten zu lösen, indem keine
2450 benutzt werden. Das ist durchaus eine ernstzunehmende Option, weil
2451 die meisten Partituren mit proportionaler Notation für heutige
2452 Musik geschrieben werden. Ähnliches gilt für Taktarten, insbesondere,
2453 wenn ein Zeitstrahl in die Partitur eingearbeitet werden soll.
2454 In den meisten Parituren kommt jedoch irgendeine Taktart vor.
2455 Schlüssel und Versetzungszeichen sind noch wichtiger; auf
2456 sie kann selten verzichtet werden.
2458 Eine Lösungsmöglichkeit ist es, die @code{strict-note-spacing}-Eigenschaft
2459 des @code{SpacingSpanner}-Objekts zu benutzen. Zum Vergleich
2460 die beiden Partituren unten:
2462 @lilypond[quote,verbatim,ragged-right]
2464 \set Score.proportionalNotationDuration = #(ly:make-moment 1 16)
2474 \set Score.proportionalNotationDuration = #(ly:make-moment 1 16)
2475 \override Score.SpacingSpanner #'strict-note-spacing = ##t
2485 Bei beiden handelt es sich um proportionale Notation, aber
2486 die Platzverteilung im oberen Beispiel ist zu weit wegen
2487 des Schlüsselwechsels. Die Platzverteilung des zweiten
2488 Beispiels dagegen bleibt rhythmisch korrekt.
2489 @code{strict-note-spacing} bewirkt, dass Takt- und
2490 Tonartbezeichnungen, Schlüssel und Versetzungszeichen
2491 keine Rolle bei der Berechnung der Abstände spielen.
2493 Zusätzlich zu den hier vorgestellten Einstellungen gibt es
2494 noch eine Reihe von Möglichkteiten, die oft in proportionaler
2495 Notation benutzt werden. Dazu gehören:
2498 @item @code{\override SpacingSpanner #'strict-grace-spacing = ##t}
2499 @item @code{tupletFullLength = ##t}
2500 @item @code{\override Beam #'breakable = ##t}
2501 @item @code{\override Glissando #'breakable = ##t}
2502 @item @code{\override TextSpanner #'breakable = ##t}
2503 @item @code{\remove Forbid_line_break_engraver in the Voice context}
2506 Diese Einstellungn bewirken, dass auch Verzierungsnoten proportional
2507 gesetzt werden, dass Klammern von rhythmischen Gruppen bis zu den
2508 Anfangs- und Endpunkten ausgedehnt werden und lassen dehnbare
2509 Objekte wie Balken und Glissandi auch über Taktstriche hinweg zu.
2513 @ref{New spacing area}.
2519 @node Fitting music onto fewer pages
2520 @section Fitting music onto fewer pages
2522 Manchmal kommt es vor, dass nur ein oder zwei Systeme auf die
2523 nächste Seite geraten, obwohl es so aussieht, als ob auf der
2524 vorigen Seite genügend Platz ist, um diese Systeme auch noch
2527 Wenn man derartige Platzierungsprobleme untersucht, ist die
2528 Funktion @code{annotate-spacing} von sehr großer Hilfe. Hiermit
2529 wird in den Musiksatz zusätzlich Information darüber ausgegeben,
2530 wieviel Platz bestimmten Parametern zugewiesen wird. Genaueres
2532 @ref{Displaying spacing}.
2535 * Displaying spacing::
2536 * Changing spacing::
2540 @node Displaying spacing
2541 @subsection Displaying spacing
2543 @cindex Platzierung, Layouteinstellungen
2545 @funindex annotate-spacing
2547 Die Dimensionen von vertikalen und horizontalen Platzierungsvariablen,
2548 die veränderbar sind, lassen sich mit ihren aktuellen Werten im
2549 Notentext anzeigen, wenn man die Funktion
2550 @code{annotate-spacing} in der @code{\paper}-Umgebung einschaltet:
2552 @c need to have \book{} otherwise we get the separate systems. -hwn
2553 @lilypond[verbatim,quote]
2554 #(set-default-paper-size "a6" 'landscape)
2557 \paper { annotate-spacing = ##t }
2562 Alle Layoutdimensionen werden in Notenlinienzwischenräumen
2563 aufgelistet, unabhängig von den Einheiten, mit denen sie in der
2564 @code{\paper}- oder @code{\layout}-Umgebung definiert worden
2565 sind. In dem letzten Beispiel hat @code{paper-height} einen Wert von
2566 59.75 Notenlinienzwischenräumen und @code{staff-size}
2567 Systemhöhe) ist 20 Punkte. Dabei gilt:
2569 @multitable {1 Notenlinienzwischenraum} {Systemgröße)/4 * (25.4/72.27) mm}
2572 @tab = (25.4/72.27) mm
2574 @item 1 Notenlinienzwischenraum
2575 @tab = (@code{staff-size})/4 pts
2577 @tab = (@code{staff-size})/4 * (25.4/72.27) mm
2581 In diesem Fall ist ein @code{staff-space} (Notenlinienzwischenraum)
2582 etwa gleich 1.757 mm. Deshalb entspricht der Wert von 95.75
2583 @code{staff-space} für @code{paper-height} (Papierhöhe) 105 mm,
2584 die Höhe eines quer gelegten A6-Papiers. Die Paare (@var{a},@var{b}) sind
2585 Intervalle, wobei @var{a} der untere Rand und @var{b} der
2586 obere Rand des Intervalls.
2591 @ref{Setting the staff size}
2597 @node Changing spacing
2598 @subsection Changing spacing
2600 Die Ausgabe von @code{annotate-spacing} bietet sehr viele
2601 Details zu den vertikalen Dimensionen einer Paritur. Zu Information,
2602 wie Seitenränder und andere Layout-Variablen geändert werden
2603 können, siehe @ref{Page formatting}.
2605 Neben Rändern gibt es einige weitere Optionen, Platz zu sparen:
2609 LilyPond kann die Systeme so dicht wie möglich platzieren (damit
2610 so viele Systeme wie möglich auf eine Seite passen), aber sie
2611 dann so anordnen, dass kein weißer Rand unten auf der Seite entsteht.
2615 between-system-padding = #0.1
2616 between-system-space = #0.1
2617 ragged-last-bottom = ##f
2623 Die Anzahl der Systeme kann reduziert werden (wenn LilyPond
2624 die Musik auf 11 Systeme verteilt, kann man die Benutzung von
2625 nur 10 Systemen erzwingen).
2634 Vermeidung von Objekten, die den vertikalen Abstand von Systemen
2635 vergrößern, hilft oft. Die Verwendung von Klammern bei Wiederholungen
2636 etwa braucht mehr Platz. Wenn die Noten innerhalb der Klammern auf
2637 zwei Systeme verteilt sind, brauchen sie mehr Platz, als wenn sie
2638 nur auf einer Zeile gedruckt werden.
2640 Ein anderes Beispiel ist es, Dynamik-Zeichen, die besonders
2641 weit @qq{hervorstehen}, zu verschieben.
2643 @lilypond[verbatim,quote]
2646 \override DynamicText #'extra-offset = #'( -2.2 . 2.0)
2652 Die horizontalen Abstände können mit der
2653 @code{SpacingSpanner}-Eigenschaft verändert werden. Siehe
2654 @ref{Changing horizontal spacing} für Einzelheiten. Dieses
2655 Beispiel zeigt die normalen Abstände:
2657 @lilypond[verbatim,quote]
2670 Das nächste Beispiel verändert @code{common-shortest-duration} (die
2671 häufigste kürzeste Note) von @code{1/4} zu @code{1/2}. Die Viertelnote
2672 ist dennoch die häufigste Note in diesem Abschnitt, sodass der
2673 Notentext zusammengedrängt, wird, wenn eine Halbe als Standard
2676 @lilypond[verbatim,quote]
2688 \override SpacingSpanner
2689 #'common-shortest-duration = #(ly:make-moment 1 2)
2696 Die @code{common-shortest-duration}-Eigenschaft kann nicht
2697 dynamisch verändert werden, darum muss sie immer in der
2698 @code{\context}-Umgebung definiert werden und wirkt sich somit
2699 auf eine ganze @code{\score}-Umgebung aus.
2705 @ref{Page formatting},
2706 @ref{Changing horizontal spacing}.