]> git.donarmstrong.com Git - lilypond.git/blob - Documentation/de/notation/spacing.itely
67f8b0ab7d2d4363c4aacc242983205844ad2651
[lilypond.git] / Documentation / de / notation / spacing.itely
1 @c -*- coding: utf-8; mode: texinfo; documentlanguage: de -*-
2
3 @ignore
4     Translation of GIT committish: e5a609e373eae846857f9a6d70a402a3d42b7d94
5
6     When revising a translation, copy the HEAD committish of the
7     version that you are working on.  For details, see the Contributors'
8     Guide, node Updating translation committishes.
9 @end ignore
10
11 @c \version "2.19.22"
12
13 @c Translators: Till Paala
14
15
16 @node Abstände
17 @chapter Abstände
18 @translationof Spacing issues
19
20 Das finale Layout der Seite wird von drei Faktoren bestimmt: dem Layout
21 der Seite, den Zeilenumbrüchen und der Platzverteilung.  Jeder Faktor
22 beeinflusst auch die anderen mit.  Die Wahl der Platzverteilung
23 entscheidet, wie eng die Notensysteme gesetzt werden.  Das wiederum
24 hat Einfluss auf die gewählten Zeilenumbrüche und letztendlich also
25 auch darauf, wieviele Seiten ein Stück beansprucht.
26
27 Die Verteilung der Musik auf der Seite geschieht grob gesagt in
28 vier Schritten.  Zuerst werden flexible Entfernungen (@qq{springs})
29 gewählt, die auf den Notendauern basieren.  Alle möglichen
30 Zeilenumbrüche werden getestet und ein @qq{Schlechtigkeitsscore}
31 für die Umbrüche erstellt.  Danach wird die mögliche Höhe eines Systems
32 ermittelt und schließlich wird eine bestimmte Kombination aus
33 Seiten- und Zeilenumbruch ausgewählt, sodass weder die horizontale
34 noch die vertikale Platzverteilung zu eng oder zu weit gesetzt wird.
35
36 Einstellungen, die das Layout beeinflussen, können in zwei Umgebungen
37 gesetzt werden: in der @code{\paper @{...@}}- und der @code{\layout @{...@}}-Umgebung.
38 Die @code{\paper}-Umgebung enthält Einstellungen des Seitenlayouts, die für
39 alle Partituren innerhalb eines @code{\book} die gleichen sein sollen, wie
40 etwa Papierhöhe oder ob Seitenzahlen ausgegeben werden sollen.  Siehe
41 @ref{Seitenlayout}.  Die @code{\layout}-Umbegung enthält Layouteinstellungen
42 der Partitur selber, wie etwa die Zahl der Systeme oder den Platz zwischen
43 Systemgruppen usw.  Siehe @ref{Partiturlayout}.
44
45 @menu
46 * Seitenlayout::
47 * Partiturlayout::
48 * Umbrüche::
49 * Vertikale Abstände::
50 * Horizontale Abstände::
51 * Die Musik auf weniger Seiten zwingen::
52 @end menu
53
54
55 @node Seitenlayout
56 @section Seitenlayout
57 @translationof Page layout
58
59 Dieser Abschnitt behandelt Seitenlayout-Optionen innerhalb der @code{\paper}-Umgebung.
60
61 @menu
62 * Die paper-Umgebung::
63 * Papierformat und automatische Skalierung::
64 * Vertikale paper-Variablen mit festen Abständen::
65 * Vertikale paper-Variablen mit flexiblen Abständen::
66 * paper-Variablen für horizontale Abstände::
67 * Andere paper-Variablen::
68 @end menu
69
70
71 @node Die paper-Umgebung
72 @subsection Die @code{@bs{}paper}-Umgebung
73 @translationof The paper block
74
75 @cindex Papiergröße
76 @cindex Größe, Papier
77 @cindex Seitegröße
78 @cindex Größe, Seite
79
80 Die @code{\paper}-Umgebung kann innerhalb einer @code{\book}-, nicht aber
81 innerhalb einer @code{\score}-Umgebung vorkommen.  Einstellungen in
82 @code{\paper} wirken sich auf das gesamte Buch aus, welches viele einzelne
83 Partituren beinhalten kann.  Einstellungen, die in der @code{\paper}-Umgebung
84 vorkommen können, beinhalten:
85
86 @itemize
87
88 @item
89 die @code{set-paper-size}-Scheme-Funktion,
90
91 @item
92 @code{\paper}-Variablen, die zum Verändern des Seitenlayouts eingesetzt werden und
93
94 @item
95 Beschriftungsdefinitionen, mit denen das Layout von Kopf- und Fußleisten sowie
96 Titeln beeinflusst wird.
97
98 @end itemize
99
100 Die @code{set-paper-size}-Funktion wird im nächsten Abschnitt behandelt:
101 @ref{Papierformat und automatische Skalierung}.  Die @code{\paper}-Variablen,
102 die das Seitenlayout beeinflussen, werden in späteren Abschnitten behandelt.
103 Die Beschriftungsdefinitionen für Kopf- und Fußzeilen sowie Titeln werden behandelt
104 in @ref{Eigene Kopf und Fußzeilen sowie Titel}.
105
106 Die meisten @code{\paper}-Variablen funktionieren nur innerhalb der
107 @code{\paper}-Umgebung.  Die wenigen, die auch in der @code{\layout}-Umgebung
108 funktionieren, finden sich in @ref{Die layout-Umgebung}.
109
110 Außer wenn anders angegeben, werden alle @code{\paper}-Variablen, die
111 Abständen auf der Seite antsprechen, in Millimetern gemessen, es sei denn,
112 eine andere Maßeinheit ist definiert.  Beispielsweise wird mit folgender
113 Definition der obere Rand (top-margin) 10 mm breit definiert:
114
115 @example
116 \paper @{
117   top-margin = 10
118 @}
119 @end example
120
121 Damit etwa @code{0.5} Zoll benutzt werden, muss @code{\in} dem Maß nachgestellt werden:
122
123 @example
124 \paper @{
125   top-margin = 0.5\in
126 @}
127 @end example
128
129 Mögliche Maßeinheiten sind @code{\mm}, @code{\cm}, @code{\in} und
130 @code{\pt}.  Diese Maßeinheiten sind einfach Werte, um von Millimetern
131 zu Konvertieren, sie sind in @file{ly/paper-defaults-init.ly} definiert.
132 Um Missverständnisse zu vermeiden, wird normalerweise @code{\mm} geschrieben,
133 auch wenn es eigentlich nicht notwendig wäre.
134
135 Man kann die @code{\paper}-Werte auch mit Scheme definieren.  Die Scheme-Entsprechung
136 der obigen Definition ist:
137
138 @example
139 \paper @{
140   #(define top-margin (* 0.5 in))
141 @}
142 @end example
143
144 @seealso
145 Notationsreferenz
146 @ref{Papierformat und automatische Skalierung},
147 @ref{Eigene Kopf und Fußzeilen sowie Titel},
148 @ref{Die layout-Umgebung,,Die @code{@bs{}layout}-Umgebung}.
149
150 Installierte Dateien:
151 @file{ly/paper-defaults-init.ly}.
152
153
154 @node Papierformat und automatische Skalierung
155 @subsection Papierformat und automatische Skalierung
156 @translationof Paper size and automatic scaling
157
158 @cindex Papierformat
159 @cindex Seitenformat
160
161 @funindex \paper
162
163 @menu
164 * Das Papierformat einstellen::
165 * Automatische Skalierung auf ein Papierformat::
166 @end menu
167
168
169 @node Das Papierformat einstellen
170 @unnumberedsubsubsec Das Papierformat einstellen
171 @translationof Setting the paper size
172
173 @q{A4} ist der Standardwert, wenn keine ausdrückliches Papierformat
174 eingestellt ist.  Es gibt jedoch zwei Funktionen, mit denen man
175 das Papierformat ändern kann: @code{set-default-paper-size}
176
177 @example
178 #(set-default-paper-size "quarto")
179 @end example
180
181 @noindent
182 welcher immer auf oberster Ebene der Datei geschrieben werden muss, und
183 @code{set-paper-size}
184
185 @example
186 \paper @{
187   #(set-paper-size "tabliod")
188 @}
189 @end example
190
191 @noindent
192 welcher in eine @code{\paper}-Umgebung geschrieben werden muss.
193
194
195 Wenn die @code{set-default-paper-size}-Funktion auf oberster Ebene der
196 Datei eingesetzt wird, muss sie vor allen @code{\paper}-Umgebungen kommen.
197 @code{set-default-paper-size} definiert das Papierformat für alle Seiten,
198 während @code{set-paper-size} nur das Format der Seiten bestimmt, auf die
199 sich die @code{\paper}-Umgebung bezieht.  Wenn beispielsweise die
200 @code{\paper}-Umgebung oben in der Datei steht, dann bezieht sie sich
201 auf alle Seiten in der Datei.  Wenn die @code{\paper}-Umgebung innherhalb
202 einer @code{\book}-Umgebung steht, dann bezieht sie sich nur auf das eine
203 Buch.
204
205 Wenn die @code{set-paper-size}-Funktion eingesetzt wird, muss sie @emph{vor}
206 allen anderen Funktionen stehen, die in derselben @code{\paper}-Umgebung
207 benützt werden. Siehe @ref{Automatische Skalierung auf ein Papierformat}.
208
209 Die Papierformate finden sich in der Datei @file{scm/paper.scm} definiert.
210 Hierhin kann man eigene Formate definieren, sie werden jedoch bei einer
211 Aktualisierung von LilyPond überschrieben.  Die vorhandenen Papierformate
212 finden sich in @ref{Vordefinierte Papierformate}.
213
214 @c An appendix entry exists for paper sizes but is not auto-generated
215  
216 Der folgende Befehl kann benützt werden, um ein eigenes Papierformat
217 hinzuzufügen, welches dann mit @code{set-default-paper-size} oder
218 @code{set-paper-size} benützt werden kann:
219
220 @example
221 #(set! paper-alist (cons '("mein Format" . (cons (* 15 in) (* 3 in))) paper-alist))
222
223 \paper @{
224   #(set-paper-size "mein Format")
225 @}
226 @end example
227
228 Die Einheiten @code{in} (Fuß), @code{cm} (Centimeter) and @code{mm} (Millimeter)
229 können benützt werden.
230
231 @cindex Ausrichtung, Papier
232 @cindex Papier, Ausrichtung
233 @cindex hochkant, Papier
234 @cindex quer, Papier
235 @cindex Papier, quer
236
237 @funindex landscape
238
239 Wenn das Symbol @code{'landscape} an die Funktion
240 @code{set-default-paper-size} gehängt wird, werden die Seiten um
241 90° gedreht und die Notensysteme entsprechend breiter gesetzt.
242
243 @example
244 #(set-default-paper-size "a6" 'landscape)
245 @end example
246
247 Die Notenausgabe wird @emph{nicht} gedreht, nur das Papierformat.
248
249 @seealso
250 Notationsreferenz:
251 @ref{Automatische Skalierung auf ein Papierformat},
252 @ref{Vordefinierte Papierformate}.
253
254 Installierte Dateien:
255 @file{scm/paper.scm}.
256
257
258 @node Automatische Skalierung auf ein Papierformat
259 @unnumberedsubsubsec Automatische Skalierung auf ein Papierformat
260 @translationof Automatic scaling to paper size
261
262 Wenn das Papierformat mit einer der Scheme-Funktionen
263 (@code{set-default-paper-size} oder @code{set-paper-size}) geändert wird,
264 werden die Werte einiger @code{\paper}-Variablen automatisch an die
265 neue Größe angepasst.  Um die automatische Skalierung für eine bestimmte
266 Variable zu umgehen, kann die Variable definiert werden, nachdem man
267 das Papierformat angegeben hat.  Es sollte beachtet werden, dass die
268 automatische Anpassung nicht ausgelöst wird, wenn man nur die
269 @code{paper-height} oder @code{paper-width}-Variablen verändert, obwohl
270 @code{paper-width} andere Werte beeinflussen kann (das muss von der automatischen
271 Skalierung unterschieden werden und wird unten behandelt).  Die Funktionen
272 @code{set-default-paper-size} und @code{set-paper-size} werden behandelt
273 in @ref{Das Papierformat einstellen}.
274
275 Die vertikalen Dimensionen, die durch die automatische Skalierung verändert
276 werden sind: @code{top-margin} und @code{bottom-margin} (siehe
277 @ref{Vertikale paper-Variablen mit festen Abständen,,Vertikale @code{@bs{}paper}-Variablen mit festen Abständen}).  Die horizontalen
278 Dimensionen, die durch die automatische Skalierung verändert werden, sind
279 @code{left-margin}, @code{right-margin}, @code{inner-margin}, @code{outer-margin},
280 @code{binding-offset}, @code{indent} und @code{short-indent} (siehe
281 @ref{paper-Variablen für horizontale Abstände,,@code{@bs{}paper}-Variablen für horizontale Abstände}).
282
283 Die Standardwerte für diese Dimensionen sind in
284 @file{ly/paper-defaults-init.ly} definiert, wobei interne Variablen mit den
285 Bezeichnungen @code{top-margin-default}, @code{bottom-margin-default}, usw.
286 benutzt werden.  Das sind die Werte für die Standardpapiergröße
287 @code{a4}.  Zum Vergleich: @code{a4} hat Werte von @code{297\mm} für
288 @code{paper-height} und @code{210\mm} für @code{paper-width}.
289
290 @seealso
291 Notationsreferenz:
292 @ref{Vertikale paper-Variablen mit festen Abständen,,Vertikale @code{@bs{}paper}-Variablen mit festen Abständen},
293 @ref{paper-Variablen für horizontale Abstände,,@code{@bs{}paper}-Variablen für horizontale Abstände}.
294
295 Installierte Dateien:
296 @file{ly/paper-defaults-init.ly},
297 @file{scm/paper.scm}.
298
299
300
301 @node Vertikale paper-Variablen mit festen Abständen
302 @subsection Vertikale @code{@bs{}paper}-Variablen mit festen Abständen
303 @translationof Fixed vertical spacing paper variables
304
305 @warning{Einige @code{@bs{}paper}-Dimensionen werden automatisch nach
306 Papierformat skaliert, was zu ungewolltem Verhalten führen kann.  Siehe
307 @ref{Automatische Skalierung auf ein Papierformat}.}
308
309 Standardwerte (vor der Skalierung) sind definiert in
310 @file{ly/paper-defaults-init.ly}.
311
312 @table @code
313 @item paper-height
314 @funindex paper-height
315
316 Die Höhe der Seite, standardmäßig nicht definiert.  Die automatische
317 Skalierung einiger vertikalen Dimensionen wird hiervon nicht betroffen.
318
319 @item top-margin
320 @funindex top-margin
321
322 Der Rand zwischen dem oberen Ende der Seite und dem oberen Ende
323 des bedruckbaren Bereichs.  Wenn das Papierformat verändert wurde, wird
324 der Standardwert dieser Dimension entsprechend skaliert.
325
326 @item bottom-margin
327 @funindex bottom-margin
328
329 Der Rand zwischen dem unteren Ende der Seite und dem unteren Ende des
330 bedruckbaren Bereichs.  Wenn das Papierformat verändert wurde, wird
331 der Standardwert dieser Dimension entsprechend skaliert.
332
333 @item ragged-bottom
334 @funindex ragged-bottom
335
336 Wenn auf wahr gesetzt, werden die Systeme nicht vertikal bis zum unteren
337 Seitenrand verteilt.  Sollte auf wahr gesetzt sein für Stücke, die nur
338 ein bis zwei Notensystemgruppen pro Seite haben, etwa Orchesterpartituren.
339
340 @item ragged-last-bottom
341 @funindex ragged-last-bottom
342
343 Wenn auf falsch gesetzt, werden die Systeme vertikal auf der letzten Seite
344 verteilt.  Bei Stücken, die grob zwei oder mehr Seiten füllen, sollten es auf
345 falsch (@code{false}) gesetzt werden.  Hiermit wird auch die letzte Seite von Teilen eines
346 @code{\book}, die mit @code{\bookpart} erstellt sind, beeinflusst.
347
348 @end table
349
350 @seealso
351 Notationsreferenz:
352 @ref{Automatische Skalierung auf ein Papierformat}.
353
354 Installierte Dateien:
355 @file{ly/paper-defaults-init.ly}.
356
357 Schnipsel:
358 @rlsr{Spacing}.
359
360 @knownissues
361
362 Die Titel (aus der @code{\header}-Umgebung) werden als Systemgruppe
363 behandelt, sodass @code{ragged-bottom} und @code{ragged-last-bottom} auch
364 zusätzlichen Abstand zwischen den Titel und dem ersten System einer
365 Paritur einfügt.
366
367 Explizit definierte Papierformate überschreiben alle vom Benutzer erstellte
368 Randeinstellung für die Ränder oben und unten.
369
370
371 @node Vertikale paper-Variablen mit flexiblen Abständen
372 @subsection Vertikale @code{@bs{}paper}-Variablen mit flexiblen Abständen
373 @translationof Flexible vertical spacing paper variables
374
375 In den meisten Fällen bietet es sich an, dass die vertikalen
376 Abstände zwischen bestimmten Objekten (wie Ränder, Titel,
377 Notensystemgruppen und einzelne Partituren) flexibel gehalten
378 werden, sodass sie je nach Situation gedehnt oder komprimiert
379 werden können.  Es gibt eine Anzahl von Variablen für die
380 @code{\paper}-Umgebung, mit denen man das Dehnungsverhalten dieser
381 Dimensionen beeinflussen kann.  Sie finden sich unten aufgelistet.
382
383 Dabei sollte beachtet werden, dass die Variablen, die in diesem
384 Abschnitt behandelt werden, nicht die Platzierung und das
385 Dehnungsverhalten von Notensystemen innerhalb der einzelnen
386 Systemgruppen behandelt.  Die Dehnung zwischen Notensystemen
387 wird mit Grob-Eigenschaften kontrolliert, deren Einstellungen
388 normalerweise innerhalb der @code{\score}-Umgebung vorgenommen
389 werden, und nicht innerhalb der @code{\paper}-Umgebung.  Siehe auch
390 @ref{Flexible vertikale Abstände in Systemgruppen}.
391
392 @menu
393 * Struktur der Alisten für flexible vertikale Abstände::
394 * Liste der flexiblen vertikalen Abstandsvariablen in paper::
395 @end menu
396
397
398 @node Struktur der Alisten für flexible vertikale Abstände
399 @unnumberedsubsubsec Struktur der Alisten für flexible vertikale Abstände
400 @translationof Structure of flexible vertical spacing alists
401
402 Jede der flexiblen vertikalen Abstandsvariablen ist eine Aliste (eine assoziative Liste), die
403 vier @emph{Schlüssel} (engl. key) enthält:
404
405 @itemize
406
407 @item
408 @code{basic-distance} (Grund-Abstand) -- der vertikale Abstand, gemessen in
409 Systemzwischenräumen, zwischen den @emph{Referenzpunkten}
410 zweier Elemente, wenn keine Zusammenstöße vorkommen würden und
411 keine Dehnung oder Kompression stattfindet.  Der Referenzpunkt
412 einer (Titel-)Beschriftung (auf höchster Ebene) ist sein
413 höchster Punkt und der Referenzpunkt einer Systemgruppe ist
414 der vertikale Mittelpunkt des nächsten @code{StaffSymbol}
415 -- sogar wenn eine Nicht-Notensystemzeile (wie etwa ein
416 @code{Lyrics}-Kontext) dazwischen kommt.  Werte für @code{basic-distance},
417 die weniger als entweder @code{padding} oder @code{minimum-distance}
418 sind, haben keine Bedeutung, weil der sich daraus ergebende
419 Abstand niemals weniger als entweder @code{padding} oder
420 @code{minimum-distance} ergibt.
421
422 @item
423 @code{minimum-distance} (minimaler Abstand) -- der kleinste
424 erlaubte vertikale Abstand, gemessen in Systemzwischenräumen,
425 zwischen den Referenzpunkten der zwei Elemente, wenn Kompression
426 stattfindet.  Werte für @code{minimum-distance}, die geringer als
427 @code{padding} sind, haben keine Bedeutung, weil der sich daraus
428 ergebende Abstand niemals weniger als @code{padding} ergibt.
429
430 @item
431 @code{padding} (Verschiebung) -- der minimal benötigte vertikale blanke
432 Freiraum zwischen den Bounding-Boxen (oder Skyline) der zwei Objekten, gemessen in Notenlinienabständen.
433
434 @item @code{stretchability} (Dehnbarkeit) -- ein einheitsloses
435 Maß der Leichtigkeit, mit der sich die Dimension dehnen lässt (ohne
436 dass Zusammenstöße auftreten).  Wenn es null ist, wird der Abstand
437 nicht gedehnt (außer ein Zusammenstoß würde auftreten), wenn es
438 positiv ist, hängt die Wichtigkeit der Dehnbarkeit eines bestimmten
439 Objekts nur noch von seiner Beziehung zu dem Wert des anderen Objekts
440 ab.  Beispielsweise wennn eine Dimension die doppelte Dehnbarkeit als
441 die andere hat, wird sie auch zweimal so einfach gedehnt.  Werte sollten
442 nicht-negativ und reale Zahlen sein.  Der Wert @code{+inf.0}
443 ruft einen @code{programming_error} hervor und wird ignoriert, aber
444 @code{1.0e7} kann für einen so gut wie unendlich dehnbaren Abstand eingesetzt
445 werden.  Wenn der Wert nicht gesetzt wird, ist der Standardwert
446 der von @code{basic-distance}.  Die Wahrscheinlichkeit einer Dimension, sich
447 zu verkleinern, kann man nicht direkt beeinflussen, sondern sie ergibt sich
448 aus (@code{space}@tie{}@minus{}@tie{}@code{minimum-distance}).
449
450 @end itemize
451
452 Wenn eine Seite einen nicht ausgeglichenen unteren Rand hat, ist der
453 resultierende Abstand der größte von:
454
455 @itemize
456
457 @item
458 @code{basic-distance},
459
460 @item
461 @code{minimum-distance} und
462
463 @item
464 @code{padding} plus der kleinste nötige Abstand, um Zusammenstöße
465 zu vermeiden.
466
467 @end itemize
468
469 Bei Partituren über mehrere Seiten mit nicht ausgeglichenem unteren Rand
470 greift die letzte Seite auf die gleiche Positionierung zurück wie die
471 vorhergehende Seite, vorausgesetzt, dafür ist genügend Platz vorhanden.
472
473 Spezifische Methoden, um Alisten zu verändern, werden behandelt in
474 @ref{Alisten verändern}.  Das folgende Beispiel demonstriert beide Arten,
475 wie diese Alisten verändert werden können.  Der erste Aufruf verändert
476 nur einen Schlüsselwert einzeln, während der zweite die Variable
477 vollständig neu definiert:
478
479 @example
480 \paper @{
481   system-system-spacing.basic-distance = #8
482   score-system-spacing =
483     #'((basic-distance . 12)
484        (minimum-distance . 6)
485        (padding . 1)
486        (stretchability . 12))
487 @}
488 @end example
489
490
491 @node Liste der flexiblen vertikalen Abstandsvariablen in paper
492 @unnumberedsubsubsec Liste der flexiblen vertikalen Abstandsvariablen in @code{@bs{}paper}
493 @translationof List of flexible vertical spacing paper variables
494
495 Die Bezeichnungen dieser Variablen entsprechen dem Format
496 @code{@var{obere}-@var{untere}-platzierung}, wobei @code{@var{obere}}
497 und @code{@var{untere}} die zu platzierenden Elemente darstellen.  Jeder
498 Abstand wird zwischen den Referenzpunkten der beiden Elemente gemessen
499 (siehe Beschreibung der Alistenstruktur oben).  In diesen Variablenbezeichnungen
500 bedeutet @q{@code{markup}} (Beschriftung) sowohl
501 @emph{Titelbeschriftungen} (@code{bookTitleMarkup} oder
502 @code{scoreTitleMarkup}) als auch @emph{Beschriftungen auf höchster Ebene}
503 (siehe @ref{Die Dateistruktur}).  Alle Entfernungen werden in Systemzwischenräumen
504 gemessen.
505
506 Standardwerte sind in @file{ly/paper-defaults-init.ly} definiert.
507
508 @c TODO: Where do headers/footers fit in? -mp
509
510 @table @code
511 @item markup-system-spacing
512 @funindex markup-system-spacing
513
514 der Abstand zwischen einer (Titel-)Beschriftung (auf höchster Ebene) und der
515 darauf folgenden Systemgruppe.
516
517 @item score-markup-spacing
518 @funindex score-markup-spacing
519
520 der Abstand zwischen dem letzten System einer Partitur und der darauf folgenden
521 (Titel-)Beschriftung (auf höchster Ebene).
522
523 @item score-system-spacing
524 @funindex score-system-spacing
525
526 der Abstand zwischen dem letzten System einer Partitur und dem ersten
527 System der folgenden Partitur, wenn keine (Titel-)Beschriftung (auf höchster
528 Ebene) dazwischen vorkommt.
529
530 @item system-system-spacing
531 @funindex system-system-spacing
532
533 der Abstand zwischen zwei Systemgruppen der selben Partitur.
534
535 @item markup-markup-spacing
536 @funindex markup-markup-spacing
537
538 der Abstand zwischen zwei (Titel-)Beschriftungen (auf höchster Ebene).
539
540 @item last-bottom-spacing
541 @funindex last-bottom-spacing
542
543 der Abstand vom letzten System oder Beschriftung auf höchster Ebene auf
544 einer Seite zum unteren Rand des bedruckbaren Bereichs (also bis zum Anfang
545 des unteren Randes).
546
547 @item top-system-spacing
548 @funindex top-system-spacing
549
550 der Abstand zwischen dem oberen Rand des bedruckbaren Bereichs (also dem Ende
551 des oberen Rands) und dem ersten System auf der Seite, wenn keine
552 (Titel-)Beschriftung (auf höchster Ebene) dazwischen kommt.
553
554 @item top-markup-spacing
555 @funindex top-markup-spacing
556
557 der Abstand vom oberen Rand des bedruckbaren Bereichs (also dem Ende des
558 oberen Randes) zur ersten (Titel-)Beschriftung (auf höchster Ebene) auf
559 einer Seite, wenn keine Systemgruppe dazwischen kommt.
560 @end table
561
562 @seealso
563 Notationsreferenz:
564 @ref{Flexible vertikale Abstände in Systemgruppen}.
565
566 Installierte Dateien:
567 @file{ly/paper-defaults-init.ly}.
568
569 Schnipsel:
570 @rlsr{Spacing}.
571
572
573
574 @node paper-Variablen für horizontale Abstände
575 @subsection @code{@bs{}paper}-Variablen für horizontale Abstände
576 @translationof Horizontal spacing paper variables
577
578 @warning{Einige @code{@bs{}paper}-Dimensionen werden automatische
579 entsprechend dem Papierformat skaliert und können deshalb ungewollte
580 Resultate haben.  Siehe @ref{Automatische Skalierung auf ein Papierformat}.}
581
582 @menu
583 * paper-Variablen für Breite und Ränder::
584 * paper-Variablen für zweiseitigen Satz::
585 * paper-Variablen für Verschiebungen und Einrückungen::
586 @end menu
587
588
589 @node paper-Variablen für Breite und Ränder
590 @unnumberedsubsubsec @code{@bs{}paper}-Variablen für Breite und Ränder
591 @translationof paper variables for widths and margins
592
593 Standardwerte (vor der Skalierung), die hier nicht aufgelistet
594 sind, finden sich in @file{ly/paper-defaults-init.ly}.
595
596
597 @table @code
598
599 @item paper-width
600 @funindex paper-width
601
602 Die Breide der Seite, standardmäßig nicht definiert.  Während
603 @code{paper-width} keine Auswirkungen auf die automatische
604 Skalierung einiger horizontaler Dimensionen hat, beeinflusst es
605 dennoch die @code{line-width}-Variable.  Wenn sowohl @code{paper-width}
606 als auch @code{line-width} definiert sind, dann werden auch
607 @code{left-margin} und @code{right-margin} aktualisiert.  Siehe auch
608 @code{check-consistency}.
609
610 @item line-width
611 @funindex line-width
612
613 Die horizontale Ausdehnung der Notenlinien in nicht-eingerückten,
614 Systemen mit Ausgleich zum rechten Rand, entspricht
615 @code{(paper-width@tie{}@minus{}@tie{}left-margin@tie{}@minus{}@tie{}right-margin)}
616 wenn nicht definiert.  Wenn @code{line-width} definiert ist und sowohl
617 @code{left-margin} als auch @code{right-margin} nicht definiert sind, dann
618 werden die Ränder aktualisiert, sodass die Systeme mittig auf der Seite
619 zentriert werden.  Siehe auch @code{check-consistency}.  Diese Variable
620 kann auch in der @code{\layout}-Umgebung definiert werden.
621
622 @item left-margin
623 @funindex left-margin
624
625 Der Rand zwischen der linken Papierkante und dem Beginn der Systeme
626 ohne Einrückungen.  Wenn das Papierformat verändert wird, wird auch
627 der Standardwert dieser Dimension entsprechend skaliert.  Wenn
628 @code{left-margin} nicht definiert ist und sowohl @code{line-width}
629 als auch @code{right-margin} definiert sind, dann wird @code{left-margin}
630 auf den Wert
631 @code{(paper-width@tie{}@minus{}@tie{}line-width@tie{}@minus{}@tie{}right-margin)}
632 gesetzt.  Wenn nur @code{line-width} definiert ist, dann werden beide
633 Ränder auf den Wert
634 @code{((paper-width@tie{}@minus{}@tie{}line-width)@tie{}/@tie{}2)}
635 gesetzt und die Systeme demzufolge auf der Seite zentriert.  Siehe auch
636 @code{check-consistency}.
637
638 @item right-margin
639 @funindex right-margin
640
641 Der Rand zwischen der rechten Papierkante und dem Ende der Systeme mit
642 Randausgleich (@qq{Blocksatz}).  Wenn das Papierformat geändert wird,
643 wird auch der Standardwert dieser Dimension entsprechend skaliert.  Wenn
644 @code{right-margin} nicht definiert ist und sowohl @code{line-width} als
645 auch @code{left-margin} definiert sind, dann wird @code{right-margin} auf den
646 Wert @code{(paper-width@tie{}@minus{}@tie{}line-width@tie{}@minus{}@tie{}left-margin)}
647 gesetzt.  Wenn nur @code{line-width} definiert ist, dann werden beide Ränder
648 auf den Wert
649 @code{((paper-width@tie{}@minus{}@tie{}line-width)@tie{}/@tie{}2)}
650 gesetzt und die Systeme demzufolge auf der Seite zentriert.  Siehe auch
651 @code{check-consistency}.
652
653 @item check-consistency
654 @funindex check-consistency
655
656 Wenn wahr, wird eine Warnung ausgegeben, sollten @code{left-margin},
657 @code{line-width} und @code{right-margin} zusammen nicht exakt den
658 Wert von @code{paper-width} ergeben, und die Werte (außer
659 @code{paper-width}) mit ihren Standardwerten belegt (wenn nötig auf
660 das entsprechende Papierformat skaliert).  Wenn falsch werden derartige
661 Inkonsistenzen ignoriert und die Systeme dürfen auch über den Seitenrand
662 hinausragen.
663
664 @item ragged-right
665 @funindex ragged-right
666
667 Wenn wahr, werden Notensysteme nicht über die gesamte Zeilenbreite
668 gestreckt, sondern sie enden horizontal entsprechend den enthaltenen
669 Noten.  Standard: @code{#t} (wahr) für Partituren mit einem System
670 und @code{#f} (falsch) für Partituren mit zwei oder mehr Systemen.
671 Diese Variable kann auch in der @code{\layout}-Umgebung definiert werden.
672
673 @item ragged-last
674 @funindex ragged-last
675
676 Wenn wahr, wird das letzte Notensystem einer Partitur nicht über die
677 gesamte Zeilenbreite gestreckt, sondern es endet horizontal entsprechend
678 den enthaltenen Noten.  Standard: @code{#f} (falsch).  Diese  Variable
679 kann auch in der @code{\layout}-Umgebung definiert werden.
680
681 @end table
682
683 @seealso
684 Notationsreferenz:
685 @ref{Automatische Skalierung auf ein Papierformat}.
686
687 Installierte Dateien:
688 @file{ly/paper-defaults-init.ly}.
689
690 @knownissues
691 Explizit definierte Papierformate überschreiben alle vom Benutzer erstellte
692 Randeinstellung für die Ränder oben und unten.
693
694
695 @node paper-Variablen für zweiseitigen Satz
696 @unnumberedsubsubsec @code{@bs{}paper}-Variablen für zweiseitigen Satz
697 @translationof paper variables for two-sided mode
698
699 Standardwerte (vor der Skalierung) sind definiert in
700 @file{ly/paper-defaults-init.ly}.
701
702 @table @code
703
704 @item two-sided
705 @funindex two-sided
706
707 @cindex Bundsteg
708 @cindex Binderand
709
710 Wenn auf wahr (@code{##t}) gesetzt, werden  @code{inner-margin}, @code{outer-margin}
711 und @code{binding-offset} zusammen benutzt, um die Ränder der Seite in Abhängigkeit
712 von einer geraden oder ungeraden Seitennummer zu errechnen.  Damit werden die
713 Werte von @code{left-margin} und @code{right-margin} überschrieben.  Standard:
714 @code{##f}.
715
716 @item inner-margin
717 @funindex inner-margin
718
719 Der Rand, den alle Seiten auf der Innenseite haben, wenn sie Teil eines
720 Buches (@code{\book}) sind.  Wenn das Papierformat verändert wird,
721 wird der Standardwert dieser Dimension entsprechend skaliert.  Funktioniert
722 nur, wenn @code{two-sided} wahr ist.
723
724 @item outer-margin
725 @funindex outer-margin
726
727 Der Rand, den alle Seiten auf der Außenseite haben, wenn sie Teil eines Buches
728 sind.  Wenn das Papierformat verändert wird,
729 wird der Standardwert dieser Dimension entsprechend skaliert.  Funktioniert nur,
730 wenn @code{two-sided} wahr ist.
731
732 @item binding-offset
733 @funindex binding-offset
734
735 Der Wert, um welchen @code{inner-margin} erhöht wird, um sicherzugehen, dass
736 nichts in der Bindung verschwindet.  Wenn das Papierformat verändert wird,
737 wird der Standardwert dieser Dimension entsprechend skaliert.  Funktioniert nur,
738 wenn @code{two-sided} wahr ist.
739
740 @end table
741
742 @seealso
743 Notationsreferenz:
744 @ref{Automatische Skalierung auf ein Papierformat}.
745
746 Installierte Dateien:
747 @file{ly/paper-defaults-init.ly}.
748
749
750 @node paper-Variablen für Verschiebungen und Einrückungen
751 @unnumberedsubsubsec @code{@bs{}paper}-Variablen für Verschiebungen und Einrückungen
752 @translationof paper variables for shifts and indents
753
754
755 Standardwerte (vor der Skalierung), die hier nicht aufgeführt sind,
756 sind definiert in @file{ly/paper-defaults-init.ly}.
757
758 @table @code
759
760 @item horizontal-shift
761 @funindex horizontal-shift
762
763 @c This default value is buried in the middle of page.scm.  -mp
764
765 Der Wert, um den alle Systeme (und auch Überschriften und Systemtrenner)
766 nach rechts verschoben werden.  Standard: @code{0.0\mm}.
767
768 @item indent
769 @funindex indent
770
771 Der Einzug für das erste System einer Partitur.  Wenn das Papierformat
772 verändert wird, wird der Standardwert dieser Dimension entsprechend skaliert.
773 Diese Variable kann auch in der @code{\layout}-Umgebung definiert werden.
774
775 @item short-indent
776 @funindex short-indent
777
778 Der Einzug für alle Systeme einer Partitur ausschließlich das
779 erste System.  Wenn das Papierformat
780 verändert wird, wird der Standardwert dieser Dimension entsprechend skaliert.
781 Diese Variable kann auch in der @code{\layout}-Umgebung definiert werden.
782
783 @end table
784
785 @seealso
786 Notationsreferenz:
787 @ref{Automatische Skalierung auf ein Papierformat}.
788
789 Installierte Dateien:
790 @file{ly/paper-defaults-init.ly}.
791
792 Schnipsel:
793 @rlsr{Spacing}.
794
795
796 @node Andere paper-Variablen
797 @subsection Andere @code{@bs{}paper}-Variablen
798 @translationof Other paper variables
799
800 @menu
801 * paper-Variablen für den Zeilenumbruch::
802 * paper-Variablen für den Seitenumbruch::
803 * paper-Variablen für Seitenzahlen::
804 * Verschiedene paper-Variablen::
805 @end menu
806
807
808 @node paper-Variablen für den Zeilenumbruch
809 @unnumberedsubsubsec @code{@bs{}paper}-Variablen für den Zeilenumbruch
810 @translationof paper variables for line breaking
811 @c TODO: Mention that ly:optimal-breaking is on by default? -mp
812
813 @table @code
814
815 @item max-systems-per-page
816 @funindex max-systems-per-page
817
818 Die maximale Anzahl an Notensystemgruppen, die auf einer Seite gesetzt werden.  Das
819 wird zur Zeit nur von dem @code{ly:optimal-breaking}-Algorithmus
820 unterstützt.  Standard: nicht gesetzt.
821
822 @item min-systems-per-page
823 @funindex min-systems-per-page
824
825 Die minimale Anzahl an Notensystemgruppen, die auf einer Seite gesetzt werden. Das
826 kann dazu führen, dass Seiten zu dicht gefüllt werden, wenn der Wert
827 zu groß gewählt wird.  Die Option ist zur Zeit nur von dem
828 @code{ly:optimal-breaking}-Algorithmus unterstützt.  Standard: nicht gesetzt.
829
830 @item systems-per-page
831 @funindex systems-per-page
832
833 Die Anzahl an Systemen, die auf jede Seite gesetzt werden sollen.
834 Diese Option wird zur Zeit nur von dem @code{ly:optimal-breaking}-Algorithmus
835 unterstützt.  Standard: nicht gesetzt.
836
837 @item system-count
838 @funindex system-count
839
840 Die Anzahl der Systeme, auf denen eine Partitur gesetzt werden soll.
841 Standard: nicht gesetzt.  Diese Variablen kann auch in der
842 @code{\layout}-Umgebung definiert werden.
843
844 @end table
845
846 @seealso
847 Notationsreferenz:
848 @ref{Zeilenumbrüche}.
849
850
851 @node paper-Variablen für den Seitenumbruch
852 @unnumberedsubsubsec @code{@bs{}paper}-Variablen für den Seitenumbruch
853 @translationof paper variables for page breaking
854
855 Standardwerte, die hier nicht aufgelistet sind, finden sich in
856 @file{ly/paper-defaults-init.ly}
857
858 @table @code
859
860 @item blank-after-score-page-penalty
861 @funindex blank-after-score-page-penalty
862
863 Die Strafpunke, die erteilt werden, wenn eine leere Seite nach einer
864 Partitur und vor der nächsten vorkommt.  Der Standardwert hiervon ist
865 kleiner als @code{blank-page-penalty}, sodass leere Seiten nach einer Partitur
866 leeren Seiten innerhalb einer Partitur vorgezogen werden.
867
868 @item blank-last-page-penalty
869 @funindex blank-last-page-penalty
870
871 Die Strafpunkte, wenn eine Partitur auf einer ungeraden Seite
872 beendet wird. Standard: @code{0}.
873
874 @item blank-page-penalty
875 @funindex blank-page-penalty
876
877 Die Strafpunkte, wenn eine leere Seite mitten in einer Partitur
878 auftritt.  Das wird nicht benutzt von @code{ly:optimal-breaking},
879 weil hiermit niemals leere Seiten mitten in einer Partitur zugelassen
880 werden.
881
882 @item page-breaking
883 @funindex page-breaking
884
885 Der Algorithmus, der für Seitenumbrüche eingesetzt wird.  Mögliche
886 Algorithmen sind: @code{ly:minimal-breaking} (minimale Umbrüche),
887 @code{ly:page-turn-breaking} (Umbrüche an guten Stellen zum Umblättern)
888 und @code{ly:optimal-breaking}.
889
890 @item page-breaking-system-system-spacing
891 @funindex page-breaking-system-system-spacing
892
893 Überlistet die Seitenumbruchfunktion, indem ihr ein anderer Wert
894 für @code{system-system-spacing} mitgeteilt wird, als in Wirklichkeit
895 eingestellt ist.  Wenn beispielsweise
896 @code{page-breaking-system-system-spacing #'padding} auf einen
897 deutlich größeren Wert als @code{system-system-spacing #'padding} gesetzt
898 wird, setzt die Seitenumbruchsfunktion weniger Systeme auf eine
899 Seite.  Standard: nicht gesetzt.
900
901 @item page-count
902 @funindex page-count
903
904 Die Zahl der Seiten, die für eine Partitur benutzt werden sollen.
905 Standard: nicht gesetzt.
906
907 @end table
908
909 @seealso
910 Notationsreferenz:
911 @ref{Seitenumbrüche},
912 @ref{Optimale Seitenumbrüche},
913 @ref{Optimale Umbrüche zum Blättern},
914 @ref{Minimale Seitenumbrüche},
915 @ref{Eine-Seite-Seitenumbrüche}.
916
917 Installierte Dateien:
918 @file{ly/paper-defaults-init.ly}.
919
920
921 @node paper-Variablen für Seitenzahlen
922 @unnumberedsubsubsec @code{@bs{}paper}-Variablen für Seitenzahlen
923 @translationof paper variables for page numbering
924
925 Standardwerte, die hier nicht aufgelistet sind, finden sich in
926 @file{ly/paper-defaults-init.ly}
927
928 @table @code
929
930 @item auto-first-page-number
931 @funindex auto-first-page-number
932 @cindex Seitenzahlen, automatische Nummerierung
933
934 Der Seitenumbruchsalgorithmus wird davon beeinflusst, ob die erste
935 Seitenzahl gerade oder ungerade ist.  Wenn die Variable auf wahr
936 gesetzt wird, entscheidet der Seitenumbruchsalgorithmus selber,
937 ob die Noten auf einer geraden oder ungeraden Seite beginnen sollen.
938 Das hat dann zur Folge, dass die erste Seite entweder bleibt wie
939 sie ist oder um eins erhöht wird.  Standard: @code{#f}.
940
941 @item first-page-number
942 @funindex first-page-number
943 @cindex Sietenzahlen, erste definieren
944
945 Der Wert der Seitenzahl auf der ersten Seite.
946
947 @item print-first-page-number
948 @funindex print-first-page-number
949
950 Wenn wahr, wird auch auf der ersten Seite die Seitenzahl ausgegeben.
951 Standard: @code{#f}.
952
953 @item print-page-number
954 @funindex print-page-number
955 @cindex Seitenzahlen, unterdrücken
956
957 Wenn falsch, werden Seitenzahlen nicht ausgegeben.
958
959 @end table
960
961 @seealso
962 Installierte Dateien:
963 @file{ly/paper-defaults-init.ly}.
964
965 @knownissues
966 Ungrade Seitenzahlen befinden sich immer auf der rechten Seite.
967 Wenn Sie die Noten auf Seite 1 beginnen lassen wollen, müssen Sie
968 eine leere Seite nach dem Deckblatt einfügen, damit die Noten
969 auf der rechten Seite mit Seite 1 beginnen.
970
971
972 @node Verschiedene paper-Variablen
973 @unnumberedsubsubsec Verschiedene @code{@bs{}paper}-Variablen
974 @translationof Miscellaneous paper variables
975 @table @code
976
977 @item page-spacing-weight
978 @funindex page-spacing-weight
979
980 Die relative Gewichtung von (vertikalem) Abstand auf der Seite und
981 (horizontalem) Abstand innerhalb der Zeilen.  Hohe Werte gewichten
982 die vertikalen Abstände mehr.  Standard: @code{10}.
983
984 @item print-all-headers
985 @funindex print-all-headers
986
987 Wenn wahr, werden alle Einträge des Titelfeldes (@code{\header}-Umgebung)
988 für jede Partitur (@code{\score}) ausgegeben.  Normalerweise wird nur die
989 Satzbezeichnung und die Opuszahl (@code{piece} und @code{opus})
990 ausgegeben.  Standard: @code{#f}.
991
992 @item system-separator-markup
993 @funindex system-separator-markup
994
995 Ein Beschriftungsobjekt, das zwischen zwei Systeme gesetzt wird.  Das
996 wird oft in Orchesterpartituren eingesetzt.  Standard: nicht gesetzt.
997 Der Beschriftungsbefehl @code{\slashSeparator}, definiert in
998 @file{ly/titling-init.ly}, kann für einen Trenner
999 benutzt werden, etwa so:
1000
1001 @lilypond[quote,verbatim,noragged-right,line-width=30\mm]
1002 #(set-default-paper-size "a8")
1003
1004 \book {
1005   \paper {
1006     system-separator-markup = \slashSeparator
1007   }
1008   \header {
1009     tagline = ##f
1010   }
1011   \score {
1012     \relative { c''1 \break c1 \break c1 }
1013   }
1014 }
1015 @end lilypond
1016
1017 @end table
1018
1019
1020 @seealso
1021 Installierte Dateien:
1022 @file{ly/titling-init.ly}.
1023
1024 Schnipsel:
1025 @rlsr{Spacing}.
1026
1027
1028 @knownissues
1029
1030 Die Standard-Kopfzeilendefinition setzt die Seitenzahl und das
1031 @code{instrument}-Feld aus der @code{\header}-Umgebung in eine
1032 Zeile.
1033
1034
1035
1036 @node Partiturlayout
1037 @section Partiturlayout
1038 @translationof Score layout
1039
1040 @menu
1041 * Die layout-Umgebung::
1042 * Die Notensystemgröße einstellen::
1043 @end menu
1044
1045
1046 @node Die layout-Umgebung
1047 @subsection Die @code{@bs{}layout}-Umgebung
1048 @translationof The layout block
1049
1050 @cindex Partitur, Layout
1051 @cindex Layout, Partitur
1052 @funindex \layout
1053
1054 Während die @code{\paper}-Umgebung Einstellungen für die Formatierung
1055 der Seiten eines gesamten Dokuments enthalten, enthält die
1056 @code{\layout}-Umgebung Einstellungen für einzelne Partituren.  Um
1057 Layoutoptionen für Partituren global einzustellen, müssen sie in einer
1058 @code{\layout}-Umgebung gesetzt werden, die sich auf höchster Ebene in
1059 der Datei befindet.  Um sie für einzelne Partituren festzulegen, muss die
1060 @code{\layout}-Umgebung innerhalb der @code{\score}-Umgebung nach den Noten
1061 eingetraten werden.  Einstellungen, die in einer @code{\layout}-Umgebung
1062 vorkommen können, beinhalten:
1063
1064 @itemize
1065 @item die @code{layout-set-staff-size}-Scheme-Funktion,
1066 @item Kontextveränderungen in @code{\context}-Umgebungen und
1067 @item @code{\paper}-Variablen, die das Aussehen einer Partitur beeinflussen.
1068 @end itemize
1069
1070 Die @code{layout-set-staff-size}-Funktion wird im nächsten Abschnitt behandelt,
1071 @ref{Die Notensystemgröße einstellen}.  Kontextveränderungen werden in einem
1072 eigenen Kapitel behandelt, siehe @ref{Umgebungs-Plugins verändern} and
1073 @ref{Die Standardeinstellungen von Kontexten ändern}.  Die @code{\paper}-Variablen,
1074 die innerhalb der @code{\layout}-Umgebungen erlaubt sind, sind:
1075
1076 @itemize
1077
1078 @item
1079 @code{line-width}, @code{ragged-right} und @code{ragged-last}
1080 (siehe @ref{paper-Variablen für Breite und Ränder,,@code{@bs{}paper}-Variablen für Breite und Ränder})
1081
1082 @item
1083 @code{indent} und @code{short-indent}
1084 (siehe @ref{paper-Variablen für Verschiebungen und Einrückungen,,@code{@bs{}paper}-Variablen für Verschiebungen und Einrückungen})
1085
1086 @item
1087 @code{system-count}
1088 (siehe @ref{paper-Variablen für den Zeilenumbruch,,@code{@bs{}paper}-Variablen für den Zeilenumbruch})
1089
1090 @end itemize
1091
1092 Hier ist ein Beispiel für eine @code{\layout}-Umgebung:
1093
1094 @example
1095 \layout @{
1096   indent = 2\cm
1097   \context @{
1098     \StaffGroup
1099     \override StaffGrouper.staff-staff-spacing.basic-distance = #8
1100   @}
1101   \context @{
1102     \Voice
1103     \override TextScript.padding = #1
1104     \override Glissando.thickness = #3
1105   @}
1106 @}
1107 @end example
1108
1109 Mehrfache @code{\layout}-Umbgebungen können als Ausdrücke auf höchster
1110 Ebene eingegeben werden.  Das kann beispielsweise nützlich sein, wenn
1111 unterschiedliche Einstellungen in extra Dateien gespeichert werden und
1112 optional eingefügt werden.  Intern wird eine Kopie der aktuellen
1113 @code{\layout}-Konfiguration gemacht, wenn eine @code{\layout}-Umgebung
1114 ausgewertet wird, dann erst werden Änderungen aus der Umgebung angewendet
1115 und das Ergebnis als die neue aktuelle Konfiguration gespeichert.
1116 Aus der Sicht des Benutzers werden die @code{\layout}-Umgebungen
1117 kombiniert, aber in Konfliktsituationen (wenn die gleiche Eigenschaft
1118 in unterschiedlichen Umgebungen geändert wird), erhält die spätere
1119 Definition den Vorrang.
1120
1121 Wenn also diese Umgebung:
1122
1123 @example
1124 \layout @{
1125   \context @{
1126     \Voice
1127     \override TextScript.color = #magenta
1128     \override Glissando.thickness = #1.5
1129   @}
1130 @}
1131 @end example
1132
1133 nach der Umgebung aus dem vorherigen Beispiel geschrieben wird, werden
1134 die @code{'padding}- und @code{'color}-Einstellungen für @code{TextScript}
1135 kombiniert, aber die spätere @code{'thickness}-Einstellung für
1136 @code{Glissando} ersetzt (oder versteckt) die vorherige.
1137
1138 @code{\layout}-Umgebungen können einer Variable zur späteren Benutzung
1139 zugewiesen werden, aber die Funktionsweise dieser Zuweisung ist geringfügig
1140 aber deutlich unterschiedlich von der Variante, sie auszuschreiben.
1141
1142 Wenn eine Variable etwa so definiert wird:
1143
1144 @example
1145 layoutVariable = \layout @{
1146   \context @{
1147     \Voice
1148     \override NoteHead.font-size = #4
1149   @}
1150 @}
1151 @end example
1152
1153 @noindent
1154 dann enthält sie die aktuelle @code{\layout}-Konfiguration mit zusätzlicher
1155 Veränderung von @code{NoteHead #'font-size} (der Schriftgröße der Notenköpfe),
1156 aber diese Kombination wird @emph{nicht} als nächste aktuelle
1157 Konfiguration gespeichert.  Man muss sich im klaren sein, dass die
1158 @qq{aktuelle Konfiguration} gelesen wird, wenn die Variable erstellt
1159 wird, nicht wenn sie benutzt wird.  Darum ist der Inhalt der Variable
1160 abhängig von ihrer Position in der Partitur.
1161
1162 Die Variable kann dann auch innerhalb einer anderen @code{\layout}-Umgebung
1163 eingesetzt werden, etwa:
1164
1165 @example
1166 \layout @{
1167   \layoutVariable
1168   \context @{
1169     \Voice
1170     \override NoteHead.color = #red
1171   @}
1172 @}
1173 @end example
1174
1175 Eine @code{\layout}-Umgebung, die eine Variable enthält wie im Beispiel oben,
1176 kopiert die aktuelle Konfiguration @emph{nicht}, sondern benützt den
1177 Inhalt von @code{\layoutVariable} als Basiskonfiguration für die weiteren
1178 Veränderungen.  Das heißt, dass Änderungen, die zwischen der Definition
1179 der Variable und ihrer Benutzung definiert wurden, verloren gehen.
1180
1181 Wenn @code{layoutVariable} kurz vor ihrer Benutzung definiert wird (oder
1182 mit @code{\include} eingefügt wird), entspricht ihr Inhalt der
1183 aktuellen Konfiguration plus die Änderungen, die die Variable definiert.
1184 Das obige Beispiel, das den Einsatz von  @code{\layoutVariable} zeigt,
1185 würde in seiner finalen Version folgende @code{\layout}-Umgebung haben:
1186
1187 @example
1188   TextScript.padding = #1
1189   TextScript.color = #magenta
1190   Glissando.thickness = #1.5
1191   NoteHead.font-size = #4
1192   NoteHead.color = #red
1193 @end example
1194
1195 plus die Veränderungen an Einrückung (@code{indent}) und @code{StaffGrouper}.
1196
1197 Aber wenn die Variable vor der ersten @code{\layout}-Umgebung definiert
1198 wird, würde die aktuelle Konfiguration nur enthalten:
1199
1200 @example
1201   NoteHead.font-size= #4 % (written in the variable definition)
1202   NoteHead.color = #red % (added after the use of the variable)
1203 @end example
1204
1205 Wenn man sorgfältig plant, können @code{\layout}-Variablen ein wertvolles
1206 Instrument sein, um das Layout-Design von Quellen zu strukturieren und
1207 auch dazu dienen, die Layout-Einstellungen an einer bestimmten Stelle
1208 wieder zurückzusetzen.
1209
1210 @seealso
1211 Notationsreferenz:
1212 @ref{Die Standardeinstellungen von Kontexten ändern},
1213 @ref{Die Notensystemgröße einstellen},
1214 @ref{Umgebungs-Plugins verändern}.
1215
1216 Schnipsel:
1217 @rlsr{Spacing}.
1218
1219
1220
1221 @node Die Notensystemgröße einstellen
1222 @subsection Die Notensystemgröße einstellen
1223 @translationof Setting the staff size
1224
1225 @cindex Schriftgröße, Einstellung
1226 @cindex Systemgröße, Einstellung
1227 @cindex Verändern der Schriftgröße
1228 @cindex Verändern der Systemgröße
1229 @funindex layout file
1230
1231 Die Standardgröße der Notensysteme beträgt 20 Punkte (pt).
1232 Das kann auf zwei Arten geändert werden:
1233
1234 Um die Systemgröße global für alle Partituren einer
1235 Datei (bzw. einer @code{\book}-Umgebung) zu verändern,
1236 wird @code{set-global-staff-size} benutzt:
1237
1238 @example
1239 #(set-global-staff-size 14)
1240 @end example
1241
1242 @noindent
1243 Hiermit wird die Standardhöhe der Notensysteme auf 14 pt
1244 gesetzt.  Die Schriftarten werden entsprechend verkleinert.
1245
1246 Um die Systemhöhe für jede Partitur einzeln zu verändern,
1247 muss
1248
1249 @example
1250 \score@{
1251   @dots{}
1252   \layout @{
1253     #(layout-set-staff-size 15)
1254   @}
1255 @}
1256 @end example
1257
1258 @noindent
1259 eingesetzt werden.
1260
1261 Die Feta-Schriftart stellt die Noten- und Musiksymbole
1262 für acht verschiedene Größen zur Verfügung.  Jede
1263 Schriftgröße ist einer bestimmten Systemgröße angepasst:
1264 für kleinere Schriftgrößen werden die Zeichen etwas
1265 schwerer, um mit den ebenfalls dickeren Notenlinien
1266 zu harmonieren.  Die empfohlenen Notensystemgrößen
1267 sind in der Tabelle aufgeführt:
1268
1269 @quotation
1270 @multitable @columnfractions .15 .2 .22 .2
1271
1272 @item @b{Schriftbezeichnung}
1273 @tab @b{Höhe des Systems (pt)}
1274 @tab @b{Höhe des Systems (mm)}
1275 @tab @b{Benutzung}
1276
1277 @item feta11
1278 @tab 11.22
1279 @tab 3.9
1280 @tab Taschenparituren
1281
1282 @item feta13
1283 @tab 12.60
1284 @tab 4.4
1285 @tab
1286
1287 @item feta14
1288 @tab 14.14
1289 @tab 5.0
1290 @tab
1291
1292 @item feta16
1293 @tab 15.87
1294 @tab 5.6
1295 @tab
1296
1297 @item feta18
1298 @tab 17.82
1299 @tab 6.3
1300 @tab Liederbücher
1301
1302 @item feta20
1303 @tab 20
1304 @tab 7.0
1305 @tab Orchesterstimmen
1306
1307 @item feta23
1308 @tab 22.45
1309 @tab 7.9
1310 @tab
1311
1312 @item feta26
1313 @tab 25.2
1314 @tab 8.9
1315 @tab
1316 @c modern rental material?
1317
1318 @end multitable
1319 @end quotation
1320
1321 Diese Schriftarten sind in allen Größen erhältlich.  Die Kontext-Eigenschaft
1322 @code{fontSize} und die Layout-Eigenschaft @code{staff-space} (in
1323 @code{StaffSymbol}) können benutzt werden, um die Schriftgröße für
1324 einzelne Systeme zu verändern.  Die Größe von einzelnen Systemen
1325 ist relativ zur globalen Systemgröße.
1326
1327
1328 @seealso
1329 Notationsreferenz:
1330 @ref{Auswahl der Notations-Schriftgröße}.
1331
1332 Schnipsel:
1333 @rlsr{Spacing}.
1334
1335
1336 @knownissues
1337
1338 @code{layout-set-staff-size} verändert nicht den Abstand zwischen den
1339 Notenlinien.
1340
1341
1342 @node Umbrüche
1343 @section Umbrüche
1344 @translationof Breaks
1345
1346 @menu
1347 * Zeilenumbrüche::
1348 * Seitenumbrüche::
1349 * Optimale Seitenumbrüche::
1350 * Optimale Umbrüche zum Blättern::
1351 * Minimale Seitenumbrüche::
1352 * Eine-Seite-Seitenumbrüche::
1353 * Ausdrückliche Umbrüche::
1354 * Eine zusätzliche Stimme für Umbrüche benutzen::
1355 @end menu
1356
1357
1358 @node Zeilenumbrüche
1359 @subsection Zeilenumbrüche
1360 @translationof Line breaking
1361
1362 @cindex Zeilenumbrüche
1363 @cindex Umbrüche von Zeilen
1364
1365 Zeilenumbrüche werden normalerweise automatisch erstellt.  Sie
1366 werden so ausgewählt, dass die Zeilen weder gedrängt noch zu
1367 weit gespreizt wirken und aufeinander folgende Seiten einen
1368 ähnlichen Grauwert haben.
1369
1370 Einen manuellen Zeilenumbruch fügt man mit dem Befehl @code{\break}
1371 ein:
1372
1373 @lilypond[quote,ragged-right,verbatim]
1374 \relative c'' {
1375   c4 c c c | \break
1376   c4 c c c |
1377 }
1378 @end lilypond
1379
1380 Normalerweise wird ein @code{\break} in der Mitte eines Takes ignoriert
1381 und eine Warnung ausgegeben.  Um einen Zeilenumbruch in der Mitte eines
1382 Taktes zu erzwingen, können Sie mit @code{\bar ""} eine
1383 unsichtbare Taktlinie hinzufügen, die dann den Zeilenumbruch
1384 erlaubt.
1385
1386 @lilypond[quote,ragged-right,verbatim]
1387 \relative c'' {
1388   c4 c c
1389   \bar "" \break
1390   c |
1391   c4 c c c |
1392 }
1393 @end lilypond
1394
1395 Ein @code{\break} an einem Taktstrich wird auch ignoriert, wenn der letzte
1396 Takt mitten in einer Note endet, wenn etwa eine N-tole in unterschiedlichen
1397 Takten beginnt und endet.  Damit @code{\break} auch in derartigen Situationen
1398 funktioniert, muss @code{Forbid_line_break_engraver} aus der
1399 @code{Voice}-Umgebung entfernt werden.  Dabei sollte beachtet werden, dass
1400 manuell hervorgerufene Umbrüche parallel mit den Noten hinzugefügt werden
1401 müssen.
1402
1403 @lilypond[quote,ragged-right,verbatim]
1404 \new Voice \with {
1405   \remove "Forbid_line_break_engraver"
1406 } \relative {
1407   <<
1408     { c''2. \tuplet 3/2 { c4 c c } c2. | }
1409     { s1 | \break s1 | }
1410   >>
1411 }
1412 @end lilypond
1413
1414 Genauso werden normalerweise Zeilenumbrüche auch verhindert, wenn Balken
1415 über die Taktenden hinausragen.  Dieses Verhalten kann verändert werden,
1416 indem man @code{\override Beam.breakable = ##t} einstellt:
1417
1418 @lilypond[quote,ragged-right,verbatim]
1419 \relative c'' {
1420   \override Beam.breakable = ##t
1421   c2. c8[ c | \break
1422   c8 c] c2. |
1423 }
1424 @end lilypond
1425
1426 Mit dem Befehl @code{\noBreak} wird ein Zeilenumbruch an dem
1427 entsprechenden Taktstrich verboten.
1428
1429 Die grundlegenden Einstellungen, die Einfluss auf die Zeilenlänge
1430 haben, sind @code{indent} (Einzug) und @code{line-width}
1431 (Zeilenbreite).  Sie werden in der @code{\layout}-Umgebung
1432 eingestellt.  Der erste Befehl bestimmt den Einzug der ersten
1433 Zeile, der zweite die Zeilenlänge der weiteren Notenzeilen.
1434
1435 Wenn @code{ragged-right} eingestellt ist (also in der
1436 @code{\layout}-Umgebung auf den Wert @code{#t} gesetzt wurde),
1437 werden die Systeme linksbündig gesetzt und nicht bis zum
1438 rechten Rand hin durchgezogen, sondern den Noten entsprechend
1439 gesetzt.  Das ist oftmals nützlich für kleine Notenfragmente
1440 und um zu überprüfen, wie eng die Noten natürlicherweise
1441 gesetzt werden würden.
1442
1443 Die Option @code{ragged-last} verhält sich ähnlich zu @code{ragged-right},
1444 aber wirkt sich nur auf die letzte Zeile eines Stückes aus.
1445
1446 @example
1447 \layout @{
1448 indent = #0
1449 line-width = #150\mm
1450 ragged-last = ##t
1451 @}
1452 @end example
1453
1454 @cindex regelmäßige Zeilenumbrüche
1455 @cindex Zeilenumbrüche in Intervallen
1456
1457 Um Zeilenumbrüche zu erzwingen, die in festgelegten Intervallen
1458 stattfinden, kann der Befehl @code{\break} in Kombination
1459 mit unsichtbaren Noten und einer Wiederholung (@code{\repeat}) eingesetzt
1460 werden.  Das folgende Beispiel etwa setzt die nächsten
1461 28 Takte (im 4/4-Takt) in Zeilen zu jeweils 4 Takten (die auch nur hier
1462 umgebrochen werden):
1463
1464 @example
1465 <<
1466   \repeat unfold 7 @{
1467     s1 \noBreak s1 \noBreak
1468     s1 \noBreak s1 \break
1469   @}
1470   @{ @var{Hier die Noten@dots{}} @}
1471 >>
1472 @end example
1473
1474 Eine Zeilenumbruchkonfiguration kann auch als eine @file{.ly}-Datei
1475 automatisch gespeichert werden.  Damit kann die vertikale Ausrichtung
1476 während eines zweiten Programmdurchlaufs angepasst werden um die
1477 Seiten besser zu füllen.  Diese Eigenschaft ist recht neu und
1478 kompliziert.  Mehr Einzelheiten finden sich in
1479 @rlsr{Spacing}.
1480
1481 @predefined
1482 @funindex \break
1483 @code{\break},
1484 @funindex \noBreak
1485 @code{\noBreak}.
1486 @endpredefined
1487
1488 @seealso
1489 Notationsreferenz:
1490 @ref{paper-Variablen für den Zeilenumbruch,,@code{@bs{}paper}-Variablen für den Zeilenumbruch}.
1491
1492 Schnipsel:
1493 @rlsr{Spacing}.
1494
1495 Referenz der Interna:
1496 @rinternals{LineBreakEvent}.
1497
1498
1499 @node Seitenumbrüche
1500 @subsection Seitenumbrüche
1501 @translationof Page breaking
1502
1503 @cindex Seitenumbrüche
1504 @cindex Umbrüche, Seite
1505
1506 Die Standardseitenumbrüche können verändert werden, indem
1507 man die Befehle @code{\pageBreak} bzw. @code{\noPageBreak}
1508 benutzt.  Sie verhalten sich analog zu den Befehlen
1509 @code{\break} und @code{\noBreak}.  Sie sollten an einem
1510 Taktstrich notiert werden.  Diese Befehle erzwingen bzw.
1511 verbieten einen Seitenumbruch.  Mit dem @code{\pageBreak}-Befehl
1512 wird natürlich gleichzeitig auch ein Zeilenumbruch erzwungen.
1513
1514 Die @code{\pageBreak} und @code{\noPageBreak}-Befehle können
1515 auch auf der höchsten Ebene einer Datei benutzt werden, etwa
1516 zwischen Partituren und Textbeschriftungen.
1517
1518 Es gibt auch vertikale Gegenstücke zu den Variablen
1519 @code{ragged-right} und @code{ragged-last}:
1520 @code{ragged-bottom} und @code{ragged-last-bottom}.  Wenn diese
1521 Variablen auf @code{#t} (wahr) gesetzt werden, werden im ersten
1522 Fall die Notensysteme auf allen Seiten eng nach oben orientiert
1523 gesetzt werden.  Im zweiten Fall bezieht sich dies nur auf die
1524 letzte Seite.
1525 Zu Einzelheiten siehe @ref{Vertikale paper-Variablen mit festen Abständen,,Vertikale @code{@bs{}paper}-Variablen mit festen Abständen}.
1526
1527 Seitenumbrüche werden von der @code{page-breaking}-Funktion errechnet.
1528 LilyPond kennt drei Algorithmen um Seitenumbrüche zu errechnen:
1529 @code{ly:optimal-breaking}, @code{ly:page-turn-breaking} und
1530 @code{ly:minimal-breaking}.  Der Standard ist @code{ly:optimal-breaking},
1531 aber der Wert kann in der @code{\paper}-Umgebung geändert werden:
1532
1533 @example
1534 \paper@{
1535   #(define page-breaking ly:page-turn-breaking)
1536 @}
1537 @end example
1538
1539 @funindex \bookpart
1540
1541 Wenn ein Buch (@code{\book}) viele Parituren und Seiten hat, kann die
1542 Seitenaufteilung schwer zu ermitteln sein und viel Zeit und Prozessorlast
1543 in Anspruch nehmen.  Um den Seitenumbruchsprozess zu vereinfachen,
1544 werden @code{\bookpart}-Umgebungen benutzt, um das Buch in mehrere Teil
1545 zu trennen: Die Seitenumbrüche werden seperat für jeden Teil berechnet.
1546 Unterschiedliche Seitenumbruchsfunktionen können in unterschiedlichen
1547 Buchteilen benutzt werden.
1548
1549 @example
1550 \bookpart @{
1551   \header @{
1552     subtitle = "Vorwort"
1553   @}
1554   \paper @{
1555      %% In einem Abschnitt, der vor allem Text hat,
1556      %% funktioniert womöglich ly:minimal-breaking besser
1557      #(define page-breaking ly:minimal-breaking)
1558   @}
1559   \markup @{ @dots{} @}
1560   @dots{}
1561 @}
1562 \bookpart @{
1563   %% In diesem Abschnitt mit Noten wird
1564   %% die Standard-Seitenumbruchsfunktion benutzt.
1565   \header @{
1566     subtitle = "Erster Satz"
1567   @}
1568   \score @{ @dots{} @}
1569   @dots{}
1570 @}
1571 @end example
1572
1573
1574
1575
1576 @predefined
1577 @funindex \pageBreak
1578 @code{\pageBreak},
1579 @funindex \noPageBreak
1580 @code{\noPageBreak}.
1581 @endpredefined
1582
1583 @seealso
1584 Notationsreferenz:
1585 @ref{paper-Variablen für den Seitenumbruch,,@code{@bs{}paper}-Variablen für den Seitenumbruch}.
1586
1587 Schnipsel:
1588 @rlsr{Spacing}.
1589
1590
1591 @node Optimale Seitenumbrüche
1592 @subsection Optimale Seitenumbrüche
1593 @translationof Optimal page breaking
1594
1595 @funindex ly:optimal-breaking
1596
1597 Die @code{ly:optimal-breaking}-Funktion ist die Standardmethode für
1598 LilyPond, um Seitenumbrüche zu errechnen.  Hiermit wird versucht,
1599 Seitenumbrüche zu finden, die das Stauchen oder Strecken von Zeilen
1600 minimieren, sowohl horizontal als auch vertikal.  Anders als die
1601 @code{ly:page-turn-breaking}-Funktion hat diese Methode keine
1602 Möglichkeit, Überlegungen zum Umblättern mit einzubeziehen.
1603
1604 @seealso
1605 Schnipsel:
1606 @rlsr{Spacing}.
1607
1608
1609 @node Optimale Umbrüche zum Blättern
1610 @subsection Optimale Umbrüche zum Blättern
1611 @translationof Optimal page turning
1612
1613 @funindex ly:page-turn-breaking
1614
1615 Es ist oft nötig, die Seiten so umzubrechen, dass sich eine Pause am
1616 Ende jeder zweiten Seite befindet, damit der Musiker es leichter hat,
1617 die Seite umzublättern ohne das Spielen zu Unterbrechen.  Die
1618 @code{ly:page-turn-breaking}-Funktion versucht, Seitenumbrüche zu
1619 finden, die das Stauchen oder Strecken von Zeilen minimieren und
1620 gleichzeitig auch noch Seitenumbrüchen an angegebenen Stellen
1621 den Vorrang zu geben.
1622
1623 Die Funktion wird in zwei Schritten eingesetzt.  Zunächst muss sie
1624 in der @code{\paper}-Umgebung aktiviert werden, wie gezeigt in
1625 @ref{Seitenumbrüche}.  Dann muss noch angegeben werden, welche Stellen
1626 bevorzugt für Seitenumbrüche benutzt werden sollen.
1627
1628 Für diesen zweiten Schritt gibt es zwei Methoden.  Am Einfachsten ist
1629 es, die möglichen Seitenumbrüche mit dem Befehl @code{\allowPageTurn}
1630 an jeder Stelle manuell anzugeben.
1631
1632 Wenn Ihnen das zu aufwändig ist, können Sie den @code{Page_turn_engraver}
1633 zu einem @code{Staff}- oder @code{Voice}-Kontext hinzufügen.  Dieser
1634 Engraver durchsucht den entsprechenden Kontext nach Stellen ohne Noten.
1635 (Es wird also nicht nach Pausen gesucht, sondern nach Stellen ohne
1636 Noten.  Dieses Verhalten verhindert, dass an polyphonen Stellen umgebrochen
1637 wird, wo nur in einer Stimme Pausen vorhanden sind.)  Wenn eine
1638 derartige Stelle ohne Noten gefunden wird, fügt der Engraver den
1639 Befehl @code{\allowPageTurn} am letzten Taktstrich des Abschnitts ein.  Wenn
1640 in dem Abschnitt ein besonderer Taktstrich vorkommt (wie etwa ein
1641 Doppelstrich), wird der Befehl nach diesem Taktstrich gesetzt.
1642
1643 @funindex minimumPageTurnLength
1644
1645 Der @code{Page_turn_engraver} liest die Kontexteigenschaft
1646 @code{minimumPageTurnLength} um zu erkennen, wie lang eine Stelle
1647 frei von Noten sein muss, damit ein Seitenumbruch in Frage kommt.  Der
1648 Standardwert hierfür ist @code{(ly:make-moment 1/1)}.  Wenn Sie
1649 Seitenumbrüche zum Umblättern ausschalten wollen, können Sie
1650 einen sehr großen Wert angeben.
1651
1652 @example
1653 \new Staff \with @{ \consists "Page_turn_engraver" @}
1654 @{
1655   a4 b c d |
1656   R1 | % Ein Seitenumbruch zum Umblättern erlaubt
1657   a4 b c d |
1658   \set Staff.minimumPageTurnLength = #(ly:make-moment 5/2)
1659   R1 | % Seitenumbruch nicht erlaubt
1660   a4 b r2 |
1661   R1*2 | % Seitenumbruch erlaubt
1662   a1
1663 @}
1664 @end example
1665
1666 @funindex minimumRepeatLengthForPageTurn
1667
1668 Der @code{Page_turn_engraver} erkennt Wiederholungen vom Typ @code{volta}.
1669 Ein Seitenumbruch zum Umblättern wird nur zugelassen, wenn vor und nach
1670 der Wiederholung genug Zeit ist, um die Seite wieder zurückzublättern.
1671 Wenn die Wiederholung sehr kurz ist, kann auch Umblättern verboten
1672 werden.  Wenn Sie die Kontexteigenschaft
1673 @code{minimumRepeatLengthForPageTurn} definieren, erlaubt der
1674 @code{Page_turn_engraver} nur Umblättern in Wiederholungen, deren
1675 Dauer länger als dieser Wert ist.
1676
1677 Die Seitenumblätter-Befehle @code{\pageTurn}, @code{\noPageTurn} und
1678 @code{\allowPageTurn} können auch auf oberster Dateiebene benutzt
1679 werden, etwa zwischen Partituren und Textabschnitten.
1680
1681
1682 @predefined
1683 @funindex \pageTurn
1684 @code{\pageTurn},
1685 @funindex \noPageTurn
1686 @code{\noPageTurn},
1687 @funindex \allowPageTurn
1688 @code{\allowPageTurn}.
1689 @endpredefined
1690
1691 @seealso
1692 Schnipsel:
1693 @rlsr{Spacing}.
1694
1695 @knownissues
1696
1697 In einer Partitur sollte nur ein @code{Page_turn_engraver} vorkommen.  Wenn
1698 mehr als einer definiert werden, stören sie sich gegenseitig.
1699
1700
1701 @node Minimale Seitenumbrüche
1702 @subsection Minimale Seitenumbrüche
1703 @translationof Minimal page breaking
1704
1705 @funindex ly:minimal-breaking
1706
1707 Die @code{ly:minimal-breaking}-Funktion benötigt nur minimale Berechnungen,
1708 um die Seitenumbrüche zu bestimmen.  Die Seite wird mit möglichst
1709 vielen Systemen gefüllt und dann zur nächsten Seite gewechselt.  Die
1710 Funktion kann benutzt werden um Partituren mit vielen Seiten zu
1711 setzen, wenn die anderen Seitenumbruchsfunktionen zu langsam wären
1712 oder zu viel Speicher beanspruchen.  Auch für Seiten mit viel Text
1713 ist die Funktion geeignet.  Sie wird folgendermaßen aktiviert:
1714
1715 @example
1716 \paper @{
1717   page-breaking = #ly:minimal-breaking
1718 @}
1719 @end example
1720
1721 @seealso
1722 Schnipsel:
1723 @rlsr{Spacing}.
1724
1725
1726 @node Eine-Seite-Seitenumbrüche
1727 @subsection Eine-Seite-Seitenumbrüche
1728 @translationof One-line page breaking
1729
1730 @funindex ly:one-line-breaking
1731
1732 Die Funktion @code{ly:one-line-breaking} ist ein besonderer
1733 Seitenumbruchalgorithmus, der jede Partitur (@code{score}) auf
1734 eine eigene Seite ausgibt, und in einer einzlenen Zeile.  Diese
1735 Seitenumbruchfunktion gibt keine Titel oder Ränder aus, nur die
1736 Partitur wird dargestellt.
1737
1738 Die Seitenbreite wird angepasst, sodass die längeste Partitur auf
1739 eine Zeile passt.  Die Variablen @code{paper-width}, @code{line-width}
1740 und @code{indent} in der @code{\paper}-Umgebung werden ignoriert,
1741 wenn auch @code{left-margin} und @code{right-margin} noch beachtet
1742 werden.  Die Höhe der Seite wird nicht verändert.
1743
1744
1745 @node Ausdrückliche Umbrüche
1746 @subsection Ausdrückliche Umbrüche
1747 @translationof Explicit breaks
1748
1749 Es kann vorkommen, dass LilyPond direkte @code{\break} oder
1750 @code{\pageBreak}-Befehl nicht beachtet.  Mit folgenden
1751 Einstellungen kann dieses Verhalten ausgeschaltet werden:
1752
1753 @example
1754 \override NonMusicalPaperColumn.line-break-permission = ##f
1755 \override NonMusicalPaperColumn.page-break-permission = ##f
1756 @end example
1757
1758 Wenn @code{line-break-permission} die Einstellung falsch
1759 (@code{##f}) hat, werden Zeilenumbrüche nur an den Befehlen
1760 @code{\break} eingefügt und nirgendwo anders.  Wenn
1761 @code{page-break-permission} die Einstellung falsch
1762 (@code{##f}) hat, werden Seitenumbrüche nur an den Befehlen
1763 @code{\pageBreak} eingefügt und nirgendwo anders.
1764
1765 @lilypond[quote,verbatim]
1766 \paper {
1767   indent = #0
1768   ragged-right = ##t
1769   ragged-bottom = ##t
1770 }
1771
1772 music = \relative { c''8 c c c }
1773
1774 \score {
1775   \new Staff {
1776     \repeat unfold 2 { \music } \break
1777     \repeat unfold 4 { \music } \break
1778     \repeat unfold 6 { \music } \break
1779     \repeat unfold 8 { \music } \pageBreak
1780     \repeat unfold 8 { \music } \break
1781     \repeat unfold 6 { \music } \break
1782     \repeat unfold 4 { \music } \break
1783     \repeat unfold 2 { \music }
1784   }
1785   \layout {
1786     \context {
1787       \Score
1788       \override NonMusicalPaperColumn.line-break-permission = ##f
1789       \override NonMusicalPaperColumn.page-break-permission = ##f
1790     }
1791   }
1792 }
1793 @end lilypond
1794
1795
1796 @seealso
1797 Schnipsel:
1798 @rlsr{Spacing}.
1799
1800
1801 @node Eine zusätzliche Stimme für Umbrüche benutzen
1802 @subsection Eine zusätzliche Stimme für Umbrüche benutzen
1803 @translationof Using an extra voice for breaks
1804
1805 Zeilen- und Seitenumbruchbefehle werden normalerweise direkt
1806 zusammen mit den Noten eingegeben.
1807
1808 @example
1809 music = \relative @{ c''4 c c c @}
1810
1811 \score @{
1812   \new Staff @{
1813     \repeat unfold 2 @{ \music @} \break
1814     \repeat unfold 3 @{ \music @}
1815   @}
1816 @}
1817 @end example
1818
1819 Hierdurch sind zwar die Befehle @code{\break} und @code{\pageBreak}
1820 einfach zu notieren, es werden aber Informationen zur Notation
1821 mit Informationen zur Anordnung auf der Seite vermischt.  Man kann
1822 diese Informationen auch voneinander trennen, indem man eine zusätzliche
1823 Stimme einfügt, in der Zeilen- und Seitenumbrüche vorgenommen werden.
1824 Diese zusätzliche Stimme enthält nur unsichtbare Noten und die
1825 Umbruchbefehle:
1826
1827 @lilypond[quote,verbatim]
1828 music = \relative { c''4 c c c }
1829
1830 \score {
1831   \new Staff <<
1832     \new Voice {
1833       s1 * 2 \break
1834       s1 * 3 \break
1835       s1 * 6 \break
1836       s1 * 5 \break
1837     }
1838     \new Voice {
1839       \repeat unfold 2 { \music }
1840       \repeat unfold 3 { \music }
1841       \repeat unfold 6 { \music }
1842       \repeat unfold 5 { \music }
1843     }
1844   >>
1845 }
1846 @end lilypond
1847
1848 Mit dieser Herangehensweise kann der Code insbesondere
1849 dann klarer notiert werden, wenn man Einstellungen der
1850 @code{line-break-system-details}-Eigenschaft oder
1851 anderer Eigenschaften von
1852 @code{NonMusicalPaperColumnGrob} vornimmt (hierzu auch
1853 @ref{Vertikale Abstände}).
1854
1855 @lilypond[quote,verbatim]
1856 music = \relative { c''4 c c c }
1857
1858 \score {
1859   \new Staff <<
1860     \new Voice {
1861       \overrideProperty Score.NonMusicalPaperColumn.line-break-system-details #'((Y-offset . 0))
1862       s1 * 2 \break
1863
1864       \overrideProperty Score.NonMusicalPaperColumn.line-break-system-details #'((Y-offset . 35))
1865       s1 * 3 \break
1866
1867       \overrideProperty Score.NonMusicalPaperColumn.line-break-system-details #'((Y-offset . 70))
1868       s1 * 6 \break
1869
1870       \overrideProperty Score.NonMusicalPaperColumn.line-break-system-details #'((Y-offset . 105))
1871       s1 * 5 \break
1872     }
1873     \new Voice {
1874       \repeat unfold 2 { \music }
1875       \repeat unfold 3 { \music }
1876       \repeat unfold 6 { \music }
1877       \repeat unfold 5 { \music }
1878     }
1879   >>
1880 }
1881 @end lilypond
1882
1883
1884 @seealso
1885 Notationsreferenz:
1886 @ref{Vertikale Abstände}.
1887
1888 Schnipsel:
1889 @rlsr{Spacing}.
1890
1891
1892 @node Vertikale Abstände
1893 @section Vertikale Abstände
1894 @translationof Vertical spacing
1895
1896 @cindex vertikale Positionierung
1897 @cindex Positionierung, vertikal
1898 @cindex Abstände, vertikal
1899
1900 Vertikale Abstände werden durch drei Eigenschaften
1901 bestimmt:  wieviel Platz frei ist (etwa Papiergröße
1902 und Ränder), wieviel Platz zwischen Systemgruppen
1903 (engl. system) gesetzt werden soll und wieviel
1904 Platz zwischen Notensystemen (engl. staff, Pl. staves)
1905 innerhalb von Gruppen gesetzt wird.
1906
1907 @menu
1908 * Flexible vertikale Abstände in Systemgruppen::
1909 * Explizite Positionierung von Systemen::
1910 * Vermeidung von vertikalen Zusammenstößen::
1911 @end menu
1912
1913
1914 @node Flexible vertikale Abstände in Systemgruppen
1915 @subsection Flexible vertikale Abstände in Systemgruppen
1916 @translationof Flexible vertical spacing within systems
1917
1918 @cindex Abstand zwischen Notensystemen
1919 @cindex Notensystemabstand
1920 @cindex Platz zwischen Notensystemen
1921 @cindex Platz innerhalb von Systemgruppen
1922 @cindex Systemgruppen, Abstände innerhalb
1923
1924 Drei unterschiedliche Mechanismen kontrollieren das flexible Abstandaufteilung
1925 in Systemgruppen, einer für jede der folgenden Kathegorien:
1926
1927 @itemize
1928
1929 @item
1930 @emph{ungruppierte Systeme},
1931
1932 @item
1933 @emph{Systemgruppen} (Systeme innerhalb einer @code{staff-group} wie etwa
1934 @code{ChoirStaff} usw.) und
1935
1936 @item
1937 @emph{Nicht-Notensystemzeilen} (wie etwa @code{Lyrics} (Gesangstext),
1938 @code{ChordNames} (Akkordbezeichnungen) usw.).
1939
1940 @end itemize
1941
1942 Die Höhe jeder Systemgruppe wird in zwei Schritten bestimmt.  Zunächst
1943 werden alle Systeme anhand des vorhandenen Platzes aufgeteilt.  Dann
1944 werden die nicht-Notensysteme (also Akkorde oder Gesangstext) zwischen
1945 den Systemen verteilt.
1946
1947 Es ist zu beachten, dass der Platzverteilungsmechanismus, der in diesem
1948 Abschnitt behandelt wird, nur die vertikale Platzierung von Systemen und
1949 nicht-Systemzeilen in einzelnen Systemgruppen behandelt.  Die vertikale
1950 Platzierung zwischen einzelnen Systemgruppen, Partituren, Beschriftungen
1951 usw. und den Rändern wird durch @code{\paper}-Variablen kontrolliert, die
1952 @ref{Vertikale paper-Variablen mit flexiblen Abständen,,Vertikale @code{@bs{}paper}-Variablen mit flexiblen Abständen}.
1953
1954 @menu
1955 * Eigenschaften für Abstände innerhalb von Systemgruppen::
1956 * Abstände von nicht gruppierten Notensystemen::
1957 * Abstände von gruppierten Notensystemen::
1958 * Abstände von nicht-Notensystemzeilen::
1959 @end menu
1960
1961
1962 @node Eigenschaften für Abstände innerhalb von Systemgruppen
1963 @unnumberedsubsubsec Eigenschaften für Abstände innerhalb von Systemgruppen
1964 @translationof Within-system spacing properties
1965
1966 @funindex staff-affinity
1967 @funindex staffgroup-staff-spacing
1968 @funindex staff-staff-spacing
1969 @funindex nonstaff-unrelatedstaff-spacing
1970 @funindex nonstaff-relatedstaff-spacing
1971 @funindex nonstaff-nonstaff-spacing
1972 @funindex default-staff-staff-spacing
1973 @funindex minimum-Y-extent
1974 @funindex extra-offset
1975 @funindex self-alignment-X
1976 @funindex X-offset
1977 @funindex VerticalAxisGroup
1978
1979 Der vertikalen Platzierungsmechanismen für Abstände innerhalb von Systemgruppen
1980 werden durch zwei Gruppen von Grob-Eigenschaften kontrolliert.  Die erste
1981 Gruppe ist mit dem @code{VerticalAxisGroup}-Grob verknüpft, der von allen
1982 Notensystemen und Nicht-Notensystemzeilen erstellt wird.  Die zweite Gruppe
1983 ist mit dem @code{StaffGrouper}-Grob verknüpft, der von Systemgruppen erstellt
1984 werden kann, aber nur, wenn das explizit verlangt wird.  Die einzelnen Eigenschaften
1985 werden am Ende dieses Abschnitts beschrieben.
1986
1987 Die Bezeichnungen dieser Eigenschaften (mit Außnahmen von @code{staff-affinity})
1988 haben das Format @code{@var{Element1}-@var{Element2}-spacing}, wobei
1989 @code{@var{Element1}} und @code{@var{Element2}} die Elemente sind, deren
1990 Abstände eingestellt werden sollen.  Dabei ist allerdings zu beachten, dass
1991 @code{@var{Element2}} sich nicht notwendigerweise unterhalb von
1992 @code{@var{Element1}} befindet; beispielsweise
1993 @code{nonstaff-relatedstaff-spacing} (Nicht-Notensystem-verwandtesNotensystem)
1994 misst von dem Nicht-Notensystem nach oben, wenn @code{staff-affinity}
1995 (Richtung, an der sich ein System ausrichtet) auf @code{UP} (nach oben)
1996 eingestellt ist.
1997
1998 Jeder Abstand wird zwischen den @emph{Referenzpunkten} der zwei Objekten
1999 gemessen.  Der Referenzpunkt eines Notensystems ist die vertikale Mitte
2000 seines @code{StaffSymbol}-Objekts (also die Mittellinie, wenn
2001 @code{line-count} (Notenlinienzähler) ungrade ist, oder der mittlere
2002 Zwischenraum, wenn @code{line-count} grade ist).  Die Referenzpunkte für
2003 einzelne Nicht-Notensystemzeilen ergibt sich aus der folgenden Tabelle:
2004
2005 @multitable {Nicht-Notensystemzeile} {Referenzpunkt}
2006 @headitem Nicht-Notensystemzeile @tab Referenzpunkt
2007 @item @code{ChordNames}  @tab Grundlinie
2008 @item @code{NoteNames}   @tab Grundlinie
2009 @item @code{Lyrics}      @tab Grundlinie
2010 @item @code{Dynamics}    @tab vertikale Mitte
2011 @item @code{FiguredBass} @tab höchster Punkt
2012 @item @code{FretBoards}  @tab Oberlinie
2013 @end multitable
2014
2015 Im nächsten Bild zeigen horizontale Striche die Positionen dieser
2016 Referenzpunkte an:
2017
2018 @lilypond[quote,noragged-right,line-width=110\mm]
2019 #(define zero-space '((padding . -inf.0) (basic-distance . 0)))
2020
2021 alignToZero = \with {
2022   \override VerticalAxisGroup.nonstaff-relatedstaff-spacing = #zero-space
2023   \override VerticalAxisGroup.nonstaff-nonstaff-spacing = #zero-space
2024 }
2025 lowerCaseChords = \with {
2026   chordNameLowercaseMinor = ##t
2027 }
2028 staffAffinityDown = \with {
2029   \override VerticalAxisGroup.staff-affinity = #DOWN
2030 }
2031 labelContext =
2032 #(define-music-function
2033      (context)
2034      (string?)
2035    #{ s1*0^\markup { \typewriter #context } #})
2036
2037 \layout {
2038   \context { \Dynamics    \alignToZero }
2039   \context { \FiguredBass \alignToZero }
2040   \context { \Lyrics      \alignToZero }
2041   \context { \NoteNames   \alignToZero \staffAffinityDown }
2042   \context { \ChordNames  \alignToZero
2043                           \staffAffinityDown
2044                           \lowerCaseChords }
2045   \context { \FretBoards  \alignToZero \staffAffinityDown }
2046   \context { \Score
2047     \omit BarLine
2048     \override DynamicText.self-alignment-X = #-1
2049     \override FretBoard.X-offset = #1.75
2050     \override InstrumentName.minimum-Y-extent = #'(-2 . 2)
2051     \override InstrumentName.extra-offset = #'(0 . -0.5)
2052     \override TextScript.minimum-Y-extent = #'(-2 . 3)
2053     \omit TimeSignature
2054   }
2055 }
2056
2057 %% These contexts have reference points at the baseline:
2058 %%   ChordNames, NoteNames, and Lyrics
2059 <<
2060   \new ChordNames { \chords { g1:m } }
2061   \new NoteNames { s1 | g1 | }
2062   \new RhythmicStaff {
2063     \set RhythmicStaff.instrumentName = #"baseline "
2064     \textLengthOn
2065     \labelContext "ChordNames " s1 |
2066     \labelContext "NoteNames "  s1 |
2067     \labelContext "Lyrics"     s1 |
2068   }
2069   \new Lyrics { \lyrics { \skip 1*2 | ghijk1 | } }
2070 >>
2071
2072 %% The reference point for Dynamics is its vertical center
2073 <<
2074   \new RhythmicStaff {
2075     \set RhythmicStaff.instrumentName = #"vertical center "
2076     \labelContext "Dynamics" s1*3
2077   }
2078   \new Dynamics { s1\mp s\fp }
2079 >>
2080
2081 %% The reference point for FiguredBass is its highest point
2082 <<
2083   \new RhythmicStaff {
2084     \set RhythmicStaff.instrumentName = #"highest point "
2085     \labelContext "FiguredBass" s1
2086   }
2087   \new FiguredBass { \figuremode { <6 5>1 } }
2088 >>
2089
2090 %% The reference point for FretBoards is the top line
2091 \include "predefined-guitar-fretboards.ly"
2092 <<
2093   \new FretBoards { \chordmode { e1 } }
2094   \new RhythmicStaff {
2095     \set RhythmicStaff.instrumentName = #"top line "
2096     \labelContext "FretBoards " s1
2097   }
2098 >>
2099 @end lilypond
2100
2101 Jeder der vertikalen Platzierungs-Grobeigenschaften (außer
2102 @code{staff-affinity}) benutzt die gleiche Alistenstruktur
2103 wie die @code{\paper}-Variablen, behandelt in
2104 @ref{Vertikale paper-Variablen mit flexiblen Abständen,,Vertikale @code{@bs{}paper}-Variablen mit flexiblen Abständen}.  Besondere
2105 Methoden um Alisten zu verändern finden sich in
2106 @ref{Alisten verändern}.  Grob-Eigenschaften sollten mit
2107 dem @code{\override}-Befehle innerhalb einer @code{\score}-
2108 oder @code{\layout}-Umgebung angepasst werden, nicht innerhalb einer
2109 @code{\paper}-Umgebung.
2110
2111 Das folgende Beispiel zeigt die beiden Arten, Alisten zu modifizieren.
2112 Der erste Aufruf verändert nur einen Schlüsselwert einzlen, während
2113 der zweite die Eigenschaft komplett neu definiert:
2114
2115 @example
2116 \new Staff \with @{
2117   \override VerticalAxisGroup.default-staff-staff-spacing.basic-distance = #10
2118 @} @{ @dots{} @}
2119
2120 \new Staff \with @{
2121   \override VerticalAxisGroup.default-staff-staff-spacing =
2122     #'((basic-distance . 10)
2123        (minimum-distance . 9)
2124        (padding . 1)
2125        (stretchability . 10))
2126 @} @{ @dots{} @}
2127 @end example
2128
2129 Um Platzierungseinstellungen global vorzunehmen, müssen sie in der
2130 @code{\layout}-Umgebung vorgenommen werden:
2131
2132 @example
2133 \layout @{
2134   \context @{
2135     \Staff
2136     \override VerticalAxisGroup.default-staff-staff-spacing.basic-distance = #10
2137   @}
2138 @}
2139 @end example
2140
2141 Standardeinstellungen für die vertikalen Platzierungs-Grobeigenscahften
2142 finden sich in @rinternals{VerticalAxisGroup} und
2143 @rinternals{StaffGrouper} aufgelistet.  Standardveränderungen für bestimmte
2144 Typen von Nicht-Notensystemzeilen finden sich im relevanten Abschnitt in
2145 in @rinternals{Contexts} aufgelistet.
2146
2147
2148 @subsubheading Eigenschaften des @code{VerticalAxisGroup}-Grobs
2149
2150 @code{VerticalAxisGroup}-Eigenschaften werden normalerweise mit einem
2151 @code{\override}-Befehl auf @code{Staff}-(Notensystem-)Ebene (oder
2152 entsprechend) vorgenommen.
2153
2154 @table @code
2155 @item staff-staff-spacing
2156 System-System-Platzierung
2157
2158 Wird benutzt, um den Abstand zwischen dem aktuellen Notensystem und dem
2159 Notensystem direkt darunter in der gleichen Notensystemgruppe zu bestimmen,
2160 auch wenn eine oder mehrere Nicht-Notensystemzeilen (wie etwa @code{Lyrics})
2161 dazwischen stehen.  Gilt nicht für das unterste System einer Systemgruppe.
2162
2163 Die Eigenschaft @code{staff-staff-spacing} einer @code{VerticalAxisGroup}
2164 ist eine Scheme-Funktion, welche die Eigenschaften vom @code{StaffGrouper}-Grob
2165 den Notensystemen zuweist, wenn sie einer Systemgruppe angehören, bzw.
2166 die @code{default-staff-staff-spacing}-Eigenschaft bei einem einzelnen Notensystem.
2167 Dadurch können Systeme unterschiedlich in Abhängigkeit von ihrer Zugehörigkeit
2168 zu einer Gruppe (StaffGroup) platziert werden.  Wenn gleichmäßige Aufteilung
2169 ohne Berücksichtigung von Gruppierungen gewünscht ist, kann diese Funktion durch
2170 eine flexible Platzierungs-Aliste ersetzt werden, wobei man die vollständige
2171 Redefinition auf die oben gezeigte Weise vornehmen muss.
2172
2173 @item default-staff-staff-spacing
2174 Normale-System-System-Platzierung
2175
2176 Eine flexible Platzierungs-Aliste, die den Wert von @code{staff-staff-spacing}
2177 für ungruppierte Notensysteme einstellt, es sei denn,
2178 @code{staff-staff-spacing} wirde explizit mit @code{\override} eingestellt.
2179
2180 @item staff-affinity
2181 System-Anziehung
2182
2183 Die Richtung des Systems, die benutzt wird, um die aktuelle
2184 Nicht-Notensystemzeile zu platzieren.  Mögliche Werte sind
2185 @code{UP} (nach oben), @code{DOWN} (nach unten) und
2186 @code{CENTER} (mittig).  Wenn @code{CENTER} wird die Nicht-Notensystemzeile
2187 vertikal mittig zwischen den beiden nächsten Systemen oben und unten
2188 platziert, außer Zusammenstöße und andere Platzierungsprobleme verhindern
2189 das.  Aufeinanderfolgende Nicht-Notensystemzeilen sollten nicht-aufsteigende
2190 @code{staff-affinity} von oben nach unten haben; also ein Nicht-Notensystemzeile
2191 mit @code{UP} sollte nicht direkt auf eine mit @code{DOWN} folgen.
2192 Nicht-Notensystemzeilen über einem Notensystem sollten @code{DOWN}
2193 benutzen, unter einem Notensystem dagegen @code{UP}.  Wenn
2194 @code{staff-affinity} für eine Notensystem eingestellt wird, wird es wie
2195 eine Nicht-Notensystemzeile behandelt.  Wenn @code{staff-affinity}
2196 auf @code{#f} gesetzt wird, wird eine Nicht-Notensystemzeile wie ein
2197 Notensystem behandelt. Wird @code{staff-affinity} auf @code{UP},
2198 @code{CENTER} oder @code{DOWN} gesetzt, wird das Notensystem als
2199 Nicht-Notensystemzeile plaziert.
2200
2201 @item nonstaff-relatedstaff-spacing
2202 Nicht-Notensystem-verwandtesSystem-Platzierung
2203
2204 Der Abstand zwischen der aktuellen Nicht-Notensystemzeile und
2205 dem nächsten Notensystem in der Richtung von @code{staff-affinity},
2206 wenn keine Nicht-Notensystemzeilen dazwischen auftreten und @code{staff-affinity}
2207 entweder @code{UP} oder @code{DOWN} ist.  Wenn @code{staff-affinity}
2208 @code{CENTER} ist, dann wird @code{nonstaff-relatedstaff-spacing} für die
2209 nächsten Notensysteme auf @emph{beiden} Seiten benutzt, auch wenn andere
2210 Nicht-Notensystemzeilen zwischen der aktuellen und einem der Notensystem
2211 auftreten.  Das heißt, dass die Platzierung eine Nicht-Notensystemzeile
2212 sowohl von den umliegenden Notensystemen als auch den umliegenden
2213 Nicht-Notensystemzeilen abhängt.  Wenn @code{stretchability} einer dieser
2214 Platzierungstypen auf einen kleinen Wert gesetzt wird, dominiert diese
2215 Platzierung.  Wird es dagegen auf einen großen Wert gesetzt, hat die
2216 Platzierung dieses Objekts nur einen kleinen Einfluss.
2217
2218 @item nonstaff-nonstaff-spacing
2219 Nicht-Notensystemzeile-Nicht-Notensystemzeile-Platzierung
2220
2221 Der Abstand zwischen der aktuellen Nicht-Notensystemzeile und der
2222 Nicht-Notensystemzeile in der Richtung von @code{staff-affinity},
2223 wenn beide sich auf der gleichen Seite des verwandten Notensystems
2224 befinden und @code{staff-affinity} entweder @code{UP} oder @code{DOWN} ist.
2225
2226 @item nonstaff-unrelatedstaff-spacing
2227 Nicht-Notensystemzeile-Nicht-verwandtesSystem-Platzierung
2228
2229 Der Abstand zwischen der aktuellen Nicht-Notensystemzeile und
2230 dem Notensystem in der gegenüberliegenden Richtung von @code{staff-affinity},
2231 wenn keine anderen Nicht-Notensystemzeilen dazwischen auftreten und
2232 @code{staff-affinity} entweder @code{UP} oder @code{DOWN} ist.  Das kann
2233 benutzt werden, um einen Minimalfüllabstand (padding) zwischen einer
2234 @code{Lyrics}-Gesangstextzeile und dem zugehörigen Notensystem zu verlangen.
2235 @end table
2236
2237
2238 @subsubheading Eigenschaften des @code{StaffGrouper}-Grobs
2239
2240 @code{StaffGrouper}-Eigenschaften werden normalerweise mit einem
2241 @code{\override}-Befehl auf @code{StaffGroup}-Ebene (oder
2242 entsprechend) eingestellt.
2243
2244 @table @code
2245 @item staff-staff-spacing
2246 Notensystem-Notensystem-Abstand
2247
2248 Der Abstand zwischen zwei aufeinanderfolgenden Notensystemen in
2249 der aktuellen @code{StaffGroup}.  Die @code{staff-staff-spacing}-Eigenschaft
2250 des @code{VerticalAxisGroup}-Grobs eines einzelnen Notensytems
2251 kann mit @code{\override} in andere Platzierungswerte für dieses Notensystem
2252 geändert werden.
2253
2254 @item staffgroup-staff-spacing
2255 Systemgruppe-System-Abstand
2256
2257 Der Abstand zwischen dem letzten Notensystem der aktuellen @code{StaffGroup}
2258 und dem Notensystem dirket darunter in der selben Notensystemgruppe,
2259 auch wenn eine oder mehrere Nicht-Notensystemzeilen (wie etwa
2260 Gesangstext) zwischen den zwei Notensystemen vorkommen.  Gilt nicht
2261 für das letzte Notensystem einer Systemgruppe.  Die
2262 @code{staff-staff-spacing}-Eigenschaft des @code{VerticalAxisGroup}-Grobs
2263 individueller Notensysteme kann mit @code{\override} in andere Platzierungswerte
2264 für dieses Notensystem geändert werden.
2265 @end table
2266
2267 @seealso
2268 Notationsreferenz:
2269 @ref{Vertikale paper-Variablen mit flexiblen Abständen,,Vertikale @code{@bs{}paper}-Variablen mit flexiblen Abständen},
2270 @ref{Alisten verändern}.
2271
2272 Installierte Dateien:
2273 @file{ly/engraver-init.ly},
2274 @file{scm/define-grobs.scm}.
2275
2276 Referenz der Interna:
2277 @rinternals{Contexts},
2278 @rinternals{VerticalAxisGroup},
2279 @rinternals{StaffGrouper}.
2280
2281
2282 @node Abstände von nicht gruppierten Notensystemen
2283 @unnumberedsubsubsec Abstände von nicht gruppierten Notensystemen
2284 @translationof Spacing of ungrouped staves
2285
2286 @emph{Notensysteme} (wie etwa @code{Staff}, @code{DrumStaff},
2287 @code{TabStaff} usw.) sind Kontexte, die eine oder mehrere Stimmen-Kontexte
2288 enthalten, aber keine anderen Notensysteme enthalten können.
2289
2290 Folgende Eigenschaften beeinflussen die Abstände von @emph{nicht gruppierten}
2291 Notensystemen:
2292
2293 @itemize
2294 @item @code{VerticalAxisGroup}-Eigenschaften:
2295 @itemize
2296 @item @code{default-staff-staff-spacing}
2297 @item @code{staff-staff-spacing}
2298 @end itemize
2299 @end itemize
2300
2301 Diese Eigenschaften sind einzlen oben behandelt worden, siehe
2302 @ref{Eigenschaften für Abstände innerhalb von Systemgruppen}.
2303
2304 Zusätzliche Eigenschaften kommen hinzu für Notensysteme, die Teil
2305 einer Gruppieren (@code{StaffGroup}) werden, siehe
2306 @ref{Abstände von gruppierten Notensystemen}.
2307
2308 Folgendes Beispiel zeigt, wie die @code{default-staff-staff-spacing}-Eigenschaft
2309 sich auf die Platzierung von nicht-gruppierten Notensystemen auswirken kann.
2310 Wenn man die gleichen @code{\override}-Befehle auf @code{staff-staff-spacing}
2311 anwendet, ergäbe das den selben Effekt, würde sich aber auch in Fällen auswirken,
2312 in denen die Systeme gruppiert sind.
2313
2314 @lilypond[verbatim,quote,staffsize=16]
2315 \layout {
2316   \context {
2317     \Staff
2318     \override VerticalAxisGroup.default-staff-staff-spacing =
2319       #'((basic-distance . 8)
2320          (minimum-distance . 7)
2321          (padding . 1))
2322   }
2323 }
2324
2325 <<
2326   % The very low note here needs more room than 'basic-distance
2327   % can provide, so the distance between this staff and the next
2328   % is determined by 'padding.
2329   \new Staff { b,2 r | }
2330
2331   % Here, 'basic-distance provides enough room, and there is no
2332   % need to compress the space (towards 'minimum-distance) to make
2333   % room for anything else on the page, so the distance between
2334   % this staff and the next is determined by 'basic-distance.
2335   \new Staff { \clef bass g2 r | }
2336
2337   % By setting 'padding to a negative value, staves can be made to
2338   % collide.  The lowest acceptable value for 'basic-distance is 0.
2339   \new Staff \with {
2340     \override VerticalAxisGroup.default-staff-staff-spacing =
2341       #'((basic-distance . 3.5)
2342          (padding . -10))
2343   } { \clef bass g2 r | }
2344   \new Staff { \clef bass g2 r | }
2345 >>
2346 @end lilypond
2347
2348 @seealso
2349 Installierte Dateien:
2350 @file{scm/define-grobs.scm}.
2351
2352 Schnipsel:
2353 @rlsr{Spacing}.
2354
2355 Referenz der Interna:
2356 @rinternals{VerticalAxisGroup}.
2357
2358
2359 @node Abstände von gruppierten Notensystemen
2360 @unnumberedsubsubsec Abstände von gruppierten Notensystemen
2361 @translationof Spacing of grouped staves
2362
2363 In Orchesterpartituren und anderen großen Partituren werden Notensysteme
2364 normalerweise in Gruppen zusammengefasst.  Der Platz zwischen Gruppen
2365 ist normalerweise größer als der Zwischenraum zwischen einzlenen
2366 Notensystemen der gleichen Gruppe.
2367
2368 @emph{Gruppierte Notensysteme} (wie @code{StaffGroup}, @code{ChoirStaff},
2369 @code{GrandStaff} usw.) sind Kontexte, die mehr als ein Notensystem
2370 gleichzeitig enthalten können.
2371
2372 Folgende Eigenschaften beeinflussen die Platzierung von Notensystemen
2373 innerhalb von Gruppen:
2374
2375 @itemize
2376 @item @code{VerticalAxisGroup}-Eigenschaften:
2377 @itemize
2378 @item @code{staff-staff-spacing}
2379 @end itemize
2380 @item @code{StaffGrouper}-Eigenschaften:
2381 @itemize
2382 @item @code{staff-staff-spacing}
2383 @item @code{staffgroup-staff-spacing}
2384 @end itemize
2385 @end itemize
2386
2387 Diese Grob-Eigenschaften sind weiter oben einzeln beschrieben, siehe
2388 @ref{Eigenschaften für Abstände innerhalb von Systemgruppen}.
2389
2390 Das folgende Beispiel zeigt, wie Eigenscchaften des
2391 @code{StaffGrouper}-Grobs die Platzierung von gruppierten Notensystemen
2392 beeinflussen kann:
2393
2394 @lilypond[verbatim,quote,staffsize=16]
2395 \layout {
2396   \context {
2397     \Score
2398     \override StaffGrouper.staff-staff-spacing.padding = #0
2399     \override StaffGrouper.staff-staff-spacing.basic-distance = #1
2400   }
2401 }
2402
2403 <<
2404   \new PianoStaff \with {
2405     \override StaffGrouper.staffgroup-staff-spacing.basic-distance = #20
2406   } <<
2407     \new Staff { c'1 }
2408     \new Staff { c'1 }
2409   >>
2410
2411   \new StaffGroup <<
2412     \new Staff { c'1 }
2413     \new Staff { c'1 }
2414   >>
2415 >>
2416 @end lilypond
2417
2418 @seealso
2419 Installierte Dateien:
2420 @file{scm/define-grobs.scm}.
2421
2422 Schnipsel:
2423 @rlsr{Spacing}.
2424
2425 Referenz der Interna:
2426 @rinternals{VerticalAxisGroup},
2427 @rinternals{StaffGrouper}.
2428
2429
2430 @node Abstände von nicht-Notensystemzeilen
2431 @unnumberedsubsubsec Abstände von nicht-Notensystemzeilen
2432 @translationof Spacing of non-staff lines
2433
2434 @emph{Nicht-Notensystemzeilen} (wie @code{Lyrics}, @code{ChordNames}
2435 usw.) sind Kontexte, deren Layoutobjekte wie Notensysteme gesetzt
2436 werden (also als horizontale Zeilen zwischen Notensystemen).  Genau
2437 gesagt sind Nicht-Notensystemzeilen Nicht-Notensystemkontexte, die
2438 ein @code{VerticalAxisGroup}-Layoutobjekt erstellen.
2439
2440 Folgende Eigenschaften beeinflussen die Abstände von Nicht-Notensystemzeilen:
2441
2442 @itemize
2443 @item @code{VerticalAxisGroup}-Eigenschaften:
2444 @itemize
2445 @item @code{staff-affinity}
2446 @item @code{nonstaff-relatedstaff-spacing}
2447 @item @code{nonstaff-nonstaff-spacing}
2448 @item @code{nonstaff-unrelatedstaff-spacing}
2449 @end itemize
2450 @end itemize
2451
2452 Diese Grob-Eigenschaften sind weiter oben einzlen beschrieben; siehe
2453 @ref{Eigenschaften für Abstände innerhalb von Systemgruppen}.
2454
2455 Das folgende Beispiel zeigt, wie die @code{nonstaff-nonstaff-spacing}-Eigenschaft
2456 die Platzierung von aufeinanderfolgenden Nicht-Notensystemzeilen beeinflussen
2457 kann.  Indem hier der Wert von @code{stretchability} auf einen sehr hohen Wert
2458 gesetzt wird, kann der Gesangstext sehr viel weiter als normal gespreizt
2459 werden:
2460
2461 @lilypond[verbatim,quote,staffsize=16]
2462 \layout {
2463   \context {
2464     \Lyrics
2465     \override VerticalAxisGroup.nonstaff-nonstaff-spacing.stretchability = #1000
2466   }
2467 }
2468
2469 \new StaffGroup
2470 <<
2471   \new Staff \with {
2472     \override VerticalAxisGroup.staff-staff-spacing = #'((basic-distance . 30))
2473   } { c'1 }
2474   \new Lyrics \with {
2475     \override VerticalAxisGroup.staff-affinity = #UP
2476   } \lyricmode { up }
2477   \new Lyrics \with {
2478     \override VerticalAxisGroup.staff-affinity = #CENTER
2479   } \lyricmode { center }
2480   \new Lyrics \with {
2481     \override VerticalAxisGroup.staff-affinity = #DOWN
2482   } \lyricmode { down }
2483   \new Staff { c'1 }
2484 >>
2485 @end lilypond
2486
2487
2488 @seealso
2489 Installierte Dateien:
2490 @file{ly/engraver-init.ly},
2491 @file{scm/define-grobs.scm}.
2492
2493 Schnispel:
2494 @rlsr{Spacing}.
2495
2496 @c @lsr{spacing,page-spacing.ly},
2497 @c @lsr{spacing,alignment-vertical-spacing.ly}.
2498
2499 Referenz der Interna:
2500 @rinternals{Contexts},
2501 @rinternals{VerticalAxisGroup}.
2502
2503
2504
2505 @node Explizite Positionierung von Systemen
2506 @subsection Explizite Positionierung von Systemen
2507 @translationof Explicit staff and system positioning
2508
2509 Man kann die flexiblen Einstellungen der vertikalen Abstände, wie sie im
2510 vorigen Abschnitt
2511 erklärt wurden, als eine Sammlung verschiedenerer Einstellmöglichkeiten
2512 verstehen, die vor allem die Größe des vertikalen Platzes zwischen
2513 Notensystemen und Gruppen auf der Seite kontrollieren.
2514
2515 Die vertikale Platzverteilung kann aber auch auf andere Weise
2516 eingestellt werden: mit den Optionen von
2517 @code{NonMusicalPaperColumn #'line-break-system-details}.  Während
2518 der flexible vertikale Abstandsmechanismus vertikalen Füllplatz
2519 definiert, werden mit
2520 @code{NonMusicalPaperColumn #'line-break-system-details} absolute vertikale
2521 Positionen auf der Seite festgelegt.
2522
2523 @code{NonMusicalPaperColumn #'line-break-system-details} akzeptiert eine
2524 Liste aus drei unterschiedlichen Einstellungen:
2525
2526 @itemize
2527 @item @code{X-offset}
2528 @item @code{Y-offset}
2529 @item @code{alignment-distances}
2530 @end itemize
2531
2532 Veränderungen von Grobs (wozu auch @code{NonMusicalPaperColumn} gehört),
2533 können an drei unterschiedlichen Stellen in der Quelldatei vorgenommen
2534 werde:
2535
2536 @itemize
2537 @item mitten im Notentext
2538 @item in einer @code{\context}-Umgebung
2539 @item in einer @code{\with}-Umgebung
2540 @end itemize
2541
2542 Wenn der Grob @code{NonMusicalPaperColumn} verändert werden soll,
2543 wird der @code{\override}-Befehl in der @code{\context} oder
2544 @code{\with}-Umgebung eingesetzt.  Wenn die Veränderungen aber
2545 mitten im Notentext stattfinden sollen, müssen Sie den Befehl
2546 @code{\overrideProperty} einsetzen.  Einige Beispiele für eine
2547 Veränderungen von @code{NonMusicalPaperColumn} mit dem
2548 @code{\overrideProperty}-Befehl sind hier aufgelistet:
2549
2550 @example
2551 \overrideProperty NonMusicalPaperColumn.line-break-system-details #'((X-offset . 20))
2552
2553 \overrideProperty NonMusicalPaperColumn.line-break-system-details #'((Y-offset . 40))
2554
2555 \overrideProperty NonMusicalPaperColumn.line-break-system-details #'((X-offset . 20)
2556                                  (Y-offset . 40))
2557
2558 \overrideProperty NonMusicalPaperColumn.line-break-system-details #'((alignment-distances . (15)))
2559
2560 \overrideProperty NonMusicalPaperColumn.line-break-system-details #'((X-offset . 20)
2561                                  (Y-offset . 40)
2562                                  (alignment-distances . (15)))
2563 @end example
2564
2565 Um zu verstehen, wie jede dieser unterschiedlichen Einstellungen
2566 funktioniert, wollen wir uns ein Beispiel vornehmen, dass überhaupt
2567 keine Einstellungen (d.h. @code{\override}-Befehle) enthält:
2568
2569 @c \book { } is required in these examples to ensure the spacing
2570 @c overrides can be seen between systems. -np
2571
2572 @lilypond[verbatim,quote,staffsize=16]
2573 \header { tagline = ##f }
2574 \paper { left-margin = 0\mm }
2575 \book {
2576   \score {
2577     <<
2578       \new Staff <<
2579         \new Voice {
2580           s1*5 \break
2581           s1*5 \break
2582           s1*5 \break
2583         }
2584         \new Voice { \repeat unfold 15 { c'4 c' c' c' } }
2585       >>
2586       \new Staff {
2587         \repeat unfold 15 { d'4 d' d' d' }
2588       }
2589     >>
2590   }
2591 }
2592 @end lilypond
2593
2594 Diese Partitur nimmt Zeilen- und Seitenumbruchinformationen in einer
2595 eigenen Stimme vor.  Mit dieser Methode kann die Layout-Information
2596 einfach von den Noten getrennt werden, was sehr hilfreich ist, wenn
2597 das Beispiel komplizierter wird.  Siehe auch
2598 @ref{Eine zusätzliche Stimme für Umbrüche benutzen}.
2599
2600 Ausdrückliche @code{\break}-Befehle teilen die Noten in sechs Takte
2601 lange Zeilen.  Die vertikale Platzverteilung wird von LilyPond
2602 errechnet.  Um den vertikalen Beginn einer jeden Systemgruppe
2603 genau anzugeben, kann @code{Y-offset} in der
2604 @code{line-break-system-details}-Eigenschaft des
2605 @code{NonMusicalPaperColumn}-Grobs wie in dem Beispiel
2606 ersichtlich benutzt werden:
2607
2608 @lilypond[verbatim,quote,staffsize=16]
2609 \header { tagline = ##f }
2610 \paper { left-margin = 0\mm }
2611 \book {
2612   \score {
2613     <<
2614       \new Staff <<
2615         \new Voice {
2616           \overrideProperty Score.NonMusicalPaperColumn.line-break-system-details #'((Y-offset . 0))
2617           s1*5 \break
2618           \overrideProperty Score.NonMusicalPaperColumn.line-break-system-details #'((Y-offset . 40))
2619           s1*5 \break
2620           \overrideProperty Score.NonMusicalPaperColumn.line-break-system-details #'((Y-offset . 80))
2621           s1*5 \break
2622         }
2623         \new Voice { \repeat unfold 15 { c'4 c' c' c' } }
2624       >>
2625       \new Staff {
2626         \repeat unfold 15 { d'4 d' d' d' }
2627       }
2628     >>
2629   }
2630 }
2631 @end lilypond
2632
2633 In der @code{line-break-system-details}-Eigenschaft kann eine Liste
2634 mit vielen Einstellungen eingegeben werden, aber hier wird nur eine
2635 Einstellung angegeben.  Die @code{Y-offset}-Eigenschaft bestimmt
2636 hier die exakte vertikale Position auf der Seite, an welcher jede
2637 neue Systemgruppe begonnen wird.
2638
2639 Da jetzt der exakte Beginn einer jeden Systemgruppe explizit festgelegt wurde,
2640 können wir auch den exakten Beginn eines jeden Notensystems in der
2641 Gruppe festlegen.  Dies geschieht mit der @code{alignment-distances}-Eigenschaft
2642 von @code{line-break-system-details}.
2643
2644 @lilypond[verbatim,quote,staffsize=16]
2645 \header { tagline = ##f }
2646 \paper { left-margin = 0\mm }
2647 \book {
2648   \score {
2649     <<
2650       \new Staff <<
2651         \new Voice {
2652           \overrideProperty Score.NonMusicalPaperColumn.line-break-system-details #'((Y-offset . 20)
2653                                            (alignment-distances . (15)))
2654           s1*5 \break
2655           \overrideProperty Score.NonMusicalPaperColumn.line-break-system-details #'((Y-offset . 60)
2656                                            (alignment-distances . (15)))
2657           s1*5 \break
2658           \overrideProperty Score.NonMusicalPaperColumn.line-break-system-details #'((Y-offset . 100)
2659                                            (alignment-distances . (15)))
2660           s1*5 \break
2661         }
2662         \new Voice { \repeat unfold 15 { c'4 c' c' c' } }
2663       >>
2664       \new Staff {
2665         \repeat unfold 15 { d'4 d' d' d' }
2666       }
2667     >>
2668   }
2669 }
2670 @end lilypond
2671
2672 Dem @code{line-break-system-details}-Attribut des
2673 @code{NonMusicalPaperColumn}-Grobs werden zwei unterschiedliche Eigenschaften
2674 zugewiesen.  Auch wenn die Aliste der Attribute von
2675 @code{line-break-system-details} sehr viel mehr Platzierungsparameter
2676 akzeptiert (wie etwa ein korrespondierendes @code{X-offset}-Paar), müssen
2677 hier nur die Parameter @code{Y-offset} und
2678 @code{alignment-distances} gesetzt werden, um den vertikalen Beginn
2679 jedes Systems und jeder Systemgruppe zu kontrollieren.  @code{Y-offset}
2680 bestimmt also die vertikale Position von Systemgruppen und @code{alignment-distances}
2681 die vertikale Position von einzelnen Notensystemen.
2682
2683 @lilypond[verbatim,quote,staffsize=16]
2684 \header { tagline = ##f }
2685 \paper { left-margin = 0\mm }
2686 \book {
2687   \score {
2688     <<
2689       \new Staff <<
2690         \new Voice {
2691           \overrideProperty Score.NonMusicalPaperColumn.line-break-system-details #'((Y-offset . 0)
2692                                            (alignment-distances . (30 10)))
2693           s1*5 \break
2694           \overrideProperty Score.NonMusicalPaperColumn.line-break-system-details #'((Y-offset . 60)
2695                                            (alignment-distances . (10 10)))
2696           s1*5 \break
2697           \overrideProperty Score.NonMusicalPaperColumn.line-break-system-details #'((Y-offset . 100)
2698                                            (alignment-distances . (10 30)))
2699           s1*5 \break
2700         }
2701         \new Voice { \repeat unfold 15 { c'4 c' c' c' } }
2702       >>
2703       \new StaffGroup <<
2704         \new Staff { \repeat unfold 15 { d'4 d' d' d' } }
2705         \new Staff { \repeat unfold 15 { e'4 e' e' e' } }
2706       >>
2707     >>
2708   }
2709 }
2710 @end lilypond
2711
2712 Einige Dinge sollten beachtet werden:
2713
2714 @itemize
2715 @item Wenn @code{alignment-distances} benutzt wird, werden Gesangstextzeilen
2716 nicht als ein System gezählt.
2717
2718 @item Die Einheiten der Zahlen, die für @code{X-offset},
2719 @code{Y-offset} und @code{alignment-distances} benutzt werden, werden als
2720 Vielfaches des Abstandes zwischen zwei Notenlinien gewertet.  Positive
2721 Werte verschieben Systeme und Gesangstext nach oben, negative Werte nach
2722 unten.
2723
2724 @item Weil die Einstellungen von @code{NonMusicalPaperColumn #'line-break-system-details}
2725 es möglich machen, Notensysteme und Gruppen an beliebigen Stellen auf der
2726 Seite zu platzieren, kann man damit auch Ränder überschreiben oder sogar
2727 Notensysteme übereinander platzieren.  Sinnvolle Werte für diese
2728 Parameter werden derartiges Verhalten vermeiden.
2729 @end itemize
2730
2731
2732 @seealso
2733 Schnipsel:
2734 @rlsr{Spacing}.
2735
2736
2737 @node Vermeidung von vertikalen Zusammenstößen
2738 @subsection Vermeidung von vertikalen Zusammenstößen
2739 @translationof Vertical collision avoidance
2740
2741 @cindex Vermeidung von vertikalen Zusammenstößen
2742 @cindex Zusammenstöße, vertikal, vermeiden
2743 @cindex vertikale Zusammenstöße, vermeiden
2744 @cindex Kollisionen, vertikal, vermeiden
2745
2746 @funindex outside-staff-priority
2747 @funindex outside-staff-padding
2748 @funindex outside-staff-horizontal-padding
2749
2750 Intuitiv gibt es in der Notation einige Objekte, die zu dem Notensystem
2751 gehören, und einige andere, die immer außerhalb des Notensystems
2752 positioniert werden sollten.  Zu diesen letzteren gehören etwa
2753 Übungszeichen, Textbeschriftung und Dynamikbezeichnung (die als
2754 Objekte außerhalb des Systems bezeichnet werden können).  LilyPonds
2755 Regeln um diese Objekte zu positionieren lautet: so nah am Notensystem
2756 wie möglich, aber gerade so weit weg, dass sie nicht mit anderen
2757 Objekten zusammenstoßen.
2758
2759 Dabei setzt LilyPond die @code{outside-staff-priority}-Eigenschaft
2760 ein um herauszufinden, ob ein Grob ein Objekt außerhalb des Systems
2761 ist: wenn @code{outside-staff-priority} eine Zahl ist, dann handelt
2762 es sich um ein Objekt außerhalb des Systems.  Zusätzlich teilt
2763 @code{outside-staff-priority} noch mit, in welcher Reihenfolge
2764 die Objekte außerhalb des Systems gesetzt werden sollen.
2765
2766 Zuerst werden alle Objekte gesetzt, die nicht außerhalb des Systems
2767 gehören.  Dann werden die Objekte außerhalb des Systems nach dem Wert
2768 ihrer @code{outside-staff-priority}  (in aufsteigender Anordnung)
2769 sortiert.  Eins nach dem anderen werden diese Objekte schließlich
2770 genommen und so platziert, dass sie nicht mit den Objekten zusammenstoßen,
2771 die bereits platziert worden sind.  Wenn also zwei Objekte außerhalb
2772 des Systems um den gleichen Platz streiten, wird das mit dem
2773 geringeren Wert von @code{outside-staff-priority} näher an das
2774 entsprechende Notensystem gesetzt.
2775
2776 @lilypond[quote,ragged-right,verbatim]
2777 \relative c'' {
2778   c4_"Text"\pp
2779   r2.
2780   \once \override TextScript.outside-staff-priority = #1
2781   c4_"Text"\pp % this time the text will be closer to the staff
2782   r2.
2783   % by setting outside-staff-priority to a non-number,
2784   % we disable the automatic collision avoidance
2785   \once \override TextScript.outside-staff-priority = ##f
2786   \once \override DynamicLineSpanner.outside-staff-priority = ##f
2787   c4_"Text"\pp % now they will collide
2788 }
2789 @end lilypond
2790
2791 Der Platz, der zwischen einem Objekt außerhalb des Systems und
2792 dem vorhergehenden Objekt eingefügt werden kann (auch als
2793 padding bezeichnet), kann durch @code{outside-staff-padding}
2794 kontrolliert werden.
2795
2796 @lilypond[quote,ragged-right,relative=2,verbatim,staffsize=18]
2797 \once \override TextScript.outside-staff-padding = #0
2798 a'^"This text is placed very close to the note"
2799 \once \override TextScript.outside-staff-padding = #3
2800 c^"This text is padded away from the previous text"
2801 c^"This text is placed close to the previous text"
2802 @end lilypond
2803
2804 Standardmäßig werden Objekte außerhalb des Systems so gesetzt,
2805 dass sie eine horizontale Überschneidung mit einem der
2806 vorher gesetzten Grobs vermeiden.  Das kann zu Situationen
2807 führen, in denen Objekte sehr dicht nebeneinander gesetzt
2808 werden.  Der vertikale Platz zwischen Notensystemen kann
2809 auch gesetzt werden, sodass Objekte außerhalb des Systems
2810 ineinander greifen. Mit der Eigenschaft
2811 @code{outside-staff-horizontal-padding} können Objekte vertikal
2812 verschoben werden und derartige Situationen kommen nicht
2813 vor.
2814
2815 @lilypond[quote,ragged-right,relative=2,verbatim]
2816 % the markup is too close to the following note
2817 c4^"Text"
2818 c4
2819 c''2
2820 % setting outside-staff-horizontal-padding fixes this
2821 R1
2822 \once \override TextScript.outside-staff-horizontal-padding = #1
2823 c,,4^"Text"
2824 c4
2825 c''2
2826 @end lilypond
2827
2828 @seealso
2829 Schnipsel:
2830 @rlsr{Spacing}.
2831
2832
2833 @node Horizontale Abstände
2834 @section Horizontale Abstände
2835 @translationof Horizontal spacing
2836
2837 @cindex horizontale Platzierung
2838 @cindex horizontale Anordnung
2839 @cindex Anordnung, horizontal
2840
2841 @menu
2842 * Überblick über horizontale Abstände::
2843 * Eine neuer Bereich mit anderen Abständen::
2844 * Horizontale Abstände verändern::
2845 * Zeilenlänge::
2846 * Proportionale Notation::
2847 @end menu
2848
2849
2850 @node Überblick über horizontale Abstände
2851 @subsection Überblick über horizontale Abstände
2852 @translationof Horizontal spacing overview
2853
2854 Die Setzmaschine interpretiert unterschiedliche Notendauern als
2855 dehnbare Abstände (engl. spring) unterschiedlicher Länge.  Längere
2856 Dauern erhalten mehr Platz, kürzere weniger.  Die kürzeste Dauer
2857 erhält eine feste Breite (die mit @code{shortest-duration-space}
2858 im @code{SpacingSpanner}-Objekt kontrolliert werden kann).  Je
2859 länger die Dauer, umso mehr Platz erhält die Note: wenn ihre
2860 Dauer verdoppelt wird, wird ein bestimmter Platz hinzugefügt
2861 (dessen Breite durch @code{spacing-increment} bestimmt werden
2862 kann).
2863
2864 Das folgende Stück beispielsweise enthält Halbe, Viertel und Achtel.
2865 Die Achtelnote wird gefolgt von einem Notenkopfabstand (NKA).  Die
2866 Viertel wird von 2 NKA gefolgt, die Halbe von 3 NKA usw.
2867
2868 @lilypond[quote,fragment,verbatim,relative=1]
2869 c2 c4. c8 c4. c8 c4. c8 c8
2870 c8 c4 c4 c4
2871 @end lilypond
2872
2873 Normalerweise ist @code{spacing-increment} definiert als 1.2 mal
2874 der Abstand zwischen zwei Notenlinien, was in etwa die Breite eines
2875 Notenkopfes ist.  @code{shortest-duration-space} ist definiert als
2876 2.0, was bedeutet, dass die kürzeste Note 2.4 Notenlinienabstände
2877 2.0 mal der Wert von @code{spacing-increment}) horizontalen
2878 Abstand erhält.  Der Abstand wird von der linken Kante des Symbols
2879 errechnet, so dass die kürzeste Note üblicherweise von 1 NKA
2880 Abstand gefolgt wird.
2881
2882 Wenn diese Herangehensweise konsequent angewandt würde, würde eine
2883 einzige Zweiunddreißigstel eine Partitur, in der vor allem Achtel und
2884 Sechzehntel vorkommen, sehr weit auseinanderdehnen.  Die kürzeste
2885 Note wäre nun keine Sechzehntel mehr, sondern eine Zweiunddreißigstel,
2886 wodurch an jede Note der Wert von 1 NKA hinzugefügt würde.  Um das
2887 zu vermeiden, ist die kürzeste Dauer für die Platzverteilung nicht die
2888 kürzeste Note einer Partitur, sondern die, die am häufigsten vorkommt.
2889
2890 Die Notendauer, die am häufigsten vorkommt, wird auf folgende
2891 Weise bestimmt: in jedem Takt wird die kürzeste Note bestimmt.  Die
2892 häufigste kürzeste Note wird dann als Grundlage für die Platzverteilung
2893 der Noten herangezogen, mit der Bedingung, dass diese kürzeste
2894 Note immer ein Achtel oder kürzer sein soll.  Die kürzeste Dauer
2895 wird ausgegeben, wenn @code{lilypond} mit der Option @option{--verbose}
2896 aufgerufen wird.
2897
2898 Diese Dauern können aber auch angepasst werden.  Wenn Sie die Eigenschaft
2899 @code{common-shortest-duration} in dem @code{SpacingSpanner} setzen,
2900 dann wird hiermit die Grunddauer für die Platzverteilung eingestellt.
2901 Die maximale Dauer für diesen Grundwert (normalerweise eine Achtel)
2902 wird definiert mit @code{base-shortest-duration}.
2903
2904 @funindex common-shortest-duration
2905 @funindex base-shortest-duration
2906 @funindex stem-spacing-correction
2907 @funindex spacing
2908
2909 Noten, die noch kürzer sind als die häufigste kürzeste Note, werden
2910 durch einen Platz voneinander getrennt, der proportional zu ihrer
2911 Dauer in Beziehung zur häufigsten kürzesten Note ist.  Wenn also
2912 nur ein paar Sechzehntel zu dem obigen Beispiel hinzugefügt werden,
2913 würden sie von 1/2 NKA gefolgt werden:
2914
2915 @lilypond[quote,fragment,verbatim,relative=2]
2916 c2 c4. c8 c4. c16[ c] c4. c8 c8 c8 c4 c4 c4
2917 @end lilypond
2918
2919 In dem @emph{Aufsatz zum automatisierten Notensatz} wurde erklärt, dass die
2920 Richtung der Notenhälse die Platzverteilung beeinflusst (siehe
2921 @ressay{Optischer Ausgleich}).  Das wird
2922 kontrolliert durch die @code{stem-spacing-correction}-Eigenschaft
2923 in dem @code{NoteSpacing}-Objekt.  Dieses Objekt wird für jeden
2924 @code{Voice}-Kontext erstellt.  Das @code{StaffSpacing}-Objekt (in
2925 einem @code{Staff}-Kontext erstellt) enthält die gleiche Eigenschaft,
2926 um die Verteilung von Hälsen neben Taktlinien zu kontrollieren.  In
2927 dem folgenden Beispiel werden diese Einstellungen gezeigt, einmal
2928 mit den Standardwerten und dann mit größeren Werten, damit man sie
2929 besser sieht:
2930
2931 @lilypond[quote,ragged-right]
2932 \fixed c' {
2933   c4 e'4 e4 b4 |
2934   b4 e'4 b4 e'4 |
2935   \override Staff.NoteSpacing.stem-spacing-correction = #1.5
2936   \override Staff.StaffSpacing.stem-spacing-correction = #1.5
2937   c4 e'4 e4 b4 |
2938   b4 e'4 b4 e'4 |
2939 }
2940 @end lilypond
2941
2942 Proportionale Notation ist unterstützt, siehe @ref{Proportionale Notation}.
2943
2944 @seealso
2945 Aufsatz über den automatischen Notensatz:
2946 @ressay{Optischer Ausgleich}.
2947
2948 Schnipsel:
2949 @rlsr{Spacing}.
2950
2951 Referenz der Interna:
2952 @rinternals{SpacingSpanner},
2953 @rinternals{NoteSpacing},
2954 @rinternals{StaffSpacing},
2955 @rinternals{NonMusicalPaperColumn}.
2956
2957 @knownissues
2958
2959 Es gibt keine sinnvolle Möglichkeit, die horizontale Verteilung der
2960 Noten zu unterdrücken.  Die folgende Problemumgehung, mit der
2961 dehnbare Abstände (padding) eingesetzt werden, kann benutzt
2962 werden, um zusätzlichen Platz in eine Partitur einzufügen.
2963
2964 @example
2965  \override Score.NonMusicalPaperColumn.padding = #10
2966 @end example
2967
2968 Es gibt derzeit keine Möglichkeit, den Platz zu verringern.
2969
2970
2971 @node Eine neuer Bereich mit anderen Abständen
2972 @subsection Eine neuer Bereich mit anderen Abständen
2973 @translationof New spacing section
2974
2975 @cindex horizontale Notenabstände, Abschnitte definierten
2976 @cindex Notenabstände, Abschnitte definieren
2977 @cindex Abschnitte definieren, Notenabstände
2978
2979 Neue Abschnitte mit unterschiedlichen Notenabstandsparametern
2980 können mit dem Befehl @code{newSpacingSection} begonnen werden.
2981 Das ist hilfreich, wenn in verschiedenen Abschnitten die
2982 Verhältnisse von kurzen und langen Noten sehr unterschiedlich
2983 ausfallen.
2984
2985 Im folgenden Beispiel wird durch die neue Taktart ein neuer
2986 Abschnitt begonnen, in dem die Sechzehntel weiter außeinander
2987 gesetzt werden sollen.
2988
2989 @lilypond[relative,fragment,verbatim,quote]
2990 \time 2/4
2991 c4 c8 c
2992 c8 c c4 c16[ c c8] c4
2993 \newSpacingSection
2994 \time 4/16
2995 c16[ c c8]
2996 @end lilypond
2997
2998 Der @code{\newSpacingSection}-Befehl erstellt ein neues
2999 @code{SpacingSpanner}-Objekt, weshalb auch neue Anpassungen
3000 mit dem @code{\override}-Befehl an dieser Stelle eingesetzt
3001 werden können.
3002
3003 @seealso
3004 Schnipsel:
3005 @rlsr{Spacing}.
3006
3007 Referenz der Interna:
3008 @rinternals{SpacingSpanner}.
3009
3010
3011 @node Horizontale Abstände verändern
3012 @subsection Horizontale Abstände verändern
3013 @translationof Changing horizontal spacing
3014
3015 @cindex Notenabstände, horizontal
3016 @cindex horizontale Abstände
3017 @cindex horizontale Notenabstände
3018
3019 Die horizontalen Abstände können mit der
3020 @code{base-shortest-duration}-Eigenschaft
3021 verändert werden.  In den folgenden Beispielen
3022 werden die gleichen Noten eingesetzt, zuerst
3023 ohne die Eigenschaft zu verändern, im zweiten
3024 Beispiel dann mit einem anderen Wert.  Größere
3025 Werte für @code{ly:make-moment} ergeben dichtere
3026 Noten.  @code{ly:make-moment} erstellt eine Dauer,
3027 die als Bruch notiert wird, sodass @code{1 4}
3028 eine größere Dauer ist als @code{1 16}.
3029
3030 @lilypond[verbatim,line-width=12\cm]
3031 \score {
3032   \relative {
3033     g'4 e e2 | f4 d d2 | c4 d e f | g4 g g2 |
3034     g4 e e2 | f4 d d2 | c4 e g g | c,1 |
3035     d4 d d d | d4 e f2 | e4 e e e | e4 f g2 |
3036     g4 e e2 | f4 d d2 | c4 e g g | c,1 |
3037   }
3038 }
3039 @end lilypond
3040
3041 @lilypond[verbatim,line-width=12\cm]
3042 \score {
3043   \relative {
3044     g'4 e e2 | f4 d d2 | c4 d e f | g4 g g2 |
3045     g4 e e2 | f4 d d2 | c4 e g g | c,1 |
3046     d4 d d d | d4 e f2 | e4 e e e | e4 f g2 |
3047     g4 e e2 | f4 d d2 | c4 e g g | c,1 |
3048   }
3049   \layout {
3050     \context {
3051       \Score
3052       \override SpacingSpanner.base-shortest-duration = #(ly:make-moment 1/16)
3053     }
3054   }
3055 }
3056 @end lilypond
3057
3058
3059 @snippets
3060
3061 Standardmäßig wird die Platzverteilung in Triolen und andern
3062 rhythmischen Aufteilungen nach verschiedenen nicht von der
3063 Dauer abgeleiteten Faktoren (wie Versetzungszeichen,
3064 Schlüsselwechseln usw.) berechnet.  Um diese Symbole zu
3065 ignorieren und eine gleichmäßige Verteilung der Noten
3066 zu erzwingen, kann die gleichmäßige Dehnung (engl.
3067 uniform stretching) zu Beginn einer Partitur
3068 mit @code{Score.SpacingSpanner #'uniform-stretching} eingeschaltet
3069 werden:
3070
3071 @lilypond[quote,ragged-right,verbatim]
3072 \score {
3073   <<
3074     \new Staff {
3075       \tuplet 5/4 {
3076         c8 c8 c8 c8 c8
3077       }
3078       c8 c8 c8 c8
3079     }
3080     \new Staff {
3081       c8 c8 c8 c8
3082       \tuplet 5/4 {
3083         c8 c8 c8 c8 c8
3084       }
3085     }
3086   >>
3087   \layout {
3088     \context {
3089       \Score
3090       \override SpacingSpanner.uniform-stretching = ##t
3091     }
3092   }
3093 }
3094 @end lilypond
3095
3096 Wenn @code{strict-note-spacing} eingestellt ist, werden Noten
3097 gesetzt, ohne dass Schlüssel, Taktlinie oder Verzierungsnoten
3098 zusätzlichen Platz erhalten.
3099
3100 @lilypond[quote,ragged-right,relative=2,fragment,verbatim]
3101 \override Score.SpacingSpanner.strict-note-spacing = ##t
3102 \new Staff { c8[ c \clef alto c \grace { c16 c } c8 c c]  c32[ c32] }
3103 @end lilypond
3104
3105
3106 @seealso
3107 Schnipsel:
3108 @rlsr{Spacing}.
3109
3110
3111 @node Zeilenlänge
3112 @subsection Zeilenlänge
3113 @translationof Line length
3114
3115 @cindex Seitenumbrüche
3116 @cindex Umbrechen von Seiten
3117 @cindex Zeilenlänge
3118 @cindex Länge von Zeilen
3119
3120 @funindex indent
3121 @funindex line-width
3122 @funindex ragged-right
3123 @funindex ragged-last
3124
3125 @c Although line-width can be set in \layout, it should be set in paper
3126 @c block, to get page layout right.
3127 @c Setting indent in \paper block makes not much sense, but it works.
3128
3129 @c Bit verbose and vague, use examples?
3130 Die grundlegenden Einstellungen, die Einfluss auf die Zeilenlänge
3131 haben, sind @code{indent} (Einzug) und @code{line-width}
3132 (Zeilenbreite).  Sie werden in der @code{\layout}-Umgebung
3133 eingestellt.  Der erste Befehl bestimmt den Einzug der ersten
3134 Zeile, der zweite die Zeilenlänge der weiteren Notenzeilen.
3135
3136 Wenn @code{ragged-right} eingestellt ist (als in der
3137 @code{\layout}-Umgebung auf den Wert @code{#t} gesetzt wurde),
3138 werden die Systeme linksbündig gesetzt und nicht bis zum
3139 rechten Rand hin durchgezogen, sondern den Noten entsprechend
3140 gesetzt.  Das ist oftmals nützlich für kleine Notenfragmente
3141 und um zu überprüfen, wie eng die Noten natürlicherweise
3142 gesetzt werden würden.   Die normale Einstellung ist unwahr
3143 (@code{#f}), aber wenn eine Partitur nur aus einer Zeile besteht,
3144 ist der Standardwert wahr.
3145
3146 Die Option @code{ragged-last} verhält sich ähnlich zu @code{ragged-right},
3147 aber wirkt sich nur auf die letzte Zeile eines Stückes aus.
3148 Für diese letzte Zeile gibt es keine Einschränkungen.  Das
3149 Resultat erinnert an Textabsätze im Blocksatz, wo die letzte
3150 Zeile des Absatzes mit ihrer natürlichen Länge gesetzt wird.
3151 @c Note that for text there are several options for the last line.
3152 @c While Knuth TeX uses natural length, lead typesetters use the same
3153 @c stretch as the previous line.  eTeX uses \lastlinefit to
3154 @c interpolate between both these solutions.
3155
3156 @example
3157 \layout @{
3158 indent = #0
3159 line-width = #150
3160 ragged-last = ##t
3161 @}
3162 @end example
3163
3164 @seealso
3165 Schnipsel:
3166 @rlsr{Spacing}.
3167
3168
3169 @node Proportionale Notation
3170 @subsection Proportionale Notation
3171 @translationof Proportional notation
3172
3173 LilyPond hat Unterstützung für proportionale Notation.  Dabei handelt
3174 es sich um eine horizontale Platzverteilung, die jeder Note einen
3175 exakt ihrer Dauer entsprechenden Platz zuordnet.  Man kann es vergleichen
3176 mit der Notenplatzierung auf einem Raster.  In einigen Partituren
3177 des späten 20. und frühen 21. Jahrhunderts wird dies proportionale
3178 Notation benutzt, um sehr komplizierte rhythmische Verhältnisse
3179 klarer darzustellen, oder um einen Zeitstrahl oder ähnliche Graphiken
3180 direkt in die Partitur zu integrieren.
3181
3182 LilyPond hat Unterstützung für fünf verschiedene Einstellungen der
3183 proportionalen Notation, die alle zusammen oder jede für sich
3184 benutzt werden können:
3185
3186 @itemize
3187 @item @code{proportionalNotationDuration} (proportionale Notendauer)
3188 @item @code{uniform-stretching} (gleichmäßige Dehnung)
3189 @item @code{strict-note-spacing} (strenge Notenverteilung)
3190 @item @code{\remove "Separating_line_group_engraver"} (entferne Liniengruppentrennungsengraver)
3191 @item @code{\override PaperColumn.used = ##t} (PapierSpalte benutzt = wahr)
3192 @end itemize
3193
3194 In den Beispielen unten werden diese fünf unterschiedlichen Einstellungen
3195 für die proportionale Notation vorgestellt und ihre Wirkungen
3196 untereinander illustriert.
3197
3198 Es soll mit diesem 1 Takt langen Beispiel begonnen werden, in welchem
3199 die klassischen Abstände und Flattersatz (ragged-right) eingesetzt werden:
3200
3201 @lilypond[quote,verbatim,ragged-right]
3202 \score {
3203   <<
3204     \new RhythmicStaff {
3205       c'2
3206       c'16 c'16 c'16 c'16
3207       \tuplet 5/4 {
3208         c'16 c'16 c'16 c'16 c'16
3209       }
3210     }
3211   >>
3212 }
3213 @end lilypond
3214
3215 Die Halbe, mit der der Takt beginnt, braucht weitaus weniger
3216 Platz als die Hälfte des Taktes.  Gleichermaßen haben die
3217 Sechzehntel und die Sechzehntel-Quintolen (oder Zwanzigstel),
3218 mit denen der Takt endet, insgesamt weitaus mehr als die Hälfte
3219 der Taktbreite.
3220
3221 Im klassischen Notensatz kann dieses Verhalten genau das gewünschte
3222 Ergebnis bringen, weil dadurch horizontaler Platz von der Halben
3223 weggenommen werden kann und so insgesamt Platz in dem Takt eingespart
3224 wird.
3225
3226 Wenn allerdings ein Zeitstrahl oder andere zeitliche ablaufende
3227 Graphiken über oder unter dem Takt eingefügt werden soll, braucht man
3228 eine Notenplatzierung, die exakt der von ihnen eingenommenen Dauer
3229 entspricht.  Auf folgende Art wird die proportionale Notation
3230 eingeschaltet:
3231
3232 @lilypond[quote,verbatim,ragged-right]
3233 \score {
3234   <<
3235     \new RhythmicStaff {
3236       c'2
3237       c'16 c'16 c'16 c'16
3238       \tuplet 5/4 {
3239         c'16 c'16 c'16 c'16 c'16
3240       }
3241     }
3242   >>
3243  \layout {
3244     \context {
3245       \Score
3246       proportionalNotationDuration = #(ly:make-moment 1/20)
3247     }
3248   }
3249 }
3250 @end lilypond
3251
3252 Die Halbe zu Beginn des Taktes und die schnelleren Noten in der zweiten
3253 Takthälfte nehmen jetzt genau den gleichen horizontalen Platz ein.  Jetzt
3254 könnte man einen Zeitstrahl mit dem Takt synchronisieren.
3255
3256 Die Einstellung von @code{proportionalNotationDuration} gehört zum
3257 @code{Score}-Kontext.  Kontexteinstellungen können an drei verschiedenen
3258 Stellen in der Quelldatei geschrieben werden: in einer @code{\with}-Umgebung,
3259 in einer @code{\context}-Umgebung oder direkt in den Noten mit dem
3260 @code{\set}-Befehl.  Alle drei Positionen sind gleichwertig und es hängt
3261 vom Benutzer ab, welche bevorzugt wird.
3262
3263 Die Eigenschaft @code{proportionalNotationDuration} braucht ein Argument,
3264 welches die Referenzdauer ist, anhand welcher alle Noten platziert werden.
3265 Hier wird die LilyPond Scheme-Funktion @code{make-moment} eingesetzt.  Sie
3266 braucht zwei Argumente: einen Zähler und einen Nenner, die einen Bruch einer
3267 Ganzen darstellen.  Die Funktion @code{(ly:make-moment 1/20)} ergibt also
3268 eine Referenzdauer von einer Zwanzigstel.  Genauso gut können etwa die Dauern
3269 @code{(ly:make-moment 1/16)}, @code{(ly:make-moment 1/8)} oder
3270 @code{(ly:make-moment 3/97)} eingesetzt werden.
3271
3272 Die richtige Referenzdauer, mit der eine vernünftige Verteilung der Noten
3273 proportional möglich ist, muss durch Ausprobieren herausgefunden werden.
3274 Dabei sollte man mit einer Dauer beginnen, die der kleinsten Note des
3275 Stückes nahekommt.  Kleine Referenzdauern lassen die Noten sehr gedehnt
3276 erscheinen, größere Referenzdauern zwingen sie dichter zusammen.
3277
3278 @lilypond[quote,verbatim,ragged-right]
3279 \score {
3280   <<
3281     \new RhythmicStaff {
3282       c'2
3283       c'16 c'16 c'16 c'16
3284       \tuplet 5/4 {
3285         c'16 c'16 c'16 c'16 c'16
3286       }
3287     }
3288   >>
3289   \layout {
3290     \context {
3291       \Score
3292       proportionalNotationDuration = #(ly:make-moment 1/8)
3293     }
3294   }
3295 }
3296
3297 \score {
3298   <<
3299     \new RhythmicStaff {
3300       c'2
3301       c'16 c'16 c'16 c'16
3302       \tuplet 5/4 {
3303         c'16 c'16 c'16 c'16 c'16
3304       }
3305     }
3306   >>
3307   \layout {
3308     \context {
3309       \Score
3310       proportionalNotationDuration = #(ly:make-moment 1/16)
3311     }
3312   }
3313 }
3314
3315 \score {
3316   <<
3317     \new RhythmicStaff {
3318       c'2
3319       c'16 c'16 c'16 c'16
3320       \tuplet 5/4 {
3321         c'16 c'16 c'16 c'16 c'16
3322       }
3323     }
3324   >>
3325   \layout {
3326     \context {
3327       \Score
3328       proportionalNotationDuration = #(ly:make-moment 1/32)
3329     }
3330   }
3331 }
3332 @end lilypond
3333
3334 Man muss beachten, dass die Referenzdauer nicht zu groß ist
3335 (wie die Achtel in dem Beispiel oben), denn dadurch werden
3336 die Noten so dicht gesetzt, dass sich eventuell sogar Notenköpfe
3337 von sehr kleinen Notenwerten überschneiden können.  Die proportionale
3338 Notation nimmt üblicherweise mehr Platz ein als die klassische
3339 Platzverteilung.  Der rhythmischen Klarheit muss ein eng gesetztes
3340 Notenbild geopfert werden.
3341
3342 In Folgenden soll betrachtet werden, wie sich überlappende
3343 rhythmische Aufteilungen am besten positioniert werden.  Als Referenz
3344 wird das erste Beispiel herangezogen, zu welchem ein zweites
3345 System mit anderen rhythmischen Werten hinzugefügt wird:
3346
3347 @lilypond[quote,verbatim,ragged-right]
3348 \score {
3349   <<
3350     \new RhythmicStaff {
3351       c'2
3352       c'16 c'16 c'16 c'16
3353       \tuplet 5/4 {
3354         c'16 c'16 c'16 c'16 c'16
3355       }
3356     }
3357     \new RhythmicStaff {
3358       \tuplet 9/8 {
3359         c'8 c'8 c'8 c'8 c'8 c'8 c'8 c'8 c'8
3360       }
3361     }
3362   >>
3363 }
3364 @end lilypond
3365
3366 Die Platzaufteilung ist schlecht, weil die gleichlangen Noten des
3367 untersten Systems nicht gleichmäßig verteilt sind.  Im klassischen
3368 Notensatz kommen komplexe rhythmische Verhältnisse wie dieses sehr
3369 selten vor, sodass der Notensatz nicht in Hinsicht auf sie optimiert
3370 ist.  @code{proportionalNotationDuration} hilft in
3371 dieser Situation deutlich:
3372
3373 @lilypond[quote,verbatim,ragged-right]
3374 \score {
3375   <<
3376     \new RhythmicStaff {
3377       c'2
3378       c'16 c'16 c'16 c'16
3379       \tuplet 5/4 {
3380         c'16 c'16 c'16 c'16 c'16
3381       }
3382     }
3383     \new RhythmicStaff {
3384       \tuplet 9/8 {
3385         c'8 c'8 c'8 c'8 c'8 c'8 c'8 c'8 c'8
3386       }
3387     }
3388   >>
3389   \layout {
3390     \context {
3391       \Score
3392       proportionalNotationDuration = #(ly:make-moment 1/20)
3393     }
3394   }
3395 }
3396 @end lilypond
3397
3398 Aber bei sehr genauer Betrachtung sind die Noten der zweiten Hälfte
3399 der Nonole doch immer noch eine Spur weiter gesetzt als die Noten
3400 der ersten Hälfte.  Um wirklich gleichmäßige Abstände zu erzwingen,
3401 sollte auch noch die gleichmäßige Dehnung (@code{uniform-stretching}) angeschaltet werden, die eine Eigenschaft von @code{SpacingSpanner} ist:
3402
3403 @lilypond[quote,verbatim,ragged-right]
3404 \score {
3405   <<
3406     \new RhythmicStaff {
3407       c'2
3408       c'16 c'16 c'16 c'16
3409       \tuplet 5/4 {
3410         c'16 c'16 c'16 c'16 c'16
3411       }
3412     }
3413     \new RhythmicStaff {
3414       \tuplet 9/8 {
3415         c'8 c'8 c'8 c'8 c'8 c'8 c'8 c'8 c'8
3416       }
3417     }
3418   >>
3419   \layout {
3420     \context {
3421       \Score
3422       proportionalNotationDuration = #(ly:make-moment 1/20)
3423       \override SpacingSpanner.uniform-stretching = ##t
3424     }
3425   }
3426 }
3427 @end lilypond
3428
3429 Das Beispiel mit den zwei Systemen ist nun exakt nach den
3430 rhythmischen Werten der Noten gesetzt, sodass ein Zeitstrahl
3431 oder ähnliches eingefügt werden könnte.
3432
3433 Alle Einstellungen zur proportionalen Notation erwarten,
3434 dass die @code{uniform-stretching}-Eigenschaft des
3435 @code{SpacingSpanner}-Objekts auf wahr (@code{#t}) gesetzt wird.  Andernfalls
3436 kann es vorkommen, dass bestimmte Abstände (etwa von
3437 unsichtbaren Noten) nicht richtig gesetzt werden.
3438
3439 Das @code{SpacingSpanner}-Objekt ist ein abstraktes Grob, dass sich im
3440 @code{Score}-Kontext befindet.  Genauso wie die Einstellungen
3441 von @code{proportionalNotationDuration} können auch diese
3442 Veränderungen an den drei Stellen in der Quelldatei vorkommen:
3443 in der @code{\with}-Umgebung innerhalb von @code{Score}, in
3444 einer @code{\context}-Umgebung oder direkt im Notentext.
3445
3446 Standardmäßig gibt es nur ein @code{SpacingSpanner} pro @code{Score}.
3447 Das heißt, dass @code{uniform-stretching} für die gesamte Partitur
3448 (d.h. für die Reichweite von @code{Score}) entweder an- oder
3449 ausgeschaltet ist.  Man kann allerdings in einer Partitur unterschiedliche
3450 Abschnitte mit verschiedenem Platzierungsverhalten definieren.
3451 Hierzu ist der Befehl @code{\newSpacingSection} da.  Siehe auch @ref{Eine neuer Bereich mit anderen Abständen}.
3452
3453 Im Folgenden soll gezeigt werden, wie sich der
3454 @code{Separating_line_group_engraver}
3455 auswirkt und warum er normalerweise für proportionale Notation ausgeschaltet wird.
3456 In diesem Beispiel wird verdeutlicht, dass vor jeder ersten Note eines Notensystems
3457 immer etwas zusätzlicher Platz gesetzt wird:
3458
3459 @lilypond[quote,verbatim,ragged-right]
3460 \paper {
3461   indent = #0
3462 }
3463
3464 \new Staff {
3465   c'1
3466   \break
3467   c'1
3468 }
3469 @end lilypond
3470
3471 Der gleiche horizontale zusätzliche Platz wird vor eine Noten gesetzt, wenn sie
3472 einer Taktart, einem Schlüssel oder einer Tonartbezeichnung folgt.
3473 Dieser Platz wird durch @code{Separating_line_group_engraver}
3474 eingefügt; wenn wir ihn aus der Partitur entfernen, entfällt
3475 auch dieser zusätzliche Platz:
3476
3477 @lilypond[quote,verbatim,ragged-right]
3478 \paper {
3479   indent = #0
3480 }
3481
3482 \new Staff \with {
3483   \remove "Separating_line_group_engraver"
3484 } {
3485   c'1
3486   \break
3487   c'1
3488 }
3489 @end lilypond
3490
3491 Nichtmusikalische Elemente wie Takt- und Tonartangaben, Schlüssel und
3492 Versetzungszeichen sind problematisch in proportionaler
3493 Notation.  Keine dieser Elemente hat eine rhythmische Dauer, aber
3494 alle brauchen horizontalen Platz.  Das Problem wird auf unterschiedliche
3495 Weise gelöst.
3496
3497 Es ist manchmal möglich, Probleme mit Tonarten zu lösen, indem keine
3498 benutzt werden.  Das ist durchaus eine ernstzunehmende Option, weil
3499 die meisten Partituren mit proportionaler Notation für heutige
3500 Musik geschrieben werden.  Ähnliches gilt für Taktarten, insbesondere,
3501 wenn ein Zeitstrahl in die Partitur eingearbeitet werden soll.
3502 In den meisten Partituren kommt jedoch irgendeine Taktart vor.
3503 Schlüssel und Versetzungszeichen sind noch wichtiger; auf
3504 sie kann selten verzichtet werden.
3505
3506 Eine Lösungsmöglichkeit ist es, die @code{strict-note-spacing}-Eigenschaft
3507 des @code{SpacingSpanner}-Objekts zu benutzen.  Zum Vergleich
3508 die beiden Partituren unten:
3509
3510 @lilypond[quote,verbatim,ragged-right]
3511 \new Staff {
3512   \set Score.proportionalNotationDuration = #(ly:make-moment 1/16)
3513   c''8
3514   c''8
3515   c''8
3516   \clef alto
3517   d'8
3518   d'2
3519 }
3520
3521 \new Staff {
3522   \set Score.proportionalNotationDuration = #(ly:make-moment 1/16)
3523   \override Score.SpacingSpanner.strict-note-spacing = ##t
3524   c''8
3525   c''8
3526   c''8
3527   \clef alto
3528   d'8
3529   d'2
3530 }
3531 @end lilypond
3532
3533 Bei beiden handelt es sich um proportionale Notation, aber
3534 die Platzverteilung im oberen Beispiel ist zu weit wegen
3535 des Schlüsselwechsels.  Die Platzverteilung des zweiten
3536 Beispiels dagegen bleibt rhythmisch korrekt.
3537 @code{strict-note-spacing} bewirkt, dass Takt- und
3538 Tonartbezeichnungen, Schlüssel und Versetzungszeichen
3539 keine Rolle bei der Berechnung der Abstände spielen.
3540
3541 Zusätzlich zu den hier vorgestellten Einstellungen gibt es
3542 noch eine Reihe von Möglichkeiten, die oft in proportionaler
3543 Notation benutzt werden.  Dazu gehören:
3544
3545 @itemize
3546 @item @code{\override SpacingSpanner.strict-grace-spacing = ##t}
3547 @item @code{tupletFullLength = ##t}
3548 @item @code{\override Beam.breakable = ##t}
3549 @item @code{\override Glissando.breakable = ##t}
3550 @item @code{\override TextSpanner.breakable = ##t}
3551 @item @code{\remove "Forbid_line_break_engraver" in the Voice context}
3552 @end itemize
3553
3554 Diese Einstellungen bewirken, dass auch Verzierungsnoten proportional
3555 gesetzt werden, dass Klammern von rhythmischen Gruppen bis zu den
3556 Anfangs- und Endpunkten ausgedehnt werden und lassen dehnbare
3557 Objekte wie Balken und Glissandi auch über Taktstriche hinweg zu.
3558
3559 @seealso
3560 Notationsreferenz:
3561 @ref{Eine neuer Bereich mit anderen Abständen}.
3562
3563 Schnipsel:
3564 @rlsr{Spacing}.
3565
3566
3567 @node Die Musik auf weniger Seiten zwingen
3568 @section Die Musik auf weniger Seiten zwingen
3569 @translationof Fitting music onto fewer pages
3570
3571 Manchmal kommt es vor, dass nur ein oder zwei Systeme auf die
3572 nächste Seite geraten, obwohl es so aussieht, als ob auf der
3573 vorigen Seite genügend Platz ist, um diese Systeme auch noch
3574 unterzubringen.
3575
3576 Wenn man derartige Platzierungsprobleme untersucht, ist die
3577 Funktion @code{annotate-spacing} von sehr großer Hilfe.  Hiermit
3578 wird in den Musiksatz zusätzlich Information darüber ausgegeben,
3579 wieviel Platz bestimmten Parametern zugewiesen wird.  Genaueres
3580 hierzu in @ref{Abstände anzeigen lassen}.
3581
3582 @menu
3583 * Abstände anzeigen lassen::
3584 * Abstände verändern::
3585 @end menu
3586
3587
3588 @node Abstände anzeigen lassen
3589 @subsection Abstände anzeigen lassen
3590 @translationof Displaying spacing
3591
3592 @cindex Platzierung, Layouteinstellungen
3593
3594 @funindex annotate-spacing
3595
3596 Die Dimensionen von vertikalen und horizontalen Platzierungsvariablen,
3597 die veränderbar sind, lassen sich mit ihren aktuellen Werten im
3598 Notentext anzeigen, wenn man die Funktion
3599 @code{annotate-spacing} in der @code{\paper}-Umgebung einschaltet:
3600
3601 @c need to have \book{} otherwise we get the separate systems. -hwn
3602 @lilypond[verbatim,quote]
3603 #(set-default-paper-size "a6" 'landscape)
3604 \book {
3605   \score { { c4 } }
3606   \paper { annotate-spacing = ##t }
3607 }
3608 @end lilypond
3609
3610 @noindent
3611 Alle Layoutdimensionen werden in Notenlinienzwischenräumen
3612 aufgelistet, unabhängig von den Einheiten, mit denen sie in der
3613 @code{\paper}- oder @code{\layout}-Umgebung definiert worden
3614 sind.  In dem letzten Beispiel hat @code{paper-height} einen Wert von
3615 59.75 Notenlinienzwischenräumen und @code{staff-size}
3616 Systemhöhe) ist 20 Punkte.  Dabei gilt:
3617
3618 @multitable {1 Notenlinienzwischenraum} {Systemgröße)/4 * (25.4/72.27) mm}
3619
3620 @item 1 Punkt
3621 @tab = (25.4/72.27) mm
3622
3623 @item 1 Notenlinienzwischenraum
3624 @tab = (@code{staff-size})/4 pts
3625 @item
3626 @tab = (@code{staff-size})/4 * (25.4/72.27) mm
3627
3628 @end multitable
3629
3630 In diesem Fall ist ein @code{staff-space} (Notenlinienzwischenraum)
3631 etwa gleich 1.757 mm.  Deshalb entspricht der Wert von 95.75
3632 @code{staff-space} für @code{paper-height} (Papierhöhe) 105 mm,
3633 die Höhe eines quer gelegten A6-Papiers.  Die Paare (@var{a},@var{b}) sind
3634 Intervalle, wobei @var{a} der untere Rand und @var{b} der
3635 obere Rand des Intervalls.
3636
3637 @seealso
3638
3639 Notationsreferenz:
3640 @ref{Die Notensystemgröße einstellen}
3641
3642 Schnipsel:
3643 @rlsr{Spacing}.
3644
3645
3646 @node Abstände verändern
3647 @subsection Abstände verändern
3648 @translationof Changing spacing
3649
3650 Die Ausgabe von @code{annotate-spacing} bietet sehr viele
3651 Details zu den vertikalen Dimensionen einer Partitur.  Zu Information,
3652 wie Seitenränder und andere Layout-Variablen geändert werden
3653 können, siehe @ref{Seitenlayout}.
3654
3655 Neben Rändern gibt es einige weitere Optionen, Platz zu sparen:
3656
3657 @itemize
3658 @item
3659 LilyPond kann die Systeme so dicht wie möglich platzieren (damit
3660 so viele Systeme wie möglich auf eine Seite passen), aber sie
3661 dann so anordnen, dass kein weißer Rand unten auf der Seite entsteht.
3662
3663 @example
3664 \paper @{
3665   system-system-spacing = #'((padding . 0) (basic-distance . 0.1))
3666   ragged-last-bottom = ##f
3667   ragged-bottom = ##f
3668 @}
3669 @end example
3670
3671 @item
3672 Die Anzahl der Systeme kann erzwungen werden.  Das kann auf
3673 zwei Arten helfen: wenn einfach nur ein Wert gesetzt wird, auch
3674 wenn es die gleiche Anzahl ist, die auch schon vorher von LilyPond
3675 erstellt wurde, kann manchmal dazu führen, dass mehr Systeme
3676 auf eine Seite gesetzt werden.  Das liegt daran, dass ein
3677 Schritt im Notensatz ausgelassen wird, der die Seitenverteilung
3678 nur grob einschätzt, sodass eine bessere Seitenverteilung
3679 entsteht.  Auch wenn man eine Verringerung der Anzahl an Systemen
3680 erzwingt, kann oft eine Seite eingespart werden.  Wenn LilyPond
3681 die Musik etwa auf 11 Systeme verteilt, kann man die Benutzung von
3682 nur 10 Systemen erzwingen.
3683
3684 @example
3685 \paper @{
3686   system-count = #10
3687 @}
3688 @end example
3689
3690 @item
3691 Die Anzahl der Seiten kann erzwungen werden.  Beispielsweise erzwingt
3692 folgender Code ein Layout mit zwei Seiten:
3693
3694 @example
3695 \paper @{
3696   page-count = #2
3697 @}
3698 @end example
3699
3700 @item
3701 Vermeidung (oder Verminderung) von Objekten, die den vertikalen Abstand von Systemen
3702 vergrößern, hilft oft. Die Verwendung von Klammern bei Wiederholungen
3703 (oder alternativen Wiederholungen)
3704 etwa braucht mehr Platz. Wenn die Noten innerhalb der Klammern  auf
3705 zwei Systeme verteilt sind, brauchen sie mehr Platz, als wenn sie
3706 nur auf einer Zeile gedruckt werden.
3707
3708 Ein anderes Beispiel ist es, Dynamik-Zeichen, die besonders
3709 weit @qq{hervorstehen}, zu verschieben.
3710
3711 @lilypond[verbatim,quote,relative=1]
3712 e4 c g\f c
3713 e4 c g-\tweak X-offset #-2.7 -\tweak Y-offset #2.5 \f c
3714 @end lilypond
3715
3716 @item
3717 Die horizontalen Abstände können mit der
3718 @code{SpacingSpanner}-Eigenschaft verändert werden.  Siehe
3719 @ref{Horizontale Abstände verändern} für Einzelheiten.  Dieses
3720 Beispiel zeigt die normalen Abstände:
3721
3722 @lilypond[verbatim,quote]
3723 \score {
3724   \relative {
3725     g'4 e e2 |
3726     f4 d d2 |
3727     c4 d e f |
3728     g4 g g2 |
3729     g4 e e2 |
3730   }
3731 }
3732 @end lilypond
3733
3734 @noindent
3735 Das nächste Beispiel verändert @code{common-shortest-duration} (die
3736 häufigste kürzeste Note) von @code{1/4} zu @code{1/2}.  Die Viertelnote
3737 ist dennoch die häufigste Note in diesem Abschnitt, sodass der
3738 Notentext zusammengedrängt, wird, wenn eine Halbe als Standard
3739 angegeben wird:
3740
3741 @lilypond[verbatim,quote]
3742 \score {
3743   \relative {
3744     g'4 e e2 |
3745     f4 d d2 |
3746     c4 d e f |
3747     g4 g g2 |
3748     g4 e e2 |
3749   }
3750   \layout {
3751     \context {
3752       \Score
3753       \override SpacingSpanner.common-shortest-duration = #(ly:make-moment 1/2)
3754     }
3755   }
3756 }
3757 @end lilypond
3758
3759 @noindent
3760 Die @code{common-shortest-duration}-Eigenschaft kann nicht
3761 dynamisch verändert werden, darum muss sie immer in der
3762 @code{\context}-Umgebung definiert werden und wirkt sich somit
3763 auf eine ganze @code{\score}-Umgebung aus.
3764
3765 @end itemize
3766
3767 @seealso
3768 Notationsreferenz:
3769 @ref{Seitenlayout},
3770 @ref{Horizontale Abstände verändern}.
3771
3772 Schnipsel:
3773 @rlsr{Spacing}.