]> git.donarmstrong.com Git - lilypond.git/blob - Documentation/de/user/tweaks.itely
d45c1da16bcce0360e3b488cb36653d76db219b9
[lilypond.git] / Documentation / de / user / tweaks.itely
1 @c -*- coding: utf-8; mode: texinfo; -*-
2 @c This file is part of lilypond.tely
3 @ignore
4     Translation of GIT committish: 433849e669b71058267108607969eea72403a5de
5
6     When revising a translation, copy the HEAD committish of the
7     version that you are working on.  See TRANSLATION for details.
8 @end ignore
9
10 @node Tweaking output
11 @chapter Tweaking output
12
13 In diesem Kapitel wird erklärt, wie man die Notenausgabe verändern
14 kann. In LilyPond kann man sehr viel konfigurieren, fast jedes 
15 Notenfragment kann geändert werden.
16
17
18 @menu
19 * Moving objects::              
20 * Fixing overlapping notation::  
21 * Common tweaks::               
22 * Default files::               
23 * Fitting music onto fewer pages::  
24 * Advanced tweaks with Scheme::  
25 * Avoiding tweaks with slower processing::  
26 @end menu
27
28
29 @node Moving objects
30 @section Moving objects
31
32 Es wird vielleicht eine Überraschung sein, aber LilyPond ist nicht 
33 perfekt. Einige Notationselemente können sich überschneiden. Das 
34 ist nicht schön, kann aber (in den meisten Fällen) sehr einfach
35 korrigiert werden.
36
37 @c  FIXME: find a better example for 5.1 Moving Objects.  -gp
38 @c  yes, I want this TODO to be visible to end-users.  It's better
39 @c  than having nothing at all.
40 TODO: Mit den neuen Abstandseigenschaften seit Version 2.12 sind die
41 jeweiligen Beispiele nicht mehr relevant. Sie zeigen jedoch immer noch 
42 machtvolle Eigenschaften von LilyPond und verbleiben deshalb in der 
43 Dokumentation, bis jemand bessere Beispiel zur Verfügung stellt.
44
45 @lilypond[quote,fragment,ragged-right,verbatim,relative=2]
46   % temporary code to break this example:
47   \override TextScript #'outside-staff-priority = ##f
48 e4^\markup{ \italic ritenuto } g b e
49 @end lilypond
50
51 @cindex Abstände füllen
52
53 Die einfachste Lösung ist es, Abstände zwischen Objekt und Note zu vergrößern 
54  (genauso auch für Fingersätze oder Dynamikzeichen). In 
55 LilyPond wird das durch Veränderung der @code{padding} (Füllungs)-Eigenschaft
56 erreicht, ihre Maßeinheit sind Notenzeilenabstände. Für die meisten 
57 Objekte ist der Wert etwa 1.0 oder weniger (das unterscheidet sich 
58 von Objekt zu Objekt). Hier soll der Abstand vergrößert werden, also
59 scheint 1.5 eine gute Wahl.
60
61 @lilypond[quote,fragment,ragged-right,verbatim,relative=2]
62   % temporary code to break this example:
63   \override TextScript #'outside-staff-priority = ##f
64 \once \override TextScript #'padding = #1.5
65 e4^\markup{ \italic ritenuto } g b e
66 @end lilypond
67
68 Das sieht besser aus, ist aber noch nicht groß genug. Nach einigen
69 Experimenten wird darum 2.3 genommen für diesen Fall. Diese Zahl
70 ist aber nur das Resultat einigen Probierens und persönlicher
71 Geschmack. Probieren Sie selber ein wenig herum und entscheiden 
72 Sie nach eigenem Geschmack.
73
74 Die @code{staff-padding}-Eigenschaft ist der vorigen sehr ähnlich. 
75  @code{padding} entscheidet über den minimalen Abstand zwischen einem
76 Objekt und dem nächsten anderen Objekt (meistens eine Note oder 
77 Notenzeile); @code{staff-padding} entscheidet über den minimalen
78 Abstand zwischen einem Objekt und dem Notensystem. Das ist nur ein 
79 kleiner Unterschied, aber hier wird das Verhalten demonstriert:
80
81 @lilypond[quote,fragment,ragged-right,verbatim,relative=2]
82   % temporary code to break this example:
83   \override TextScript #'outside-staff-priority = ##f
84 c4^"piu mosso" b a b
85 \once \override TextScript #'padding = #4.6
86 c4^"piu mosso" d e f
87 \once \override TextScript #'staff-padding = #4.6
88 c4^"piu mosso" fis a g
89 \break
90 c'4^"piu mosso" b a b
91 \once \override TextScript #'padding = #4.6
92 c4^"piu mosso" d e f
93 \once \override TextScript #'staff-padding = #4.6
94 c4^"piu mosso" fis a g
95 @end lilypond
96
97 @cindex Abstand, zusätzlicher
98 @cindex extra-offset
99
100 Eine andere Lösung ermöglicht vollständige Kontrolle über die Positionierung
101 eines Objektes sowohl horizontal als auch vertikal. Das wird mit der 
102 @code{extra-offset} (Zusätzlicher-Abstand)-Eigenschaft erreicht. Das 
103 ist etwas komplizierter und kann andere Probleme mit sich ziehen. Wenn 
104 Objekte mit dieser Eigenschaft verschoben werden, heißt das, dass 
105 LilyPond sie erst setzt, nachdem alle anderen Objekte positioniert 
106 worden sind. Deshalb können sich die Objekte am Ende überlagern.
107
108 @lilypond[quote,fragment,ragged-right,verbatim,relative=2]
109   % temporary code to break this example:
110   \override TextScript #'outside-staff-priority = ##f
111 \once \override TextScript #'extra-offset = #'( 1.0 . -1.0 )
112 e4^\markup{ \italic ritenuto } g b e
113 @end lilypond
114
115 Bei Verwendung von @code{extra-offset} bestimmt die erste Zahl über die
116 horizontale Verschiebung (nach links ist negativ), die zweite Zahl 
117 bestimmt die vertikale Verschiebung (nach oben ist positiv). Nach einigen 
118 Experimenten wurden hier folgende Werte für gut befunden:
119
120 @lilypond[quote,fragment,ragged-right,verbatim,relative=2]
121   % temporary code to break this example:
122   \override TextScript #'outside-staff-priority = ##f
123 \once \override TextScript #'extra-offset = #'( -1.6 . 1.0 )
124 e4^\markup{ \italic ritenuto } g b e
125 @end lilypond
126
127 @noindent
128 Auch diese Zahlen sind nur Resultat einigen Herumprobierens und Vergleichens 
129 der Ergebnisse. Sie wollen den Text vielleicht etwas höher oder etwas mehr 
130 nach links setzen. Versuchen Sie es selber und vergleichen Sie das Ergebnis.
131
132 Eine letzte Warnung: in diesem Kapitel haben wir den Befehl 
133
134 @example
135 \once \override TextScript @dots{}
136 @end example
137
138 @noindent 
139 benutzt. Dieser Befehl verändert die Anzeige des Textes für die nächste 
140 Note. Wenn die Note keinen Text zugeordnet hat, wird auch nichts 
141 verändert (und es wird @strong{nicht} nach dem nächsten Text gesucht). 
142 Um das Verhalten zu verändern, so dass alles, was nach dem Befehl
143 kommt, verändert wird, müssen Sie den Befehl @code{\once} weglassen. 
144 Um die Veränderung zu stoppen, benutzen Sie den Befehl @code{\revert}.
145 Das wird genauer im Kapitel
146 @ref{The \override command} erklärt.
147
148 @lilypond[quote,fragment,ragged-right,verbatim,relative=3]
149   % temporary code to break this example:
150   \override TextScript #'outside-staff-priority = ##f
151 c4^"piu mosso" b
152 \once \override TextScript #'padding = #4.6
153   a4 b
154 c4^"piu mosso" d e f
155 \once \override TextScript #'padding = #4.6
156 c4^"piu mosso" d e f
157 c4^"piu mosso" d e f
158 \break
159 \override TextScript #'padding = #4.6
160 c4^"piu mosso" d e f
161 c4^"piu mosso" d e f
162 \revert TextScript #'padding
163 c4^"piu mosso" d e f
164 @end lilypond
165
166 @seealso
167
168 @ref{The \override command}, @ref{Common tweaks}.
169
170
171 @node Fixing overlapping notation
172 @section Fixing overlapping notation
173
174 Im Kapitel @ref{Moving objects} wurde gezeigt, wie man Texte 
175 (@code{TextScript}-Objekte) verschiebt. Mit der gleichen 
176 Technik können auch andere Objektklassen verschoben werden, 
177 @code{TextScript} muss dann nur durch den Namen des Objektes 
178 ersetzt werden.
179
180 Um den Objektnamen zu finden, siehe die @q{@strong{see also}}-Hinweise 
181 am Ende des jeweiligen Abschnittes. Zum Beispiel am Ende des
182 Kapitels  @ref{Dynamics} findet sich:
183
184 @quotation
185 @seealso
186
187 Programmreferenz: @internalsref{DynamicText}, @internalsref{Hairpin}.
188 Vertikale Positionierung dieser Symbole wird mit
189 @internalsref{DynamicLineSpanner} erreicht.
190 @end quotation
191
192 @noindent
193 Um also Dynamik-Zeichen zu verschieben, muss
194
195 @example
196 \override DynamicLineSpanner #'padding = #2.0
197 @end example
198
199 benutzt werden. Es ist nicht genügend Platz, um jedes Objekt aufzulisten,
200 aber die gebräuchlichsten finden sich hier:
201
202 @multitable @columnfractions .33 .66
203 @headitem Objekttyp           @tab Objektbzeichnung
204 @item Dynamikzeichen (vertikal)     @tab @code{DynamicLineSpanner}
205 @item Dynamikzeichen (horizontal)   @tab @code{DynamicText}
206 @item Bindebögen                      @tab @code{Tie}
207 @item Phrasierungsbögen                     @tab @code{Slur}
208 @item Artikulationszeichen             @tab @code{Script}
209 @item Fingersatz                @tab @code{Fingering}
210 @item Text, z. B. @code{^"text"}  @tab @code{TextScript}
211 @item Übungs-/Textmarken    @tab @code{RehearsalMark}
212 @end multitable
213
214
215 @node Common tweaks
216 @section Common tweaks
217 Bestimmte Korrekturen sind so häufig, dass für sie schon fertige 
218 angepasste Befehle bereitgestellt sind, so etwa 
219  @code{\slurUp} um einen Bindebogen oberhalb anzuzeigen oder 
220 @code{\stemDown} um den Notenhals nach unten zu zwingen. Diese 
221 Befehle sind im Teil Alles über die Notation unter dem
222 entsprechenden Abschnitt erklärt.
223
224 Eine vollständige Liste aller Veränderungen, die für jeden Objekttypen 
225 (etwa Bögen oder Balken) zur Verfügung stehen, ist in der Programmreferenz
226 dargestellt. Viele Layoutobjekte benutzen jedoch gleiche Eigenschaften, 
227 die benutzt werden können, um eigene Einstellungen vorzunehmen.
228
229 @itemize @bullet
230
231 @cindex padding
232 @cindex Füllung
233
234 @item
235 @code{padding}-Eigenschaft kann gesetzt werden, um den Abstand zwischen 
236 Symbolen über oder unter den Noten zu vergrößern oder zu verkleinern. 
237 Das gilt für alle Objekte, die ein @code{side-position-interface} 
238 besitzen, also unterscheiden, auf welcher Seite der Note sie sich befinden.
239
240 @lilypond[quote,fragment,relative=1,verbatim]
241 c2\fermata
242 \override Script #'padding = #3
243 b2\fermata
244 @end lilypond
245
246 @lilypond[quote,fragment,relative=1,verbatim]
247 % This will not work, see below:
248 \override MetronomeMark #'padding = #3
249 \tempo 4=120
250 c1
251 % This works:
252 \override Score.MetronomeMark #'padding = #3
253 \tempo 4=80
254 d1
255 @end lilypond
256
257 Im zweiten Beispiel ist es sehr wichtig zu wissen, welcher Kontext 
258 für bestimmte Objekte zuständig ist. Weil das 
259  @code{MetronomeMark}-Objekt vom @code{Score}-Kontext gesetzt 
260 wird, werden Veränderungen innerhalb des @code{Voice}-Kontextes 
261 nicht berücksichtigt. Genauere Details im Kapitel
262 @ref{Constructing a tweak}.
263
264 @cindex extra-offset
265 @cindex zusätzlicher Abstand
266 @cindex Abstand, zusätzlicher
267
268 @item
269 Die @code{extra-offset}-Eigenschaft verschiebt Objekte, hier ist ein 
270 Zahlenpaar zur Angabe der Positionierung erforderlich. Die erste Nummer bestimmt 
271 die horizontale Bewegung, eine positive Zahl bewegt das Objekt nach rechts.
272 Die zweite Zahl bestimmt die vertikale Bewegung, eine positive Zahl bewegt 
273 das Objekt nach oben. Die 
274 @code{extra-offset}-Eigenschaft läuft auf unterster Ebene ab: Die 
275 Formatierungsmaschine ist sich der Veränderungen nicht bewusst.
276
277 Im folgenden Beispiel wird die zweite Fingersatzbezeichnung etwas nach 
278 links verschoben und 1,8 Notenzeilenabstände nach unten:
279
280 @lilypond[quote,fragment,relative=1,verbatim]
281 \stemUp
282 f-5
283 \once \override Fingering
284     #'extra-offset = #'(-0.3 . -1.8)
285 f-5
286 @end lilypond
287
288 @item
289 Die Verwendung der @code{transparent}-Eigenschaft druckt das entsprechende Objekt 
290 mit @qq{unsichtbarer Druckerschwärze}: Das Objekt wird nicht angezeigt, aber 
291 sein Verhalten bleibt bestehen. Das Objekt nimmt weiterhin Platz ein, es nimmt 
292 teil an Überschneidungen und deren Auflösung durch das Programm, Bögen und Balken 
293 können daran angebunden werden.
294
295 @cindex transparente Objekte
296 @cindex Entfernen von Objekten
297 @cindex Verstecken von Objekten
298 @cindex unsichtbare Objekte
299 Das nächste Beispiel zeigt, wie man unterschiedliche Stimmen mit 
300 Bindebögen verbinden kann. Normalerweise können Bindebögen nur 
301 zwei Noten der selben Stimme verbinden. Indem aber ein Bogen in einer 
302 anderen Stimme erstellt wird,
303
304 @lilypond[quote,fragment,relative=2]
305 << {
306   b8~ b8\noBeam
307 } \\ {
308   b[ g8]
309 } >>
310 @end lilypond
311
312 @noindent
313 und dann der erste Hals nach oben unsichtbar gemacht wird, scheint der 
314 Bindebogen die Stimme zu wechseln:
315
316
317 @lilypond[quote,fragment,relative=2,verbatim]
318 << {
319   \once \override Stem #'transparent = ##t
320   b8~ b8\noBeam
321 } \\ {
322   b[ g8]
323 } >>
324 @end lilypond
325
326 Damit der Hals den Bogen nicht zu sehr verkleinert, wird seine 
327 Länge (@code{length}) auf den Wert @code{8} gesetzt:
328
329 @lilypond[quote,fragment,relative=2,verbatim]
330 << {
331   \once \override Stem #'transparent = ##t
332   \once \override Stem #'length = #8
333   b8~ b8\noBeam
334 } \\ {
335   b[ g8]
336 } >>
337 @end lilypond
338
339 @end itemize
340
341 @cindex Veränderungen von Abständen
342 @cindex Optimierung von Abständen
343 @cindex Abstände
344
345 Abstände in LilyPond werden in Notenzeilenabständen
346 (@code{staff-space}) gemessen, während die meisten Dicke-Eigenschaften 
347 auf mit der Notenliniendicke korrespondieren. Eine Eigenschaften 
348 verhalten sich anders, etwa die Dicke von Balken ist an die 
349 Notenzeilenabstände gekoppelt. Mehr Information findet sich 
350 im relevanten Teil der Programmreferenz.
351
352 @node Default files
353 @section Default files
354
355 Die Programmreferenz enthält sehr viel Information über LilyPond, aber 
356 noch mehr Information findet sich in den internen 
357 LilyPond-Dateien.
358
359 Eine Standardeinstellungen (wie die Definitionen für den Kopf (@code{\header} 
360 sind als @code{.ly}-Datei gespeichert. Andere Einstellungen 
361 (wie die Definition für Beschriftung (@code{markup}) sind 
362 als @code{.scm} (Scheme)-Datei gespeichert. Eine nähere Erklärung 
363 geht über den Rahmen dieses Handbuches hinaus. Der Hinweis 
364 scheint aber angebracht, dass es grundlegende technische 
365 Kenntnis und sehr viel Zeit  erfordert, diese Dateien zu verstehen.
366
367 @itemize @bullet
368
369 @item Linux: @file{@var{installdir}/lilypond/usr/share/lilypond/current/}
370
371 @item OS X:
372 @file{@var{installdir}/LilyPond.app/Contents/Resources/share/lilypond/current/}.
373 Um diese Ordner anzuschauen, wechseln Sie entweder mit @code{cd} im Terminal 
374 zu der Adresse oder klicken Sie mit der rechten Maustaste auf das LilyPond-Symbol 
375 und wählen Sie @q{Schow Package Contents}.
376
377 @item Windows: @file{@var{installdir}/LilyPond/usr/share/lilypond/current/}
378
379 @end itemize
380
381 Die @file{ly/} und @file{scm/}-Ordner sind von besonderem Interesse.
382 Dateien wie @file{ly/property-init.ly} und
383 @file{ly/declarations-init.ly} definieren alle häufig vorkommenden Veränderungen.
384
385
386 @node Fitting music onto fewer pages
387 @section Fitting music onto fewer pages
388
389 Manchmal bleiben nur noch ein oder zwei Systeme auf der 
390 letzten Seite übrig. Das ist immer ärgerlich, besonders 
391 wenn es scheint, dass auf den vorigen Seiten genug Platz 
392 ist, um die Systeme noch unterzubringen.
393
394 Wenn man versucht, das Layout zu verändern, kommt einem 
395 der Befehl @code{annotate-spacing} zu Hilfe. Mit diesem 
396 Befehl erhält man die Werte von verschiedenen Abstandsbefehlen 
397 ausgedruckt, mehr Information im Kapitel @ref{Displaying spacing}. 
398 Anhand dieser Angaben kann dann entschieden werden, welche 
399 Werte verändert werden müssen.
400
401 Neben Rändern gibt es nämlich weitere Optionen, Platz zu sparen:
402
403 @itemize
404 @item
405 LilyPond kann die Systeme so dicht wie möglich platzieren (damit 
406 so viele Systeme wie möglich auf eine Seite passen), aber sie 
407 dann so anordnen, dass kein weißer Rand unten auf der Seite entsteht.
408
409 @example
410 \paper @{
411   between-system-padding = #0.1
412   between-system-space = #0.1
413   ragged-last-bottom = ##f
414   ragged-bottom = ##f
415 @}
416 @end example
417
418 @item
419 Die Anzahl der Systeme kann reduziert werden (wenn LilyPond 
420 die Musik auf 11 Systeme verteilt, kann man die Benutzung von 
421 nur 10 Systemen erzwingen).
422
423 @example
424 \paper @{
425   system-count = #10
426 @}
427 @end example
428
429 @item
430 Vermeidung von Objekten, die den vertikalen Abstand von Systemen 
431 vergrößern, hilft oft. Die Verwendung von Klammern bei Wiederholungen 
432 etwa braucht mehr Platz. Wenn die Noten innerhalb der Klammern  auf 
433 zwei Systeme verteilt sind, brauchen sie mehr Platz, als wenn sie 
434 nur auf einer Zeile gedruckt werden.
435
436 Ein anderes Beispiel ist es, Dynamik-Zeichen, die besonders 
437 weit @qq{hervorstehen}, zu verschieben.
438
439 @lilypond[verbatim,quote,fragment]
440 \relative c' {
441   e4 c g\f c
442   \override DynamicLineSpanner #'padding = #-1.8
443   \override DynamicText #'extra-offset = #'( -2.1 . 0)
444   e4 c g\f c
445 }
446 @end lilypond
447
448 @item
449 Die horizontalen Abstände können mit der 
450  @code{SpacingSpanner}-Eigenschaft verändert werden.  Siehe
451 @ref{Changing horizontal spacing} für Einzelheiten.
452
453 @lilypond[verbatim,quote]
454 \score {
455   \relative c'' {
456     g4 e e2 | f4 d d2 | c4 d e f | g4 g g2 |
457     g4 e e2 | f4 d d2 | c4 e g g | c,1 |
458     d4 d d d | d4 e f2 | e4 e e e | e4 f g2 |
459     g4 e e2 | f4 d d2 | c4 e g g | c,1 |
460   }
461   \layout {
462     \context {
463       \Score
464       \override SpacingSpanner
465                 #'base-shortest-duration = #(ly:make-moment 1 4)
466     }
467   }
468 }
469 @end lilypond
470
471 @end itemize
472
473
474 @node Advanced tweaks with Scheme
475 @section Advanced tweaks with Scheme
476
477 Es wurde schon gezeigt, wie die LilyPond-Ausgabe sehr stark verändert 
478 werden kann, indem man Befehle wie 
479 @code{\override TextScript #'extra-offset = ( 1 . -1)} benutzt. Aber 
480 noch mehr Einfluss auf die Formatierung kann durch den Einsatz von 
481 Scheme genommen werden. Eine vollständige Erklärung findet sich in der 
482  @ref{Scheme tutorial} und den
483 @ref{Interfaces for programmers}.
484
485 Scheme kann benutzt werden, um einfach nur Befehle zu @qq{überschreiben} 
486 (@code{\override}):
487
488 @lilypond[quote,verbatim,ragged-right]
489 padText = #(define-music-function (parser location padding) (number?)
490 #{
491   \once \override TextScript #'padding = #$padding
492 #})
493
494 \relative c''' {
495   c4^"piu mosso" b a b
496   \padText #1.8
497   c4^"piu mosso" d e f
498   \padText #2.6
499   c4^"piu mosso" fis a g
500 }
501 @end lilypond
502
503 Hiermit können aber auch neue Befehle erstellt werden:
504
505 @lilypond[quote,verbatim,ragged-right]
506 tempoMark = #(define-music-function (parser location padding marktext)
507                                     (number? string?)
508 #{
509   \once \override Score . RehearsalMark #'padding = $padding
510   \once \override Score . RehearsalMark #'extra-spacing-width = #'(+inf.0 . -inf.0)
511   \mark \markup { \bold $marktext }
512 #})
513
514 \relative c'' {
515   c2 e
516   \tempoMark #3.0 #"Allegro"
517   g c
518 }
519 @end lilypond
520
521 Sogar ganze musikalische Ausdrücke können eingefügt werden:
522
523 @lilypond[quote,verbatim,ragged-right]
524 pattern = #(define-music-function (parser location x y) (ly:music? ly:music?)
525 #{
526   $x e8 a b $y b a e
527 #})
528
529 \relative c''{
530   \pattern c8 c8\f
531   \pattern {d16 dis} { ais16-> b\p }
532 }
533 @end lilypond
534
535
536 @node Avoiding tweaks with slower processing
537 @section Avoiding tweaks with slower processing
538
539 LilyPond kann einige zusätzliche Tests durchführen, während 
540 die Noten gesetzt werden. Dadurch braucht das Programm länger, 
541 um den Notensatz zu produzieren, aber üblicherweise werden 
542 weniger nachträgliche Anpassungen nötig sein.
543
544 @example
545 %%  Um sicher zu gehen, dass Texte und Liedtext 
546 %%  innerhalb der Papierränder bleiben
547 \override Score.PaperColumn #'keep-inside-line = ##t 
548 @end example
549
550
551