]> git.donarmstrong.com Git - lilypond.git/blob - Documentation/de/user/tweaks.itely
Fix links in de.
[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: 3121682025660b6c85fbf3f22bb9cd8396699ad1
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 @ruser{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 @ruser{The \override command}, @ruser{Common tweaks}.
169
170
171 @node Fixing overlapping notation
172 @section Fixing overlapping notation
173
174 Im Kapitel @ruser{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  @ruser{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 @ruser{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
330 @lilypond[quote,fragment,relative=2,verbatim]
331 << {
332   \once \override Stem #'transparent = ##t
333   \once \override Stem #'length = #8
334   b8~ b8\noBeam
335 } \\ {
336   b[ g8]
337 } >>
338 @end lilypond
339
340 @end itemize
341
342 @cindex Veränderungen von Abständen
343 @cindex Optimierung von Abständen
344 @cindex Abstände
345
346 Abstände in LilyPond werden in Notenzeilenabständen
347 (@code{staff-space}) gemessen, während die meisten Dicke-Eigenschaften 
348 auf mit der Notenliniendicke korrespondieren. Eine Eigenschaften 
349 verhalten sich anders, etwa die Dicke von Balken ist an die 
350 Notenzeilenabstände gekoppelt. Mehr Information findet sich 
351 im relevanten Teil der Programmreferenz.
352
353 @node Default files
354 @section Default files
355
356 Die Programmreferenz enthält sehr viel Information über LilyPond, aber 
357 noch mehr Information findet sich in den internen 
358 LilyPond-Dateien.
359
360 Eine Standardeinstellungen (wie die Definitionen für den Kopf (@code{\header} 
361 sind als @code{.ly}-Datei gespeichert. Andere Einstellungen 
362 (wie die Definition für Beschriftung (@code{markup}) sind 
363 als @code{.scm} (Scheme)-Datei gespeichert. Eine nähere Erklärung 
364 geht über den Rahmen dieses Handbuches hinaus. Der Hinweis 
365 scheint aber angebracht, dass es grundlegende technische 
366 Kenntnis und sehr viel Zeit  erfordert, diese Dateien zu verstehen.
367
368 @itemize @bullet
369
370 @item Linux: @file{@var{installdir}/lilypond/usr/share/lilypond/current/}
371
372 @item OS X:
373 @file{@var{installdir}/LilyPond.app/Contents/Resources/share/lilypond/current/}.
374 Um diese Ordner anzuschauen, wechseln Sie entweder mit @code{cd} im Terminal 
375 zu der Adresse oder klicken Sie mit der rechten Maustaste auf das LilyPond-Symbol 
376 und wählen Sie @q{Schow Package Contents}.
377
378 @item Windows: @file{@var{installdir}/LilyPond/usr/share/lilypond/current/}
379
380 @end itemize
381
382 Die @file{ly/} und @file{scm/}-Ordner sind von besonderem Interesse.
383 Dateien wie @file{ly/property-init.ly} und
384 @file{ly/declarations-init.ly} definieren alle häufig vorkommenden Veränderungen.
385
386
387 @node Fitting music onto fewer pages
388 @section Fitting music onto fewer pages
389
390 Manchmal bleiben nur noch ein oder zwei Systeme auf der 
391 letzten Seite übrig. Das ist immer ärgerlich, besonders 
392 wenn es scheint, dass auf den vorigen Seiten genug Platz 
393 ist, um die Systeme noch unterzubringen.
394
395 Wenn man versucht, das Layout zu verändern, kommt einem 
396 der Befehl @code{annotate-spacing} zu Hilfe. Mit diesem 
397 Befehl erhält man die Werte von verschiedenen Abstandsbefehlen 
398 ausgedruckt, mehr Information im Kapitel @ruser{Displaying spacing}. 
399 Anhand dieser Angaben kann dann entschieden werden, welche 
400 Werte verändert werden müssen.
401
402 Neben Rändern gibt es nämlich weitere Optionen, Platz zu sparen:
403
404 @itemize
405 @item
406 LilyPond kann die Systeme so dicht wie möglich platzieren (damit 
407 so viele Systeme wie möglich auf eine Seite passen), aber sie 
408 dann so anordnen, dass kein weißer Rand unten auf der Seite entsteht.
409
410 @example
411 \paper @{
412   between-system-padding = #0.1
413   between-system-space = #0.1
414   ragged-last-bottom = ##f
415   ragged-bottom = ##f
416 @}
417 @end example
418
419 @item
420 Die Anzahl der Systeme kann reduziert werden (wenn LilyPond 
421 die Musik auf 11 Systeme verteilt, kann man die Benutzung von 
422 nur 10 Systemen erzwingen).
423
424 @example
425 \paper @{
426   system-count = #10
427 @}
428 @end example
429
430 @item
431 Vermeidung von Objekten, die den vertikalen Abstand von Systemen 
432 vergrößern, hilft oft. Die Verwendung von Klammern bei Wiederholungen 
433 etwa braucht mehr Platz. Wenn die Noten innerhalb der Klammern  auf 
434 zwei Systeme verteilt sind, brauchen sie mehr Platz, als wenn sie 
435 nur auf einer Zeile gedruckt werden.
436
437 Ein anderes Beispiel ist es, Dynamik-Zeichen, die besonders 
438 weit @qq{hervorstehen}, zu verschieben.
439
440 @lilypond[verbatim,quote,fragment]
441 \relative c' {
442   e4 c g\f c
443   \override DynamicLineSpanner #'padding = #-1.8
444   \override DynamicText #'extra-offset = #'( -2.1 . 0)
445   e4 c g\f c
446 }
447 @end lilypond
448
449 @item
450 Die horizontalen Abstände können mit der 
451  @code{SpacingSpanner}-Eigenschaft verändert werden.  Siehe
452 @ruser{Changing horizontal spacing} für Einzelheiten.
453
454 @lilypond[verbatim,quote]
455 \score {
456   \relative c'' {
457     g4 e e2 | f4 d d2 | c4 d e f | g4 g g2 |
458     g4 e e2 | f4 d d2 | c4 e g g | c,1 |
459     d4 d d d | d4 e f2 | e4 e e e | e4 f g2 |
460     g4 e e2 | f4 d d2 | c4 e g g | c,1 |
461   }
462   \layout {
463     \context {
464       \Score
465       \override SpacingSpanner
466                 #'base-shortest-duration = #(ly:make-moment 1 4)
467     }
468   }
469 }
470 @end lilypond
471
472 @end itemize
473
474
475 @node Advanced tweaks with Scheme
476 @section Advanced tweaks with Scheme
477
478 Es wurde schon gezeigt, wie die LilyPond-Ausgabe sehr stark verändert 
479 werden kann, indem man Befehle wie 
480 @code{\override TextScript #'extra-offset = ( 1 . -1)} benutzt. Aber 
481 noch mehr Einfluss auf die Formatierung kann durch den Einsatz von 
482 Scheme genommen werden. Eine vollständige Erklärung findet sich in der 
483  @ruser{Scheme tutorial} und den
484 @ruser{Interfaces for programmers}.
485
486 Scheme kann benutzt werden, um einfach nur Befehle zu @qq{überschreiben} 
487 (@code{\override}):
488
489 @lilypond[quote,verbatim,ragged-right]
490 padText = #(define-music-function (parser location padding) (number?)
491 #{
492   \once \override TextScript #'padding = #$padding
493 #})
494
495 \relative c''' {
496   c4^"piu mosso" b a b
497   \padText #1.8
498   c4^"piu mosso" d e f
499   \padText #2.6
500   c4^"piu mosso" fis a g
501 }
502 @end lilypond
503
504 Hiermit können aber auch neue Befehle erstellt werden:
505
506 @lilypond[quote,verbatim,ragged-right]
507 tempoMark = #(define-music-function (parser location padding marktext)
508                                     (number? string?)
509 #{
510   \once \override Score . RehearsalMark #'padding = $padding
511   \once \override Score . RehearsalMark #'extra-spacing-width = #'(+inf.0 . -inf.0)
512   \mark \markup { \bold $marktext }
513 #})
514
515 \relative c'' {
516   c2 e
517   \tempoMark #3.0 #"Allegro"
518   g c
519 }
520 @end lilypond
521
522 Sogar ganze musikalische Ausdrücke können eingefügt werden:
523
524 @lilypond[quote,verbatim,ragged-right]
525 pattern = #(define-music-function (parser location x y) (ly:music? ly:music?)
526 #{
527   $x e8 a b $y b a e
528 #})
529
530 \relative c''{
531   \pattern c8 c8\f
532   \pattern {d16 dis} { ais16-> b\p }
533 }
534 @end lilypond
535
536
537 @node Avoiding tweaks with slower processing
538 @section Avoiding tweaks with slower processing
539
540 LilyPond kann einige zusätzliche Tests durchführen, während 
541 die Noten gesetzt werden. Dadurch braucht das Programm länger, 
542 um den Notensatz zu produzieren, aber üblicherweise werden 
543 weniger nachträgliche Anpassungen nötig sein.
544
545 @example
546 %%  Um sicher zu gehen, dass Texte und Liedtext 
547 %%  innerhalb der Papierränder bleiben
548 \override Score.PaperColumn #'keep-inside-line = ##t 
549 @end example
550
551
552