]> git.donarmstrong.com Git - lilypond.git/blob - Documentation/de/notation/spacing.itely
Docs: reorganize documentation directory structure
[lilypond.git] / Documentation / de / notation / spacing.itely
1 @c -*- coding: utf-8; mode: texinfo; documentlanguage: de -*-
2
3 @ignore
4     Translation of GIT committish: d96023d8792c8af202c7cb8508010c0d3648899d
5
6     When revising a translation, copy the HEAD committish of the
7     version that you are working on.  See TRANSLATION for details.
8 @end ignore
9
10 @c \version "2.12.0"
11
12
13 @node Spacing issues
14 @chapter Spacing issues
15
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.
22
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.
31
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.
41
42 @menu
43 * Paper and pages::
44 * Music layout::
45 * Breaks::
46 * Vertical spacing::
47 * Horizontal spacing::
48 * Fitting music onto fewer pages::
49 @end menu
50
51
52 @node Paper and pages
53 @section Paper and pages
54
55 Dieser Abschnitt behandelt die Grenzen, die Notationsgebiete
56 definieren.
57
58 @menu
59 * Paper size::
60 * Page formatting::
61 @end menu
62
63
64 @node Paper size
65 @subsection Paper size
66
67 @cindex Papiergröße
68 @cindex Größe, Papier
69 @cindex Seitegröße
70 @cindex Größe, Seite
71
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:
77
78 @example
79 #(set-default-paper-size "a4")
80 @end example
81
82 @example
83 \paper @{
84   #(set-paper-size "a4")
85 @}
86 @end example
87
88 @noindent
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
95 dieses Buches.
96
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
102 @code{paper-alist}.
103
104 @warning{Das Standardformat ist @code{a4}.}
105
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.
111
112 @cindex Ausrichtung, Papier
113 @cindex Papier, Ausrichtung
114 @cindex hochkant, Papier
115 @cindex quer, Papier
116
117 @funindex landscape
118
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.
122
123 @example
124 #(set-default-paper-size "a6" 'landscape)
125 @end example
126
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.
132
133
134 @seealso
135 Installierte Dateien:
136 @file{scm/@/paper@/.scm}.
137
138 Schnipsel:
139 @rlsr{Spacing}.
140
141
142 @node Page formatting
143 @subsection Page formatting
144
145 Ränder, Kopf- und Fußzeilen und andere Layoutvariablen werden
146 entsprechend dem Papierformat automatisch gesetzt.
147
148 Dieser Abschnitt zeigt einige der Papiervariablen, die geändert
149 werden können.
150
151 @menu
152 * Vertical dimensions::
153 * Horizontal dimensions::
154 * Other layout variables::
155 @end menu
156
157
158 @node Vertical dimensions
159 @unnumberedsubsubsec Vertical dimensions
160
161 Diese Variablen werden benutzt um andere vertikale Verhältnisse
162 auf einer Seite zu produzieren:
163
164 @funindex \paper
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
175 @funindex top-margin
176
177 @table @code
178
179 @item after-title-space
180
181 Die Größe des Abstands zwischen der Überschrift und dem ersten
182 Notensystem.  Standard: @code{5\mm}.
183
184 @item before-title-space
185
186 Die Größe des Abstands zwischen dem letzten Notensystem einer
187 Partitur und dem Titel der nächsten Partitur. Standard: @code{10\mm}.
188
189 @item between-system-padding
190
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}.
194
195 Wenn dieser Wert erhöht wird, werden Systeme, deren @qq{bounding box}
196 sich beinahe berühren, weiter auseinander gezogen.
197
198 @item between-system-space
199
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}.
204
205 Wenn dieser Wert erhöhrt wird, erscheinen die Noten auf der Seite gleichmäßiger,
206 wobei sie aber auch mehr Platz einnehmen.
207
208 @item between-title-space
209
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}.
213
214 @item bottom-margin
215
216 Der Rand zwischen der Fußzeile und dem unteren Rand der Seite.
217 Standard: @code{6\mm}.
218
219 @item foot-separation
220
221 Der Abstand zwischen dem untersten Notensystem und der Fußzeile.
222 Standard: @code{4\mm}.
223
224 @item head-separation
225
226 Der Abstand zwischen dem obersten System und der Kopfzeile. Standard:
227 @code{4\mm}.
228
229 @item page-top-space
230
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}.
236
237 @item paper-height
238
239 Die Höhe der Seite.  Standard:  Die Höhe des aktuellen Papierformats.
240 Zu Einzelheiten siehe @ref{Paper size}.
241
242 @item top-margin
243
244 Der Rand zwischen der Kopfzeile und dem oberen Rand der Seite. Standard:
245 @code{5\mm}.
246
247 @end table
248
249
250 @snippets
251
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.
256
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
262 werden sollen.
263
264 Beispiel:
265
266 @example
267 \paper@{
268   paper-width = 2\cm
269   top-margin = 3\cm
270   bottom-margin = 3\cm
271   ragged-last-bottom = ##t
272 @}
273 @end example
274
275 Das nächste Beispiel zentriert Seitenzahlen unten auf jeder Seite:
276
277 @example
278 \paper @{
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 @} @}
289 @}
290 @end example
291
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
296 muss:
297
298 @example
299 \paper @{
300  #(define bottom-margin (* 2 cm))
301 @}
302 @end example
303
304 @seealso
305 Notationsreferenz:
306 @ref{Vertical spacing between systems}.
307
308 Schnipsel:
309 @rlsr{Spacing}.
310
311
312 @node Horizontal dimensions
313 @unnumberedsubsubsec Horizontal dimensions
314
315 @funindex horizontal-shift
316 @funindex indent
317 @funindex left-margin
318 @funindex line-width
319 @funindex paper-width
320 @funindex short-indent
321
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
325 werden.}
326
327 Es gibt einige Variablen, die die horizontalen Dimensionen der Seite
328 beeinflussen:
329
330 @table @code
331
332 @item horizontal-shift
333
334 Der Wert, um den alle Systeme (und auch Überschriften und Systemtrenner)
335 nach rechts verschoben werden.  Standard: @code{0.0}.
336
337 @item indent
338
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}.
342
343 @item left-margin
344
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}.
348
349 @item line-width
350
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}.
354
355 @item paper-width
356
357 Die Breite der Seite.  Standard: Die Breite des aktuellen
358 Papierformats.  Zu Einzelheiten siehe @ref{Paper size}.
359
360 @item short-indent
361
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}.
365
366 @end table
367
368
369 @seealso
370 Schnipsel:
371 @rlsr{Spacing}.
372
373
374 @knownissues
375
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
379 (@code{line-width}).
380
381
382 @node Other layout variables
383 @unnumberedsubsubsec Other layout variables
384
385 Diese Variablen können verwendet werden, um das allgemeine Layout der Seite
386 anzupassen.
387
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
393 @funindex page-count
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
406
407 @table @code
408
409 @item auto-first-page-number
410
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}.
417
418 @ignore
419
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
423
424 Default: @code{2}.
425
426 @end ignore
427
428 @item blank-last-page-force
429
430 Die Strafpunkte, wenn eine Partitur auf einer ungeraden Seite
431 beendet wird. Stadnard: @code{0}.
432
433 @item blank-page-force
434
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}.
439
440 @item first-page-number
441
442 Der Wert der Seitenzahl auf der ersten Seite.  Standard: @code{#1}.
443
444 @item max-systems-per-page
445
446 Die maximale Anzahl an Notensystemen, die auf einer Seite gesetzt werden.  Das
447 wird zur Zeit nur von dem @code{ly:optimal-breaking}-Alghoritmus
448 unterstützt.  Standard: nicht gesetzt.
449
450 @item min-systems-per-page
451
452 Die minimale Anzahl an Notensystemen, die auf einer Seite gesetzt werden. Das
453 kann dazu führen, dass Seiten zu dicht gefüllt werden, wenn der Wert
454 zu groß gewählt wird.  Die Option ist zur Zeit nur von dem
455 @code{ly:optimal-breaking}-Alghoritmus unterstützt.  Standard: nicht gesetzt.
456
457 @item page-breaking-between-system-padding
458
459 Überlistet die Seitenumbruchfunktion, indem ihr ein anderer Wert
460 für @code{between-system-padding} mitgeteilt wird, als in Wirklichkeit
461 eingestellt ist.  Wenn diese Variable beispielsweise auf einen
462 deutlich größeren Wert als @code{between-system-padding} gesetzt
463 wird, setzt die Seitenumbruchsfunktion weniger Systeme auf eine
464 Seite.  Standard: nicht gesetzt.
465
466 @item page-count
467
468 Die Zahl der Seiten, die für eine Partitur benutzt werden sollen.
469 Standard: nicht gesetzt.
470
471 @item page-limit-inter-system-space
472
473 Wenn wahr, wird Platz zwischen Systemen eingeschränkt, wenn viel
474 Platz auf der Seite ist.  Standard: @code{##f}.  Einzelheiten siehe
475 @ref{Vertical spacing between systems}.
476
477 @item page-limit-inter-system-space-factor
478
479 Der Faktor, der von @code{page-limit-inter-system-space} verwendet
480 wird.  Standard: @code{1.4}.  Einzelheiten siehe
481 @ref{Vertical spacing between systems}.
482
483 @item page-spacing-weight
484
485 Die relative Gewichtung von (vertikalem) Abstand auf der Seite und
486 (horizontalem) Abstand innerhalb der Zeilen.  Hohe Werte gewichten
487 die vertikalen Abstände mehr.  Standard: @code{#10}.
488
489 @item print-all-headers
490
491 Wenn wahr, werden alle Einträge des Titelfeldes (@code{\header}-Umgebung)
492 für jede Partitur ausgegeben.  Normalerweise wird nur die
493 Satzbezeichnung und die Opuszahl (@code{piece} und @code{opus})
494 ausgegeben.  Standard: @code{##f}.
495
496 @item print-first-page-number
497
498 Wenn wahr, wird auch auf der ersten Seite die Seitenzahl ausgegeben.
499 Standard: @code{##f}.
500
501 @item print-page-number
502
503 Wenn falsch, werden Seitenzahlen nicht ausgegeben.  Standard:
504 @code{##t}.
505
506 @item ragged-bottom
507
508 Wenn wahr, werden die Systeme nicht gleichmäßig über die Seite
509 verteilt sondern am oberen Seitenrand beginnend eng angeordnet.
510 Das wirkt sich nicht auf die letzte Seite aus.  Standard: @code{##f}.
511
512 Die Variable sollte auf wahr gesetzt werden für Stücke, die nur
513 zwei oder drei Systeme pro Seite haben, wie etwa Orchesterpartituren.
514
515 @item ragged-last
516
517 Wenn wahr, wird die letzte Notenzeile einer Partitur nicht bis
518 zum Zeilenende durchgezogen, sondern entsprechend mit Noten
519 gefüllt und dann abgebrochen.  Standard: @code{##f}.
520
521 @item ragged-last-bottom
522
523 Wenn falsch, werden Systeme gleichmäßig über die letzte Seite
524 verteilt.  Standard: @code{##t}.
525
526 Stücke, die zwei oder mehr Seiten gut füllen, sollten die Option auf wahr
527 gesetzt haben.
528
529 Sie wirkt sich auch auf die letzte Seite von Buchteilen aus, d.h.
530 Teilen eines Buches, die mit der @code{\bookpart}-Umgebung erstellt werden.
531
532 @item ragged-right
533
534 Wenn wahr, werden Systeme nicht im Blocksatz gesetzt, sondern erhalten
535 nur ihre normale Breite.  Standard: @code{##f}.
536
537 Wenn eine Partitur nur ein System hat, ist der Standardwert @code{##t}.
538
539 @item system-separator-markup
540
541 Ein Beschriftungsobjekt, das zwischen zwei Systeme gesetzt wird.  Das
542 wird oft in Orchesterpartituren eingesetzt.  Standard: nicht gesetzt.
543
544 Der Beschriftungsbefehl @code{\slashSeparator} kann für einen Trenner
545 benutzt werden, etwa so:
546
547 @lilypond[quote,ragged-right]
548 #(set-default-paper-size "a6" 'landscape)
549 \book {
550   \score {
551     \relative { c1 \break c1 }
552   }
553   \paper {
554     system-separator-markup = \slashSeparator
555   }
556 }
557 @end lilypond
558
559 @item system-count
560
561 Die Anzahl der Systeme, auf denen eine Partitur gesetzt werden soll.
562 Standard: nicht gesetzt.
563
564 @item systems-per-page
565 @funindex systems-per-page
566
567 Die Anzahl an Systemen, die auf jede Seite gesetzt werden sollen.
568 Diese Option wird zur Zeit nur von dem @code{ly:optimal-breaking}-Alghoritmus
569 unterstützt.  Standard: nicht gesetzt.
570
571 @end table
572
573
574 @seealso
575 Schnipsel:
576 @rlsr{Spacing}.
577
578
579 @knownissues
580
581 Die Standard-Kopfzeilendefinition setzt die Seitenzahl und das
582 @code{instrument}-Feld aus der @code{\header}-Umgebung in eine
583 Zeile.
584
585 Die Überschriften (aus der @code{\header}-Umgebung) werden als
586 ein System interpretiert, sodass @code{ragged-bottom} und
587 @code{ragged-last-bottom} Platz zwischen die Überschrift und
588 das erste System der Partitur setzen.
589
590
591 @node Music layout
592 @section Music layout
593
594 @menu
595 * Setting the staff size::
596 * Score layout::
597 @end menu
598
599
600 @node Setting the staff size
601 @subsection Setting the staff size
602
603 @cindex Schriftgröße, Einstellung
604 @cindex Systemgröße, Einstellung
605 @cindex Verändern der Schriftgröße
606 @cindex Verändern der Systemgröße
607 @funindex layout file
608
609 Die Standardgröße der Notensysteme beträgt 20 Punkte (pt).
610 Das kann auf zwei Arten geändert werden:
611
612 Um die Systemgröße global für alle Partituren einer
613 Datei (bzw. einer @code{\book}-Umgebung) zu verändern,
614 geht man wie folgt vor:
615
616 @example
617 #(set-global-staff-size 14)
618 @end example
619
620 @noindent
621 Hiermit wird die Standardhöhe der Notensysteme auf 14 pt
622 gesetzt.  Die Schriftarten werden entsprechend verkleinert.
623
624 Um die Systemhöhe für jede Partitur einzeln zu verändern,
625 muss
626
627 @example
628 \score@{
629   ...
630   \layout@{
631   #(layout-set-staff-size 15)
632   @}
633 @}
634 @end example
635
636 @noindent
637 eingesetzt werden.
638
639 Die Feta-Schriftart stellt die Noten- und Musiksymbole
640 für acht verschiedene Größen zur Verfügung.  Jede
641 Schriftgröße ist einer bestimmten Systemgröße angepasst:
642 für kleinere Schriftgrößen werden die Zeichen etwas
643 schwerer, um mit den ebenfalls dickeren Notenlinien
644 zu harmonieren.  Die empfohlenen Notensystemgrößen
645 sind in der Tabelle aufgeführt:
646
647 @quotation
648 @multitable @columnfractions .15 .2 .22 .2
649
650 @item @b{Schriftbezeichnung}
651 @tab @b{Höhe des Systems (pt)}
652 @tab @b{Höhe des Systems (mm)}
653 @tab @b{Benutzung}
654
655 @item feta11
656 @tab 11.22
657 @tab 3.9
658 @tab Taschenparituren
659
660 @item feta13
661 @tab 12.60
662 @tab 4.4
663 @tab
664
665 @item feta14
666 @tab 14.14
667 @tab 5.0
668 @tab
669
670 @item feta16
671 @tab 15.87
672 @tab 5.6
673 @tab
674
675 @item feta18
676 @tab 17.82
677 @tab 6.3
678 @tab Liederbücher
679
680 @item feta20
681 @tab 20
682 @tab 7.0
683 @tab Orchesterstimmen
684
685 @item feta23
686 @tab 22.45
687 @tab 7.9
688 @tab
689
690 @item feta26
691 @tab 25.2
692 @tab 8.9
693 @tab
694 @c modern rental material?
695
696 @end multitable
697 @end quotation
698
699 Diese Schriftarten sind in allen Größen erhältlich.  Die Kontext-Eigenschaft
700 @code{fontSize} und die Layout-Eigenschaft @code{staff-space} (in
701 @code{StaffSymbol}) können benutzt werden, um die Schriftgröße für
702 einzelne Systeme zu verändern.  Die Größe von einzelnen Systemen
703 ist relativ zur globalen Systemgröße.
704
705
706 @seealso
707 Notationsreferenz:
708 @ref{Selecting notation font size}.
709
710 Schnipsel:
711 @rlsr{Spacing}.
712
713
714 @knownissues
715
716 @code{layout-set-staff-size} verändert nicht den Abstand zwischen den
717 Notenlinien.
718
719
720 @node Score layout
721 @subsection Score layout
722
723 @cindex Partitur, Layout
724 @cindex Layout, Partitur
725
726 @funindex \layout
727
728 Während die @code{\paper}-Umgebung Einstellungen für die Formatierung
729 der Seiten eines gesamten Dokuments enthalten, enthält die
730 @code{\layout}-Umgebung Einstellungen für einzelne Parituren.
731
732 @example
733 \layout @{
734   indent = 2.0\cm
735   \context @{ \Staff
736     \override VerticalAxisGroup #'minimum-Y-extent = #'(-6 . 6)
737   @}
738   \context @{ \Voice
739     \override TextScript #'padding = #1.0
740     \override Glissando #'thickness = #3
741   @}
742 @}
743 @end example
744
745 @seealso
746 Notationsreferenz:
747 @ref{Changing context default settings}.
748
749 Schnipsel:
750 @rlsr{Spacing}.
751
752
753 @node Breaks
754 @section Breaks
755
756 @menu
757 * Line breaking::
758 * Page breaking::
759 * Optimal page breaking::
760 * Optimal page turning::
761 * Minimal page breaking::
762 * Explicit breaks::
763 * Using an extra voice for breaks::
764 @end menu
765
766
767 @node Line breaking
768 @subsection Line breaking
769
770 @cindex Zeilenumbrüche
771 @cindex Umbrüche von Zeilen
772
773 Zeilenumbrüche werden normalerweise automatisch erstellt.  Sie
774 werden so ausgewählt, dass die Zeilen weder gedrängt nocht zu
775 weit gespreizt wirken und aufeinander folgende Seiten einen
776 ähnlichen Grauwert haben.  In seltenen Fällen kann es jedoch
777 nötig sein, manuell Zeilenumbrüche einzufügen.  Das geschieht
778 mit dem Befehl @code{\break}.  Hiermit wird direkt nach dem Befehl
779 ein Zeilenumbruch erzwungen.  Zeilenumbrüche können jedoch nur
780 am Ende von @qq{vollständigen} Takten stattfinden.  Damit sind
781 Takte gemeint, in welchen alle Noten mit der letzten Taktzeit
782 komplett abgeschlossen sind und nicht über das Taktende hinausragen.
783 Wenn Sie einen Zeilenumbruch an einer Stelle benötigen, an der
784 keine Taktlinie vorliegt, können Sie mit @code{\bar ""} eine
785 unsichtbare Taktlinie hinzufügen, die dann den Zeilenumbruch
786 erlaubt.  Wiederum gilt, dass keine Noten überstehen dürfen,
787 sonst wird diese unsichtbare Taktlinie ignoriert.
788
789 Mit dem Befehl @code{\noBreak} wird ein Zeilenumbruch an dem
790 entsprechenden Taktstrich verboten.
791
792 Die grundlegenden Einstellungen, die Einfluss auf die Zeilenlänge
793 haben, sind @code{indent} (Einzug) und @code{line-width}
794 (Zeilenbreite).  Sie werden in der @code{\layout}-Umgebung
795 einestellt.  Der erste Befehl bestimmt den Einzug der ersten
796 Zeile, der zweite die Zeilenlänge der weiteren Notenzeilen.
797
798 Wenn @code{ragged-right} eingestellt ist (als in der
799 @code{\layout}-Umgebung auf den Wert @code{#t} gesetzt wurde),
800 werden die Systeme linksbündig gesetzt und nicht bis zum
801 rechten Rand hin durchgezogen, sondern den Noten entsprechend
802 gesetzt.  Das ist oftmals nützlich für kleine Notenfragmente
803 und um zu überprüfen, wie eng die Noten natürlicherweise
804 gesetzt werden würden.
805
806 Die Option @code{ragged-last} verhält sich ähnlich zu @code{ragged-right},
807 aber wirkt sich nur auf die letzte Zeile eines Stückes aus.
808
809 @example
810 \layout @{
811 indent = #0
812 line-width = #150
813 ragged-last = ##t
814 @}
815 @end example
816
817 @cindex regelmäßige Zeilenumbrüche
818 @cindex Zeilenumbrüche in Intervallen
819
820 Um Zeilenumbrüche zu erzwingen, die in festgelegten Intervallen
821 stattfinden, kann der Befehl @code{\break} in Kombination
822 mit unsichtbaren Noten und einer Wiederholung eingesetzt
823 werden.  Das folgende Beispiel etwa setzt die nächsten
824 28 Takte (im 4/4-Takt) in Zeilen zu jeweils 4 Takten:
825
826 @example
827 << \repeat unfold 7 @{
828          s1 \noBreak s1 \noBreak
829          s1 \noBreak s1 \break @}
830    @notation{Hier die Noten}
831 >>
832 @end example
833
834 Eine Zeilenumbruchkonfiguration kann auch als eine @code{.ly}-Datei
835 automatisch gespeichert werden.  Damit kann die vertikale Ausrichtung
836 während eines zweiten Programmdurchlaufs angepasst werden um die
837 Seiten besser zu füllen.  Diese Eigenschaft ist recht neu und
838 kompliziert.  Mehr Einzelheiten finden sich in
839 @rlsr{Spacing}.
840
841 @funindex \break
842 @funindex \noBreak
843
844 @predefined
845 @code{\break},
846 @code{\noBreak}.
847 @endpredefined
848
849 @seealso
850 Referenz der Interna:
851 @rinternals{LineBreakEvent}.
852
853 Schnipsel:
854 @rlsr{Spacing}.
855
856 @knownissues
857
858 Zeilenumbrüche können nur gesetzt werden, wenn eine
859 @qq{richtige} Taktlinie vorliegt.  Wenn eine Note
860 über die Taktlinie übersteht, wie etwa in folgendem
861 Beispiel:
862
863 @lilypond[quote,ragged-right,relative=2,fragment,verbatim]
864 c4 c2 << c2 {s4 \break } >>  % this does nothing
865 c2 c4 |           % a break here would work
866 c4 c2 c4 ~ \break % as does this break
867 c4 c2 c4
868 @end lilypond
869
870 @noindent
871 kann ein Umbruchbefehl nicht ausgeführt werden.  Dieses
872 Verhalten kann jedoch vermieden werden, indem der
873 @code{Forbid_line_break_engraver} aus dem Stimmen-Kontext
874 entfernt wird.
875
876 @lilypond[quote,ragged-right,verbatim]
877 \new Voice \with {
878   \remove Forbid_line_break_engraver
879 } {
880   c4 c2 << c2 {s4 \break } >>  % now the break is allowed
881   c2 c4
882 }
883 @end lilypond
884
885 @noindent
886 Entsprechend werden Umbrüche auch verhindert, wenn Balken über
887 Taktlinien reichen.  Das kann mit folgendem Befehl verhindert
888 werden: @code{\override Beam #'breakable = ##t}.
889
890
891 @node Page breaking
892 @subsection Page breaking
893
894 @cindex Seiteumbrüche
895 @cindex Umbrüche, Seite
896
897 Die Standardseitenumbrüche können verändert werden, indem
898 man die Befehle @code{\pageBreak} bzw. @code{\noPageBreak}
899 benutzt.  Sie verhalten sich analog zu den Befehlen
900 @code{\break} und @code{\noBreak}.  Sie sollten an einem
901 Taktstrich notiert werden.  Diese Befehle erzwingen bzw.
902 verbieten einen Seitenumbruch.  Mit dem @code{\pageBreak}-Befehl
903 wird natürlich gleichzeitig auch ein Zeilenumbruch erzwungen.
904
905 Die @code{\pageBreak} und @code{\noPageBreak}-Befehle können
906 auch auf der höchsten Ebene einer Datei benutzt werden, etwa
907 zwischen Partituren und Textbeschriftungen.
908
909 Es gibt auch vertikale Gegenstücke zu den Variablen
910 @code{ragged-right} und @code{ragged-last}:
911 @code{ragged-bottom} und @code{ragged-last-bottom}.  Wenn diese
912 Variablen auf @code{##t} gesetzt werden, werden im ersten
913 Fall die Notensysteme auf allen Seiten eng nach oben orientiert
914 gesetzt werden.  Im zweiten Fall bezieht sich dies nur auf die
915 letzte Seite.
916
917 Zu Einzelheiten siehe @ref{Vertical spacing}.
918
919 Seitenumbrüche werden von der @code{page-breaking}-Funktion errechnet.
920 LilyPond kennt drei Algorithmen um Seitenumbrüche zu errechnen:
921 @code{ly:optimal-breaking}, @code{ly:page-turn-breaking} und
922 @code{ly:minimal-breaking}.  Der Standard ist @code{ly:optimal-breaking},
923 aber der Wert kann in der @code{\paper}-Umgebung geändert werden:
924
925 @example
926 \paper@{
927   #(define page-breaking ly:page-turn-breaking)
928 @}
929 @end example
930
931 Der alte Algorithmus für Umbruch hat die Bezeichnung
932 @code{optimal-page-breaks}.  Wenn Sie Problememit der neuen
933 Umbruchsfunktion haben, können sie die alte vorläufig wieder
934 aktivieren.
935
936 @funindex \bookpart
937
938 When a book has many scores and pages, the page breaking problem may be
939 difficult to solve, requiring large processing time and memory.  To ease
940 the page breaking process, @code{\bookpart} blocks are used to divide
941 the book into several parts: the page breaking occurs separately on each
942 part.  Different page breaking functions may also be used in different
943 book parts.
944
945 @example
946 \bookpart @{
947   \header @{
948     subtitle = "Vorwort"
949   @}
950   \paper @{
951      %% In einem Abschnitt, der vor allem Text hat,
952      %% funktioniert womöglich ly:minimal-breaking besser
953      #(define page-breaking ly:minimal-breaking)
954   @}
955   \markup @{ @dots{} @}
956   @dots{}
957 @}
958 \bookpart @{
959   %% In diesem Abschnitt mit Noten wird
960   %% die Standard-Seitenumbruchsfunktion benutzt.
961   \header @{
962     subtitle = "Erster Satz"
963   @}
964   \score @{ @dots{} @}
965   @dots{}
966 @}
967 @end example
968
969 @funindex \pageBreak
970 @funindex \noPageBreak
971
972 @predefined
973 @code{\pageBreak},
974 @code{\noPageBreak}.
975 @endpredefined
976
977 @seealso
978 Schnipsel:
979 @rlsr{Spacing}.
980
981
982 @node Optimal page breaking
983 @subsection Optimal page breaking
984
985 @funindex ly:optimal-breaking
986
987 Die @code{ly:optimal-breaking}-Funktion ist die Standardmethode für
988 LilyPond, um Seitenumbrüche zu errechnen.  Hiermit wird versucht,
989 Seitenumbrüche zu finden, die das Stauchen oder Strecken von Zeilen
990 minimieren, sowohl horizontal als auch vertikal.  Anders als die
991 @code{ly:page-turn-breaking}-Funktion hat diese Methode keine
992 Möglichkeit, Überlegungen zum Umblättern mit einzubeziehen.
993
994 @seealso
995 Schnipsel:
996 @rlsr{Spacing}.
997
998
999 @node Optimal page turning
1000 @subsection Optimal page turning
1001
1002 @funindex ly:page-turn-breaking
1003
1004 Es ist oft nötig, die Seiten so umzubrechen, dass sich eine Pause am
1005 Ende jeder zweiten Seite befindet, damit der Musiker es leichter hat,
1006 die Seite umzublättern ohne das Spielen zu Unterbrechen.  Die
1007 @code{ly:page-turn-breaking}-Funktion versucht, Seitenumbrüche zu
1008 finden, died das Stauchen oder Strecken von Zeilen minimieren und
1009 gleichzeitig auch noch Seitenumbrüchen an angegebenen Stellen 
1010 den Vorrang zu geben.
1011
1012 Die Funktion wird in zwei Schritten eingesetzt.  Zunächst muss sie
1013 in der @code{\paper}-Umgebung aktiviert werden, wie gezeigt in
1014 @ref{Page breaking}.  Dann muss noch angegeben werden, welche Stellen
1015 bevorzugt für Seitenumbrüche benutzt werden sollen.
1016
1017 Für diesen zweiten Schritt gibt es zwei Methoden.  Am Einfachsten ist
1018 es, die möglichen Seitenumbrüche mit dem Befehl @code{\allowPageTurn}
1019 an jeder Stelle manuell anzugeben.
1020
1021 Wenn Ihnen das zu aufwändig ist, können Sie den @code{Page_turn_engraver}
1022 zu einem @code{Staff}- oder @code{Voice}-Kontext hinzufügen.  Dieser
1023 Engraver durchsucht den entsprechenden Kontext nach Stellen ohne Noten.
1024 (Es wird also nicht nach Pausen gesucht, sondern nach Stellen ohne
1025 Noten.  Dieses Verhalten verhindert, dass an polyphonen Stellen umgebrochen
1026 wird, wo nur in einer Stimme Pausen vorhanden sind.)  Wenn eine
1027 derartige Stelle ohne Noten gefunden wird, fügt der Engraver den
1028 Befehl @code{\allowPageTurn} am letzten Taktstrich des Abschnitts ein.  Wenn
1029 in dem Abschnitt ein besonderer Taktstrich vorkommt (wie etwa ein
1030 Doppelstrich), wird der Befehl nach diesem Taktstrich gesetzt.
1031
1032 @funindex minimumPageTurnLength
1033
1034 Der @code{Page_turn_engraver} list die Kontexteigenschaft
1035 @code{minimumPageTurnLength} um zu erkennen, wie lang eine Stelle
1036 frei von Noten sein muss, damit ein Seitenumbruch in Frage kommt.  Der
1037 Standardwert hierfür ist @code{#(ly:make-moment 1 1)}.  Wenn Sie
1038 Seitenumbrüche zum Umblättern ausschalten wollen, können Sie
1039 einen sehr großen Wert angeben.
1040
1041 @example
1042 \new Staff \with @{ \consists "Page_turn_engraver" @}
1043 @{
1044   a4 b c d |
1045   R1 | % Ein Seitenumbruch zum Umblättern erlaubt
1046   a4 b c d |
1047   \set Staff.minimumPageTurnLength = #(ly:make-moment 5 2)
1048   R1 | % Seitenumbruch nicht erlaubt
1049   a4 b r2 |
1050   R1*2 | % Seitenumbruch erlaubt
1051   a1
1052 @}
1053 @end example
1054
1055 @funindex minimumRepeatLengthForPageTurn
1056
1057 Der @code{Page_turn_engraver} erkennt Wiederholungen vom Typ @code{volta}.
1058 Ein Seitenumbruch zum Umblättern wird nur zugelassen, wenn vor und nach
1059 der Wiederholung genug Zeit ist, um die Seite wieder zurückzublättern.
1060 Wenn die Wiederholung sehr kurz ist, kann auch Umblättern verboten
1061 werden.  Wenn Sie die Kontexteigenschaft
1062 @code{minimumRepeatLengthForPageTurn} definieren, erlaubt der
1063 @code{Page_turn_engraver} nur Umblättern in Wiederholungen, deren
1064 Dauer länger als dieser Wert ist.
1065
1066 Die Seitenumblätter-Befehle @code{\pageTurn}, @code{\noPageTurn} und
1067 @code{\allowPageTurn} können auch auf oberster Dateiebene benutzt
1068 werden, etwa zwischen Parituren und Textabschnitten.
1069
1070 @funindex \pageTurn
1071 @funindex \noPageTurn
1072 @funindex \allowPageTurn
1073
1074 @predefined
1075 @code{\pageTurn},
1076 @code{\noPageTurn},
1077 @code{\allowPageTurn}.
1078 @endpredefined
1079
1080 @seealso
1081 Schnipsel:
1082 @rlsr{Spacing}.
1083
1084 @knownissues
1085
1086 In einer Partitur sollte nur ein @code{Page_turn_engraver} vorkommen.  Wenn
1087 mehr als einer definiert werden, stören sie sich gegenseitig.
1088
1089
1090 @node Minimal page breaking
1091 @subsection Minimal page breaking
1092
1093 @funindex ly:minimal-breaking
1094
1095 Die @code{ly:minimal-breaking}-Funktion benötigt nur minimale Berechnungen,
1096 um die Seitenumbrüche zu bestimmen.  Die Seite wird mit möglichst
1097 vielen Systemen gefüllt und dann zur nächsten Seite gewechselt.  Die
1098 Funktion kann benutzt werden um Partituren mit vielen Seiten zu
1099 setzen, wenn die anderen Seitenumbruchsfunktionen zu langsam wären
1100 oder zu viel Speicher beanspruchen.  Auch für Seiten mit viel Text
1101 ist die Funktion geeignet.  Sie wird folgendermaßen aktiviert:
1102
1103 @example
1104 \paper @{
1105   #(define page-breaking ly:minimal-breaking)
1106 @}
1107 @end example
1108
1109
1110 @seealso
1111 Schnipsel:
1112 @rlsr{Spacing}.
1113
1114
1115 @node Explicit breaks
1116 @subsection Explicit breaks
1117
1118 Es kann vorkommen, dass LilyPond direkte @code{\break} oder
1119 @code{\pageBreak}-Befehl nicht beachtet.  Mit folgenden
1120 Einstellungen kann dieses Verhalten ausgeschaltet werden:
1121
1122 @example
1123 \override NonMusicalPaperColumn #'line-break-permission = ##f
1124 \override NonMusicalPaperColumn #'page-break-permission = ##f
1125 @end example
1126
1127 Wenn @code{line-break-permission} die Einstellung falsch
1128 (@code{##f}) hat, werden Zeilenumbrüche nur an den Befehlen
1129 @code{\break} eingefügt und nirgendwo anders.  Wenn
1130 @code{page-break-permission} die Einstellung falsch
1131 (@code{##f}) hat, werden Seitenumbrüche nur an den Befehlen
1132 @code{\pageBreak} eingefügt und nirgendwo anders.
1133
1134 @lilypond[quote,verbatim]
1135 \paper {
1136   indent = #0
1137   ragged-right = ##t
1138   ragged-bottom = ##t
1139 }
1140
1141 \score {
1142   \new Score \with {
1143     \override NonMusicalPaperColumn #'line-break-permission = ##f
1144     \override NonMusicalPaperColumn #'page-break-permission = ##f
1145   } {
1146     \new Staff {
1147       \repeat unfold 2 { c'8 c'8 c'8 c'8 } \break
1148       \repeat unfold 4 { c'8 c'8 c'8 c'8 } \break
1149       \repeat unfold 6 { c'8 c'8 c'8 c'8 } \break
1150       \repeat unfold 8 { c'8 c'8 c'8 c'8 } \pageBreak
1151       \repeat unfold 8 { c'8 c'8 c'8 c'8 } \break
1152       \repeat unfold 6 { c'8 c'8 c'8 c'8 } \break
1153       \repeat unfold 4 { c'8 c'8 c'8 c'8 } \break
1154       \repeat unfold 2 { c'8 c'8 c'8 c'8 }
1155     }
1156   }
1157 }
1158 @end lilypond
1159
1160 @seealso
1161 Schnipsel:
1162 @rlsr{Spacing}.
1163
1164
1165 @node Using an extra voice for breaks
1166 @subsection Using an extra voice for breaks
1167
1168 Zeilen- und Seitenumbruchbefehle werden normalerweise direkt
1169 zusammen mit den Noten eingegeben.
1170
1171 @example
1172 \new Score @{
1173   \new Staff @{
1174     \repeat unfold 2 @{ c'4 c'4 c'4 c'4 @}
1175     \break
1176     \repeat unfold 3 @{ c'4 c'4 c'4 c'4 @}
1177   @}
1178 @}
1179 @end example
1180
1181 Hierdurch sind zwar die Befehle @code{\break} und @code{\pageBreak}
1182 einfach zu notieren, es werden aber Informationen zur Notation
1183 mit Informationen zur Anordnung auf der Seite vermischt.  Man kann
1184 diese Informationen auch voneinander trennen, indem man eine zusätzliche
1185 Stimme einfügt, in der Zeilen- und Seitenumbrüche vorgenommen werden.
1186 Diese zusätzliche Stimme enthält nur unsichtbare Noten und die
1187 Umbruchbefehle:
1188
1189 @lilypond[quote,verbatim]
1190 \new Score {
1191   \new Staff <<
1192      \new Voice {
1193         s1 * 2 \break
1194         s1 * 3 \break
1195         s1 * 6 \break
1196         s1 * 5 \break
1197      }
1198      \new Voice {
1199         \repeat unfold 2 { c'4 c'4 c'4 c'4 }
1200         \repeat unfold 3 { c'4 c'4 c'4 c'4 }
1201         \repeat unfold 6 { c'4 c'4 c'4 c'4 }
1202         \repeat unfold 5 { c'4 c'4 c'4 c'4 }
1203      }
1204   >>
1205 }
1206 @end lilypond
1207
1208 Mit dieser Herangehensweise kann der Code insbesondere
1209 dann klarer notiert werden, wenn man Einstellungen der
1210 @code{line-break-system-details}-Eigenschaft oder
1211 anderer Eigenschaften von
1212 @code{NonMusicalPaperColumnGrob} vornimmt (hierzu auch 
1213 @ref{Vertical spacing}).
1214
1215 @lilypond[quote,verbatim]
1216 \new Score {
1217   \new Staff <<
1218      \new Voice {
1219
1220         \overrideProperty "Score.NonMusicalPaperColumn"
1221         #'line-break-system-details #'((Y-offset . 0))
1222         s1 * 2 \break
1223
1224         \overrideProperty "Score.NonMusicalPaperColumn"
1225         #'line-break-system-details #'((Y-offset . 35))
1226         s1 * 3 \break
1227
1228         \overrideProperty "Score.NonMusicalPaperColumn"
1229         #'line-break-system-details #'((Y-offset . 70))
1230         s1 * 6 \break
1231
1232         \overrideProperty "Score.NonMusicalPaperColumn"
1233         #'line-break-system-details #'((Y-offset . 105))
1234         s1 * 5 \break
1235      }
1236      \new Voice {
1237         \repeat unfold 2 { c'4 c'4 c'4 c'4 }
1238         \repeat unfold 3 { c'4 c'4 c'4 c'4 }
1239         \repeat unfold 6 { c'4 c'4 c'4 c'4 }
1240         \repeat unfold 5 { c'4 c'4 c'4 c'4 }
1241      }
1242   >>
1243 }
1244 @end lilypond
1245
1246
1247 @seealso
1248 Notationsreferenz:
1249 @ref{Vertical spacing}.
1250
1251 Schnipsel:
1252 @rlsr{Spacing}.
1253
1254
1255 @node Vertical spacing
1256 @section Vertical spacing
1257
1258 @cindex vertikale Positionierung
1259 @cindex Positionierung, vertikal
1260 @cindex Abstände, vertikal
1261
1262 Vertikale Abstände werden durch drei Eigenschaften
1263 bestimmt:  wieviel Platz frei ist (etwa Papiergröße
1264 und Ränder), wieviel Platz zwischen Systemgruppen
1265 (engl. system) gesetzt werden soll und wieviel 
1266 Platz zwischen Notensystemen (engl. staff, Pl. staves)
1267 innerhalb von Gruppen gesetzt wird.
1268
1269 @menu
1270 * Vertical spacing inside a system::
1271 * Vertical spacing between systems::
1272 * Explicit staff and system positioning::
1273 * Two-pass vertical spacing::
1274 * Vertical collision avoidance::
1275 @end menu
1276
1277
1278 @node Vertical spacing inside a system
1279 @subsection Vertical spacing inside a system
1280
1281 @cindex Abstand zwischen Notensystemen
1282 @cindex Notensystemabstand
1283 @cindex Platz zwischen Notensystemen
1284 @cindex Platz innerhalb von Systemgruppen
1285 @cindex Systemgruppen, Abstände innerhalb
1286
1287 Die Höhe jeder Notensystemgruppe (engl. system) wird automatisch errechnet.
1288 Um einzelne Notensysteme daran zu hindern, sich zu überschneiden,
1289 werden Minimalabstände festgelegt.  Indem man diese ändert,
1290 können die Systeme enger zusammen gerückt werden.  Dadurch
1291 brauchen die Gruppen weniger Platz und es passen mehr Gruppen
1292 auf eine Seite.
1293
1294 Normalerweise werden die Notensysteme vertikal gestapelt.  Damit
1295 die Systeme einen bestimten Abstand einhalten, haben sie
1296 Füllabstände, die in der Eigenschaft @code{minimum-Y-extent}
1297 definiert sind.  Wenn diese Eigenschaft für ein
1298 @code{VerticalAxisGroup}-Objekt gesetzt wird, kann eingestellt
1299 werden, wieviel Platz nach unten oder oben die vertikale Linie
1300 (also das Notensystem oder eine Textzeile) einnimmt.  Die
1301 Eigenschaft braucht ein Zahlenpaar; der Standardwert ist
1302 @code{#'(-4 . 4)}.  Um also ein Notensystem schmaler zu machen,
1303 kann man schreiben:
1304
1305 @example
1306 \override Staff.VerticalAxisGroup #'minimum-Y-extent = #'(-3 . 3)
1307 @end example
1308
1309 @noindent
1310 Damit wird die vertikale Größe des Systems auf jeweils drei
1311 Notenlinienzwischenräume nach oben und unten von der Systemmitte
1312 aus eingestellt.  Der Wert @code{(-3 . 3)} wird als ein
1313 Intervall ausgewertet, dessen Zentrum bei 0 liegt; deshalb
1314 ist die erste Zahl immer negativ.  Die Zahlen müssen nicht
1315 gleich sein: man kann etwa die Ausdehnung nach unten vergrößern,
1316 indem man @code{(-6 . 4)} setzt.
1317
1318 Nachdem die Seitenumbrüche bestimmt wurden, wird die vertikale
1319 Platzverteilung innerhalb jeder Systemgruppe neu ausgewertet
1320 um die Seite so gleichmäßig wie möglich zu füllen.  Wenn auf
1321 einer Seite viel Platz übrigbleibt, werden die Gruppen etwas
1322 gedehnt um die Seite besser auszufüllen.  Die Größe dieser
1323 Dehnung kann mit der @code{max-stretch}-Eigenschaft
1324 des @code{VerticalAlignment}-Grobs eingestellt werden.
1325 Standardmäßig hat @code{max-stretch} den Wert 0, sodass
1326 die Dehnung ausgeschaltet ist.  Um sie einzuschalten, kann
1327 als guter Wert für @code{max-stretch} der Wert von
1328 @code{ly:align-interface::calc-max-stretch} eingesetzt werden.
1329
1330 In manchen Situationen sollen zwar die meisten Systeme gedehnt
1331 werden, einige Gruppen sollen aber einen festen Abstand einhalten.
1332 Das kann etwa der Fall sein, wenn ein Klaviersystem in der
1333 Mitte einer Orchesterpartitur vorkommt.  Mit der
1334 @code{keep-fixed-while-stretching}-Eigenschaft des
1335 @code{VerticalAxisGroup}-Objektes kann das erreicht werden.
1336 Wenn sie auf @code{##t} gesetzt wird, wird das entsprechende
1337 System (oder die Textzeile) nicht von der Zeile entfernt, die
1338 sich direkt darüber befindet.  Man müsste diese Einstellung
1339 als beispielsweise für das zweite Notensystem eines Klaviersystems
1340 vornehmen:
1341
1342 @lilypond[verbatim]
1343 #(set-default-paper-size "a6")
1344 #(set-global-staff-size 14.0)
1345
1346 \book {
1347 \paper {
1348   ragged-last-bottom = ##f
1349 }
1350
1351 \new Score \with
1352 {
1353   \override VerticalAlignment #'max-stretch = #ly:align-interface::calc-max-stretch
1354 }
1355 {
1356 \new GrandStaff
1357 <<
1358   \new StaffGroup
1359   <<
1360     \new Staff {c' d' e' f'}
1361     \new Staff {c' d' e' f'}
1362     \new Staff {c' d' e' f'}
1363   >>
1364
1365   \new PianoStaff
1366   <<
1367     \new Staff {c' d' e' f'}
1368     \new Staff \with {
1369       \override VerticalAxisGroup #'keep-fixed-while-stretching = ##t
1370     }
1371     {c' d' e' f'}
1372   >>
1373
1374   \new StaffGroup
1375   <<
1376     \new Staff {c' d' e' f'}
1377     \new Staff {c' d' e' f'}
1378   >>
1379 >>
1380 }
1381 }
1382 @end lilypond
1383
1384 Die vertikale Ausrichtung von Notensystemen wird
1385 von dem @code{VerticalAlignment}-Objekt vorgenommen.
1386 Die Kontextparameter für die vertikale Ausdehnung
1387 werden für den @code{Axis_group_engraver} angegeben.
1388
1389 @seealso
1390 Schnipsel:
1391 @rlsr{Spacing}.
1392
1393 @c @lsr{spacing,page-spacing.ly},
1394 @c @lsr{spacing,alignment-vertical-spacing.ly}.
1395
1396 Referenz der Interna:
1397 @rinternals{VerticalAlignment},
1398 @rinternals{Axis_group_engraver}.
1399
1400
1401 @node Vertical spacing between systems
1402 @subsection Vertical spacing between systems
1403
1404 Der Platz zwischen Notensystembruppen wird von vier
1405 Variablen in der @code{\paper}-Umgebung kontrolliert:
1406
1407 @example
1408 \paper @{
1409   between-system-space = 1.5\cm
1410   between-system-padding = #1
1411   ragged-bottom=##f
1412   ragged-last-bottom=##f
1413 @}
1414 @end example
1415
1416 Wenn nur ein paar schmale Systeme auf eine Seite gesetzt werden,
1417 kann die vertikale Platzverteilung recht negativ ausfallen, so
1418 dass etwa ein System ganz oben auf der Seite und das nächste
1419 unten auf der Seite erscheint, mit einer großen Lücke dazwischen.
1420 Um derartige Situationen zu umgehen, kann der Platz, der zwischen
1421 Gruppen eingefügt wird, begrenzt werden.  Dieses Verhalten wird
1422 aktiviert, indem die @code{page-limit-inter-system-space}-Variable
1423 in der @code{\paper}-Umgebung auf @code{##t} gesetzt wird.  Die
1424 Variable @code{page-limit-inter-system-space-factor} bestimmt,
1425 um wieviel der Platz zwischen Gruppen gedehnt werden darf:  Bei
1426 einem Wert von @code{1.3} etwa darf der Platz 30% größer sein
1427 als er es wäre, wenn die Seite mit der Option @code{ragged-bottom}
1428 gesetzt worden wäre.
1429
1430 Im folgenden Beispiel würde das zweite System der ersten Seite
1431 unten auf der Seite gesetzt werden, wenn der Platz zwischen
1432 den Systemen nicht begrenzt wäre.  Weil aber die Begrenzung
1433 eingesetzt wurde, wird das zweite System näher am ersten
1434 platziert.  Wenn @code{page-limit-inter-system-space-factor}
1435 auf @code{1} gesetzt wird, wäre die Platzverteilung die gleiche
1436 auf einer Seite mit @code{ragged-bottom}, wie etwa die letzte
1437 Seite einer Partitur.
1438
1439 @lilypond[verbatim]
1440 #(set-default-paper-size "a6")
1441 \book {
1442   \paper {
1443     page-limit-inter-system-space = ##t
1444     page-limit-inter-system-space-factor = 1.3
1445
1446     oddFooterMarkup = \markup "page bottom"
1447     evenFooterMarkup = \markup "page bottom"
1448     oddHeaderMarkup = \markup \fill-line {
1449       "page top" \fromproperty #'page:page-number-string }
1450     evenHeaderMarkup = \markup \fill-line {
1451       "page top" \fromproperty #'page:page-number-string }
1452   }
1453   \new Staff << \repeat unfold 4 { g'4 g' g' g' \break }
1454                 { s1*2 \pageBreak } >>
1455 }
1456 @end lilypond
1457
1458
1459 @seealso
1460 Schnipsel:
1461 @rlsr{Spacing}.
1462
1463
1464 @node Explicit staff and system positioning
1465 @subsection Explicit staff and system positioning
1466
1467 Man kann die Einstellungen des @code{VerticalAxisGroup}-Objekts
1468 und der @code{\paper}-Umgebung, wie sie im vorigen Abschnitt
1469 erklärt wurden, als eine Sammlung verschiedenerer Einstellmöglichkeiten
1470 verstehen, die vor allem die Größe des vertikalen Platzes zwischen
1471 Notensystemen und Gruppen auf der Seite kontrollieren.
1472
1473 Die vertikale Platzverteilung kann aber auch auf andere Weise
1474 eingestellt werden: mit den Optionen von
1475 @code{NonMusicalPaperColumn #'line-break-system-details}.  Während
1476 Einstellungen in @code{VerticalAxisGroup} und @code{\paper} Füllplatz
1477 definieren, werden mit
1478 @code{NonMusicalPaperColumn #'line-break-system-details} absolute vertikale
1479 Positionen auf der Seite festgelegt.
1480
1481 @code{NonMusicalPaperColumn #'line-break-system-details} akzeptiert eine
1482 Liste aus fünf unterschiedlichen Einstellungen:
1483
1484 @itemize
1485 @item @code{X-offset}
1486 @item @code{Y-offset}
1487 @item @code{alignment-offsets}
1488 @item @code{alignment-extra-space}
1489 @item @code{fixed-alignment-extra-space}
1490 @end itemize
1491
1492 Veränderungen von Grobs (wozu auch @code{NonMusicalPaperColumn} gehört),
1493 können an drei unterschiedlichen Stellen in der Quelldatei vorgenommen
1494 werde:
1495
1496 @itemize
1497 @item mitten im Notentext
1498 @item in einer @code{\context}-Umgebung
1499 @item in einer @code{\with}-Umgebung
1500 @end itemize
1501
1502 Wenn der Grob @code{NonMusicalPaperColumn} verändert werden soll,
1503 wird der @code{\override}-Befehl in der @code{\context} oder
1504 @code{\with}-Umgebung eingesetzt.  Wenn die Veränderungen aber
1505 mitten im Notentext stattfinden sollen, müssen Sie den Befehl
1506 @code{\overrideProperty} einsetzen.  Einige Beispiele für eine
1507 Veränderungen von @code{NonMusicalPaperColumn} mit dem
1508 @code{\overrideProperty}-Befehl sind hier aufgelistet:
1509
1510 @example
1511 \overrideProperty NonMusicalPaperColumn
1512   #'line-break-system-details #'((X-offset . 20))
1513
1514 \overrideProperty NonMusicalPaperColumn
1515   #'line-break-system-details #'((Y-offset . 40))
1516
1517 \overrideProperty NonMusicalPaperColumn
1518   #'line-break-system-details #'((X-offset . 20) (Y-offset . 40))
1519
1520 \overrideProperty NonMusicalPaperColumn
1521   #'line-break-system-details #'((alignment-offsets . (0 -15)))
1522
1523 \overrideProperty NonMusicalPaperColumn
1524   #'line-break-system-details #'((X-offset . 20) (Y-offset . 40)
1525                                  (alignment-offsets . (0 -15)))
1526 @end example
1527
1528 Um zu verstehen, wie jede dieser unterschiedlichen Einstellungen
1529 funktioniert, wollen wir uns ein Beispiel vornehmen, dass überhaupt
1530 keine Einstellungen (d.h. @code{override}-Befehle) enthält:
1531
1532 @c \book { } is required in these examples to ensure the spacing
1533 @c overrides can be seen between systems. -np
1534
1535 @lilypond[quote]
1536 \header { tagline = ##f }
1537 \paper { left-margin = 0\mm }
1538 \book {
1539   \score {
1540     <<
1541       \new Staff <<
1542         \new Voice {
1543           s1*5 \break
1544           s1*5 \break
1545           s1*5 \break
1546         }
1547         \new Voice { \repeat unfold 15 { c'4 c' c' c' } }
1548       >>
1549       \new Staff {
1550         \repeat unfold 15 { d'4 d' d' d' }
1551       }
1552     >>
1553   }
1554 }
1555 @end lilypond
1556
1557 Diese Partitur nimmt Zeilen- und Seitenumbruchinformationen in einer
1558 eigenen Stimme vor.  Mit dieser Methode kann die Layout-Information
1559 einfach von den Noten getrennt werden, was sehr hilfreich ist, wenn
1560 das Beispiel komplizierter wird.  Siehe auch
1561 @ref{Using an extra voice for breaks}.
1562
1563 Ausdrückliche @code{\break}-Befehle teilen die Noten in sechs Takte
1564 lange Zeilen.  Die vertikale Platzverteilung wird von LilyPond
1565 errechnet.  Um den vertikalen Beginn einer jeden Systemgruppe
1566 genau anzugeben, kann @code{Y-offset} in der
1567 @code{line-break-system-details}-Eigenschaft des
1568 @code{NonMusicalPaperColumn}-Grobs wie in dem Beispiel
1569 ersichtlich benutzt werden:
1570
1571 @lilypond[quote]
1572 \header { tagline = ##f }
1573 \paper { left-margin = 0\mm }
1574 \book {
1575   \score {
1576     <<
1577       \new Staff <<
1578         \new Voice {
1579           \overrideProperty #"Score.NonMusicalPaperColumn"
1580             #'line-break-system-details #'((Y-offset . 0))
1581           s1*5 \break
1582           \overrideProperty #"Score.NonMusicalPaperColumn"
1583             #'line-break-system-details #'((Y-offset . 40))
1584           s1*5 \break
1585           \overrideProperty #"Score.NonMusicalPaperColumn"
1586             #'line-break-system-details #'((Y-offset . 80))
1587           s1*5 \break
1588         }
1589         \new Voice { \repeat unfold 15 { c'4 c' c' c' } }
1590       >>
1591       \new Staff {
1592         \repeat unfold 15 { d'4 d' d' d' }
1593       }
1594     >>
1595   }
1596 }
1597 @end lilypond
1598
1599 In der @code{line-break-system-details}-Eigenschaft kann eine Liste
1600 mit vielen Einstellungen eingegeben werden, aber hier wird nur eine
1601 Einstellung angegeben.  Die @code{Y-offset}-Eigenschaft bestimmt
1602 hier die exakte vertikale Position auf der Seite, an welcher jede
1603 neue Systemgruppe begonnen wird.
1604
1605 Da jetzt der exakte Beginn eines jeden Systems explizit festgelegt wurde,
1606 können wir auch den exakten Beginn eines jeden Notensystems in der
1607 Gruppe festlegen.  Dies geschieht mit der @code{alignment-offsets}-Eigenschaft
1608 von @code{line-break-system-details}.
1609
1610 @lilypond[quote]
1611 \header { tagline = ##f }
1612 \paper { left-margin = 0\mm }
1613 \book {
1614   \score {
1615     <<
1616       \new Staff <<
1617         \new Voice {
1618           \overrideProperty #"Score.NonMusicalPaperColumn"
1619             #'line-break-system-details #'((Y-offset . 20)
1620                                            (alignment-offsets . (0 -15)))
1621           s1*5 \break
1622           \overrideProperty #"Score.NonMusicalPaperColumn"
1623             #'line-break-system-details #'((Y-offset . 60)
1624                                            (alignment-offsets . (0 -15)))
1625           s1*5 \break
1626           \overrideProperty #"Score.NonMusicalPaperColumn"
1627             #'line-break-system-details #'((Y-offset . 100)
1628                                            (alignment-offsets . (0 -15)))
1629           s1*5 \break
1630         }
1631         \new Voice { \repeat unfold 15 { c'4 c' c' c' } }
1632       >>
1633       \new Staff {
1634         \repeat unfold 15 { d'4 d' d' d' }
1635       }
1636     >>
1637   }
1638 }
1639 @end lilypond
1640
1641 Dem @code{line-break-system-details}-Attribut des
1642 @code{NonMusicalPaperColumn}-Grobs werden zwei Eigenschaften
1643 zugewiesen.  Auch wenn die Liste (alist) von
1644 @code{line-break-system-details} sehr viel mehr Platzierungsparameter
1645 akzeptiert, müssen hier nu die Parameter @code{Y-offset} und
1646 @code{alignment-offsets} gesetzt werden, um den vertikalen Beginn
1647 jedes Systems und jeder Systemgruppe zu kontrollieren.  @code{Y-offset}
1648 bestimmt also die vertikale Position von Systemgruppen und @code{alignment-offsets}
1649 die vertikale Position von einzelnen Notensystemen.
1650
1651 @lilypond[quote]
1652 \header { tagline = ##f }
1653 \paper { left-margin = 0\mm }
1654 \book {
1655   \score {
1656     <<
1657       \new Staff <<
1658         \new Voice {
1659           \overrideProperty #"Score.NonMusicalPaperColumn"
1660             #'line-break-system-details #'((Y-offset . 0)
1661                                            (alignment-offsets . (0 -30 -40)))
1662           s1*5 \break
1663           \overrideProperty #"Score.NonMusicalPaperColumn"
1664             #'line-break-system-details #'((Y-offset . 60)
1665                                            (alignment-offsets . (0 -10 -20)))
1666           s1*5 \break
1667           \overrideProperty #"Score.NonMusicalPaperColumn"
1668             #'line-break-system-details #'((Y-offset . 100)
1669                                            (alignment-offsets . (0 -10 -40)))
1670           s1*5 \break
1671         }
1672         \new Voice { \repeat unfold 15 { c'4 c' c' c' } }
1673       >>
1674       \new StaffGroup <<
1675         \new Staff { \repeat unfold 15 { d'4 d' d' d' } }
1676         \new Staff { \repeat unfold 15 { e'4 e' e' e' } }
1677       >>
1678     >>
1679   }
1680 }
1681 @end lilypond
1682
1683 Einige Dinge sollten beachtet werden:
1684
1685 @itemize
1686 @item Wenn @code{alignment-offsets} benutzt wird, werden Gesangtextzeilen
1687 als ein System gezählt.
1688
1689 @item Die Einheiten der Zahlen, die für @code{X-offset},
1690 @code{Y-offset} und @code{alignment-offsets} benutzt werden, werden als
1691 Vielfaches des Abstandes zwischen zwei Notenlinien gewertet.  Positive
1692 Werte verschieben Systeme und Gesangstext nach oben, negative Werte nach
1693 unten.
1694
1695 @item Weil die Einstellungen von @code{NonMusicalPaperColumn #'line-break-system-details}
1696 es möglich machen, Notensysteme und Gruppen an beliebigen Stellen auf der
1697 Seite zu platzieren, kann man damit auch Ränder überschreiben oder sogar
1698 Notensysteme übereinander platzieren.  Sinnvolle Werte für diese
1699 Parameter werden derartiges Verhalten vermeiden.
1700 @end itemize
1701
1702
1703 @seealso
1704 Schnipsel:
1705 @rlsr{Spacing}.
1706
1707
1708 @node Two-pass vertical spacing
1709 @subsection Two-pass vertical spacing
1710
1711 @warning{Vertikale Positionierung in zwei Durchgängen ist veraltet
1712 (deprecated) und wird in zukünftigen Versionen von LilyPond entfernt
1713 werden.  Systeme werden jetzt automatisch in einem einzigen
1714 Durchlauf gedehnt.  Siehe auch @ref{Vertical spacing inside a system}.}
1715
1716 Um Systeme zu dehnen, sodass sie den restlichen Platz auf der Seite
1717 auffüllen, kann ein Verfahren benutzt werden, dass die Positionierung
1718 in zwei Durchläufen ermittelt:
1719
1720 @enumerate
1721 @item Im ersten Durchlauf wird der Platz berechnet, um den jede
1722 Systemgruppe gedehnt werden sollte und in eine Datei geschrieben.
1723 @item Im zweiten Durchlauf werden die Systemgruppen anhand der
1724 Daten aus dieser Datei entsprechend gedehnt.
1725 @end enumerate
1726
1727 Die @code{ragged-bottom}-Eigenschaft fügt den Platz zwischen
1728 Systemgruppen ein, während mit der Technik in zwei Durchläufen
1729 die Systemgruppen selber gedehnt werden.
1730
1731 Um dieses Verhalten zu erzeugen, muss die @code{tweak-key}-Eigenschaft
1732 in der @code{\layout}-Umgebung jeder Partitur definiert werden und diese
1733 Anpassungen dann in jeder Paritur mit dem Befehl @code{\scoreTweak}
1734 angewandt werden.
1735
1736 @quotation
1737 @verbatim
1738 %% die erstellte Layout-Datei einfügen
1739 \includePageLayoutFile
1740
1741 \score {
1742   \new StaffGroup <<
1743     \new Staff <<
1744       %% Anpassungen für diese Partitur einfügen
1745       \scoreTweak "scoreA"
1746       { \clef french c''1 \break c''1 }
1747     >>
1748     \new Staff { \clef soprano g'1 g'1 }
1749     \new Staff { \clef mezzosoprano e'1 e'1 }
1750     \new Staff { \clef alto g1 g1 }
1751     \new Staff { \clef bass c1 c1 }
1752   >>
1753   \header {
1754     piece = "Score with tweaks"
1755   }
1756   %% Definieren, wie die Anpassungen für diese Datei genannt werden:
1757   \layout { #(define tweak-key "scoreA") }
1758 }
1759 @end verbatim
1760 @end quotation
1761
1762 Für den ersten Durchgang sollte die @code{dump-tweaks}-Option gesetzt
1763 werden, damit die Layout-Datei erstellt wird.
1764
1765 @example
1766 lilypond -dbackend=null -d dump-tweaks <file>.ly
1767 lilypond <file>.ly
1768 @end example
1769
1770
1771 @seealso
1772 Schnipsel:
1773 @rlsr{Spacing}.
1774
1775
1776 @node Vertical collision avoidance
1777 @subsection Vertical collision avoidance
1778
1779 @cindex Vermeidung von vertikalen Zusammenstößen
1780 @cindex Zusammenstöße, vertikal, vermeiden
1781 @cindex vertikale Zusammenstöße, vermeiden
1782 @cindex Kollisionen, vertikal, vermeiden
1783
1784 @funindex outside-staff-priority
1785 @funindex outside-staff-padding
1786 @funindex outside-staff-horizontal-padding
1787
1788 Intuitiv gibt es in der Notation einige Objekte, die zu dem Notensystem
1789 gehören, und einige andere, die immer außerhalb des Notensystems
1790 positioniert werden sollten.  Zu diesen letzteren gehören etwa
1791 Übungszeichen, Textbeschriftung und Dynamikbezeichnung (die als
1792 Objekte außerhalb des Systems bezeichnet werden können).  LilyPonds
1793 Regeln um diese Objekte zu positionieren lautet: so nah am Notensystem
1794 wie möglich, aber gerade so weit weg, dass sie nicht mit anderen
1795 Objekten zusammenstoßen.
1796
1797 Dabei setzt LilyPon die @code{outside-staff-priority}-Eigenschaft
1798 ein um herauszufinden, ob ein Grob ein Objekt außerhalb des Systems
1799 ist: wenn @code{outside-staff-priority} eine Zahl ist, dann handelt
1800 es sich um ein Objekt außerhalb des Systems.  Zusätzlich teilt
1801 @code{outside-staff-priority} noch mit, in welcher Reihenfolge
1802 die Objekte außerhalb des Systems gesetzt werden sollen.
1803
1804 Zuerst werden alle Objekte gesetzt, die nicht außerhalb des Systems
1805 gehören.  Dann werden die Objekte außerhalb des Systems nach dem Wert
1806 ihrer @code{outside-staff-priority}  (in aufsteigender Anordnung)
1807 sortiert.  Eins nach dem anderen werden diese Objekte schließlich
1808 genommen und so platziert, dass sie nicht mit den Objekten zusammenstoßen,
1809 die bereits platziert worden sind.  Wenn also zwei Objekte außerhalb
1810 des Systems um den gleichen Platz streiten, wird das mit dem
1811 geringeren Wert von @code{outside-staff-priority} näher an das
1812 entsprechende Notensystem gesetzt.
1813
1814 @lilypond[quote,ragged-right,relative=2,fragment,verbatim]
1815 c4_"Text"\pp
1816 r2.
1817 \once \override TextScript #'outside-staff-priority = #1
1818 c4_"Text"\pp % this time the text will be closer to the staff
1819 r2.
1820 % by setting outside-staff-priority to a non-number,
1821 % we disable the automatic collision avoidance
1822 \once \override TextScript #'outside-staff-priority = ##f
1823 \once \override DynamicLineSpanner #'outside-staff-priority = ##f
1824 c4_"Text"\pp % now they will collide
1825 @end lilypond
1826
1827 Der Platz, der zwischen einem Objekt außerhalb des Systems und
1828 dem vorhergehenden Objekt eingefügt werden kann (auch als
1829 padding bezeichnet), kann durch @code{outside-staff-padding}
1830 kontrolliert werden.
1831
1832 @lilypond[quote,ragged-right,relative=2,fragment,verbatim]
1833 \once \override TextScript #'outside-staff-padding = #0
1834 a'^"This text is placed very close to the note"
1835 \once \override TextScript #'outside-staff-padding = #3
1836 c^"This text is padded away from the previous text"
1837 c^"This text is placed close to the previous text"
1838 @end lilypond
1839
1840 Standardmäßig werden Objekte außerhalb des Systems so gesetzt,
1841 dass sie eine horizontale Überschneidung mit einem der
1842 vorher gesetzten Grobs vermeiden.  Das kann zu Situationen
1843 führen, in denen Objekte sehr dicht nebeneinander gesetzt
1844 werden.  Der vertikale Platz zwischen Notensystemen kann
1845 auch gesetzt werden, sodass Objekte außerhalb des Systems
1846 ineinander greifen. Mit der Eigenschaft
1847 @code{outside-staff-horizontal-padding} können Objekte vertikal
1848 verschoben werden und derartige Situationen kommen nicht
1849 vor.
1850
1851 @lilypond[quote,ragged-right,relative=2,fragment,verbatim]
1852 % the markup is too close to the following note
1853 c4^"Text"
1854 c4
1855 c''2
1856 % setting outside-staff-horizontal-padding fixes this
1857 R1
1858 \once \override TextScript #'outside-staff-horizontal-padding = #1
1859 c,,4^"Text"
1860 c4
1861 c''2
1862 @end lilypond
1863
1864 @seealso
1865 Schnipsel:
1866 @rlsr{Spacing}.
1867
1868
1869 @node Horizontal spacing
1870 @section Horizontal spacing
1871
1872 @cindex horizontale Platzierung
1873 @cindex horizontale Anordnung
1874 @cindex Anordnung, horizontal
1875
1876 @menu
1877 * Horizontal spacing overview::
1878 * New spacing area::
1879 * Changing horizontal spacing::
1880 * Line length::
1881 * Proportional notation::
1882 @end menu
1883
1884
1885 @node Horizontal spacing overview
1886 @subsection Horizontal spacing overview
1887
1888 Die Setzmaschine interpretiert unterschiedliche Notendauern als
1889 dehnbare Abstände (engl. spring) unterschiedlicher Länge.  Längere
1890 Dauern erhalten mehr Platz, kürzere weniger.  Die kürzeste Dauer
1891 erhält eine feste Breite (die mit @code{shortest-duration-space}
1892 im @code{SpacingSpanner}-Objekt kontrolliert werden kann).  Je
1893 länger die Dauer, umso mehr Platz erhält die Note: wenn ihre
1894 Dauer verdoppelt wird, wird ein bestimmter Platz hinzugefügt
1895 (dessen Breite durch @code{spacing-increment} bestimmt werden
1896 kann).
1897
1898 Das folgende Stück beispielsweise enthält Halbe, Viertel und Achtel.
1899 Die Achtelnote wird gefolgt von einem Notenkopfabstand (NKA).  Die
1900 Viertel wird von 2 NKA gefolgt, die Halbe von 3 NKA usw.
1901
1902 @lilypond[quote,fragment,verbatim,relative=1]
1903 c2 c4. c8 c4. c8 c4. c8 c8
1904 c8 c4 c4 c4
1905 @end lilypond
1906
1907 Normalerweise ist @code{spacing-increment} definiert als 1.2 mal
1908 der Abstand zwischen zwei Notenlinien, was in etwa die Breite eines
1909 Notenkopfes ist.  @code{shortest-duration-space} ist definiert als
1910 2.0, was bedeutet, dass die kürzeste Note 2.4 Notenlinienabstände
1911 2.0 mal der Wert von @code{spacing-increment}) horizontalen
1912 Abstand erhält.  Der Abstand wirdvon der linken Kande des Symbols
1913 errechnet, so dass die kürzeste Note üblicherweise von 1 NKA
1914 Abstand gefolgt wird.
1915
1916 Wenn diese Herangehensweise konsequent angewandt würde, würde eine
1917 einzige Zweiunddreißigstel eine Partitur, in der vor allem Achtel und
1918 Sechzehntel vorkommen, sehr weit auseinanderdehnen.  Die kürzeste
1919 Note wäre nun keine Sechzehntel mehr, sondern eine Zweiunddreißigstel,
1920 wodurch an jede Note der Wert von 1 NKA hinzugefügt würde.  Um das
1921 zu vermeiden, ist die kürzeste Dauer für die Platzverteilung nicht die
1922 kürzeste Note einer Partitur, sondern die, die am häufigsten vorkommt.
1923
1924 Die Notendauer, die am häufigsten vorkommt, wird auf folgende
1925 Weise bestimmt: in jedem Takt wird die kürzeste Note bestimmt.  Die
1926 häufigste kürzeste Note wird dann als Grundlage für die Platzverteilung
1927 der Noten herangezogen, mit der Bedingung, dass diese kürzeste
1928 Note immer ein Achtel oder kürzer sein soll.  Die kürzeste Dauer
1929 wird ausgegeben, wenn @code{lilypond} mit der Option @code{--verbose}
1930 aufgerufen wird.
1931
1932 Diese Dauern können aber auch angepasst werden.  Wenn Sie die Eigenschaft
1933 @code{common-shortest-duration} in dem @code{SpacingSpanner} setzen,
1934 dann wird hiermit die Grunddauer für die Platzverteilung eingestellt.
1935 Die maximale Dauer für diesen Grundwert (normalerweise eine Achtel)
1936 wird definiert mit @code{base-shortest-duration}.
1937
1938 @funindex common-shortest-duration
1939 @funindex base-shortest-duration
1940 @funindex stem-spacing-correction
1941 @funindex spacing
1942
1943 Noten, die noch kürzer sind als die häufigste kürzeste Note, werden
1944 durch einen Platz voneinander getrennt, der proportional zu ihrer
1945 Dauer in Beziehung zur häufigsten kürzesten Note ist.  Wenn also
1946 nur ein paar Sechszehntel zu dem obigen Beispiel hinzugefügt werden,
1947 würden sie von 1/2 NKA gefolgt werden:
1948
1949 @lilypond[quote,fragment,verbatim,relative=2]
1950 c2 c4. c8 c4. c16[ c] c4. c8 c8 c8 c4 c4 c4
1951 @end lilypond
1952
1953 In der Einleitung (siehe @rlearning{Engraving}) wurde erklärt, dass die
1954 Richtung der Notenhälse die Platzverteilung beeinflusst.  Das wird
1955 kontrolliert durch die @code{stem-spacing-correction}-Eigenschaft
1956 in dem @code{NoteSpacing}-Objekt.  Dieses Objekt wird für jeden
1957 @code{Voice}-Kontext erstellt.  Das @code{StaffSpacing}-Objekt (in
1958 einem @code{Staff}-Kontext erstellt) enthält die gleiche Eigenschaft,
1959 um die Verteilung von Hälsen neben Taktlinien zu kontrollieren.  In
1960 dem folgenden Beispiel werden diese Einstellungen gezeigt, einmal
1961 mit den Standardwerten und dann mit größeren Werten, damit man sie
1962 besser sieht:
1963
1964 @lilypond[quote,ragged-right]
1965 {
1966   c'4 e''4 e'4 b'4 |
1967   b'4 e''4 b'4 e''4|
1968   \override Staff.NoteSpacing #'stem-spacing-correction = #1.5
1969   \override Staff.StaffSpacing #'stem-spacing-correction = #1.5
1970   c'4 e''4 e'4 b'4 |
1971   b'4 e''4 b'4 e''4|
1972 }
1973 @end lilypond
1974
1975 Proportionale Notation ist unterstützt, siehe @ref{Proportional notation}.
1976
1977 @seealso
1978 Schnipsel:
1979 @rlsr{Spacing}.
1980
1981 Referenz der Interna:
1982 @rinternals{SpacingSpanner},
1983 @rinternals{NoteSpacing},
1984 @rinternals{StaffSpacing},
1985 @rinternals{NonMusicalPaperColumn}.
1986
1987 @knownissues
1988
1989 Es gibt keine sinnvolle Möglichkeit, die horizontale Verteilung der
1990 Noten zu unterdrücken.  Die folgende Problemumgehung, mit der
1991 dehnbare Abstände (padding) eingesetzt werden, kann benutzt
1992 werden, um zusätzlichen Platz in eine Partitur einzufügen.
1993
1994 @example
1995  \once \override Score.SeparationItem #'padding = #10
1996 @end example
1997
1998 Es gibt derzeit keine Möglichkeit, den Platz zu verringern.
1999
2000
2001 @node New spacing area
2002 @subsection New spacing area
2003
2004 @cindex horizontale Notenabstände, Abschnitte definierten
2005 @cindex Notenabstände, Abschnitte definieren
2006 @cindex Abschnitte definieren, Notenabstände
2007
2008 Neue Abschnitte mit unterschiedlichen Notenabstandsparametern
2009 können mit dem Befehl @code{newSpacingSection} begonnen werden.
2010 Das ist hilfreich, wenn in verschiedenen Abschnitten die
2011 Verhältnisse von kurzen und langen Noten sehr unterschiedlich
2012 ausfallen.
2013
2014 Im folgenden Beispiel wird durch die neue Taktart ein neuer
2015 Abschnitt begonnen, in dem die Sechszehntel weiter außeinander
2016 gesetzt werden sollen.
2017
2018 @lilypond[relative,fragment,verbatim,quote]
2019 \time 2/4
2020 c4 c8 c
2021 c8 c c4 c16[ c c8] c4
2022 \newSpacingSection
2023 \time 4/16
2024 c16[ c c8]
2025 @end lilypond
2026
2027 Der @code{\newSpacingSection}-Befehl erstellt ein neues
2028 @code{SpacingSpanner}-Objekt, weshalb auch neue Anpassungen
2029 mit dem @code{\override}-Befehl an dieser Stelle eingesetzt
2030 werden können.
2031
2032 @seealso
2033 Schnipsel:
2034 @rlsr{Spacing}.
2035
2036 Referenz der Interna:
2037 @rinternals{SpacingSpanner}.
2038
2039
2040 @node Changing horizontal spacing
2041 @subsection Changing horizontal spacing
2042
2043 @cindex Notenabstände, horizontal
2044 @cindex horizontale Abstände
2045 @cindex horizontale Notenabstände
2046
2047 Die horizontalen Abstände können mit der
2048 @code{base-shortest-duration}-Eigenschaft
2049 verändert werden.  In den folgenden Beispielen
2050 werden die gleichen Noten eingesetzt, zuerst
2051 ohne die Eigenschaft zu verändern, im zweiten
2052 Beispiel dann mit einem anderen Wert.  Größere
2053 Werte für @code{ly:make-moment} ergeben dichtere
2054 Noten.  @code{ly:make-moment} erstellt eine Dauer,
2055 die als Bruch notiert wird, sodass @code{1 4}
2056 eine größere Dauer ist als @code{1 16}.
2057
2058 @lilypond[verbatim,line-width=12\cm]
2059 \score {
2060   \relative c'' {
2061     g4 e e2 | f4 d d2 | c4 d e f | g4 g g2 |
2062     g4 e e2 | f4 d d2 | c4 e g g | c,1 |
2063     d4 d d d | d4 e f2 | e4 e e e | e4 f g2 |
2064     g4 e e2 | f4 d d2 | c4 e g g | c,1 |
2065   }
2066 }
2067 @end lilypond
2068
2069 @lilypond[verbatim,line-width=12\cm]
2070 \score {
2071   \relative c'' {
2072     g4 e e2 | f4 d d2 | c4 d e f | g4 g g2 |
2073     g4 e e2 | f4 d d2 | c4 e g g | c,1 |
2074     d4 d d d | d4 e f2 | e4 e e e | e4 f g2 |
2075     g4 e e2 | f4 d d2 | c4 e g g | c,1 |
2076   }
2077   \layout {
2078     \context {
2079       \Score
2080       \override SpacingSpanner
2081                 #'base-shortest-duration = #(ly:make-moment 1 16)
2082     }
2083   }
2084 }
2085 @end lilypond
2086
2087
2088 @snippets
2089
2090 Standardmäßig wird die Platzverteilung in Triolen und andern
2091 rhythmischen Aufteilungen nach verschiedenen nicht von der
2092 Dauer abgeleiteten Faktoren (wie Versetzungszeichen,
2093 Schlüsselwechseln usw.) berechnet.  Um diese Symbole zu
2094 ignorieren und eine gleichmäßige Verteilung der Noten
2095 zu erzwingen, kann die gleichmäßige Dehnung (engl.
2096 uniform stretching) zu Beginn einer Partitur eingeschaltet
2097 werden:
2098
2099 @lilypond[quote,ragged-right,relative=2,fragment,verbatim]
2100 \new Score \with {
2101   \override SpacingSpanner #'uniform-stretching = ##t
2102 } <<
2103   \new Staff{
2104     \times 4/5 {
2105       c8 c8 c8 c8 c8
2106     }
2107     c8 c8 c8 c8
2108   }
2109   \new Staff{
2110     c8 c8 c8 c8
2111     \times 4/5 {
2112       c8 c8 c8 c8 c8
2113     }
2114   }
2115 >>
2116 @end lilypond
2117
2118 Wenn @code{strict-note-spacing} eingestellt ist, werden Noten
2119 gesetzt, ohne dass Schlüssel, Taktlinine oder Verzierungsnoten
2120 zusätzlichen Platz erhalten.
2121
2122 @lilypond[quote,ragged-right,relative=2,fragment,verbatim]
2123 \override Score.SpacingSpanner #'strict-note-spacing = ##t
2124 \new Staff { c8[ c \clef alto c \grace { c16[ c] } c8 c c]  c32[ c32] }
2125 @end lilypond
2126
2127
2128 @seealso
2129 Schnipsel:
2130 @rlsr{Spacing}.
2131
2132
2133 @node Line length
2134 @subsection Line length
2135
2136 @cindex Seitenumbrüche
2137 @cindex Umbrechen von Seiten
2138 @cindex Zeilenlänge
2139 @cindex Länge von Zeilen
2140
2141 @funindex indent
2142 @funindex line-width
2143 @funindex ragged-right
2144 @funindex ragged-last
2145
2146 @c Although line-width can be set in \layout, it should be set in paper
2147 @c block, to get page layout right.
2148 @c Setting indent in \paper block makes not much sense, but it works.
2149
2150 @c Bit verbose and vague, use examples?
2151 Die grundlegenden Einstellungen, die Einfluss auf die Zeilenlänge
2152 haben, sind @code{indent} (Einzug) und @code{line-width}
2153 (Zeilenbreite).  Sie werden in der @code{\layout}-Umgebung
2154 einestellt.  Der erste Befehl bestimmt den Einzug der ersten
2155 Zeile, der zweite die Zeilenlänge der weiteren Notenzeilen.
2156
2157 Wenn @code{ragged-right} eingestellt ist (als in der
2158 @code{\layout}-Umgebung auf den Wert @code{#t} gesetzt wurde),
2159 werden die Systeme linksbündig gesetzt und nicht bis zum
2160 rechten Rand hin durchgezogen, sondern den Noten entsprechend
2161 gesetzt.  Das ist oftmals nützlich für kleine Notenfragmente
2162 und um zu überprüfen, wie eng die Noten natürlicherweise
2163 gesetzt werden würden.
2164
2165 Die Option @code{ragged-last} verhält sich ähnlich zu @code{ragged-right},
2166 aber wirkt sich nur auf die letzte Zeile eines Stückes aus.
2167 Für diese letzte Zeile gibt es keine Einschränkungen.  Das
2168 Resultat erinnert an Textabsätze im Blocksatz, wo die letzte
2169 Zeile des Absatzes mit ihrer natürlichen Länge gestzt wird.
2170
2171 @example
2172 \layout @{
2173 indent = #0
2174 line-width = #150
2175 ragged-last = ##t
2176 @}
2177 @end example
2178
2179 @seealso
2180 Schnipsel:
2181 @rlsr{Spacing}.
2182
2183
2184 @node Proportional notation
2185 @subsection Proportional notation
2186
2187 LilyPond hat Unterstützung für proportionale Notation.  Dabei handelt
2188 es sich um eine horizontale Platzverteilung, die jeder Note einen
2189 exakt ihrer Dauer entsprechenden Platz zuordnet.  Man kann es vergleichen
2190 mit der Notenplatzierung auf einem Raster.  In einigen Partituren
2191 des späten 20. und frühen 21. Jahrhunderts wird dies proportionale
2192 Notation benutzt, um sehr komplizierte rhythmische Verhältnisse
2193 klarer darzustellen, oder um einen Zeitstrahl oder ähnliche Graphiken
2194 direkt in die Partitur zu integrieren.
2195
2196 LilyPond hat Unterstützung für fünf verschiedene Einstellungen der
2197 proportionalen Notation, die alle zusammen oder jede für sich
2198 benutzt werden können:
2199
2200 @itemize
2201 @item @code{proportionalNotationDuration} (proportionale Notendauer)
2202 @item @code{uniform-stretching} (gleichmäßige Dehnung)
2203 @item @code{strict-note-spacing} (strenge Notenverteilung)
2204 @item @code{\remove Separating_line_group_engraver} (entferne Liniengruppentrennungsengraver)
2205 @item @code{\override PaperColumn #'used = ##t} (PapierSpalte benutzt = wahr)
2206 @end itemize
2207
2208 In den Beispielen unten werden diese fünf unterschiedlichen Einstellungen
2209 für die proportionale Notation vorgestellt und ihre Wirkungen
2210 untereinander illustriert.
2211
2212 Es soll mit diesem 1 Takt langen Beispiel begonnen werden, in welchem
2213 die klassischen Abstände und Flattersatz (ragged-right) eingesetzt werden:
2214
2215 @lilypond[quote,verbatim,ragged-right]
2216 \new Score <<
2217   \new RhythmicStaff {
2218     c'2
2219     c'16 c'16 c'16 c'16
2220     \times 4/5 {
2221       c'16 c'16 c'16 c'16 c'16
2222     }
2223   }
2224 >>
2225 @end lilypond
2226
2227 Die Halbe, mit der der Takt beginnt, braucht weitaus weniger
2228 Platz als die Hälfte des Taktes.  Gleichermaßen haben die
2229 Sechszehntel und die Sechszehntel-Quintolen (oder Zwanzigstel),
2230 mit denen der Takt endet, insgesamt weitaus mehr als die Hälfte
2231 der Taktbreite.
2232
2233 Im klassischen Notensatz kann dieses Verhalten genau das gewünschte
2234 Ergebnis bringen, weil dadurch horizontaler Platz von der Halben
2235 weggenommen werden kann und so insgesamt Platz in dem Takt eingespart
2236 wird.
2237
2238 Wenn allerdings ein Zeitstrahl oder andere zeitliche ablaufende
2239 Graphiken über oder unter dem Takt eingefügt werden soll, braucht man
2240 eine Notenplatzierung, die exakt der von ihnen eingenommenen Dauer
2241 entspricht.  Auf folgende Art wird die proportionale Notation
2242 eingeschaltet:
2243
2244 @lilypond[quote,verbatim,ragged-right]
2245 \new Score \with {
2246   proportionalNotationDuration = #(ly:make-moment 1 20)
2247 } <<
2248   \new RhythmicStaff {
2249     c'2
2250     c'16 c'16 c'16 c'16
2251     \times 4/5 {
2252       c'16 c'16 c'16 c'16 c'16
2253     }
2254   }
2255 >>
2256 @end lilypond
2257
2258 Die Halbe zu Beginn des Taktes und die schnelleren Noten in der zweiten
2259 Takthälfte nehmen jetzt genau den gleichen horizontalen Platz ein.  Jetzt
2260 könnte man einen Zeitstrahl mit dem Takt synchronisieren.
2261
2262 Die Einstellung von @code{proportionalNotationDuration} gehört zum
2263 @code{Score}-Kontext.  Kontexteinstellungen können an drei verschiedenen
2264 Stellen in der Quelldatei geschrieben werden: in einer @code{\with}-Umgebung,
2265 in einer @code{\context}-Unmgebung oder direkt in den Noten mit dem
2266 @code{\set}-Befehl.  Alle drei Positionen sind gleichwertig und es hängt
2267 vom Benutzer ab, welche bevorzugt wird.
2268
2269 Die Eigenschaft @code{proportionalNotationDuration} braucht ein Argument,
2270 welches die Referenzdauer ist, anhand welcher alle Noten platziert werden.
2271 Hier wird die LilyPond Scheme-Funktion @code{make-moment} eingesetzt.  Sie
2272 braucht zwei Argumente: einen Zähler und einen Nenner, die einen Bruch einer
2273 Ganzen darstellen.  Die Funktion @code{#(ly:make-moment 1 20)} ergibt also
2274 eine Referenzdauer von einer Zwanzigstel.  Genauso gut können etwa die Dauern
2275 @code{#(ly:make-moment 1 16)}, @code{#(ly:make-moment 1 8)} oder
2276 @code{#(ly:make-moment 3 97)} eingesetzt werden.
2277
2278 Die richtige Referenzdauer, mit der eine vernünftige Verteilung der Noten
2279 proportional möglich ist, muss durch Ausprobieren herausgefunden werden.
2280 Dabei sollte man mit einer Dauer beginnen, die der kleinsten Note des
2281 Stückes nahekommt.  Kleine Referenzdauern lassen die Noten sehr gedehnt
2282 erscheinen, größere Referenzdauern zwingen sie dichter zusammen.
2283
2284 @lilypond[quote,verbatim,ragged-right]
2285 \new Score \with {
2286   proportionalNotationDuration = #(ly:make-moment 1 8)
2287 } <<
2288   \new RhythmicStaff {
2289     c'2
2290     c'16 c'16 c'16 c'16
2291     \times 4/5 {
2292       c'16 c'16 c'16 c'16 c'16
2293     }
2294   }
2295 >>
2296
2297 \new Score \with {
2298   proportionalNotationDuration = #(ly:make-moment 1 16)
2299 } <<
2300   \new RhythmicStaff {
2301     c'2
2302     c'16 c'16 c'16 c'16
2303     \times 4/5 {
2304       c'16 c'16 c'16 c'16 c'16
2305     }
2306   }
2307 >>
2308
2309 \new Score \with {
2310   proportionalNotationDuration = #(ly:make-moment 1 32)
2311 } <<
2312   \new RhythmicStaff {
2313     c'2
2314     c'16 c'16 c'16 c'16
2315     \times 4/5 {
2316       c'16 c'16 c'16 c'16 c'16
2317     }
2318   }
2319 >>
2320 @end lilypond
2321
2322 Man muss beachten, dass die Referenzdauer nicht zu groß ist
2323 (wie die Achtel in dem Beispiel oben), denn dadurch werden
2324 die Noten so dicht gesetzt, dass sich eventuell sogar Notenköpfe
2325 von sehr kleinen Notenwerten überschneiden können.  Die proportionale
2326 Notation nimmt üblicherweise mehr Platz ein als die klassische
2327 Platzverteilung.  Der rhythmischen Klarheit muss ein eng gesetztes
2328 Notenbild geopfert werden.
2329
2330 In Folgenden soll betrachtet werden, wie sich überlappende
2331 rhythmische Aufteilungen am besten positioniert werden.  Als Referenz
2332 wird das erste Beispiel herangezogen, zu welchem ein zweites
2333 System mit anderen rhythmischen Werten hinzugefügt wird:
2334
2335 @lilypond[quote,verbatim,ragged-right]
2336 \new Score <<
2337   \new RhythmicStaff {
2338     c'2
2339     c'16 c'16 c'16 c'16
2340     \times 4/5 {
2341       c'16 c'16 c'16 c'16 c'16
2342     }
2343   }
2344   \new RhythmicStaff {
2345     \times 8/9 {
2346       c'8 c'8 c'8 c'8 c'8 c'8 c'8 c'8 c'8
2347     }
2348   }
2349 >>
2350 @end lilypond
2351
2352 Die Platzaufteilung ist schlecht, weil die gleichlangen Noten des
2353 untersten Systems nicht gleichmäßig verteilt sind.  Im klassischen
2354 Notensatz kommen komplexe rhythmische Verhältnisse wie dieses sehr
2355 selten vor, sodass der Notensatz nicht in Hinsicht auf sie optimiert
2356 ist.  @code{proportionalNotationDuration} hilft in
2357 dieser Situation deutlich:
2358
2359 @lilypond[quote,verbatim,ragged-right]
2360 \new Score \with {
2361   proportionalNotationDuration = #(ly:make-moment 1 20)
2362 } <<
2363   \new RhythmicStaff {
2364     c'2
2365     c'16 c'16 c'16 c'16
2366     \times 4/5 {
2367       c'16 c'16 c'16 c'16 c'16
2368     }
2369   }
2370   \new RhythmicStaff {
2371     \times 8/9 {
2372       c'8 c'8 c'8 c'8 c'8 c'8 c'8 c'8 c'8
2373     }
2374   }
2375 >>
2376 @end lilypond
2377
2378 Aber bei sehr genauer Betrachtung sind die Noten der zweiten Hälfte
2379 der Nonole doch immernoch eine Spur weiter gesetzt als die Noten
2380 der ersten Hälfte.  Um wirklich gleichmäßige Abstände zu erzwingen,
2381 sollte auch noch die gleichmäßige Dehnung angeschaltet werden:
2382
2383 @lilypond[quote,verbatim,ragged-right]
2384 \new Score \with {
2385   proportionalNotationDuration = #(ly:make-moment 1 20)
2386   \override SpacingSpanner #'uniform-stretching = ##t
2387 } <<
2388   \new RhythmicStaff {
2389     c'2
2390     c'16 c'16 c'16 c'16
2391     \times 4/5 {
2392       c'16 c'16 c'16 c'16 c'16
2393     }
2394   }
2395   \new RhythmicStaff {
2396     \times 8/9 {
2397       c'8 c'8 c'8 c'8 c'8 c'8 c'8 c'8 c'8
2398     }
2399   }
2400 >>
2401 @end lilypond
2402
2403 Das Beispiel mit den zwei Systemen ist nun exakt nach den
2404 rhythmischen Werten der Noten gesetzt, sodass ein Zeitstrahl
2405 oder ähnliches eingefügt werden könnte.
2406
2407 Alle Einstellungen zur proportionalen Notation erwarten,
2408 dass die @code{uniform-stretching}-Eigenschaft des
2409 @code{SpacingSpanner}-Objekts auf wahr gesetzt wird.  Andernfalls
2410 kann es vorkommen, dass bestimmte Abstände (etwa von
2411 unsichtbaren Noten) nicht richtig gesetzt werden.
2412
2413 Das @code{SpacingSpanner}-Objekt ist ein abstraktes Grob, dass sich im
2414 @code{Score}-Kontext befindet.  Genauso wie die Einstellungen
2415 von @code{proportionalNotationDuration} können auch diese
2416 Veränderungen an den drei Stellen in der Quelldatei vorkommen:
2417 in der @code{\with}-Umgebung innerhalb von @code{Score}, in
2418 einer @code{\context}-Umgebung oder direkt im Notentext.
2419
2420 Standardmäßig gibt es nur ein @code{SpacingSpanner} pro @code{Score}.
2421 Das heißt, dass @code{uniform-stretching} für die gesamte Partitur
2422 (d.h. für die Reichweite von @code{Score}) entweder an- oder
2423 ausgeschaltet ist.  Man kann allerdings in einer Partitur unterschiedliche
2424 Abschnitte mit verschiedenem Platzierungsverhalten definieren.
2425 Hierzu ist der Befehl @code{\newSpacingSection} da.  Siehe auch @ref{New spacing area}.
2426
2427 Im Folgenden soll gezeigt werden, wie sich der @code{Separating_line_group_engraver}
2428 auswirkt und warum er normalerweise für proportionale Notation ausgeschaltet wird.
2429 In diesem Beispiel wird verdeutlicht, dass vor jeder ersten Note eines Notensystems
2430 immer etwas zusätzlicher Platz gesetzt wird:
2431
2432 @lilypond[quote,verbatim,ragged-right]
2433 \paper {
2434   indent = #0
2435 }
2436
2437 \new Staff {
2438   c'1
2439   \break
2440   c'1
2441 }
2442 @end lilypond
2443
2444 Der gleiche horizontale Platz wird vor eine Noten gesetzt, wenn sie
2445 einer Taktart, einem Schlüssel oder einer Tonartbezeichnung folgt.
2446 Dieser Platz wird durch @code{Separating_line_group_engraver}
2447 eingefügt; wenn wir ihn aus der Partitur entfernen, entfällt
2448 auch dieser zusätzliche Platz:
2449
2450 @lilypond[quote,verbatim,ragged-right]
2451 \paper {
2452   indent = #0
2453 }
2454
2455 \new Staff \with {
2456   \remove Separating_line_group_engraver
2457 } {
2458   c'1
2459   \break
2460   c'1
2461 }
2462 @end lilypond
2463
2464 Nichmusikalische Elemente wir Takt- und Tonartangaben, Schlüssel und
2465 Versetzungszeichen sind problematisch in proportionaler
2466 Notation.  Keine dieser Elemente hat eine rhythmische Dauer, aber
2467 alle brauchen horizontalen Platz.  Das Problem wird auf unterschiedliche
2468 Weise gelöst.
2469
2470 Es ist manchmal möglich, Probleme mit Tonarten zu lösen, indem keine
2471 benutzt werden.  Das ist durchaus eine ernstzunehmende Option, weil
2472 die meisten Partituren mit proportionaler Notation für heutige
2473 Musik geschrieben werden.  Ähnliches gilt für Taktarten, insbesondere,
2474 wenn ein Zeitstrahl in die Partitur eingearbeitet werden soll.
2475 In den meisten Parituren kommt jedoch irgendeine Taktart vor.
2476 Schlüssel und Versetzungszeichen sind noch wichtiger; auf
2477 sie kann selten verzichtet werden.
2478
2479 Eine Lösungsmöglichkeit ist es, die @code{strict-note-spacing}-Eigenschaft
2480 des @code{SpacingSpanner}-Objekts zu benutzen.  Zum Vergleich
2481 die beiden Partituren unten:
2482
2483 @lilypond[quote,verbatim,ragged-right]
2484 \new Staff {
2485   \set Score.proportionalNotationDuration = #(ly:make-moment 1 16)
2486   c''8
2487   c''8
2488   c''8
2489   \clef alto
2490   d'8
2491   d'2
2492 }
2493
2494 \new Staff {
2495   \set Score.proportionalNotationDuration = #(ly:make-moment 1 16)
2496   \override Score.SpacingSpanner #'strict-note-spacing = ##t
2497   c''8
2498   c''8
2499   c''8
2500   \clef alto
2501   d'8
2502   d'2
2503 }
2504 @end lilypond
2505
2506 Bei beiden handelt es sich um proportionale Notation, aber
2507 die Platzverteilung im oberen Beispiel ist zu weit wegen
2508 des Schlüsselwechsels.  Die Platzverteilung des zweiten
2509 Beispiels dagegen bleibt rhythmisch korrekt.
2510 @code{strict-note-spacing} bewirkt, dass Takt- und
2511 Tonartbezeichnungen, Schlüssel und Versetzungszeichen
2512 keine Rolle bei der Berechnung der Abstände spielen.
2513
2514 Zusätzlich zu den hier vorgestellten Einstellungen gibt es
2515 noch eine Reihe von Möglichkteiten, die oft in proportionaler
2516 Notation benutzt werden.  Dazu gehören:
2517
2518 @itemize
2519 @item @code{\override SpacingSpanner #'strict-grace-spacing = ##t}
2520 @item @code{tupletFullLength = ##t}
2521 @item @code{\override Beam #'breakable = ##t}
2522 @item @code{\override Glissando #'breakable = ##t}
2523 @item @code{\override TextSpanner #'breakable = ##t}
2524 @item @code{\remove Forbid_line_break_engraver in the Voice context}
2525 @end itemize
2526
2527 Diese Einstellungn bewirken, dass auch Verzierungsnoten proportional
2528 gesetzt werden, dass Klammern von rhythmischen Gruppen bis zu den
2529 Anfangs- und Endpunkten ausgedehnt werden und lassen dehnbare
2530 Objekte wie Balken und Glissandi auch über Taktstriche hinweg zu.
2531
2532 @seealso
2533 Notationsreferenz:
2534 @ref{New spacing area}.
2535
2536 Schnipsel:
2537 @rlsr{Spacing}.
2538
2539
2540 @node Fitting music onto fewer pages
2541 @section Fitting music onto fewer pages
2542
2543 Manchmal kommt es vor, dass nur ein oder zwei Systeme auf die
2544 nächste Seite geraten, obwohl es so aussieht, als ob auf der
2545 vorigen Seite genügend Platz ist, um diese Systeme auch noch
2546 unterzubringen.
2547
2548 Wenn man derartige Platzierungsprobleme untersucht, ist die
2549 Funktion @code{annotate-spacing} von sehr großer Hilfe.  Hiermit
2550 wird in den Musiksatz zusätzlich Information darüber ausgegeben,
2551 wieviel Platz bestimmten Parametern zugewiesen wird.  Genaueres
2552 hierzug in
2553 @ref{Displaying spacing}.
2554
2555 @menu
2556 * Displaying spacing::
2557 * Changing spacing::
2558 @end menu
2559
2560
2561 @node Displaying spacing
2562 @subsection Displaying spacing
2563
2564 @cindex Platzierung, Layouteinstellungen
2565
2566 @funindex annotate-spacing
2567
2568 Die Dimensionen von vertikalen und horizontalen Platzierungsvariablen,
2569 die veränderbar sind, lassen sich mit ihren aktuellen Werten im
2570 Notentext anzeigen, wenn man die Funktion
2571 @code{annotate-spacing} in der @code{\paper}-Umgebung einschaltet:
2572
2573 @c need to have \book{} otherwise we get the separate systems. -hwn
2574 @lilypond[verbatim,quote]
2575 #(set-default-paper-size "a6" 'landscape)
2576 \book {
2577   \score { { c4 } }
2578   \paper { annotate-spacing = ##t }
2579 }
2580 @end lilypond
2581
2582 @noindent
2583 Alle Layoutdimensionen werden in Notenlinienzwischenräumen
2584 aufgelistet, unabhängig von den Einheiten, mit denen sie in der
2585 @code{\paper}- oder @code{\layout}-Umgebung definiert worden
2586 sind.  In dem letzten Beispiel hat @code{paper-height} einen Wert von
2587 59.75 Notenlinienzwischenräumen und @code{staff-size}
2588 Systemhöhe) ist 20 Punkte.  Dabei gilt:
2589
2590 @multitable {1 Notenlinienzwischenraum} {Systemgröße)/4 * (25.4/72.27) mm}
2591
2592 @item 1 Punkt
2593 @tab = (25.4/72.27) mm
2594
2595 @item 1 Notenlinienzwischenraum
2596 @tab = (@code{staff-size})/4 pts
2597 @item
2598 @tab = (@code{staff-size})/4 * (25.4/72.27) mm
2599
2600 @end multitable
2601
2602 In diesem Fall ist ein @code{staff-space} (Notenlinienzwischenraum)
2603 etwa gleich 1.757 mm.  Deshalb entspricht der Wert von 95.75
2604 @code{staff-space} für @code{paper-height} (Papierhöhe) 105 mm,
2605 die Höhe eines quer gelegten A6-Papiers.  Die Paare (@var{a},@var{b}) sind
2606 Intervalle, wobei @var{a} der untere Rand und @var{b} der
2607 obere Rand des Intervalls.
2608
2609 @seealso
2610
2611 Notationsreferenz:
2612 @ref{Setting the staff size}
2613
2614 Schnipsel:
2615 @rlsr{Spacing}.
2616
2617
2618 @node Changing spacing
2619 @subsection Changing spacing
2620
2621 Die Ausgabe von @code{annotate-spacing} bietet sehr viele
2622 Details zu den vertikalen Dimensionen einer Paritur.  Zu Information,
2623 wie Seitenränder und andere Layout-Variablen geändert werden
2624 können, siehe @ref{Page formatting}.
2625
2626 Neben Rändern gibt es einige weitere Optionen, Platz zu sparen:
2627
2628 @itemize
2629 @item
2630 LilyPond kann die Systeme so dicht wie möglich platzieren (damit 
2631 so viele Systeme wie möglich auf eine Seite passen), aber sie 
2632 dann so anordnen, dass kein weißer Rand unten auf der Seite entsteht.
2633
2634 @example
2635 \paper @{
2636   between-system-padding = #0.1
2637   between-system-space = #0.1
2638   ragged-last-bottom = ##f
2639   ragged-bottom = ##f
2640 @}
2641 @end example
2642
2643 @item
2644 Die Anzahl der Systeme kann reduziert werden.  Das kann auf
2645 zwei Arten helfen: wenn einfach nur ein Wert gesetzt wird, auch
2646 wenn es die gleiche Anzahl ist, die auch schon vorher von LilyPond
2647 erstellt wurde, kann manchmal dazu führen, dass mehr Systeme
2648 auf eine Seite gesetzt werden.  Das liegt daran, dass ein
2649 Schritt im Notensatz ausgelassen wird, der die Seitenverteilung
2650 nur grob einschätzt, sodass eine bessere Seitenverteilung
2651 entsteht.  Auch wenn man eine Verringerung der Anzahl an Systemen
2652 erzwingt, kann oft eine Seite eingespart werden.  Wenn LilyPond 
2653 die Musik etwa auf 11 Systeme verteilt, kann man die Benutzung von 
2654 nur 10 Systemen erzwingen.
2655
2656 @example
2657 \paper @{
2658   system-count = #10
2659 @}
2660 @end example
2661
2662 @item
2663 Vermeidung von Objekten, die den vertikalen Abstand von Systemen 
2664 vergrößern, hilft oft. Die Verwendung von Klammern bei Wiederholungen 
2665 etwa braucht mehr Platz. Wenn die Noten innerhalb der Klammern  auf 
2666 zwei Systeme verteilt sind, brauchen sie mehr Platz, als wenn sie 
2667 nur auf einer Zeile gedruckt werden.
2668
2669 Ein anderes Beispiel ist es, Dynamik-Zeichen, die besonders 
2670 weit @qq{hervorstehen}, zu verschieben.
2671
2672 @lilypond[verbatim,quote]
2673 \relative c' {
2674   e4 c g\f c
2675   \override DynamicText #'extra-offset = #'( -2.2 . 2.0)
2676   e4 c g\f c
2677 }
2678 @end lilypond
2679
2680 @item
2681 Die horizontalen Abstände können mit der 
2682 @code{SpacingSpanner}-Eigenschaft verändert werden.  Siehe
2683 @ref{Changing horizontal spacing} für Einzelheiten.  Dieses
2684 Beispiel zeigt die normalen Abstände:
2685
2686 @lilypond[verbatim,quote]
2687 \score {
2688   \relative c'' {
2689     g4 e e2 |
2690     f4 d d2 |
2691     c4 d e f |
2692     g4 g g2 |
2693     g4 e e2 |
2694   }
2695 }
2696 @end lilypond
2697
2698 @noindent
2699 Das nächste Beispiel verändert @code{common-shortest-duration} (die
2700 häufigste kürzeste Note) von @code{1/4} zu @code{1/2}.  Die Viertelnote
2701 ist dennoch die häufigste Note in diesem Abschnitt, sodass der
2702 Notentext zusammengedrängt, wird, wenn eine Halbe als Standard
2703 angegeben wird:
2704
2705 @lilypond[verbatim,quote]
2706 \score {
2707   \relative c'' {
2708     g4 e e2 |
2709     f4 d d2 |
2710     c4 d e f |
2711     g4 g g2 |
2712     g4 e e2 |
2713   }
2714   \layout {
2715     \context {
2716       \Score
2717       \override SpacingSpanner
2718         #'common-shortest-duration = #(ly:make-moment 1 2)
2719     }
2720   }
2721 }
2722 @end lilypond
2723
2724 @noindent
2725 Die @code{common-shortest-duration}-Eigenschaft kann nicht
2726 dynamisch verändert werden, darum muss sie immer in der
2727 @code{\context}-Umgebung definiert werden und wirkt sich somit
2728 auf eine ganze @code{\score}-Umgebung aus.
2729
2730 @end itemize
2731
2732 @seealso
2733 Notationsreferenz:
2734 @ref{Page formatting},
2735 @ref{Changing horizontal spacing}.
2736
2737 Schnipsel:
2738 @rlsr{Spacing}.