]> git.donarmstrong.com Git - lilypond.git/blob - Documentation/fr/user/tweaks.itely
Merge commit 'd77d089' into jneeman
[lilypond.git] / Documentation / fr / user / tweaks.itely
1 @c -*- coding: utf-8; mode: texinfo; documentlanguage: fr -*-
2 @c This file is part of lilypond.tely
3 @ignore
4     Translation of GIT committish: c7d952c4fd5fbb5b9e32e7a2bf50ceec20098160
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 Ce chapitre indique comment modifier le résultat que vous obtiendrez.
14 LilyPond offre de nombreuses possibilités de réglages, permettant de modifier
15 quasiment chaque élément de votre partition.
16
17 @menu
18 * Moving objects::              
19 * Fixing overlapping notation::  
20 * Common tweaks::               
21 * Default files::               
22 * Fitting music onto fewer pages::  
23 * Advanced tweaks with Scheme::  
24 * Avoiding tweaks with slower processing::  
25 @end menu
26
27
28 @node Moving objects
29 @section Moving objects
30
31 Aussi surprenant que cela puisse paraître, LilyPond n'est pas parfait.
32 Certains éléments sur la partition peuvent se chevaucher, ce qui est 
33 regrettable mais, le plus souvent, facile à corriger.
34
35 @c  FIXME: find a better example for 5.1 Moving Objects.  -gp
36 @c  yes, I want this TODO to be visible to end-users.  It's better
37 @c  than having nothing at all.
38 À FAIRE : les modifications de la gestion des espacements de la version 2.12
39 feront perdre leur pertinence aux exemples suivants.  Ils démontrent cependant 
40 la puissance de LilyPond, et justifient à ce titre leur présence dans ces lignes,
41 tant que d'autres exemples n'auront pas été proposés.
42
43 @lilypond[quote,fragment,ragged-right,verbatim,relative=2]
44   % temporary code to break this example:
45   \override TextScript #'outside-staff-priority = ##f
46 e4^\markup{ \italic ritenuto } g b e
47 @end lilypond
48
49 @cindex padding
50
51 Le plus simple est ici d'augmenter la distance entre l'objet (du
52 texte comme ici, ou bien des nuances ou des doigtés) et la note.
53 Dans LilyPond, il s'agit de la propriété @code{padding}, qui
54 se mesure en espaces relatifs à la taille de la portée. Pour la plupart
55 des objets (chacun ayant sa propre valeur), elle est définie à 1.0, ou
56 un peu moins.  Nous voulons ici l'augmenter : essayons 1.5.
57
58 @lilypond[quote,fragment,ragged-right,verbatim,relative=2]
59   % temporary code to break this example:
60   \override TextScript #'outside-staff-priority = ##f
61 \once \override TextScript #'padding = #1.5
62 e4^\markup{ \italic ritenuto } g b e
63 @end lilypond
64
65
66 C'est déjà mieux ! Mais on peut certainement encore améliorer le résultat. 
67 Il nous semble, après plusieurs essais, que la meilleure valeur
68 dans ce cas soit 2.3. Toutefois, ce constat est le fruit 
69 d'expérimentations et de goût personnel en matière de notation.
70 Essayez le même exemple avec 2.3... mais également avec 
71 des valeurs plus grandes (ou plus petites).
72 À votre avis, quelle est la meilleure version ?
73
74
75 La propriété @code{staff-padding} est de nature similaire.
76 @code{padding} détermine l'espace minimum entre un objet et l'objet
77 le plus proche (le plus souvent une note ou les lignes de la portée) ;
78 @code{staff-padding} détermine pour sa part l'espace minimum entre
79 un objet et la portée. La différence est subtile, mais vous apparaîtra 
80 clairement ici :
81
82 @lilypond[quote,fragment,ragged-right,verbatim,relative=2]
83   % temporary code to break this example:
84   \override TextScript #'outside-staff-priority = ##f
85 c4^"piu mosso" b a b
86 \once \override TextScript #'padding = #4.6
87 c4^"piu mosso" d e f
88 \once \override TextScript #'staff-padding = #4.6
89 c4^"piu mosso" fis a g
90 \break
91 c'4^"piu mosso" b a b
92 \once \override TextScript #'padding = #4.6
93 c4^"piu mosso" d e f
94 \once \override TextScript #'staff-padding = #4.6
95 c4^"piu mosso" fis a g
96 @end lilypond
97
98 @cindex extra-offset
99
100 Une autre démarche permet de contrôler totalement la position d'un objet -- on
101 peut le déplacer horizontalement ou verticalement.  Il suffit d'avoir recours à 
102 la propriété @code{extra-offset}. En fait c'est une méthode plus complexe, qui peut
103 en outre poser des problèmes.  Quand on déplace un objet à l'aide de @code{extra-offset}, le déplacement est effectué après que LilyPond a placé tous les autres objets.  Par conséquent, l'objet ainsi déplacé peut venir
104 recouvrir d'autres objets déjà placés.
105
106
107 @lilypond[quote,fragment,ragged-right,verbatim,relative=2]
108   % temporary code to break this example:
109   \override TextScript #'outside-staff-priority = ##f
110 \once \override TextScript #'extra-offset = #'( 1.0 . -1.0 )
111 e4^\markup{ \italic ritenuto } g b e
112 @end lilypond
113
114 Lorsqu'on utilise @code{extra-offset}, le premier nombre décrit le
115 déplacement horizontal (négatif pour un déplacement vers la gauche) 
116 tandis que le deuxième décrit un déplacement vertical (négatif 
117 pour le haut). Après quelques essais, on peut choisir les valeurs suivantes
118 qui semblent donner un résultat satisfaisant.
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
129 Une fois encore, c'est après quelques tâtonnements que l'on a abouti à
130 ces nombres, au regard du résultat final. Si vous souhaitez que 
131 le texte soit plus haut, plus à gauche, etc. essayez vous-même et choisissez
132 aprés avoir regardé le résultat.
133
134 Une dernière mise en garde : dans cette section, nous avons eu recours à
135
136 @example
137 \once \override TextScript @dots{}
138 @end example
139
140 ce qui permet de régler le placement du texte pour la note suivante.
141 Mais si cette note n'a pas de texte, le réglage ne s'appliquera pas
142 et n'attendra @strong{pas} le prochain texte. Pour que ce comportement 
143 persiste après la commande, ne mettez pas @code{\once}.  Votre réglage
144 s'appliquera alors partout, jusqu'à ce que vous l'annuliez au moyen de
145 la commande @code{\revert}.  Ceci est expliqué en détail dans @ref{The \override command}.
146
147 @lilypond[quote,fragment,ragged-right,verbatim,relative=3]
148   % temporary code to break this example:
149   \override TextScript #'outside-staff-priority = ##f
150 c4^"piu mosso" b
151 \once \override TextScript #'padding = #4.6
152   a4 b
153 c4^"piu mosso" d e f
154 \once \override TextScript #'padding = #4.6
155 c4^"piu mosso" d e f
156 c4^"piu mosso" d e f
157 \break
158 \override TextScript #'padding = #4.6
159 c4^"piu mosso" d e f
160 c4^"piu mosso" d e f
161 \revert TextScript #'padding
162 c4^"piu mosso" d e f
163 @end lilypond
164
165 @seealso
166
167 Dans ce même manuel : @ref{The \override command}, @ref{Common tweaks}.
168
169
170 @node Fixing overlapping notation
171 @section Fixing overlapping notation
172
173 Dans la section @ref{Moving objects}, nous avons vu comment
174 déplacer un objet @code{TextScript}.  Ce même procédé peut être
175 appliqué à d'autres types d'objets : il vous suffira de remplacer
176 @code{TextScript} par le nom de l'objet en question.
177
178 Pour trouver cette dénomination, regardez les liens @q{@strong{Voir aussi}}
179 en bas des pages de la documentation. Par exemple, en bas de la page @ref{Dynamics},
180 nous trouvons 
181
182 @quotation
183 @seealso
184
185 Référence du programme : @internalsref{DynamicText}, @internalsref{Hairpin}.
186 Le placement vertical de ces symboles est contrôlé par
187 @internalsref{DynamicLineSpanner}.
188 @end quotation
189
190 @noindent
191
192 Ce qui implique que, pour modifier la hauteur d'une nuance, nous utiliserons
193
194 @example
195 \override DynamicLineSpanner #'padding = #2.0
196 @end example
197
198 Nous ne listerons pas ici tous les types d'objets, mais seulement
199 les plus communs :
200
201 @multitable @columnfractions .33 .66
202 @headitem Type d'objet            @tab Nom de l'objet
203 @item Nuances (verticalement)     @tab @code{DynamicLineSpanner}
204 @item Nuances (horizontalement)   @tab @code{DynamicText}
205 @item Laisons de tenue            @tab @code{Tie}
206 @item Liaisons                    @tab @code{Slur}
207 @item Indications d'articulation  @tab @code{Script}
208 @item Doigtés                     @tab @code{Fingering}
209 @item Textes (@code{^"texte"})    @tab @code{TextScript}
210 @item Repères                     @tab @code{RehearsalMark}
211 @end multitable
212
213
214 @node Common tweaks
215 @section Common tweaks
216
217 Certains réglages sont si courants que des raccourcis sont fournis
218 sous forme de commandes telles que @code{\slurUp} et @code{\stemDown}.  
219 Toutes ces commandes sont décrites dans les différentes sections
220 de la Référence de notation.
221
222 La liste complète des modifications possibles pour chaque type d'objet
223 (tels que les liaisons ou les ligatures) se trouve dans la Référence du
224 programme. Cependant, certaines propriétés sont communes à de nombreux
225 objets, et on peut de ce fait définir quelques réglages génériques.
226
227
228 @itemize @bullet
229
230 @cindex padding
231
232 @item
233 La propriété @code{padding} peut être définie de manière à
234 accroître (ou décroître) la distance entre les symboles qui se
235 placent au-dessus ou au-dessous des notes. Ce qui s'applique à
236 tous les objets régis par @code{side-position-interface}.
237
238 @lilypond[quote,fragment,relative=1,verbatim]
239 c2\fermata
240 \override Script #'padding = #3
241 b2\fermata
242 @end lilypond
243
244 @lilypond[quote,fragment,relative=1,verbatim]
245 % This will not work, see below:
246 \override MetronomeMark #'padding = #3
247 \tempo 4=120
248 c1
249 % This works:
250 \override Score.MetronomeMark #'padding = #3
251 \tempo 4=80
252 d1
253 @end lilypond
254
255 Notez, dans le second exemple, l'importance de savoir à quel contexte
256 correspond l'objet.  Dans la mesure où l'objet @code{MetronomeMark}
257 appartient au contexte @code{Score}, les modifications affectant le
258 contexte @code{Voice} ne l'affecteront pas.  Pour plus de détails, voir 
259 @ref{Constructing a tweak}.
260
261 @cindex extra-offset
262
263 @item
264 La propriété @code{extra-offset} permet de déplacer latéralement et
265 verticalement ; c'est pourquoi elle requiert deux nombres. Le premier
266 affecte le placement horizontal (un nombre positif déplace l'objet vers la droite) ;
267 le second le placement vertical (un nombre positif déplace l'objet vers le
268 haut).  Cette propriété est de bas niveau : le moteur de formatage ne tient
269 aucun compte des placements qu'elle induit.
270
271 Dans l'exemple suivant, le second doigté est déplacé un peu vers la gauche, et
272 plus bas de 1.8 espaces :
273
274 @lilypond[quote,fragment,relative=1,verbatim]
275 \stemUp
276 f-5
277 \once \override Fingering
278     #'extra-offset = #'(-0.3 . -1.8)
279 f-5
280 @end lilypond
281
282 @item
283 La propriété @code{transparent} imprime les objets avec de 
284 l'@q{encre invisible} : l'objet n'est pas visible, mais tous
285 les comportement lui afférant s'appliquent quand même.  Il occupe
286 une certaine place, intervient dans la gestion des collisions, et on
287 peut lui attacher des liaisons ou des ligatures.
288
289 @cindex transparent objects
290 @cindex removing objects
291 @cindex hiding objects
292 @cindex invisible objects
293
294 L'exemple suivant montre comment tenir des notes entre différentes voix,
295 au moyen de liaisons.  Ces liaisons de tenue, en principe, ne peuvent relier
296 que deux notes d'une même voix.  On introduit donc la liaison dans une autre voix :
297
298 @lilypond[quote,fragment,relative=2]
299 << {
300   b8~ b8\noBeam
301 } \\ {
302   b[ g8]
303 } >>
304 @end lilypond
305
306 @noindent
307 et on efface la première croche (hampe vers le haut) de ladite voix ; maintenant
308 la liaison semble passer d'une voix à l'autre :
309
310
311 @lilypond[quote,fragment,relative=2,verbatim]
312 << {
313   \once \override Stem #'transparent = ##t
314   b8~ b8\noBeam
315 } \\ {
316   b[ g8]
317 } >>
318 @end lilypond
319
320 Pour s'assurer que le crochet de la hampe que nous avons effacée ne 
321 raccourcira pas la liaison, nous allons également rallonger cette hampe,
322 en attribuant à la propriété @code{length} la valeur @code{8} :
323
324 @lilypond[quote,fragment,relative=2,verbatim]
325 << {
326   \once \override Stem #'transparent = ##t
327   \once \override Stem #'length = #8
328   b8~ b8\noBeam
329 } \\ {
330   b[ g8]
331 } >>
332 @end lilypond
333
334 @end itemize
335
336 @cindex Tweaks, distances
337 @cindex Distances
338
339 Les distances dans LilyPond sont mesurées dans l'unité staff-space (espace de portée)
340 tandis que la plupart des propriétés relatives aux épaisseurs
341 sont mesurées à l'aide de l'unité line-thickness (épaiseur de ligne). Toutefois, certaines d'entre-elles
342 échappent à cette règle : par exemple l'épaisseur des liens de croches
343 est mesurée à l'aide de l'unité staff-space.  Pour de plus amples informations, 
344 consultez les sections correspondantes de la Référence du programme.
345
346
347 @node Default files
348 @section Default files
349
350 La Référence du programme contient
351 beaucoup d'informations sur LilyPond. Cependant vous pouvez en découvrir 
352 encore plus en consultant les fichiers internes de LilyPond.
353
354 Des réglages par défaut (tels que les définitions des blocs
355 @code{\header@{@}}) sont contenus dans des fichiers @code{.ly}. D'autres 
356 (comme les définitions des commandes @qq{markup} ) sont contenus dans des fichiers @code{.scm} (Scheme).  Malheureusement, des explications plus complètes dépassent le cadre de ce manuel.
357 Les utilisateurs qui souhaiteraient comprendre le fonctionnement de ces fichiers de 
358 configuration doivent être avertis que des connaissances techniques substantielles et
359 beaucoup de temps sont nécessaires.
360
361 @itemize @bullet
362
363 @item Linux : @file{@var{dossierduprogramme}/lilypond/usr/share/lilypond/current/}
364
365 @item Mac OS X :
366 @file{@var{dossierduprogramme}/LilyPond.app/Contents/Resources/share/lilypond/current/}.
367 Pour accéder à ce dossier, deux possibilités : soit, dans un Terminal, taper @code{cd} suivi du
368 chemin complet ci-dessus ; soit Control-cliquer  (ou clic droit) sur l'application LilyPond
369 et sélectionner @q{Afficher le contenu du paquet}.
370
371
372 @item Windows : @file{@var{dossierduprogramme}/LilyPond/usr/share/lilypond/current/}
373
374 @end itemize
375
376 Les répertoires @file{ly/} et @file{scm/} sont tout particulièrement intéressants.
377 En effet les fichiers du type @file{ly/property-init.ly} ou encore @file{ly/declarations-init.ly}
378 déterminent toutes les définitions avancées communes.
379
380 @node Fitting music onto fewer pages
381 @section Fitting music onto fewer pages
382
383 Parfois, une partition peut se terminer avec seulement 
384 un ou deux systèmes sur la dernière page. Ceci peut être ennuyeux
385 surtout si vous constatez, en regardant les pages précédentes, qu'il
386 reste encore beaucoup de place sur celles-ci.
387
388 Si vous vous intéressez aux problèmes de mise en page, @code{annotate-spacing}, 
389 peut alors être un outil d'une valeur inestimable. Cette commande imprime les valeurs 
390 de nombreuses commandes d'espacement concernant la mise en page.
391 Consultez @ref{Displaying spacing} pour de plus amples informations. À l'aide 
392 des informations données par @code{annotate-spacing} on peut 
393 voir quelles marges il est souhaitable de modifier afin de résoudre le problème.
394
395
396 En plus d'agir sur les marges, il existe d'autres possibilités
397 qui permettent de gagner de la place.
398
399 @itemize
400 @item
401 Vous pouvez demander à LilyPond de placer les systèmes aussi 
402 près que possible les uns des autres (pour en disposer autant
403 que possible sur une page), tout en répartissant les systèmes afin
404 de ne pas laisser de blanc en bas de la dernière page.
405
406 @example
407 \paper @{
408   between-system-padding = #0.1
409   between-system-space = #0.1
410   ragged-last-bottom = ##f
411   ragged-bottom = ##f
412 @}
413 @end example
414
415 @item
416 Vous pouvez obliger LilyPond à mettre un certain nombre de systèmes
417 par page. Par exemple, si LilyPond veut placer onze systèmes dans une page,
418 vous pouvez l'obliger à n'en mettre que dix.
419
420 @example
421 \paper @{
422   system-count = #10
423 @}
424 @end example
425
426 @item
427 Supprimer (ou réduire) les objets qui augmentent la hauteur du système.
428 C'est le cas en particulier de certaines reprises (avec des 
429 alternatives) qui placent des crochets au dessus des portées. Si ces crochets 
430 de reprise se poursuivent sur deux systèmes, ils prendront plus de place que s'ils
431 sont regroupés sur un même système.
432
433 Un autre exemple : déplacer les nuances qui @qq{débordent} d'un système.
434
435 @lilypond[verbatim,quote,fragment]
436 \relative c' {
437   e4 c g\f c
438   \override DynamicLineSpanner #'padding = #-1.8
439   \override DynamicText #'extra-offset = #'( -2.1 . 0)
440   e4 c g\f c
441 }
442 @end lilypond
443
444 @item
445 Modifier l'espacement vertical avec @code{SpacingSpanner}.  Reportez-vous à
446 @ref{Changing horizontal spacing} pour plus de détails.
447
448 @lilypond[verbatim,quote]
449 \score {
450   \relative c'' {
451     g4 e e2 | f4 d d2 | c4 d e f | g4 g g2 |
452     g4 e e2 | f4 d d2 | c4 e g g | c,1 |
453     d4 d d d | d4 e f2 | e4 e e e | e4 f g2 |
454     g4 e e2 | f4 d d2 | c4 e g g | c,1 |
455   }
456   \layout {
457     \context {
458       \Score
459       \override SpacingSpanner
460                 #'base-shortest-duration = #(ly:make-moment 1 4)
461     }
462   }
463 }
464 @end lilypond
465
466 @end itemize
467
468
469 @node Advanced tweaks with Scheme
470 @section Advanced tweaks with Scheme
471
472 Nous avons déjà vu comment le résultat obtenu avec LilyPond peut être
473 largement personnalisé à l'aide de commandes comme 
474 @code{\override TextScript #'extra-offset = ( 1 . -1)}.  Cependant,
475 l'utilisation de Scheme ouvre des possibilités encore plus grandes.
476 Pour des explications complètes là-dessus, consultez @ref{Scheme tutorial} et
477 @ref{Interfaces for programmers}.
478
479 On peut utiliser Scheme simplement à l'aide des commandes @code{\override}.
480
481 @lilypond[quote,verbatim,ragged-right]
482 padText = #(define-music-function (parser location padding) (number?)
483 #{
484   \once \override TextScript #'padding = #$padding
485 #})
486
487 \relative c''' {
488   c4^"piu mosso" b a b
489   \padText #1.8
490   c4^"piu mosso" d e f
491   \padText #2.6
492   c4^"piu mosso" fis a g
493 }
494 @end lilypond
495 On peut s'en servir pour créer de nouvelles commandes :
496
497 @lilypond[quote,verbatim,ragged-right]
498 tempoMark = #(define-music-function (parser location padding marktext)
499                                     (number? string?)
500 #{
501   \once \override Score . RehearsalMark #'padding = $padding
502   \once \override Score . RehearsalMark #'extra-spacing-width = #'(+inf.0 . -inf.0)
503   \mark \markup { \bold $marktext }
504 #})
505
506 \relative c'' {
507   c2 e
508   \tempoMark #3.0 #"Allegro"
509   g c
510 }
511 @end lilypond
512
513 On peut même y inclure des expressions musicales :
514
515 @lilypond[quote,verbatim,ragged-right]
516 pattern = #(define-music-function (parser location x y) (ly:music? ly:music?)
517 #{
518   $x e8 a b $y b a e
519 #})
520
521 \relative c''{
522   \pattern c8 c8\f
523   \pattern {d16 dis} { ais16-> b\p }
524 }
525 @end lilypond
526
527
528 @node Avoiding tweaks with slower processing
529 @section Avoiding tweaks with slower processing
530
531 LilyPond peut effectuer des vérifications supplémentaires lors du 
532 traitement des fichiers, cependant le rendu nécessitera alors plus de temps.
533 En contrepartie, il y aura moins d'ajustements manuels à réaliser.
534
535   
536 @example
537 %%  Ceci sert à s'assurer que les indications textuelles resteront à l'intérieur des marges de la page.
538 \override Score.PaperColumn #'keep-inside-line = ##t 
539 @end example