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