1 @c -*- coding: utf-8; mode: texinfo; documentlanguage: de -*-
4 Translation of GIT committish: e5a609e373eae846857f9a6d70a402a3d42b7d94
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.
13 @c Translators: Till Paala
18 @translationof Spacing issues
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.
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.
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}.
49 * Vertikale Abstände::
50 * Horizontale Abstände::
51 * Die Musik auf weniger Seiten zwingen::
57 @translationof Page layout
59 Dieser Abschnitt behandelt Seitenlayout-Optionen innerhalb der @code{\paper}-Umgebung.
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::
71 @node Die paper-Umgebung
72 @subsection Die @code{\paper}-Umgebung
73 @translationof The \paper block
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:
89 die @code{set-paper-size}-Scheme-Funktion,
92 @code{\paper}-Variablen, die zum Verändern des Seitenlayouts eingesetzt werden und
95 Beschriftungsdefinitionen, mit denen das Layout von Kopf- und Fußleisten sowie
96 Titeln beeinflusst wird.
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}.
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}.
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:
121 Damit etwa @code{0.5} Zoll benutzt werden, muss @code{\in} dem Maß nachgestellt werden:
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.
135 Man kann die @code{\paper}-Werte auch mit Scheme definieren. Die Scheme-Entsprechung
136 der obigen Definition ist:
140 #(define top-margin (* 0.5 in))
146 @ref{Papierformat und automatische Skalierung},
147 @ref{Eigene Kopf und Fußzeilen sowie Titel},
148 @ref{Die \layout-Umgebung}.
150 Installierte Dateien:
151 @file{ly/paper-defaults-init.ly}.
154 @node Papierformat und automatische Skalierung
155 @subsection Papierformat und automatische Skalierung
156 @translationof Paper size and automatic scaling
164 * Das Papierformat einstellen::
165 * Automatische Skalierung auf ein Papierformat::
169 @node Das Papierformat einstellen
170 @unnumberedsubsubsec Das Papierformat einstellen
171 @translationof Setting the paper size
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}
178 #(set-default-paper-size "quarto")
182 welcher immer auf oberster Ebene der Datei geschrieben werden muss, und
183 @code{set-paper-size}
187 #(set-paper-size "tabliod")
192 welcher in eine @code{\paper}-Umgebung geschrieben werden muss.
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
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}.
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}.
214 @c An appendix entry exists for paper sizes but is not auto-generated
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:
221 #(set! paper-alist (cons '("mein Format" . (cons (* 15 in) (* 3 in))) paper-alist))
224 #(set-paper-size "mein Format")
228 Die Einheiten @code{in} (Fuß), @code{cm} (Centimeter) and @code{mm} (Millimeter)
229 können benützt werden.
231 @cindex Ausrichtung, Papier
232 @cindex Papier, Ausrichtung
233 @cindex hochkant, Papier
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.
244 #(set-default-paper-size "a6" 'landscape)
247 Die Notenausgabe wird @emph{nicht} gedreht, nur das Papierformat.
251 @ref{Automatische Skalierung auf ein Papierformat},
252 @ref{Vordefinierte Papierformate}.
254 Installierte Dateien:
255 @file{scm/paper.scm}.
258 @node Automatische Skalierung auf ein Papierformat
259 @unnumberedsubsubsec Automatische Skalierung auf ein Papierformat
260 @translationof Automatic scaling to paper size
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}.
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}).
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}.
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}.
295 Installierte Dateien:
296 @file{ly/paper-defaults-init.ly},
297 @file{scm/paper.scm}.
301 @node Vertikale paper-Variablen mit festen Abständen
302 @unnumberedsubsubsec Vertikale @code{\paper}-Variablen mit festen Abständen
303 @translationof Fixed vertical spacing \paper variables
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}.}
309 Standardwerte (vor der Skalierung) sind definiert in
310 @file{ly/paper-defaults-init.ly}.
314 @funindex paper-height
316 Die Höhe der Seite, standardmäßig nicht definiert. Die automatische
317 Skalierung einiger vertikalen Dimensionen wird hiervon nicht betroffen.
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.
327 @funindex bottom-margin
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.
334 @funindex ragged-bottom
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.
340 @item ragged-last-bottom
341 @funindex ragged-last-bottom
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.
352 @ref{Automatische Skalierung auf ein Papierformat}.
354 Installierte Dateien:
355 @file{ly/paper-defaults-init.ly}.
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
367 Explizit definierte Papierformate überschreiben alle vom Benutzer erstellte
368 Randeinstellung für die Ränder oben und unten.
371 @node Vertikale paper-Variablen mit flexiblen Abständen
372 @unnumberedsubsubsec Vertikale @code{\paper}-Variablen mit flexiblen Abständen
373 @translationof Flexible vertical spacing \paper variables
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.
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}.
393 * Struktur der Alisten für flexible vertikale Abstände::
394 * Liste der flexiblen vertikalen Abstandsvariablen in \paper::
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
402 Jede der flexiblen vertikalen Abstandsvariablen ist eine Aliste (eine assoziative Liste), die
403 vier @emph{Schlüssel} (engl. key) enthält:
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.
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.
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.
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}).
452 Wenn eine Seite einen nicht ausgeglichenen unteren Rand hat, ist der
453 resultierende Abstand der größte von:
458 @code{basic-distance},
461 @code{minimum-distance} und
464 @code{padding} plus der kleinste nötige Abstand, um Zusammenstöße
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.
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:
481 system-system-spacing.basic-distance = #8
482 score-system-spacing =
483 #'((basic-distance . 12)
484 (minimum-distance . 6)
486 (stretchability . 12))
491 @node Liste der flexiblen vertikalen Abstandsvariablen in \paper
492 @unnumberedsubsubsec Liste der flexiblen vertikalen Abstandsvariablen in @code{\paper}
493 @translationof List of flexible vertical spacing \paper variables
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
506 Standardwerte sind in @file{ly/paper-defaults-init.ly} definiert.
508 @c TODO: Where do headers/footers fit in? -mp
511 @item markup-system-spacing
512 @funindex markup-system-spacing
514 der Abstand zwischen einer (Titel-)Beschriftung (auf höchster Ebene) und der
515 darauf folgenden Systemgruppe.
517 @item score-markup-spacing
518 @funindex score-markup-spacing
520 der Abstand zwischen dem letzten System einer Partitur und der darauf folgenden
521 (Titel-)Beschriftung (auf höchster Ebene).
523 @item score-system-spacing
524 @funindex score-system-spacing
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.
530 @item system-system-spacing
531 @funindex system-system-spacing
533 der Abstand zwischen zwei Systemgruppen der selben Partitur.
535 @item markup-markup-spacing
536 @funindex markup-markup-spacing
538 der Abstand zwischen zwei (Titel-)Beschriftungen (auf höchster Ebene).
540 @item last-bottom-spacing
541 @funindex last-bottom-spacing
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
547 @item top-system-spacing
548 @funindex top-system-spacing
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.
554 @item top-markup-spacing
555 @funindex top-markup-spacing
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.
564 @ref{Flexible vertikale Abstände in Systemgruppen}.
566 Installierte Dateien:
567 @file{ly/paper-defaults-init.ly}.
574 @node paper-Variablen für horizontale Abstände
575 @unnumberedsubsubsec \paper-Variablen für horizontale Abstände
576 @translationof Horizontal spacing \paper variables
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}.}
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::
589 @node paper-Variablen für Breite und Ränder
590 @unnumberedsubsubsec \paper-Variablen für Breite und Ränder
591 @translationof \paper variables for widths and margins
593 Standardwerte (vor der Skalierung), die hier nicht aufgelistet
594 sind, finden sich in @file{ly/paper-defaults-init.ly}.
600 @funindex paper-width
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}.
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.
623 @funindex left-margin
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}
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
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}.
639 @funindex right-margin
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
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}.
653 @item check-consistency
654 @funindex check-consistency
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
665 @funindex ragged-right
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.
674 @funindex ragged-last
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.
685 @ref{Automatische Skalierung auf ein Papierformat}.
687 Installierte Dateien:
688 @file{ly/paper-defaults-init.ly}.
691 Explizit definierte Papierformate überschreiben alle vom Benutzer erstellte
692 Randeinstellung für die Ränder oben und unten.
695 @node paper-Variablen für zweiseitigen Satz
696 @unnumberedsubsubsec @code{\paper}-Variablen für zweiseitigen Satz
697 @translationof \paper variables for two-sided mode
699 Standardwerte (vor der Skalierung) sind definiert in
700 @file{ly/paper-defaults-init.ly}.
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:
717 @funindex inner-margin
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.
725 @funindex outer-margin
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.
733 @funindex binding-offset
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.
744 @ref{Automatische Skalierung auf ein Papierformat}.
746 Installierte Dateien:
747 @file{ly/paper-defaults-init.ly}.
750 @node paper-Variablen für Verschiebungen und Einrückungen
751 @unnumberedsubsubsec @code{\paper}-Variablen für Verschiebungen und Einrückungen
752 @translationof \paper variables for shifts and indents
755 Standardwerte (vor der Skalierung), die hier nicht aufgeführt sind,
756 sind definiert in @file{ly/paper-defaults-init.ly}.
760 @item horizontal-shift
761 @funindex horizontal-shift
763 @c This default value is buried in the middle of page.scm. -mp
765 Der Wert, um den alle Systeme (und auch Überschriften und Systemtrenner)
766 nach rechts verschoben werden. Standard: @code{0.0\mm}.
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.
776 @funindex short-indent
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.
787 @ref{Automatische Skalierung auf ein Papierformat}.
789 Installierte Dateien:
790 @file{ly/paper-defaults-init.ly}.
796 @node Andere paper-Variablen
797 @subsection Andere @code{\paper}-Variablen
798 @translationof Other \paper variables
801 * paper-Variablen für den Zeilenumbruch::
802 * paper-Variablen für den Seitenumbruch::
803 * paper-Variablen für Seitenzahlen::
804 * Verschiedene paper-Variablen::
808 @node paper-Variablen für den Zeilenumbruch
809 @unnumberedsubsubsec @code{\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
815 @item max-systems-per-page
816 @funindex max-systems-per-page
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.
822 @item min-systems-per-page
823 @funindex min-systems-per-page
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.
830 @item systems-per-page
831 @funindex systems-per-page
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.
838 @funindex system-count
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.
848 @ref{Zeilenumbrüche}.
851 @node paper-Variablen für den Seitenumbruch
852 @unnumberedsubsubsec @code{\paper}-Variablen für den Seitenumbruch
853 @translationof \paper variables for page breaking
855 Standardwerte, die hier nicht aufgelistet sind, finden sich in
856 @file{ly/paper-defaults-init.ly}
860 @item blank-after-score-page-penalty
861 @funindex blank-after-score-page-penalty
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.
868 @item blank-last-page-penalty
869 @funindex blank-last-page-penalty
871 Die Strafpunkte, wenn eine Partitur auf einer ungeraden Seite
872 beendet wird. Standard: @code{0}.
874 @item blank-page-penalty
875 @funindex blank-page-penalty
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
883 @funindex page-breaking
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}.
890 @item page-breaking-system-system-spacing
891 @funindex page-breaking-system-system-spacing
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.
904 Die Zahl der Seiten, die für eine Partitur benutzt werden sollen.
905 Standard: nicht gesetzt.
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}.
917 Installierte Dateien:
918 @file{ly/paper-defaults-init.ly}.
921 @node paper-Variablen für Seitenzahlen
922 @unnumberedsubsubsec @code{\paper}-Variablen für Seitenzahlen
923 @translationof \paper variables for page numbering
925 Standardwerte, die hier nicht aufgelistet sind, finden sich in
926 @file{ly/paper-defaults-init.ly}
930 @item auto-first-page-number
931 @funindex auto-first-page-number
932 @cindex Seitenzahlen, automatische Nummerierung
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}.
941 @item first-page-number
942 @funindex first-page-number
943 @cindex Sietenzahlen, erste definieren
945 Der Wert der Seitenzahl auf der ersten Seite.
947 @item print-first-page-number
948 @funindex print-first-page-number
950 Wenn wahr, wird auch auf der ersten Seite die Seitenzahl ausgegeben.
953 @item print-page-number
954 @funindex print-page-number
955 @cindex Seitenzahlen, unterdrücken
957 Wenn falsch, werden Seitenzahlen nicht ausgegeben.
962 Installierte Dateien:
963 @file{ly/paper-defaults-init.ly}.
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.
972 @node Verschiedene paper-Variablen
973 @unnumberedsubsubsec Verschiedene @code{\paper}-Variablen
974 @translationof Miscellaneous \paper variables
977 @item page-spacing-weight
978 @funindex page-spacing-weight
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}.
984 @item print-all-headers
985 @funindex print-all-headers
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}.
992 @item system-separator-markup
993 @funindex system-separator-markup
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:
1001 @lilypond[quote,verbatim,noragged-right,line-width=30\mm]
1002 #(set-default-paper-size "a8")
1006 system-separator-markup = \slashSeparator
1012 \relative { c''1 \break c1 \break c1 }
1021 Installierte Dateien:
1022 @file{ly/titling-init.ly}.
1030 Die Standard-Kopfzeilendefinition setzt die Seitenzahl und das
1031 @code{instrument}-Feld aus der @code{\header}-Umgebung in eine
1036 @node Partiturlayout
1037 @section Partiturlayout
1038 @translationof Score layout
1041 * Die \layout-Umgebung
1042 * Die Notensystemgröße einstellen::
1046 @node Die \layout-Umgebung
1047 @subsection Die @code{\layout}-Umgebung
1048 @translationof The \layout block
1050 @cindex Partitur, Layout
1051 @cindex Layout, Partitur
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:
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.
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:
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})
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})
1088 (siehe @ref{paper-Variablen für den Zeilenumbruch,,@code{@bs{}paper}-Variablen für den Zeilenumbruch})
1092 Hier ist ein Beispiel für eine @code{\layout}-Umgebung:
1099 \override StaffGrouper.staff-staff-spacing.basic-distance = #8
1103 \override TextScript.padding = #1
1104 \override Glissando.thickness = #3
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.
1121 Wenn also diese Umgebung:
1127 \override TextScript.color = #magenta
1128 \override Glissando.thickness = #1.5
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.
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.
1142 Wenn eine Variable etwa so definiert wird:
1145 layoutVariable = \layout @{
1148 \override NoteHead.font-size = #4
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.
1162 Die Variable kann dann auch innerhalb einer anderen @code{\layout}-Umgebung
1163 eingesetzt werden, etwa:
1170 \override NoteHead.color = #red
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.
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:
1188 TextScript.padding = #1
1189 TextScript.color = #magenta
1190 Glissando.thickness = #1.5
1191 NoteHead.font-size = #4
1192 NoteHead.color = #red
1195 plus die Veränderungen an Einrückung (@code{indent}) und @code{StaffGrouper}.
1197 Aber wenn die Variable vor der ersten @code{\layout}-Umgebung definiert
1198 wird, würde die aktuelle Konfiguration nur enthalten:
1201 NoteHead.font-size= #4 % (written in the variable definition)
1202 NoteHead.color = #red % (added after the use of the variable)
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.
1212 @ref{Die Standardeinstellungen von Kontexten ändern},
1213 @ref{Die Notensystemgröße einstellen},
1214 @ref{Umgebungs-Plugins verändern}.
1221 @node Die Notensystemgröße einstellen
1222 @subsection Die Notensystemgröße einstellen
1223 @translationof Setting the staff size
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
1231 Die Standardgröße der Notensysteme beträgt 20 Punkte (pt).
1232 Das kann auf zwei Arten geändert werden:
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:
1239 #(set-global-staff-size 14)
1243 Hiermit wird die Standardhöhe der Notensysteme auf 14 pt
1244 gesetzt. Die Schriftarten werden entsprechend verkleinert.
1246 Um die Systemhöhe für jede Partitur einzeln zu verändern,
1253 #(layout-set-staff-size 15)
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:
1270 @multitable @columnfractions .15 .2 .22 .2
1272 @item @b{Schriftbezeichnung}
1273 @tab @b{Höhe des Systems (pt)}
1274 @tab @b{Höhe des Systems (mm)}
1280 @tab Taschenparituren
1305 @tab Orchesterstimmen
1316 @c modern rental material?
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.
1330 @ref{Auswahl der Notations-Schriftgröße}.
1338 @code{layout-set-staff-size} verändert nicht den Abstand zwischen den
1344 @translationof Breaks
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::
1358 @node Zeilenumbrüche
1359 @subsection Zeilenumbrüche
1360 @translationof Line breaking
1362 @cindex Zeilenumbrüche
1363 @cindex Umbrüche von Zeilen
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.
1370 Einen manuellen Zeilenumbruch fügt man mit dem Befehl @code{\break}
1373 @lilypond[quote,ragged-right,relative=2,verbatim]
1378 Normalerweise wird ein @code{\break} in der Mitte eines Takes ignoriert
1379 und eine Warnung ausgegeben. Um einen Zeilenumbruch in der Mitte eines
1380 Taktes zu erzwingen, können Sie mit @code{\bar ""} eine
1381 unsichtbare Taktlinie hinzufügen, die dann den Zeilenumbruch
1384 @lilypond[quote,ragged-right,relative=2,verbatim]
1391 Ein @code{\break} an einem Taktstrich wird auch ignoriert, wenn der letzte
1392 Takt mitten in einer Note endet, wenn etwa eine N-tole in unterschiedlichen
1393 Takten beginnt und endet. Damit @code{\break} auch in derartigen Situationen
1394 funktioniert, muss @code{Forbid_line_break_engraver} aus der
1395 @code{Voice}-Umgebung entfernt werden. Dabei sollte beachtet werden, dass
1396 manuell hervorgerufene Umbrüche parallel mit den Noten hinzugefügt werden
1399 @lilypond[quote,ragged-right,verbatim]
1401 \remove "Forbid_line_break_engraver"
1404 { c''2. \tuplet 3/2 { c4 c c } c2. | }
1405 { s1 | \break s1 | }
1410 Genauso werden normalerweise Zeilenumbrüche auch verhindert, wenn Balken
1411 über die Taktenden hinausragen. Dieses Verhalten kann verändert werden,
1412 indem man @code{\override Beam.breakable = ##t} einstellt:
1414 @lilypond[quote,ragged-right,relative=2,verbatim]
1415 \override Beam.breakable = ##t
1420 Mit dem Befehl @code{\noBreak} wird ein Zeilenumbruch an dem
1421 entsprechenden Taktstrich verboten.
1423 Die grundlegenden Einstellungen, die Einfluss auf die Zeilenlänge
1424 haben, sind @code{indent} (Einzug) und @code{line-width}
1425 (Zeilenbreite). Sie werden in der @code{\layout}-Umgebung
1426 eingestellt. Der erste Befehl bestimmt den Einzug der ersten
1427 Zeile, der zweite die Zeilenlänge der weiteren Notenzeilen.
1429 Wenn @code{ragged-right} eingestellt ist (also in der
1430 @code{\layout}-Umgebung auf den Wert @code{#t} gesetzt wurde),
1431 werden die Systeme linksbündig gesetzt und nicht bis zum
1432 rechten Rand hin durchgezogen, sondern den Noten entsprechend
1433 gesetzt. Das ist oftmals nützlich für kleine Notenfragmente
1434 und um zu überprüfen, wie eng die Noten natürlicherweise
1435 gesetzt werden würden.
1437 Die Option @code{ragged-last} verhält sich ähnlich zu @code{ragged-right},
1438 aber wirkt sich nur auf die letzte Zeile eines Stückes aus.
1443 line-width = #150\mm
1448 @cindex regelmäßige Zeilenumbrüche
1449 @cindex Zeilenumbrüche in Intervallen
1451 Um Zeilenumbrüche zu erzwingen, die in festgelegten Intervallen
1452 stattfinden, kann der Befehl @code{\break} in Kombination
1453 mit unsichtbaren Noten und einer Wiederholung (@code{\repeat}) eingesetzt
1454 werden. Das folgende Beispiel etwa setzt die nächsten
1455 28 Takte (im 4/4-Takt) in Zeilen zu jeweils 4 Takten (die auch nur hier
1456 umgebrochen werden):
1461 s1 \noBreak s1 \noBreak
1462 s1 \noBreak s1 \break
1464 @{ @var{Hier die Noten@dots{}} @}
1468 Eine Zeilenumbruchkonfiguration kann auch als eine @file{.ly}-Datei
1469 automatisch gespeichert werden. Damit kann die vertikale Ausrichtung
1470 während eines zweiten Programmdurchlaufs angepasst werden um die
1471 Seiten besser zu füllen. Diese Eigenschaft ist recht neu und
1472 kompliziert. Mehr Einzelheiten finden sich in
1484 @ref{paper-Variablen für den Zeilenumbruch,,@code{@bs{}paper}-Variablen für den Zeilenumbruch}.
1489 Referenz der Interna:
1490 @rinternals{LineBreakEvent}.
1493 @node Seitenumbrüche
1494 @subsection Seitenumbrüche
1495 @translationof Page breaking
1497 @cindex Seitenumbrüche
1498 @cindex Umbrüche, Seite
1500 Die Standardseitenumbrüche können verändert werden, indem
1501 man die Befehle @code{\pageBreak} bzw. @code{\noPageBreak}
1502 benutzt. Sie verhalten sich analog zu den Befehlen
1503 @code{\break} und @code{\noBreak}. Sie sollten an einem
1504 Taktstrich notiert werden. Diese Befehle erzwingen bzw.
1505 verbieten einen Seitenumbruch. Mit dem @code{\pageBreak}-Befehl
1506 wird natürlich gleichzeitig auch ein Zeilenumbruch erzwungen.
1508 Die @code{\pageBreak} und @code{\noPageBreak}-Befehle können
1509 auch auf der höchsten Ebene einer Datei benutzt werden, etwa
1510 zwischen Partituren und Textbeschriftungen.
1512 Es gibt auch vertikale Gegenstücke zu den Variablen
1513 @code{ragged-right} und @code{ragged-last}:
1514 @code{ragged-bottom} und @code{ragged-last-bottom}. Wenn diese
1515 Variablen auf @code{#t} (wahr) gesetzt werden, werden im ersten
1516 Fall die Notensysteme auf allen Seiten eng nach oben orientiert
1517 gesetzt werden. Im zweiten Fall bezieht sich dies nur auf die
1519 Zu Einzelheiten siehe @ref{Vertikale paper-Variablen mit festen Abständen,,Vertikale @code{@bs{}paper}-Variablen mit festen Abständen}.
1521 Seitenumbrüche werden von der @code{page-breaking}-Funktion errechnet.
1522 LilyPond kennt drei Algorithmen um Seitenumbrüche zu errechnen:
1523 @code{ly:optimal-breaking}, @code{ly:page-turn-breaking} und
1524 @code{ly:minimal-breaking}. Der Standard ist @code{ly:optimal-breaking},
1525 aber der Wert kann in der @code{\paper}-Umgebung geändert werden:
1529 #(define page-breaking ly:page-turn-breaking)
1535 Wenn ein Buch (@code{\book}) viele Parituren und Seiten hat, kann die
1536 Seitenaufteilung schwer zu ermitteln sein und viel Zeit und Prozessorlast
1537 in Anspruch nehmen. Um den Seitenumbruchsprozess zu vereinfachen,
1538 werden @code{\bookpart}-Umgebungen benutzt, um das Buch in mehrere Teil
1539 zu trennen: Die Seitenumbrüche werden seperat für jeden Teil berechnet.
1540 Unterschiedliche Seitenumbruchsfunktionen können in unterschiedlichen
1541 Buchteilen benutzt werden.
1546 subtitle = "Vorwort"
1549 %% In einem Abschnitt, der vor allem Text hat,
1550 %% funktioniert womöglich ly:minimal-breaking besser
1551 #(define page-breaking ly:minimal-breaking)
1553 \markup @{ @dots{} @}
1557 %% In diesem Abschnitt mit Noten wird
1558 %% die Standard-Seitenumbruchsfunktion benutzt.
1560 subtitle = "Erster Satz"
1562 \score @{ @dots{} @}
1571 @funindex \pageBreak
1573 @funindex \noPageBreak
1574 @code{\noPageBreak}.
1579 @ref{paper-Variablen für den Seitenumbruch,,@code{@bs{}paper}-Variablen für den Seitenumbruch}.
1585 @node Optimale Seitenumbrüche
1586 @subsection Optimale Seitenumbrüche
1587 @translationof Optimal page breaking
1589 @funindex ly:optimal-breaking
1591 Die @code{ly:optimal-breaking}-Funktion ist die Standardmethode für
1592 LilyPond, um Seitenumbrüche zu errechnen. Hiermit wird versucht,
1593 Seitenumbrüche zu finden, die das Stauchen oder Strecken von Zeilen
1594 minimieren, sowohl horizontal als auch vertikal. Anders als die
1595 @code{ly:page-turn-breaking}-Funktion hat diese Methode keine
1596 Möglichkeit, Überlegungen zum Umblättern mit einzubeziehen.
1603 @node Optimale Umbrüche zum Blättern
1604 @subsection Optimale Umbrüche zum Blättern
1605 @translationof Optimal page turning
1607 @funindex ly:page-turn-breaking
1609 Es ist oft nötig, die Seiten so umzubrechen, dass sich eine Pause am
1610 Ende jeder zweiten Seite befindet, damit der Musiker es leichter hat,
1611 die Seite umzublättern ohne das Spielen zu Unterbrechen. Die
1612 @code{ly:page-turn-breaking}-Funktion versucht, Seitenumbrüche zu
1613 finden, die das Stauchen oder Strecken von Zeilen minimieren und
1614 gleichzeitig auch noch Seitenumbrüchen an angegebenen Stellen
1615 den Vorrang zu geben.
1617 Die Funktion wird in zwei Schritten eingesetzt. Zunächst muss sie
1618 in der @code{\paper}-Umgebung aktiviert werden, wie gezeigt in
1619 @ref{Seitenumbrüche}. Dann muss noch angegeben werden, welche Stellen
1620 bevorzugt für Seitenumbrüche benutzt werden sollen.
1622 Für diesen zweiten Schritt gibt es zwei Methoden. Am Einfachsten ist
1623 es, die möglichen Seitenumbrüche mit dem Befehl @code{\allowPageTurn}
1624 an jeder Stelle manuell anzugeben.
1626 Wenn Ihnen das zu aufwändig ist, können Sie den @code{Page_turn_engraver}
1627 zu einem @code{Staff}- oder @code{Voice}-Kontext hinzufügen. Dieser
1628 Engraver durchsucht den entsprechenden Kontext nach Stellen ohne Noten.
1629 (Es wird also nicht nach Pausen gesucht, sondern nach Stellen ohne
1630 Noten. Dieses Verhalten verhindert, dass an polyphonen Stellen umgebrochen
1631 wird, wo nur in einer Stimme Pausen vorhanden sind.) Wenn eine
1632 derartige Stelle ohne Noten gefunden wird, fügt der Engraver den
1633 Befehl @code{\allowPageTurn} am letzten Taktstrich des Abschnitts ein. Wenn
1634 in dem Abschnitt ein besonderer Taktstrich vorkommt (wie etwa ein
1635 Doppelstrich), wird der Befehl nach diesem Taktstrich gesetzt.
1637 @funindex minimumPageTurnLength
1639 Der @code{Page_turn_engraver} liest die Kontexteigenschaft
1640 @code{minimumPageTurnLength} um zu erkennen, wie lang eine Stelle
1641 frei von Noten sein muss, damit ein Seitenumbruch in Frage kommt. Der
1642 Standardwert hierfür ist @code{(ly:make-moment 1/1)}. Wenn Sie
1643 Seitenumbrüche zum Umblättern ausschalten wollen, können Sie
1644 einen sehr großen Wert angeben.
1647 \new Staff \with @{ \consists "Page_turn_engraver" @}
1650 R1 | % Ein Seitenumbruch zum Umblättern erlaubt
1652 \set Staff.minimumPageTurnLength = #(ly:make-moment 5/2)
1653 R1 | % Seitenumbruch nicht erlaubt
1655 R1*2 | % Seitenumbruch erlaubt
1660 @funindex minimumRepeatLengthForPageTurn
1662 Der @code{Page_turn_engraver} erkennt Wiederholungen vom Typ @code{volta}.
1663 Ein Seitenumbruch zum Umblättern wird nur zugelassen, wenn vor und nach
1664 der Wiederholung genug Zeit ist, um die Seite wieder zurückzublättern.
1665 Wenn die Wiederholung sehr kurz ist, kann auch Umblättern verboten
1666 werden. Wenn Sie die Kontexteigenschaft
1667 @code{minimumRepeatLengthForPageTurn} definieren, erlaubt der
1668 @code{Page_turn_engraver} nur Umblättern in Wiederholungen, deren
1669 Dauer länger als dieser Wert ist.
1671 Die Seitenumblätter-Befehle @code{\pageTurn}, @code{\noPageTurn} und
1672 @code{\allowPageTurn} können auch auf oberster Dateiebene benutzt
1673 werden, etwa zwischen Partituren und Textabschnitten.
1679 @funindex \noPageTurn
1681 @funindex \allowPageTurn
1682 @code{\allowPageTurn}.
1691 In einer Partitur sollte nur ein @code{Page_turn_engraver} vorkommen. Wenn
1692 mehr als einer definiert werden, stören sie sich gegenseitig.
1695 @node Minimale Seitenumbrüche
1696 @subsection Minimale Seitenumbrüche
1697 @translationof Minimal page breaking
1699 @funindex ly:minimal-breaking
1701 Die @code{ly:minimal-breaking}-Funktion benötigt nur minimale Berechnungen,
1702 um die Seitenumbrüche zu bestimmen. Die Seite wird mit möglichst
1703 vielen Systemen gefüllt und dann zur nächsten Seite gewechselt. Die
1704 Funktion kann benutzt werden um Partituren mit vielen Seiten zu
1705 setzen, wenn die anderen Seitenumbruchsfunktionen zu langsam wären
1706 oder zu viel Speicher beanspruchen. Auch für Seiten mit viel Text
1707 ist die Funktion geeignet. Sie wird folgendermaßen aktiviert:
1711 page-breaking = #ly:minimal-breaking
1720 @node Eine-Seite-Seitenumbrüche
1721 @subsection Eine-Seite-Seitenumbrüche
1722 @translationof One-line page breaking
1724 @funindex ly:one-line-breaking
1726 Die Funktion @code{ly:one-line-breaking} ist ein besonderer
1727 Seitenumbruchalgorithmus, der jede Partitur (@code{score}) auf
1728 eine eigene Seite ausgibt, und in einer einzlenen Zeile. Diese
1729 Seitenumbruchfunktion gibt keine Titel oder Ränder aus, nur die
1730 Partitur wird dargestellt.
1732 Die Seitenbreite wird angepasst, sodass die längeste Partitur auf
1733 eine Zeile passt. Die Variablen @code{paper-width}, @code{line-width}
1734 und @code{indent} in der @code{\paper}-Umgebung werden ignoriert,
1735 wenn auch @code{left-margin} und @code{right-margin} noch beachtet
1736 werden. Die Höhe der Seite wird nicht verändert.
1739 @node Ausdrückliche Umbrüche
1740 @subsection Ausdrückliche Umbrüche
1741 @translationof Explicit breaks
1743 Es kann vorkommen, dass LilyPond direkte @code{\break} oder
1744 @code{\pageBreak}-Befehl nicht beachtet. Mit folgenden
1745 Einstellungen kann dieses Verhalten ausgeschaltet werden:
1748 \override NonMusicalPaperColumn.line-break-permission = ##f
1749 \override NonMusicalPaperColumn.page-break-permission = ##f
1752 Wenn @code{line-break-permission} die Einstellung falsch
1753 (@code{##f}) hat, werden Zeilenumbrüche nur an den Befehlen
1754 @code{\break} eingefügt und nirgendwo anders. Wenn
1755 @code{page-break-permission} die Einstellung falsch
1756 (@code{##f}) hat, werden Seitenumbrüche nur an den Befehlen
1757 @code{\pageBreak} eingefügt und nirgendwo anders.
1759 @lilypond[quote,verbatim]
1766 music = \relative { c''8 c c c }
1770 \repeat unfold 2 { \music } \break
1771 \repeat unfold 4 { \music } \break
1772 \repeat unfold 6 { \music } \break
1773 \repeat unfold 8 { \music } \pageBreak
1774 \repeat unfold 8 { \music } \break
1775 \repeat unfold 6 { \music } \break
1776 \repeat unfold 4 { \music } \break
1777 \repeat unfold 2 { \music }
1782 \override NonMusicalPaperColumn.line-break-permission = ##f
1783 \override NonMusicalPaperColumn.page-break-permission = ##f
1795 @node Eine zusätzliche Stimme für Umbrüche benutzen
1796 @subsection Eine zusätzliche Stimme für Umbrüche benutzen
1797 @translationof Using an extra voice for breaks
1799 Zeilen- und Seitenumbruchbefehle werden normalerweise direkt
1800 zusammen mit den Noten eingegeben.
1803 music = \relative @{ c''4 c c c @}
1807 \repeat unfold 2 @{ \music @} \break
1808 \repeat unfold 3 @{ \music @}
1813 Hierdurch sind zwar die Befehle @code{\break} und @code{\pageBreak}
1814 einfach zu notieren, es werden aber Informationen zur Notation
1815 mit Informationen zur Anordnung auf der Seite vermischt. Man kann
1816 diese Informationen auch voneinander trennen, indem man eine zusätzliche
1817 Stimme einfügt, in der Zeilen- und Seitenumbrüche vorgenommen werden.
1818 Diese zusätzliche Stimme enthält nur unsichtbare Noten und die
1821 @lilypond[quote,verbatim]
1822 music = \relative { c''4 c c c }
1833 \repeat unfold 2 { \music }
1834 \repeat unfold 3 { \music }
1835 \repeat unfold 6 { \music }
1836 \repeat unfold 5 { \music }
1842 Mit dieser Herangehensweise kann der Code insbesondere
1843 dann klarer notiert werden, wenn man Einstellungen der
1844 @code{line-break-system-details}-Eigenschaft oder
1845 anderer Eigenschaften von
1846 @code{NonMusicalPaperColumnGrob} vornimmt (hierzu auch
1847 @ref{Vertikale Abstände}).
1849 @lilypond[quote,verbatim]
1850 music = \relative { c''4 c c c }
1855 \overrideProperty Score.NonMusicalPaperColumn.line-break-system-details #'((Y-offset . 0))
1858 \overrideProperty Score.NonMusicalPaperColumn.line-break-system-details #'((Y-offset . 35))
1861 \overrideProperty Score.NonMusicalPaperColumn.line-break-system-details #'((Y-offset . 70))
1864 \overrideProperty Score.NonMusicalPaperColumn.line-break-system-details #'((Y-offset . 105))
1868 \repeat unfold 2 { \music }
1869 \repeat unfold 3 { \music }
1870 \repeat unfold 6 { \music }
1871 \repeat unfold 5 { \music }
1880 @ref{Vertikale Abstände}.
1886 @node Vertikale Abstände
1887 @section Vertikale Abstände
1888 @translationof Vertical spacing
1890 @cindex vertikale Positionierung
1891 @cindex Positionierung, vertikal
1892 @cindex Abstände, vertikal
1894 Vertikale Abstände werden durch drei Eigenschaften
1895 bestimmt: wieviel Platz frei ist (etwa Papiergröße
1896 und Ränder), wieviel Platz zwischen Systemgruppen
1897 (engl. system) gesetzt werden soll und wieviel
1898 Platz zwischen Notensystemen (engl. staff, Pl. staves)
1899 innerhalb von Gruppen gesetzt wird.
1902 * Flexible vertikale Abstände in Systemgruppen::
1903 * Explizite Positionierung von Systemen::
1904 * Vermeidung von vertikalen Zusammenstößen::
1908 @node Flexible vertikale Abstände in Systemgruppen
1909 @subsection Flexible vertikale Abstände in Systemgruppen
1910 @translationof Flexible vertical spacing within systems
1912 @cindex Abstand zwischen Notensystemen
1913 @cindex Notensystemabstand
1914 @cindex Platz zwischen Notensystemen
1915 @cindex Platz innerhalb von Systemgruppen
1916 @cindex Systemgruppen, Abstände innerhalb
1918 Drei unterschiedliche Mechanismen kontrollieren das flexible Abstandaufteilung
1919 in Systemgruppen, einer für jede der folgenden Kathegorien:
1924 @emph{ungruppierte Systeme},
1927 @emph{Systemgruppen} (Systeme innerhalb einer @code{staff-group} wie etwa
1928 @code{ChoirStaff} usw.) und
1931 @emph{Nicht-Notensystemzeilen} (wie etwa @code{Lyrics} (Gesangstext),
1932 @code{ChordNames} (Akkordbezeichnungen) usw.).
1936 Die Höhe jeder Systemgruppe wird in zwei Schritten bestimmt. Zunächst
1937 werden alle Systeme anhand des vorhandenen Platzes aufgeteilt. Dann
1938 werden die nicht-Notensysteme (also Akkorde oder Gesangstext) zwischen
1939 den Systemen verteilt.
1941 Es ist zu beachten, dass der Platzverteilungsmechanismus, der in diesem
1942 Abschnitt behandelt wird, nur die vertikale Platzierung von Systemen und
1943 nicht-Systemzeilen in einzelnen Systemgruppen behandelt. Die vertikale
1944 Platzierung zwischen einzelnen Systemgruppen, Partituren, Beschriftungen
1945 usw. und den Rändern wird durch @code{\paper}-Variablen kontrolliert, die
1946 @ref{Vertikale paper-Variablen mit flexiblen Abständen,,Vertikale @code{@bs{}paper}-Variablen mit flexiblen Abständen}.
1949 * Eigenschaften für Abstände innerhalb von Systemgruppen::
1950 * Abstände von nicht gruppierten Notensystemen::
1951 * Abstände von gruppierten Notensystemen::
1952 * Abstände von nicht-Notensystemzeilen::
1956 @node Eigenschaften für Abstände innerhalb von Systemgruppen
1957 @unnumberedsubsubsec Eigenschaften für Abstände innerhalb von Systemgruppen
1958 @translationof Within-system spacing properties
1960 @funindex staff-affinity
1961 @funindex staffgroup-staff-spacing
1962 @funindex staff-staff-spacing
1963 @funindex nonstaff-unrelatedstaff-spacing
1964 @funindex nonstaff-relatedstaff-spacing
1965 @funindex nonstaff-nonstaff-spacing
1966 @funindex default-staff-staff-spacing
1967 @funindex minimum-Y-extent
1968 @funindex extra-offset
1969 @funindex self-alignment-X
1971 @funindex VerticalAxisGroup
1973 Der vertikalen Platzierungsmechanismen für Abstände innerhalb von Systemgruppen
1974 werden durch zwei Gruppen von Grob-Eigenschaften kontrolliert. Die erste
1975 Gruppe ist mit dem @code{VerticalAxisGroup}-Grob verknüpft, der von allen
1976 Notensystemen und Nicht-Notensystemzeilen erstellt wird. Die zweite Gruppe
1977 ist mit dem @code{StaffGrouper}-Grob verknüpft, der von Systemgruppen erstellt
1978 werden kann, aber nur, wenn das explizit verlangt wird. Die einzelnen Eigenschaften
1979 werden am Ende dieses Abschnitts beschrieben.
1981 Die Bezeichnungen dieser Eigenschaften (mit Außnahmen von @code{staff-affinity})
1982 haben das Format @code{@var{Element1}-@var{Element2}-spacing}, wobei
1983 @code{@var{Element1}} und @code{@var{Element2}} die Elemente sind, deren
1984 Abstände eingestellt werden sollen. Dabei ist allerdings zu beachten, dass
1985 @code{@var{Element2}} sich nicht notwendigerweise unterhalb von
1986 @code{@var{Element1}} befindet; beispielsweise
1987 @code{nonstaff-relatedstaff-spacing} (Nicht-Notensystem-verwandtesNotensystem)
1988 misst von dem Nicht-Notensystem nach oben, wenn @code{staff-affinity}
1989 (Richtung, an der sich ein System ausrichtet) auf @code{UP} (nach oben)
1992 Jeder Abstand wird zwischen den @emph{Referenzpunkten} der zwei Objekten
1993 gemessen. Der Referenzpunkt eines Notensystems ist die vertikale Mitte
1994 seines @code{StaffSymbol}-Objekts (also die Mittellinie, wenn
1995 @code{line-count} (Notenlinienzähler) ungrade ist, oder der mittlere
1996 Zwischenraum, wenn @code{line-count} grade ist). Die Referenzpunkte für
1997 einzelne Nicht-Notensystemzeilen ergibt sich aus der folgenden Tabelle:
1999 @multitable {Nicht-Notensystemzeile} {Referenzpunkt}
2000 @headitem Nicht-Notensystemzeile @tab Referenzpunkt
2001 @item @code{ChordNames} @tab Grundlinie
2002 @item @code{NoteNames} @tab Grundlinie
2003 @item @code{Lyrics} @tab Grundlinie
2004 @item @code{Dynamics} @tab vertikale Mitte
2005 @item @code{FiguredBass} @tab höchster Punkt
2006 @item @code{FretBoards} @tab Oberlinie
2009 Im nächsten Bild zeigen horizontale Striche die Positionen dieser
2012 @lilypond[quote,noragged-right,line-width=110\mm]
2013 #(define zero-space '((padding . -inf.0) (basic-distance . 0)))
2015 alignToZero = \with {
2016 \override VerticalAxisGroup.nonstaff-relatedstaff-spacing = #zero-space
2017 \override VerticalAxisGroup.nonstaff-nonstaff-spacing = #zero-space
2019 lowerCaseChords = \with {
2020 chordNameLowercaseMinor = ##t
2022 staffAffinityDown = \with {
2023 \override VerticalAxisGroup.staff-affinity = #DOWN
2026 #(define-music-function
2029 #{ s1*0^\markup { \typewriter #context } #})
2032 \context { \Dynamics \alignToZero }
2033 \context { \FiguredBass \alignToZero }
2034 \context { \Lyrics \alignToZero }
2035 \context { \NoteNames \alignToZero \staffAffinityDown }
2036 \context { \ChordNames \alignToZero
2039 \context { \FretBoards \alignToZero \staffAffinityDown }
2042 \override DynamicText.self-alignment-X = #-1
2043 \override FretBoard.X-offset = #1.75
2044 \override InstrumentName.minimum-Y-extent = #'(-2 . 2)
2045 \override InstrumentName.extra-offset = #'(0 . -0.5)
2046 \override TextScript.minimum-Y-extent = #'(-2 . 3)
2051 %% These contexts have reference points at the baseline:
2052 %% ChordNames, NoteNames, and Lyrics
2054 \new ChordNames { \chords { g1:m } }
2055 \new NoteNames { s1 | g1 | }
2056 \new RhythmicStaff {
2057 \set RhythmicStaff.instrumentName = #"baseline "
2059 \labelContext "ChordNames " s1 |
2060 \labelContext "NoteNames " s1 |
2061 \labelContext "Lyrics" s1 |
2063 \new Lyrics { \lyrics { \skip 1*2 | ghijk1 | } }
2066 %% The reference point for Dynamics is its vertical center
2068 \new RhythmicStaff {
2069 \set RhythmicStaff.instrumentName = #"vertical center "
2070 \labelContext "Dynamics" s1*3
2072 \new Dynamics { s1\mp s\fp }
2075 %% The reference point for FiguredBass is its highest point
2077 \new RhythmicStaff {
2078 \set RhythmicStaff.instrumentName = #"highest point "
2079 \labelContext "FiguredBass" s1
2081 \new FiguredBass { \figuremode { <6 5>1 } }
2084 %% The reference point for FretBoards is the top line
2085 \include "predefined-guitar-fretboards.ly"
2087 \new FretBoards { \chordmode { e1 } }
2088 \new RhythmicStaff {
2089 \set RhythmicStaff.instrumentName = #"top line "
2090 \labelContext "FretBoards " s1
2095 Jeder der vertikalen Platzierungs-Grobeigenschaften (außer
2096 @code{staff-affinity}) benutzt die gleiche Alistenstruktur
2097 wie die @code{\paper}-Variablen, behandelt in
2098 @ref{Vertikale paper-Variablen mit flexiblen Abständen,,Vertikale @code{@bs{}paper}-Variablen mit flexiblen Abständen}. Besondere
2099 Methoden um Alisten zu verändern finden sich in
2100 @ref{Alisten verändern}. Grob-Eigenschaften sollten mit
2101 dem @code{\override}-Befehle innerhalb einer @code{\score}-
2102 oder @code{\layout}-Umgebung angepasst werden, nicht innerhalb einer
2103 @code{\paper}-Umgebung.
2105 Das folgende Beispiel zeigt die beiden Arten, Alisten zu modifizieren.
2106 Der erste Aufruf verändert nur einen Schlüsselwert einzlen, während
2107 der zweite die Eigenschaft komplett neu definiert:
2111 \override VerticalAxisGroup.default-staff-staff-spacing.basic-distance = #10
2115 \override VerticalAxisGroup.default-staff-staff-spacing =
2116 #'((basic-distance . 10)
2117 (minimum-distance . 9)
2119 (stretchability . 10))
2123 Um Platzierungseinstellungen global vorzunehmen, müssen sie in der
2124 @code{\layout}-Umgebung vorgenommen werden:
2130 \override VerticalAxisGroup.default-staff-staff-spacing.basic-distance = #10
2135 Standardeinstellungen für die vertikalen Platzierungs-Grobeigenscahften
2136 finden sich in @rinternals{VerticalAxisGroup} und
2137 @rinternals{StaffGrouper} aufgelistet. Standardveränderungen für bestimmte
2138 Typen von Nicht-Notensystemzeilen finden sich im relevanten Abschnitt in
2139 in @rinternals{Contexts} aufgelistet.
2142 @subsubheading Eigenschaften des @code{VerticalAxisGroup}-Grobs
2144 @code{VerticalAxisGroup}-Eigenschaften werden normalerweise mit einem
2145 @code{\override}-Befehl auf @code{Staff}-(Notensystem-)Ebene (oder
2146 entsprechend) vorgenommen.
2149 @item staff-staff-spacing
2150 System-System-Platzierung
2152 Wird benutzt, um den Abstand zwischen dem aktuellen Notensystem und dem
2153 Notensystem direkt darunter in der gleichen Notensystemgruppe zu bestimmen,
2154 auch wenn eine oder mehrere Nicht-Notensystemzeilen (wie etwa @code{Lyrics})
2155 dazwischen stehen. Gilt nicht für das unterste System einer Systemgruppe.
2157 Die Eigenschaft @code{staff-staff-spacing} einer @code{VerticalAxisGroup}
2158 ist eine Scheme-Funktion, welche die Eigenschaften vom @code{StaffGrouper}-Grob
2159 den Notensystemen zuweist, wenn sie einer Systemgruppe angehören, bzw.
2160 die @code{default-staff-staff-spacing}-Eigenschaft bei einem einzelnen Notensystem.
2161 Dadurch können Systeme unterschiedlich in Abhängigkeit von ihrer Zugehörigkeit
2162 zu einer Gruppe (StaffGroup) platziert werden. Wenn gleichmäßige Aufteilung
2163 ohne Berücksichtigung von Gruppierungen gewünscht ist, kann diese Funktion durch
2164 eine flexible Platzierungs-Aliste ersetzt werden, wobei man die vollständige
2165 Redefinition auf die oben gezeigte Weise vornehmen muss.
2167 @item default-staff-staff-spacing
2168 Normale-System-System-Platzierung
2170 Eine flexible Platzierungs-Aliste, die den Wert von @code{staff-staff-spacing}
2171 für ungruppierte Notensysteme einstellt, es sei denn,
2172 @code{staff-staff-spacing} wirde explizit mit @code{\override} eingestellt.
2174 @item staff-affinity
2177 Die Richtung des Systems, die benutzt wird, um die aktuelle
2178 Nicht-Notensystemzeile zu platzieren. Mögliche Werte sind
2179 @code{UP} (nach oben), @code{DOWN} (nach unten) und
2180 @code{CENTER} (mittig). Wenn @code{CENTER} wird die Nicht-Notensystemzeile
2181 vertikal mittig zwischen den beiden nächsten Systemen oben und unten
2182 platziert, außer Zusammenstöße und andere Platzierungsprobleme verhindern
2183 das. Aufeinanderfolgende Nicht-Notensystemzeilen sollten nicht-aufsteigende
2184 @code{staff-affinity} von oben nach unten haben; also ein Nicht-Notensystemzeile
2185 mit @code{UP} sollte nicht direkt auf eine mit @code{DOWN} folgen.
2186 Nicht-Notensystemzeilen über einem Notensystem sollten @code{DOWN}
2187 benutzen, unter einem Notensystem dagegen @code{UP}. Wenn
2188 @code{staff-affinity} für eine Notensystem eingestellt wird, wird es wie
2189 eine Nicht-Notensystemzeile behandelt. Wenn @code{staff-affinity}
2190 auf @code{#f} gesetzt wird, wird eine Nicht-Notensystemzeile wie ein
2191 Notensystem behandelt. Wird @code{staff-affinity} auf @code{UP},
2192 @code{CENTER} oder @code{DOWN} gesetzt, wird das Notensystem als
2193 Nicht-Notensystemzeile plaziert.
2195 @item nonstaff-relatedstaff-spacing
2196 Nicht-Notensystem-verwandtesSystem-Platzierung
2198 Der Abstand zwischen der aktuellen Nicht-Notensystemzeile und
2199 dem nächsten Notensystem in der Richtung von @code{staff-affinity},
2200 wenn keine Nicht-Notensystemzeilen dazwischen auftreten und @code{staff-affinity}
2201 entweder @code{UP} oder @code{DOWN} ist. Wenn @code{staff-affinity}
2202 @code{CENTER} ist, dann wird @code{nonstaff-relatedstaff-spacing} für die
2203 nächsten Notensysteme auf @emph{beiden} Seiten benutzt, auch wenn andere
2204 Nicht-Notensystemzeilen zwischen der aktuellen und einem der Notensystem
2205 auftreten. Das heißt, dass die Platzierung eine Nicht-Notensystemzeile
2206 sowohl von den umliegenden Notensystemen als auch den umliegenden
2207 Nicht-Notensystemzeilen abhängt. Wenn @code{stretchability} einer dieser
2208 Platzierungstypen auf einen kleinen Wert gesetzt wird, dominiert diese
2209 Platzierung. Wird es dagegen auf einen großen Wert gesetzt, hat die
2210 Platzierung dieses Objekts nur einen kleinen Einfluss.
2212 @item nonstaff-nonstaff-spacing
2213 Nicht-Notensystemzeile-Nicht-Notensystemzeile-Platzierung
2215 Der Abstand zwischen der aktuellen Nicht-Notensystemzeile und der
2216 Nicht-Notensystemzeile in der Richtung von @code{staff-affinity},
2217 wenn beide sich auf der gleichen Seite des verwandten Notensystems
2218 befinden und @code{staff-affinity} entweder @code{UP} oder @code{DOWN} ist.
2220 @item nonstaff-unrelatedstaff-spacing
2221 Nicht-Notensystemzeile-Nicht-verwandtesSystem-Platzierung
2223 Der Abstand zwischen der aktuellen Nicht-Notensystemzeile und
2224 dem Notensystem in der gegenüberliegenden Richtung von @code{staff-affinity},
2225 wenn keine anderen Nicht-Notensystemzeilen dazwischen auftreten und
2226 @code{staff-affinity} entweder @code{UP} oder @code{DOWN} ist. Das kann
2227 benutzt werden, um einen Minimalfüllabstand (padding) zwischen einer
2228 @code{Lyrics}-Gesangstextzeile und dem zugehörigen Notensystem zu verlangen.
2232 @subsubheading Eigenschaften des @code{StaffGrouper}-Grobs
2234 @code{StaffGrouper}-Eigenschaften werden normalerweise mit einem
2235 @code{\override}-Befehl auf @code{StaffGroup}-Ebene (oder
2236 entsprechend) eingestellt.
2239 @item staff-staff-spacing
2240 Notensystem-Notensystem-Abstand
2242 Der Abstand zwischen zwei aufeinanderfolgenden Notensystemen in
2243 der aktuellen @code{StaffGroup}. Die @code{staff-staff-spacing}-Eigenschaft
2244 des @code{VerticalAxisGroup}-Grobs eines einzelnen Notensytems
2245 kann mit @code{\override} in andere Platzierungswerte für dieses Notensystem
2248 @item staffgroup-staff-spacing
2249 Systemgruppe-System-Abstand
2251 Der Abstand zwischen dem letzten Notensystem der aktuellen @code{StaffGroup}
2252 und dem Notensystem dirket darunter in der selben Notensystemgruppe,
2253 auch wenn eine oder mehrere Nicht-Notensystemzeilen (wie etwa
2254 Gesangstext) zwischen den zwei Notensystemen vorkommen. Gilt nicht
2255 für das letzte Notensystem einer Systemgruppe. Die
2256 @code{staff-staff-spacing}-Eigenschaft des @code{VerticalAxisGroup}-Grobs
2257 individueller Notensysteme kann mit @code{\override} in andere Platzierungswerte
2258 für dieses Notensystem geändert werden.
2263 @ref{Vertikale paper-Variablen mit flexiblen Abständen,,Vertikale @code{@bs{}paper}-Variablen mit flexiblen Abständen},
2264 @ref{Alisten verändern}.
2266 Installierte Dateien:
2267 @file{ly/engraver-init.ly},
2268 @file{scm/define-grobs.scm}.
2270 Referenz der Interna:
2271 @rinternals{Contexts},
2272 @rinternals{VerticalAxisGroup},
2273 @rinternals{StaffGrouper}.
2276 @node Abstände von nicht gruppierten Notensystemen
2277 @unnumberedsubsubsec Abstände von nicht gruppierten Notensystemen
2278 @translationof Spacing of ungrouped staves
2280 @emph{Notensysteme} (wie etwa @code{Staff}, @code{DrumStaff},
2281 @code{TabStaff} usw.) sind Kontexte, die eine oder mehrere Stimmen-Kontexte
2282 enthalten, aber keine anderen Notensysteme enthalten können.
2284 Folgende Eigenschaften beeinflussen die Abstände von @emph{nicht gruppierten}
2288 @item @code{VerticalAxisGroup}-Eigenschaften:
2290 @item @code{default-staff-staff-spacing}
2291 @item @code{staff-staff-spacing}
2295 Diese Eigenschaften sind einzlen oben behandelt worden, siehe
2296 @ref{Eigenschaften für Abstände innerhalb von Systemgruppen}.
2298 Zusätzliche Eigenschaften kommen hinzu für Notensysteme, die Teil
2299 einer Gruppieren (@code{StaffGroup}) werden, siehe
2300 @ref{Abstände von gruppierten Notensystemen}.
2302 Folgendes Beispiel zeigt, wie die @code{default-staff-staff-spacing}-Eigenschaft
2303 sich auf die Platzierung von nicht-gruppierten Notensystemen auswirken kann.
2304 Wenn man die gleichen @code{\override}-Befehle auf @code{staff-staff-spacing}
2305 anwendet, ergäbe das den selben Effekt, würde sich aber auch in Fällen auswirken,
2306 in denen die Systeme gruppiert sind.
2308 @lilypond[verbatim,quote,staffsize=16]
2312 \override VerticalAxisGroup.default-staff-staff-spacing =
2313 #'((basic-distance . 8)
2314 (minimum-distance . 7)
2320 % The very low note here needs more room than 'basic-distance
2321 % can provide, so the distance between this staff and the next
2322 % is determined by 'padding.
2323 \new Staff { b,2 r | }
2325 % Here, 'basic-distance provides enough room, and there is no
2326 % need to compress the space (towards 'minimum-distance) to make
2327 % room for anything else on the page, so the distance between
2328 % this staff and the next is determined by 'basic-distance.
2329 \new Staff { \clef bass g2 r | }
2331 % By setting 'padding to a negative value, staves can be made to
2332 % collide. The lowest acceptable value for 'basic-distance is 0.
2334 \override VerticalAxisGroup.default-staff-staff-spacing =
2335 #'((basic-distance . 3.5)
2337 } { \clef bass g2 r | }
2338 \new Staff { \clef bass g2 r | }
2343 Installierte Dateien:
2344 @file{scm/define-grobs.scm}.
2349 Referenz der Interna:
2350 @rinternals{VerticalAxisGroup}.
2353 @node Abstände von gruppierten Notensystemen
2354 @unnumberedsubsubsec Abstände von gruppierten Notensystemen
2355 @translationof Spacing of grouped staves
2357 In Orchesterpartituren und anderen großen Partituren werden Notensysteme
2358 normalerweise in Gruppen zusammengefasst. Der Platz zwischen Gruppen
2359 ist normalerweise größer als der Zwischenraum zwischen einzlenen
2360 Notensystemen der gleichen Gruppe.
2362 @emph{Gruppierte Notensysteme} (wie @code{StaffGroup}, @code{ChoirStaff},
2363 @code{GrandStaff} usw.) sind Kontexte, die mehr als ein Notensystem
2364 gleichzeitig enthalten können.
2366 Folgende Eigenschaften beeinflussen die Platzierung von Notensystemen
2367 innerhalb von Gruppen:
2370 @item @code{VerticalAxisGroup}-Eigenschaften:
2372 @item @code{staff-staff-spacing}
2374 @item @code{StaffGrouper}-Eigenschaften:
2376 @item @code{staff-staff-spacing}
2377 @item @code{staffgroup-staff-spacing}
2381 Diese Grob-Eigenschaften sind weiter oben einzeln beschrieben, siehe
2382 @ref{Eigenschaften für Abstände innerhalb von Systemgruppen}.
2384 Das folgende Beispiel zeigt, wie Eigenscchaften des
2385 @code{StaffGrouper}-Grobs die Platzierung von gruppierten Notensystemen
2388 @lilypond[verbatim,quote,staffsize=16]
2392 \override StaffGrouper.staff-staff-spacing.padding = #0
2393 \override StaffGrouper.staff-staff-spacing.basic-distance = #1
2398 \new PianoStaff \with {
2399 \override StaffGrouper.staffgroup-staff-spacing.basic-distance = #20
2413 Installierte Dateien:
2414 @file{scm/define-grobs.scm}.
2419 Referenz der Interna:
2420 @rinternals{VerticalAxisGroup},
2421 @rinternals{StaffGrouper}.
2424 @node Abstände von nicht-Notensystemzeilen
2425 @unnumberedsubsubsec Abstände von nicht-Notensystemzeilen
2426 @translationof Spacing of non-staff lines
2428 @emph{Nicht-Notensystemzeilen} (wie @code{Lyrics}, @code{ChordNames}
2429 usw.) sind Kontexte, deren Layoutobjekte wie Notensysteme gesetzt
2430 werden (also als horizontale Zeilen zwischen Notensystemen). Genau
2431 gesagt sind Nicht-Notensystemzeilen Nicht-Notensystemkontexte, die
2432 ein @code{VerticalAxisGroup}-Layoutobjekt erstellen.
2434 Folgende Eigenschaften beeinflussen die Abstände von Nicht-Notensystemzeilen:
2437 @item @code{VerticalAxisGroup}-Eigenschaften:
2439 @item @code{staff-affinity}
2440 @item @code{nonstaff-relatedstaff-spacing}
2441 @item @code{nonstaff-nonstaff-spacing}
2442 @item @code{nonstaff-unrelatedstaff-spacing}
2446 Diese Grob-Eigenschaften sind weiter oben einzlen beschrieben; siehe
2447 @ref{Eigenschaften für Abstände innerhalb von Systemgruppen}.
2449 Das folgende Beispiel zeigt, wie die @code{nonstaff-nonstaff-spacing}-Eigenschaft
2450 die Platzierung von aufeinanderfolgenden Nicht-Notensystemzeilen beeinflussen
2451 kann. Indem hier der Wert von @code{stretchability} auf einen sehr hohen Wert
2452 gesetzt wird, kann der Gesangstext sehr viel weiter als normal gespreizt
2455 @lilypond[verbatim,quote,staffsize=16]
2459 \override VerticalAxisGroup.nonstaff-nonstaff-spacing.stretchability = #1000
2466 \override VerticalAxisGroup.staff-staff-spacing = #'((basic-distance . 30))
2469 \override VerticalAxisGroup.staff-affinity = #UP
2472 \override VerticalAxisGroup.staff-affinity = #CENTER
2473 } \lyricmode { center }
2475 \override VerticalAxisGroup.staff-affinity = #DOWN
2476 } \lyricmode { down }
2483 Installierte Dateien:
2484 @file{ly/engraver-init.ly},
2485 @file{scm/define-grobs.scm}.
2490 @c @lsr{spacing,page-spacing.ly},
2491 @c @lsr{spacing,alignment-vertical-spacing.ly}.
2493 Referenz der Interna:
2494 @rinternals{Contexts},
2495 @rinternals{VerticalAxisGroup}.
2499 @node Explizite Positionierung von Systemen
2500 @subsection Explizite Positionierung von Systemen
2501 @translationof Explicit staff and system positioning
2503 Man kann die flexiblen Einstellungen der vertikalen Abstände, wie sie im
2505 erklärt wurden, als eine Sammlung verschiedenerer Einstellmöglichkeiten
2506 verstehen, die vor allem die Größe des vertikalen Platzes zwischen
2507 Notensystemen und Gruppen auf der Seite kontrollieren.
2509 Die vertikale Platzverteilung kann aber auch auf andere Weise
2510 eingestellt werden: mit den Optionen von
2511 @code{NonMusicalPaperColumn #'line-break-system-details}. Während
2512 der flexible vertikale Abstandsmechanismus vertikalen Füllplatz
2513 definiert, werden mit
2514 @code{NonMusicalPaperColumn #'line-break-system-details} absolute vertikale
2515 Positionen auf der Seite festgelegt.
2517 @code{NonMusicalPaperColumn #'line-break-system-details} akzeptiert eine
2518 Liste aus drei unterschiedlichen Einstellungen:
2521 @item @code{X-offset}
2522 @item @code{Y-offset}
2523 @item @code{alignment-distances}
2526 Veränderungen von Grobs (wozu auch @code{NonMusicalPaperColumn} gehört),
2527 können an drei unterschiedlichen Stellen in der Quelldatei vorgenommen
2531 @item mitten im Notentext
2532 @item in einer @code{\context}-Umgebung
2533 @item in einer @code{\with}-Umgebung
2536 Wenn der Grob @code{NonMusicalPaperColumn} verändert werden soll,
2537 wird der @code{\override}-Befehl in der @code{\context} oder
2538 @code{\with}-Umgebung eingesetzt. Wenn die Veränderungen aber
2539 mitten im Notentext stattfinden sollen, müssen Sie den Befehl
2540 @code{\overrideProperty} einsetzen. Einige Beispiele für eine
2541 Veränderungen von @code{NonMusicalPaperColumn} mit dem
2542 @code{\overrideProperty}-Befehl sind hier aufgelistet:
2545 \overrideProperty NonMusicalPaperColumn.line-break-system-details #'((X-offset . 20))
2547 \overrideProperty NonMusicalPaperColumn.line-break-system-details #'((Y-offset . 40))
2549 \overrideProperty NonMusicalPaperColumn.line-break-system-details #'((X-offset . 20)
2552 \overrideProperty NonMusicalPaperColumn.line-break-system-details #'((alignment-distances . (15)))
2554 \overrideProperty NonMusicalPaperColumn.line-break-system-details #'((X-offset . 20)
2556 (alignment-distances . (15)))
2559 Um zu verstehen, wie jede dieser unterschiedlichen Einstellungen
2560 funktioniert, wollen wir uns ein Beispiel vornehmen, dass überhaupt
2561 keine Einstellungen (d.h. @code{\override}-Befehle) enthält:
2563 @c \book { } is required in these examples to ensure the spacing
2564 @c overrides can be seen between systems. -np
2566 @lilypond[verbatim,quote,staffsize=16]
2567 \header { tagline = ##f }
2568 \paper { left-margin = 0\mm }
2578 \new Voice { \repeat unfold 15 { c'4 c' c' c' } }
2581 \repeat unfold 15 { d'4 d' d' d' }
2588 Diese Partitur nimmt Zeilen- und Seitenumbruchinformationen in einer
2589 eigenen Stimme vor. Mit dieser Methode kann die Layout-Information
2590 einfach von den Noten getrennt werden, was sehr hilfreich ist, wenn
2591 das Beispiel komplizierter wird. Siehe auch
2592 @ref{Eine zusätzliche Stimme für Umbrüche benutzen}.
2594 Ausdrückliche @code{\break}-Befehle teilen die Noten in sechs Takte
2595 lange Zeilen. Die vertikale Platzverteilung wird von LilyPond
2596 errechnet. Um den vertikalen Beginn einer jeden Systemgruppe
2597 genau anzugeben, kann @code{Y-offset} in der
2598 @code{line-break-system-details}-Eigenschaft des
2599 @code{NonMusicalPaperColumn}-Grobs wie in dem Beispiel
2600 ersichtlich benutzt werden:
2602 @lilypond[verbatim,quote,staffsize=16]
2603 \header { tagline = ##f }
2604 \paper { left-margin = 0\mm }
2610 \overrideProperty Score.NonMusicalPaperColumn.line-break-system-details #'((Y-offset . 0))
2612 \overrideProperty Score.NonMusicalPaperColumn.line-break-system-details #'((Y-offset . 40))
2614 \overrideProperty Score.NonMusicalPaperColumn.line-break-system-details #'((Y-offset . 80))
2617 \new Voice { \repeat unfold 15 { c'4 c' c' c' } }
2620 \repeat unfold 15 { d'4 d' d' d' }
2627 In der @code{line-break-system-details}-Eigenschaft kann eine Liste
2628 mit vielen Einstellungen eingegeben werden, aber hier wird nur eine
2629 Einstellung angegeben. Die @code{Y-offset}-Eigenschaft bestimmt
2630 hier die exakte vertikale Position auf der Seite, an welcher jede
2631 neue Systemgruppe begonnen wird.
2633 Da jetzt der exakte Beginn einer jeden Systemgruppe explizit festgelegt wurde,
2634 können wir auch den exakten Beginn eines jeden Notensystems in der
2635 Gruppe festlegen. Dies geschieht mit der @code{alignment-distances}-Eigenschaft
2636 von @code{line-break-system-details}.
2638 @lilypond[verbatim,quote,staffsize=16]
2639 \header { tagline = ##f }
2640 \paper { left-margin = 0\mm }
2646 \overrideProperty Score.NonMusicalPaperColumn.line-break-system-details #'((Y-offset . 20)
2647 (alignment-distances . (15)))
2649 \overrideProperty Score.NonMusicalPaperColumn.line-break-system-details #'((Y-offset . 60)
2650 (alignment-distances . (15)))
2652 \overrideProperty Score.NonMusicalPaperColumn.line-break-system-details #'((Y-offset . 100)
2653 (alignment-distances . (15)))
2656 \new Voice { \repeat unfold 15 { c'4 c' c' c' } }
2659 \repeat unfold 15 { d'4 d' d' d' }
2666 Dem @code{line-break-system-details}-Attribut des
2667 @code{NonMusicalPaperColumn}-Grobs werden zwei unterschiedliche Eigenschaften
2668 zugewiesen. Auch wenn die Aliste der Attribute von
2669 @code{line-break-system-details} sehr viel mehr Platzierungsparameter
2670 akzeptiert (wie etwa ein korrespondierendes @code{X-offset}-Paar), müssen
2671 hier nur die Parameter @code{Y-offset} und
2672 @code{alignment-distances} gesetzt werden, um den vertikalen Beginn
2673 jedes Systems und jeder Systemgruppe zu kontrollieren. @code{Y-offset}
2674 bestimmt also die vertikale Position von Systemgruppen und @code{alignment-distances}
2675 die vertikale Position von einzelnen Notensystemen.
2677 @lilypond[verbatim,quote,staffsize=16]
2678 \header { tagline = ##f }
2679 \paper { left-margin = 0\mm }
2685 \overrideProperty Score.NonMusicalPaperColumn.line-break-system-details #'((Y-offset . 0)
2686 (alignment-distances . (30 10)))
2688 \overrideProperty Score.NonMusicalPaperColumn.line-break-system-details #'((Y-offset . 60)
2689 (alignment-distances . (10 10)))
2691 \overrideProperty Score.NonMusicalPaperColumn.line-break-system-details #'((Y-offset . 100)
2692 (alignment-distances . (10 30)))
2695 \new Voice { \repeat unfold 15 { c'4 c' c' c' } }
2698 \new Staff { \repeat unfold 15 { d'4 d' d' d' } }
2699 \new Staff { \repeat unfold 15 { e'4 e' e' e' } }
2706 Einige Dinge sollten beachtet werden:
2709 @item Wenn @code{alignment-distances} benutzt wird, werden Gesangstextzeilen
2710 nicht als ein System gezählt.
2712 @item Die Einheiten der Zahlen, die für @code{X-offset},
2713 @code{Y-offset} und @code{alignment-distances} benutzt werden, werden als
2714 Vielfaches des Abstandes zwischen zwei Notenlinien gewertet. Positive
2715 Werte verschieben Systeme und Gesangstext nach oben, negative Werte nach
2718 @item Weil die Einstellungen von @code{NonMusicalPaperColumn #'line-break-system-details}
2719 es möglich machen, Notensysteme und Gruppen an beliebigen Stellen auf der
2720 Seite zu platzieren, kann man damit auch Ränder überschreiben oder sogar
2721 Notensysteme übereinander platzieren. Sinnvolle Werte für diese
2722 Parameter werden derartiges Verhalten vermeiden.
2731 @node Vermeidung von vertikalen Zusammenstößen
2732 @subsection Vermeidung von vertikalen Zusammenstößen
2733 @translationof Vertical collision avoidance
2735 @cindex Vermeidung von vertikalen Zusammenstößen
2736 @cindex Zusammenstöße, vertikal, vermeiden
2737 @cindex vertikale Zusammenstöße, vermeiden
2738 @cindex Kollisionen, vertikal, vermeiden
2740 @funindex outside-staff-priority
2741 @funindex outside-staff-padding
2742 @funindex outside-staff-horizontal-padding
2744 Intuitiv gibt es in der Notation einige Objekte, die zu dem Notensystem
2745 gehören, und einige andere, die immer außerhalb des Notensystems
2746 positioniert werden sollten. Zu diesen letzteren gehören etwa
2747 Übungszeichen, Textbeschriftung und Dynamikbezeichnung (die als
2748 Objekte außerhalb des Systems bezeichnet werden können). LilyPonds
2749 Regeln um diese Objekte zu positionieren lautet: so nah am Notensystem
2750 wie möglich, aber gerade so weit weg, dass sie nicht mit anderen
2751 Objekten zusammenstoßen.
2753 Dabei setzt LilyPond die @code{outside-staff-priority}-Eigenschaft
2754 ein um herauszufinden, ob ein Grob ein Objekt außerhalb des Systems
2755 ist: wenn @code{outside-staff-priority} eine Zahl ist, dann handelt
2756 es sich um ein Objekt außerhalb des Systems. Zusätzlich teilt
2757 @code{outside-staff-priority} noch mit, in welcher Reihenfolge
2758 die Objekte außerhalb des Systems gesetzt werden sollen.
2760 Zuerst werden alle Objekte gesetzt, die nicht außerhalb des Systems
2761 gehören. Dann werden die Objekte außerhalb des Systems nach dem Wert
2762 ihrer @code{outside-staff-priority} (in aufsteigender Anordnung)
2763 sortiert. Eins nach dem anderen werden diese Objekte schließlich
2764 genommen und so platziert, dass sie nicht mit den Objekten zusammenstoßen,
2765 die bereits platziert worden sind. Wenn also zwei Objekte außerhalb
2766 des Systems um den gleichen Platz streiten, wird das mit dem
2767 geringeren Wert von @code{outside-staff-priority} näher an das
2768 entsprechende Notensystem gesetzt.
2770 @lilypond[quote,ragged-right,relative=2,verbatim]
2773 \once \override TextScript.outside-staff-priority = #1
2774 c4_"Text"\pp % this time the text will be closer to the staff
2776 % by setting outside-staff-priority to a non-number,
2777 % we disable the automatic collision avoidance
2778 \once \override TextScript.outside-staff-priority = ##f
2779 \once \override DynamicLineSpanner.outside-staff-priority = ##f
2780 c4_"Text"\pp % now they will collide
2783 Der Platz, der zwischen einem Objekt außerhalb des Systems und
2784 dem vorhergehenden Objekt eingefügt werden kann (auch als
2785 padding bezeichnet), kann durch @code{outside-staff-padding}
2786 kontrolliert werden.
2788 @lilypond[quote,ragged-right,relative=2,verbatim,staffsize=18]
2789 \once \override TextScript.outside-staff-padding = #0
2790 a'^"This text is placed very close to the note"
2791 \once \override TextScript.outside-staff-padding = #3
2792 c^"This text is padded away from the previous text"
2793 c^"This text is placed close to the previous text"
2796 Standardmäßig werden Objekte außerhalb des Systems so gesetzt,
2797 dass sie eine horizontale Überschneidung mit einem der
2798 vorher gesetzten Grobs vermeiden. Das kann zu Situationen
2799 führen, in denen Objekte sehr dicht nebeneinander gesetzt
2800 werden. Der vertikale Platz zwischen Notensystemen kann
2801 auch gesetzt werden, sodass Objekte außerhalb des Systems
2802 ineinander greifen. Mit der Eigenschaft
2803 @code{outside-staff-horizontal-padding} können Objekte vertikal
2804 verschoben werden und derartige Situationen kommen nicht
2807 @lilypond[quote,ragged-right,relative=2,verbatim]
2808 % the markup is too close to the following note
2812 % setting outside-staff-horizontal-padding fixes this
2814 \once \override TextScript.outside-staff-horizontal-padding = #1
2825 @node Horizontale Abstände
2826 @section Horizontale Abstände
2827 @translationof Horizontal spacing
2829 @cindex horizontale Platzierung
2830 @cindex horizontale Anordnung
2831 @cindex Anordnung, horizontal
2834 * Überblick über horizontale Abstände::
2835 * Eine neuer Bereich mit anderen Abständen::
2836 * Horizontale Abstände verändern::
2838 * Proportionale Notation::
2842 @node Überblick über horizontale Abstände
2843 @subsection Überblick über horizontale Abstände
2844 @translationof Horizontal spacing overview
2846 Die Setzmaschine interpretiert unterschiedliche Notendauern als
2847 dehnbare Abstände (engl. spring) unterschiedlicher Länge. Längere
2848 Dauern erhalten mehr Platz, kürzere weniger. Die kürzeste Dauer
2849 erhält eine feste Breite (die mit @code{shortest-duration-space}
2850 im @code{SpacingSpanner}-Objekt kontrolliert werden kann). Je
2851 länger die Dauer, umso mehr Platz erhält die Note: wenn ihre
2852 Dauer verdoppelt wird, wird ein bestimmter Platz hinzugefügt
2853 (dessen Breite durch @code{spacing-increment} bestimmt werden
2856 Das folgende Stück beispielsweise enthält Halbe, Viertel und Achtel.
2857 Die Achtelnote wird gefolgt von einem Notenkopfabstand (NKA). Die
2858 Viertel wird von 2 NKA gefolgt, die Halbe von 3 NKA usw.
2860 @lilypond[quote,fragment,verbatim,relative=1]
2861 c2 c4. c8 c4. c8 c4. c8 c8
2865 Normalerweise ist @code{spacing-increment} definiert als 1.2 mal
2866 der Abstand zwischen zwei Notenlinien, was in etwa die Breite eines
2867 Notenkopfes ist. @code{shortest-duration-space} ist definiert als
2868 2.0, was bedeutet, dass die kürzeste Note 2.4 Notenlinienabstände
2869 2.0 mal der Wert von @code{spacing-increment}) horizontalen
2870 Abstand erhält. Der Abstand wird von der linken Kante des Symbols
2871 errechnet, so dass die kürzeste Note üblicherweise von 1 NKA
2872 Abstand gefolgt wird.
2874 Wenn diese Herangehensweise konsequent angewandt würde, würde eine
2875 einzige Zweiunddreißigstel eine Partitur, in der vor allem Achtel und
2876 Sechzehntel vorkommen, sehr weit auseinanderdehnen. Die kürzeste
2877 Note wäre nun keine Sechzehntel mehr, sondern eine Zweiunddreißigstel,
2878 wodurch an jede Note der Wert von 1 NKA hinzugefügt würde. Um das
2879 zu vermeiden, ist die kürzeste Dauer für die Platzverteilung nicht die
2880 kürzeste Note einer Partitur, sondern die, die am häufigsten vorkommt.
2882 Die Notendauer, die am häufigsten vorkommt, wird auf folgende
2883 Weise bestimmt: in jedem Takt wird die kürzeste Note bestimmt. Die
2884 häufigste kürzeste Note wird dann als Grundlage für die Platzverteilung
2885 der Noten herangezogen, mit der Bedingung, dass diese kürzeste
2886 Note immer ein Achtel oder kürzer sein soll. Die kürzeste Dauer
2887 wird ausgegeben, wenn @code{lilypond} mit der Option @option{--verbose}
2890 Diese Dauern können aber auch angepasst werden. Wenn Sie die Eigenschaft
2891 @code{common-shortest-duration} in dem @code{SpacingSpanner} setzen,
2892 dann wird hiermit die Grunddauer für die Platzverteilung eingestellt.
2893 Die maximale Dauer für diesen Grundwert (normalerweise eine Achtel)
2894 wird definiert mit @code{base-shortest-duration}.
2896 @funindex common-shortest-duration
2897 @funindex base-shortest-duration
2898 @funindex stem-spacing-correction
2901 Noten, die noch kürzer sind als die häufigste kürzeste Note, werden
2902 durch einen Platz voneinander getrennt, der proportional zu ihrer
2903 Dauer in Beziehung zur häufigsten kürzesten Note ist. Wenn also
2904 nur ein paar Sechzehntel zu dem obigen Beispiel hinzugefügt werden,
2905 würden sie von 1/2 NKA gefolgt werden:
2907 @lilypond[quote,fragment,verbatim,relative=2]
2908 c2 c4. c8 c4. c16[ c] c4. c8 c8 c8 c4 c4 c4
2911 In dem @emph{Aufsatz zum automatisierten Notensatz} wurde erklärt, dass die
2912 Richtung der Notenhälse die Platzverteilung beeinflusst (siehe
2913 @ressay{Optischer Ausgleich}). Das wird
2914 kontrolliert durch die @code{stem-spacing-correction}-Eigenschaft
2915 in dem @code{NoteSpacing}-Objekt. Dieses Objekt wird für jeden
2916 @code{Voice}-Kontext erstellt. Das @code{StaffSpacing}-Objekt (in
2917 einem @code{Staff}-Kontext erstellt) enthält die gleiche Eigenschaft,
2918 um die Verteilung von Hälsen neben Taktlinien zu kontrollieren. In
2919 dem folgenden Beispiel werden diese Einstellungen gezeigt, einmal
2920 mit den Standardwerten und dann mit größeren Werten, damit man sie
2923 @lilypond[quote,ragged-right]
2927 \override Staff.NoteSpacing.stem-spacing-correction = #1.5
2928 \override Staff.StaffSpacing.stem-spacing-correction = #1.5
2934 Proportionale Notation ist unterstützt, siehe @ref{Proportionale Notation}.
2937 Aufsatz über den automatischen Notensatz:
2938 @ressay{Optischer Ausgleich}.
2943 Referenz der Interna:
2944 @rinternals{SpacingSpanner},
2945 @rinternals{NoteSpacing},
2946 @rinternals{StaffSpacing},
2947 @rinternals{NonMusicalPaperColumn}.
2951 Es gibt keine sinnvolle Möglichkeit, die horizontale Verteilung der
2952 Noten zu unterdrücken. Die folgende Problemumgehung, mit der
2953 dehnbare Abstände (padding) eingesetzt werden, kann benutzt
2954 werden, um zusätzlichen Platz in eine Partitur einzufügen.
2957 \override Score.NonMusicalPaperColumn.padding = #10
2960 Es gibt derzeit keine Möglichkeit, den Platz zu verringern.
2963 @node Eine neuer Bereich mit anderen Abständen
2964 @subsection Eine neuer Bereich mit anderen Abständen
2965 @translationof New spacing area
2967 @cindex horizontale Notenabstände, Abschnitte definierten
2968 @cindex Notenabstände, Abschnitte definieren
2969 @cindex Abschnitte definieren, Notenabstände
2971 Neue Abschnitte mit unterschiedlichen Notenabstandsparametern
2972 können mit dem Befehl @code{newSpacingSection} begonnen werden.
2973 Das ist hilfreich, wenn in verschiedenen Abschnitten die
2974 Verhältnisse von kurzen und langen Noten sehr unterschiedlich
2977 Im folgenden Beispiel wird durch die neue Taktart ein neuer
2978 Abschnitt begonnen, in dem die Sechzehntel weiter außeinander
2979 gesetzt werden sollen.
2981 @lilypond[relative,fragment,verbatim,quote]
2984 c8 c c4 c16[ c c8] c4
2990 Der @code{\newSpacingSection}-Befehl erstellt ein neues
2991 @code{SpacingSpanner}-Objekt, weshalb auch neue Anpassungen
2992 mit dem @code{\override}-Befehl an dieser Stelle eingesetzt
2999 Referenz der Interna:
3000 @rinternals{SpacingSpanner}.
3003 @node Horizontale Abstände verändern
3004 @subsection Horizontale Abstände verändern
3005 @translationof Changing horizontal spacing
3007 @cindex Notenabstände, horizontal
3008 @cindex horizontale Abstände
3009 @cindex horizontale Notenabstände
3011 Die horizontalen Abstände können mit der
3012 @code{base-shortest-duration}-Eigenschaft
3013 verändert werden. In den folgenden Beispielen
3014 werden die gleichen Noten eingesetzt, zuerst
3015 ohne die Eigenschaft zu verändern, im zweiten
3016 Beispiel dann mit einem anderen Wert. Größere
3017 Werte für @code{ly:make-moment} ergeben dichtere
3018 Noten. @code{ly:make-moment} erstellt eine Dauer,
3019 die als Bruch notiert wird, sodass @code{1 4}
3020 eine größere Dauer ist als @code{1 16}.
3022 @lilypond[verbatim,line-width=12\cm]
3025 g'4 e e2 | f4 d d2 | c4 d e f | g4 g g2 |
3026 g4 e e2 | f4 d d2 | c4 e g g | c,1 |
3027 d4 d d d | d4 e f2 | e4 e e e | e4 f g2 |
3028 g4 e e2 | f4 d d2 | c4 e g g | c,1 |
3033 @lilypond[verbatim,line-width=12\cm]
3036 g'4 e e2 | f4 d d2 | c4 d e f | g4 g g2 |
3037 g4 e e2 | f4 d d2 | c4 e g g | c,1 |
3038 d4 d d d | d4 e f2 | e4 e e e | e4 f g2 |
3039 g4 e e2 | f4 d d2 | c4 e g g | c,1 |
3044 \override SpacingSpanner.base-shortest-duration = #(ly:make-moment 1/16)
3053 Standardmäßig wird die Platzverteilung in Triolen und andern
3054 rhythmischen Aufteilungen nach verschiedenen nicht von der
3055 Dauer abgeleiteten Faktoren (wie Versetzungszeichen,
3056 Schlüsselwechseln usw.) berechnet. Um diese Symbole zu
3057 ignorieren und eine gleichmäßige Verteilung der Noten
3058 zu erzwingen, kann die gleichmäßige Dehnung (engl.
3059 uniform stretching) zu Beginn einer Partitur
3060 mit @code{Score.SpacingSpanner #'uniform-stretching} eingeschaltet
3063 @lilypond[quote,ragged-right,verbatim]
3082 \override SpacingSpanner.uniform-stretching = ##t
3088 Wenn @code{strict-note-spacing} eingestellt ist, werden Noten
3089 gesetzt, ohne dass Schlüssel, Taktlinie oder Verzierungsnoten
3090 zusätzlichen Platz erhalten.
3092 @lilypond[quote,ragged-right,relative=2,fragment,verbatim]
3093 \override Score.SpacingSpanner.strict-note-spacing = ##t
3094 \new Staff { c8[ c \clef alto c \grace { c16 c } c8 c c] c32[ c32] }
3104 @subsection Zeilenlänge
3105 @translationof Line length
3107 @cindex Seitenumbrüche
3108 @cindex Umbrechen von Seiten
3110 @cindex Länge von Zeilen
3113 @funindex line-width
3114 @funindex ragged-right
3115 @funindex ragged-last
3117 @c Although line-width can be set in \layout, it should be set in paper
3118 @c block, to get page layout right.
3119 @c Setting indent in \paper block makes not much sense, but it works.
3121 @c Bit verbose and vague, use examples?
3122 Die grundlegenden Einstellungen, die Einfluss auf die Zeilenlänge
3123 haben, sind @code{indent} (Einzug) und @code{line-width}
3124 (Zeilenbreite). Sie werden in der @code{\layout}-Umgebung
3125 eingestellt. Der erste Befehl bestimmt den Einzug der ersten
3126 Zeile, der zweite die Zeilenlänge der weiteren Notenzeilen.
3128 Wenn @code{ragged-right} eingestellt ist (als in der
3129 @code{\layout}-Umgebung auf den Wert @code{#t} gesetzt wurde),
3130 werden die Systeme linksbündig gesetzt und nicht bis zum
3131 rechten Rand hin durchgezogen, sondern den Noten entsprechend
3132 gesetzt. Das ist oftmals nützlich für kleine Notenfragmente
3133 und um zu überprüfen, wie eng die Noten natürlicherweise
3134 gesetzt werden würden. Die normale Einstellung ist unwahr
3135 (@code{#f}), aber wenn eine Partitur nur aus einer Zeile besteht,
3136 ist der Standardwert wahr.
3138 Die Option @code{ragged-last} verhält sich ähnlich zu @code{ragged-right},
3139 aber wirkt sich nur auf die letzte Zeile eines Stückes aus.
3140 Für diese letzte Zeile gibt es keine Einschränkungen. Das
3141 Resultat erinnert an Textabsätze im Blocksatz, wo die letzte
3142 Zeile des Absatzes mit ihrer natürlichen Länge gesetzt wird.
3143 @c Note that for text there are several options for the last line.
3144 @c While Knuth TeX uses natural length, lead typesetters use the same
3145 @c stretch as the previous line. eTeX uses \lastlinefit to
3146 @c interpolate between both these solutions.
3161 @node Proportionale Notation
3162 @subsection Proportionale Notation
3163 @translationof Proportional notation
3165 LilyPond hat Unterstützung für proportionale Notation. Dabei handelt
3166 es sich um eine horizontale Platzverteilung, die jeder Note einen
3167 exakt ihrer Dauer entsprechenden Platz zuordnet. Man kann es vergleichen
3168 mit der Notenplatzierung auf einem Raster. In einigen Partituren
3169 des späten 20. und frühen 21. Jahrhunderts wird dies proportionale
3170 Notation benutzt, um sehr komplizierte rhythmische Verhältnisse
3171 klarer darzustellen, oder um einen Zeitstrahl oder ähnliche Graphiken
3172 direkt in die Partitur zu integrieren.
3174 LilyPond hat Unterstützung für fünf verschiedene Einstellungen der
3175 proportionalen Notation, die alle zusammen oder jede für sich
3176 benutzt werden können:
3179 @item @code{proportionalNotationDuration} (proportionale Notendauer)
3180 @item @code{uniform-stretching} (gleichmäßige Dehnung)
3181 @item @code{strict-note-spacing} (strenge Notenverteilung)
3182 @item @code{\remove "Separating_line_group_engraver"} (entferne Liniengruppentrennungsengraver)
3183 @item @code{\override PaperColumn.used = ##t} (PapierSpalte benutzt = wahr)
3186 In den Beispielen unten werden diese fünf unterschiedlichen Einstellungen
3187 für die proportionale Notation vorgestellt und ihre Wirkungen
3188 untereinander illustriert.
3190 Es soll mit diesem 1 Takt langen Beispiel begonnen werden, in welchem
3191 die klassischen Abstände und Flattersatz (ragged-right) eingesetzt werden:
3193 @lilypond[quote,verbatim,ragged-right]
3196 \new RhythmicStaff {
3200 c'16 c'16 c'16 c'16 c'16
3207 Die Halbe, mit der der Takt beginnt, braucht weitaus weniger
3208 Platz als die Hälfte des Taktes. Gleichermaßen haben die
3209 Sechzehntel und die Sechzehntel-Quintolen (oder Zwanzigstel),
3210 mit denen der Takt endet, insgesamt weitaus mehr als die Hälfte
3213 Im klassischen Notensatz kann dieses Verhalten genau das gewünschte
3214 Ergebnis bringen, weil dadurch horizontaler Platz von der Halben
3215 weggenommen werden kann und so insgesamt Platz in dem Takt eingespart
3218 Wenn allerdings ein Zeitstrahl oder andere zeitliche ablaufende
3219 Graphiken über oder unter dem Takt eingefügt werden soll, braucht man
3220 eine Notenplatzierung, die exakt der von ihnen eingenommenen Dauer
3221 entspricht. Auf folgende Art wird die proportionale Notation
3224 @lilypond[quote,verbatim,ragged-right]
3227 \new RhythmicStaff {
3231 c'16 c'16 c'16 c'16 c'16
3238 proportionalNotationDuration = #(ly:make-moment 1/20)
3244 Die Halbe zu Beginn des Taktes und die schnelleren Noten in der zweiten
3245 Takthälfte nehmen jetzt genau den gleichen horizontalen Platz ein. Jetzt
3246 könnte man einen Zeitstrahl mit dem Takt synchronisieren.
3248 Die Einstellung von @code{proportionalNotationDuration} gehört zum
3249 @code{Score}-Kontext. Kontexteinstellungen können an drei verschiedenen
3250 Stellen in der Quelldatei geschrieben werden: in einer @code{\with}-Umgebung,
3251 in einer @code{\context}-Umgebung oder direkt in den Noten mit dem
3252 @code{\set}-Befehl. Alle drei Positionen sind gleichwertig und es hängt
3253 vom Benutzer ab, welche bevorzugt wird.
3255 Die Eigenschaft @code{proportionalNotationDuration} braucht ein Argument,
3256 welches die Referenzdauer ist, anhand welcher alle Noten platziert werden.
3257 Hier wird die LilyPond Scheme-Funktion @code{make-moment} eingesetzt. Sie
3258 braucht zwei Argumente: einen Zähler und einen Nenner, die einen Bruch einer
3259 Ganzen darstellen. Die Funktion @code{(ly:make-moment 1/20)} ergibt also
3260 eine Referenzdauer von einer Zwanzigstel. Genauso gut können etwa die Dauern
3261 @code{(ly:make-moment 1/16)}, @code{(ly:make-moment 1/8)} oder
3262 @code{(ly:make-moment 3/97)} eingesetzt werden.
3264 Die richtige Referenzdauer, mit der eine vernünftige Verteilung der Noten
3265 proportional möglich ist, muss durch Ausprobieren herausgefunden werden.
3266 Dabei sollte man mit einer Dauer beginnen, die der kleinsten Note des
3267 Stückes nahekommt. Kleine Referenzdauern lassen die Noten sehr gedehnt
3268 erscheinen, größere Referenzdauern zwingen sie dichter zusammen.
3270 @lilypond[quote,verbatim,ragged-right]
3273 \new RhythmicStaff {
3277 c'16 c'16 c'16 c'16 c'16
3284 proportionalNotationDuration = #(ly:make-moment 1/8)
3291 \new RhythmicStaff {
3295 c'16 c'16 c'16 c'16 c'16
3302 proportionalNotationDuration = #(ly:make-moment 1/16)
3309 \new RhythmicStaff {
3313 c'16 c'16 c'16 c'16 c'16
3320 proportionalNotationDuration = #(ly:make-moment 1/32)
3326 Man muss beachten, dass die Referenzdauer nicht zu groß ist
3327 (wie die Achtel in dem Beispiel oben), denn dadurch werden
3328 die Noten so dicht gesetzt, dass sich eventuell sogar Notenköpfe
3329 von sehr kleinen Notenwerten überschneiden können. Die proportionale
3330 Notation nimmt üblicherweise mehr Platz ein als die klassische
3331 Platzverteilung. Der rhythmischen Klarheit muss ein eng gesetztes
3332 Notenbild geopfert werden.
3334 In Folgenden soll betrachtet werden, wie sich überlappende
3335 rhythmische Aufteilungen am besten positioniert werden. Als Referenz
3336 wird das erste Beispiel herangezogen, zu welchem ein zweites
3337 System mit anderen rhythmischen Werten hinzugefügt wird:
3339 @lilypond[quote,verbatim,ragged-right]
3342 \new RhythmicStaff {
3346 c'16 c'16 c'16 c'16 c'16
3349 \new RhythmicStaff {
3351 c'8 c'8 c'8 c'8 c'8 c'8 c'8 c'8 c'8
3358 Die Platzaufteilung ist schlecht, weil die gleichlangen Noten des
3359 untersten Systems nicht gleichmäßig verteilt sind. Im klassischen
3360 Notensatz kommen komplexe rhythmische Verhältnisse wie dieses sehr
3361 selten vor, sodass der Notensatz nicht in Hinsicht auf sie optimiert
3362 ist. @code{proportionalNotationDuration} hilft in
3363 dieser Situation deutlich:
3365 @lilypond[quote,verbatim,ragged-right]
3368 \new RhythmicStaff {
3372 c'16 c'16 c'16 c'16 c'16
3375 \new RhythmicStaff {
3377 c'8 c'8 c'8 c'8 c'8 c'8 c'8 c'8 c'8
3384 proportionalNotationDuration = #(ly:make-moment 1/20)
3390 Aber bei sehr genauer Betrachtung sind die Noten der zweiten Hälfte
3391 der Nonole doch immer noch eine Spur weiter gesetzt als die Noten
3392 der ersten Hälfte. Um wirklich gleichmäßige Abstände zu erzwingen,
3393 sollte auch noch die gleichmäßige Dehnung (@code{uniform-stretching}) angeschaltet werden, die eine Eigenschaft von @code{SpacingSpanner} ist:
3395 @lilypond[quote,verbatim,ragged-right]
3398 \new RhythmicStaff {
3402 c'16 c'16 c'16 c'16 c'16
3405 \new RhythmicStaff {
3407 c'8 c'8 c'8 c'8 c'8 c'8 c'8 c'8 c'8
3414 proportionalNotationDuration = #(ly:make-moment 1/20)
3415 \override SpacingSpanner.uniform-stretching = ##t
3421 Das Beispiel mit den zwei Systemen ist nun exakt nach den
3422 rhythmischen Werten der Noten gesetzt, sodass ein Zeitstrahl
3423 oder ähnliches eingefügt werden könnte.
3425 Alle Einstellungen zur proportionalen Notation erwarten,
3426 dass die @code{uniform-stretching}-Eigenschaft des
3427 @code{SpacingSpanner}-Objekts auf wahr (@code{#t}) gesetzt wird. Andernfalls
3428 kann es vorkommen, dass bestimmte Abstände (etwa von
3429 unsichtbaren Noten) nicht richtig gesetzt werden.
3431 Das @code{SpacingSpanner}-Objekt ist ein abstraktes Grob, dass sich im
3432 @code{Score}-Kontext befindet. Genauso wie die Einstellungen
3433 von @code{proportionalNotationDuration} können auch diese
3434 Veränderungen an den drei Stellen in der Quelldatei vorkommen:
3435 in der @code{\with}-Umgebung innerhalb von @code{Score}, in
3436 einer @code{\context}-Umgebung oder direkt im Notentext.
3438 Standardmäßig gibt es nur ein @code{SpacingSpanner} pro @code{Score}.
3439 Das heißt, dass @code{uniform-stretching} für die gesamte Partitur
3440 (d.h. für die Reichweite von @code{Score}) entweder an- oder
3441 ausgeschaltet ist. Man kann allerdings in einer Partitur unterschiedliche
3442 Abschnitte mit verschiedenem Platzierungsverhalten definieren.
3443 Hierzu ist der Befehl @code{\newSpacingSection} da. Siehe auch @ref{Eine neuer Bereich mit anderen Abständen}.
3445 Im Folgenden soll gezeigt werden, wie sich der
3446 @code{Separating_line_group_engraver}
3447 auswirkt und warum er normalerweise für proportionale Notation ausgeschaltet wird.
3448 In diesem Beispiel wird verdeutlicht, dass vor jeder ersten Note eines Notensystems
3449 immer etwas zusätzlicher Platz gesetzt wird:
3451 @lilypond[quote,verbatim,ragged-right]
3463 Der gleiche horizontale zusätzliche Platz wird vor eine Noten gesetzt, wenn sie
3464 einer Taktart, einem Schlüssel oder einer Tonartbezeichnung folgt.
3465 Dieser Platz wird durch @code{Separating_line_group_engraver}
3466 eingefügt; wenn wir ihn aus der Partitur entfernen, entfällt
3467 auch dieser zusätzliche Platz:
3469 @lilypond[quote,verbatim,ragged-right]
3475 \remove "Separating_line_group_engraver"
3483 Nichtmusikalische Elemente wie Takt- und Tonartangaben, Schlüssel und
3484 Versetzungszeichen sind problematisch in proportionaler
3485 Notation. Keine dieser Elemente hat eine rhythmische Dauer, aber
3486 alle brauchen horizontalen Platz. Das Problem wird auf unterschiedliche
3489 Es ist manchmal möglich, Probleme mit Tonarten zu lösen, indem keine
3490 benutzt werden. Das ist durchaus eine ernstzunehmende Option, weil
3491 die meisten Partituren mit proportionaler Notation für heutige
3492 Musik geschrieben werden. Ähnliches gilt für Taktarten, insbesondere,
3493 wenn ein Zeitstrahl in die Partitur eingearbeitet werden soll.
3494 In den meisten Partituren kommt jedoch irgendeine Taktart vor.
3495 Schlüssel und Versetzungszeichen sind noch wichtiger; auf
3496 sie kann selten verzichtet werden.
3498 Eine Lösungsmöglichkeit ist es, die @code{strict-note-spacing}-Eigenschaft
3499 des @code{SpacingSpanner}-Objekts zu benutzen. Zum Vergleich
3500 die beiden Partituren unten:
3502 @lilypond[quote,verbatim,ragged-right]
3504 \set Score.proportionalNotationDuration = #(ly:make-moment 1/16)
3514 \set Score.proportionalNotationDuration = #(ly:make-moment 1/16)
3515 \override Score.SpacingSpanner.strict-note-spacing = ##t
3525 Bei beiden handelt es sich um proportionale Notation, aber
3526 die Platzverteilung im oberen Beispiel ist zu weit wegen
3527 des Schlüsselwechsels. Die Platzverteilung des zweiten
3528 Beispiels dagegen bleibt rhythmisch korrekt.
3529 @code{strict-note-spacing} bewirkt, dass Takt- und
3530 Tonartbezeichnungen, Schlüssel und Versetzungszeichen
3531 keine Rolle bei der Berechnung der Abstände spielen.
3533 Zusätzlich zu den hier vorgestellten Einstellungen gibt es
3534 noch eine Reihe von Möglichkeiten, die oft in proportionaler
3535 Notation benutzt werden. Dazu gehören:
3538 @item @code{\override SpacingSpanner.strict-grace-spacing = ##t}
3539 @item @code{tupletFullLength = ##t}
3540 @item @code{\override Beam.breakable = ##t}
3541 @item @code{\override Glissando.breakable = ##t}
3542 @item @code{\override TextSpanner.breakable = ##t}
3543 @item @code{\remove "Forbid_line_break_engraver" in the Voice context}
3546 Diese Einstellungen bewirken, dass auch Verzierungsnoten proportional
3547 gesetzt werden, dass Klammern von rhythmischen Gruppen bis zu den
3548 Anfangs- und Endpunkten ausgedehnt werden und lassen dehnbare
3549 Objekte wie Balken und Glissandi auch über Taktstriche hinweg zu.
3553 @ref{Eine neuer Bereich mit anderen Abständen}.
3559 @node Die Musik auf weniger Seiten zwingen
3560 @section Die Musik auf weniger Seiten zwingen
3561 @translationof Fitting music onto fewer pages
3563 Manchmal kommt es vor, dass nur ein oder zwei Systeme auf die
3564 nächste Seite geraten, obwohl es so aussieht, als ob auf der
3565 vorigen Seite genügend Platz ist, um diese Systeme auch noch
3568 Wenn man derartige Platzierungsprobleme untersucht, ist die
3569 Funktion @code{annotate-spacing} von sehr großer Hilfe. Hiermit
3570 wird in den Musiksatz zusätzlich Information darüber ausgegeben,
3571 wieviel Platz bestimmten Parametern zugewiesen wird. Genaueres
3572 hierzu in @ref{Abstände anzeigen lassen}.
3575 * Abstände anzeigen lassen::
3576 * Abstände verändern::
3580 @node Abstände anzeigen lassen
3581 @subsection Abstände anzeigen lassen
3582 @translationof Displaying spacing
3584 @cindex Platzierung, Layouteinstellungen
3586 @funindex annotate-spacing
3588 Die Dimensionen von vertikalen und horizontalen Platzierungsvariablen,
3589 die veränderbar sind, lassen sich mit ihren aktuellen Werten im
3590 Notentext anzeigen, wenn man die Funktion
3591 @code{annotate-spacing} in der @code{\paper}-Umgebung einschaltet:
3593 @c need to have \book{} otherwise we get the separate systems. -hwn
3594 @lilypond[verbatim,quote]
3595 #(set-default-paper-size "a6" 'landscape)
3598 \paper { annotate-spacing = ##t }
3603 Alle Layoutdimensionen werden in Notenlinienzwischenräumen
3604 aufgelistet, unabhängig von den Einheiten, mit denen sie in der
3605 @code{\paper}- oder @code{\layout}-Umgebung definiert worden
3606 sind. In dem letzten Beispiel hat @code{paper-height} einen Wert von
3607 59.75 Notenlinienzwischenräumen und @code{staff-size}
3608 Systemhöhe) ist 20 Punkte. Dabei gilt:
3610 @multitable {1 Notenlinienzwischenraum} {Systemgröße)/4 * (25.4/72.27) mm}
3613 @tab = (25.4/72.27) mm
3615 @item 1 Notenlinienzwischenraum
3616 @tab = (@code{staff-size})/4 pts
3618 @tab = (@code{staff-size})/4 * (25.4/72.27) mm
3622 In diesem Fall ist ein @code{staff-space} (Notenlinienzwischenraum)
3623 etwa gleich 1.757 mm. Deshalb entspricht der Wert von 95.75
3624 @code{staff-space} für @code{paper-height} (Papierhöhe) 105 mm,
3625 die Höhe eines quer gelegten A6-Papiers. Die Paare (@var{a},@var{b}) sind
3626 Intervalle, wobei @var{a} der untere Rand und @var{b} der
3627 obere Rand des Intervalls.
3632 @ref{Die Notensystemgröße einstellen}
3638 @node Abstände verändern
3639 @subsection Abstände verändern
3640 @translationof Changing spacing
3642 Die Ausgabe von @code{annotate-spacing} bietet sehr viele
3643 Details zu den vertikalen Dimensionen einer Partitur. Zu Information,
3644 wie Seitenränder und andere Layout-Variablen geändert werden
3645 können, siehe @ref{Seitenlayout}.
3647 Neben Rändern gibt es einige weitere Optionen, Platz zu sparen:
3651 LilyPond kann die Systeme so dicht wie möglich platzieren (damit
3652 so viele Systeme wie möglich auf eine Seite passen), aber sie
3653 dann so anordnen, dass kein weißer Rand unten auf der Seite entsteht.
3657 system-system-spacing = #'((padding . 0) (basic-distance . 0.1))
3658 ragged-last-bottom = ##f
3664 Die Anzahl der Systeme kann erzwungen werden. Das kann auf
3665 zwei Arten helfen: wenn einfach nur ein Wert gesetzt wird, auch
3666 wenn es die gleiche Anzahl ist, die auch schon vorher von LilyPond
3667 erstellt wurde, kann manchmal dazu führen, dass mehr Systeme
3668 auf eine Seite gesetzt werden. Das liegt daran, dass ein
3669 Schritt im Notensatz ausgelassen wird, der die Seitenverteilung
3670 nur grob einschätzt, sodass eine bessere Seitenverteilung
3671 entsteht. Auch wenn man eine Verringerung der Anzahl an Systemen
3672 erzwingt, kann oft eine Seite eingespart werden. Wenn LilyPond
3673 die Musik etwa auf 11 Systeme verteilt, kann man die Benutzung von
3674 nur 10 Systemen erzwingen.
3683 Die Anzahl der Seiten kann erzwungen werden. Beispielsweise erzwingt
3684 folgender Code ein Layout mit zwei Seiten:
3693 Vermeidung (oder Verminderung) von Objekten, die den vertikalen Abstand von Systemen
3694 vergrößern, hilft oft. Die Verwendung von Klammern bei Wiederholungen
3695 (oder alternativen Wiederholungen)
3696 etwa braucht mehr Platz. Wenn die Noten innerhalb der Klammern auf
3697 zwei Systeme verteilt sind, brauchen sie mehr Platz, als wenn sie
3698 nur auf einer Zeile gedruckt werden.
3700 Ein anderes Beispiel ist es, Dynamik-Zeichen, die besonders
3701 weit @qq{hervorstehen}, zu verschieben.
3703 @lilypond[verbatim,quote,relative=1]
3705 e4 c g-\tweak X-offset #-2.7 -\tweak Y-offset #2.5 \f c
3709 Die horizontalen Abstände können mit der
3710 @code{SpacingSpanner}-Eigenschaft verändert werden. Siehe
3711 @ref{Horizontale Abstände verändern} für Einzelheiten. Dieses
3712 Beispiel zeigt die normalen Abstände:
3714 @lilypond[verbatim,quote]
3727 Das nächste Beispiel verändert @code{common-shortest-duration} (die
3728 häufigste kürzeste Note) von @code{1/4} zu @code{1/2}. Die Viertelnote
3729 ist dennoch die häufigste Note in diesem Abschnitt, sodass der
3730 Notentext zusammengedrängt, wird, wenn eine Halbe als Standard
3733 @lilypond[verbatim,quote]
3745 \override SpacingSpanner.common-shortest-duration = #(ly:make-moment 1/2)
3752 Die @code{common-shortest-duration}-Eigenschaft kann nicht
3753 dynamisch verändert werden, darum muss sie immer in der
3754 @code{\context}-Umgebung definiert werden und wirkt sich somit
3755 auf eine ganze @code{\score}-Umgebung aus.
3762 @ref{Horizontale Abstände verändern}.