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