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