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