]> git.donarmstrong.com Git - lilypond.git/blob - Documentation/fr/user/tweaks.itely
Merge master into nested-bookparts
[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 @seealso
295
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 @quotation
312 @seealso
313
314 Référence du programme : @rinternals{DynamicText}, @rinternals{Hairpin}.
315 Le placement vertical de ces symboles est contrôlé par
316 @rinternals{DynamicLineSpanner}.
317 @end quotation
318
319 @noindent
320
321 Ce qui implique que, pour modifier la hauteur d'une nuance, nous utiliserons
322
323 @example
324 \override DynamicLineSpanner #'padding = #2.0
325 @end example
326
327 Nous ne listerons pas ici tous les types d'objets, mais seulement
328 les plus communs :
329
330 @multitable @columnfractions .33 .66
331 @headitem Type d'objet            @tab Nom de l'objet
332 @item Nuances (verticalement)     @tab @code{DynamicLineSpanner}
333 @item Nuances (horizontalement)   @tab @code{DynamicText}
334 @item Laisons de tenue            @tab @code{Tie}
335 @item Liaisons                    @tab @code{Slur}
336 @item Indications d'articulation  @tab @code{Script}
337 @item Doigtés                     @tab @code{Fingering}
338 @item Textes (@code{^"texte"})    @tab @code{TextScript}
339 @item Repères                     @tab @code{RehearsalMark}
340 @end multitable
341
342
343 @node Real music example
344 @subsection Real music example
345
346 @untranslated
347
348
349 @c DEPRECATED SECTION
350 @node Common tweaks
351 @section Common tweaks
352
353 Certains réglages sont si courants que des raccourcis sont fournis
354 sous forme de commandes telles que @code{\slurUp} ou @code{\stemDown}.  
355 Toutes ces commandes sont décrites dans les différentes sections
356 de la Référence de notation.
357
358 La liste complète des modifications possibles pour chaque type d'objet
359 (tel que liaison ou ligature) se trouve dans la Référence du
360 programme.  Cependant, certaines propriétés sont communes à de nombreux
361 objets, et on peut de ce fait définir quelques réglages génériques.
362
363
364 @itemize @bullet
365
366 @cindex padding
367
368 @item
369 La propriété @code{padding} peut être définie de manière à
370 accroître (ou décroître) la distance entre les symboles qui se
371 placent au-dessus ou au-dessous des notes.  Ce qui s'applique à
372 tous les objets régis par @code{side-position-interface}.
373
374 @lilypond[quote,fragment,relative=1,verbatim]
375 c2\fermata
376 \override Script #'padding = #3
377 b2\fermata
378 @end lilypond
379
380 @lilypond[quote,fragment,relative=1,verbatim]
381 % This will not work, see below:
382 \override MetronomeMark #'padding = #3
383 \tempo 4=120
384 c1
385 % This works:
386 \override Score.MetronomeMark #'padding = #3
387 \tempo 4=80
388 d1
389 @end lilypond
390
391 Notez, dans le second exemple, l'importance de savoir à quel contexte
392 correspond l'objet.  Dans la mesure où l'objet @code{MetronomeMark}
393 appartient au contexte @code{Score}, ses modifications affectées au
394 contexte @code{Voice} ne l'affecteront pas.  Pour plus de détails, voir 
395 @ruser{Constructing a tweak}.
396
397 @cindex extra-offset
398
399 @item
400 La propriété @code{extra-offset} permet de déplacer latéralement et
401 verticalement ; c'est pourquoi elle requiert deux nombres.  Le premier
402 affecte le placement horizontal (un nombre positif déplace l'objet
403 vers la droite) ; le second le placement vertical (un nombre positif
404 déplace l'objet vers le haut).  Cette propriété est de bas niveau : le
405 moteur de formatage ne tient aucun compte des placements qu'elle induit.
406
407 Dans l'exemple suivant, le second doigté est déplacé un peu vers la gauche, et
408 plus bas de 1.8 espaces :
409
410 @lilypond[quote,fragment,relative=1,verbatim]
411 \stemUp
412 f-5
413 \once \override Fingering
414     #'extra-offset = #'(-0.3 . -1.8)
415 f-5
416 @end lilypond
417
418 @item
419 La propriété @code{transparent} imprime les objets avec de 
420 l'@q{encre invisible} : l'objet n'est pas visible, mais tous
421 les comportement le concernant s'appliquent quand même.  Il occupe
422 une certaine place, intervient dans la gestion des collisions, et on
423 peut lui attacher des liaisons ou des ligatures.
424
425 @cindex transparents, objets
426 @cindex suppression d'objets
427 @cindex masquage d'objets
428 @cindex invisibles, objets
429
430 L'exemple suivant montre comment tenir des notes entre différentes voix,
431 au moyen de liaisons.  Ces liaisons de tenue, en principe, ne peuvent relier
432 que deux notes d'une même voix.  On introduit donc la liaison dans une
433 autre voix :
434
435 @lilypond[quote,fragment,relative=2]
436 << {
437   b8~ b8\noBeam
438 } \\ {
439   b[ g8]
440 } >>
441 @end lilypond
442
443 @noindent
444 et on efface la première croche (hampe vers le haut) de ladite voix ; 
445 maintenant la liaison semble passer d'une voix à l'autre :
446
447
448 @lilypond[quote,fragment,relative=2,verbatim]
449 << {
450   \once \override Stem #'transparent = ##t
451   b8~ b8\noBeam
452 } \\ {
453   b[ g8]
454 } >>
455 @end lilypond
456
457 Pour s'assurer que le crochet de la hampe que nous avons effacée ne 
458 raccourcira pas la liaison, nous allons également rallonger cette hampe,
459 en attribuant à la propriété @code{length} la valeur @code{8} :
460
461 @lilypond[quote,fragment,relative=2,verbatim]
462 << {
463   \once \override Stem #'transparent = ##t
464   \once \override Stem #'length = #8
465   b8~ b8\noBeam
466 } \\ {
467   b[ g8]
468 } >>
469 @end lilypond
470
471 @end itemize
472
473 @cindex retouches, distances
474 @cindex distances
475
476 Les distances dans LilyPond sont mesurées dans l'unité staff-space
477 (espace de portée) tandis que la plupart des propriétés relatives aux
478 épaisseurs sont mesurées à l'aide de l'unité line-thickness (épaiseur
479 de ligne). Toutefois, certaines d'entre-elles échappent à cette règle
480 : par exemple l'épaisseur des liens de croches est mesurée à l'aide de
481 l'unité staff-space.  Pour de plus amples informations, 
482 consultez les sections correspondantes de la Référence du programme.
483
484
485 @node Further tweaking
486 @section Further tweaking
487
488 @menu
489 * Other uses for tweaks::       
490 * Using variables for tweaks::  
491 * Other sources of information::  
492 * Avoiding tweaks with slower processing::  
493 * Advanced tweaks with Scheme::  
494 @end menu
495
496 @node Other uses for tweaks
497 @subsection Other uses for tweaks
498
499 @untranslated
500
501 @node Using variables for tweaks
502 @subsection Using variables for tweaks
503
504 @untranslated
505
506 @node Other sources of information
507 @subsection Other sources of information
508
509 La Référence du programme contient
510 beaucoup d'informations sur LilyPond. Cependant vous pouvez en découvrir 
511 encore plus en consultant les fichiers internes de LilyPond.
512
513 Des réglages par défaut (tels que les définitions des blocs
514 @code{\header@{@}}) sont contenus dans des fichiers @code{.ly}. D'autres 
515 (comme les définitions des commandes @qq{markup} ) sont contenus dans
516 des fichiers @code{.scm} (Scheme).  Malheureusement, des explications
517 plus complètes dépassent le cadre de ce manuel.
518 Les utilisateurs qui souhaiteraient comprendre le fonctionnement de
519 ces fichiers de configuration doivent être avertis que des
520 connaissances techniques substantielles et beaucoup de temps sont nécessaires.
521
522 @itemize @bullet
523
524 @item Linux : @file{@var{dossierduprogramme}/lilypond/usr/share/lilypond/current/}
525
526 @item Mac OS X :
527 @file{@var{dossierduprogramme}/LilyPond.app/Contents/Resources/share/lilypond/current/}.
528 Pour accéder à ce dossier, deux possibilités : soit, dans un Terminal,
529 taper @code{cd} suivi du chemin complet ci-dessus ; soit
530 Control-cliquer (ou clic droit) sur l'application LilyPond
531 et sélectionner @q{Afficher le contenu du paquet}.
532
533
534 @item Windows : @file{@var{dossierduprogramme}/LilyPond/usr/share/lilypond/current/}
535
536 @end itemize
537
538 Les répertoires @file{ly/} et @file{scm/} sont tout particulièrement
539 intéressants.  En effet les fichiers du type
540 @file{ly/property-init.ly} ou encore @file{ly/declarations-init.ly}
541 déterminent toutes les définitions avancées communes.
542
543 @node Avoiding tweaks with slower processing
544 @subsection Avoiding tweaks with slower processing
545
546 LilyPond peut effectuer des vérifications supplémentaires lors du 
547 traitement des fichiers, cependant le rendu nécessitera alors plus de
548 temps.  En contrepartie, il y aura moins d'ajustements manuels à réaliser.
549
550   
551 @example
552 %%  Ceci sert à s'assurer que les indications textuelles resteront à l'intérieur des marges de la page.
553 \override Score.PaperColumn #'keep-inside-line = ##t 
554 @end example
555
556
557 @node Advanced tweaks with Scheme
558 @subsection Advanced tweaks with Scheme
559
560 Nous avons déjà vu comment le résultat obtenu avec LilyPond peut être
561 largement personnalisé à l'aide de commandes comme 
562 @code{\override TextScript #'extra-offset = ( 1 . -1)}.  Cependant,
563 l'utilisation de Scheme ouvre des possibilités encore plus grandes.
564 Pour des explications complètes là-dessus, consultez le 
565 @ref{Scheme tutorial}  et les @ruser{Interfaces for programmers}.
566
567 On peut utiliser Scheme simplement à l'aide des commandes @code{\override}.
568
569 @lilypond[quote,verbatim,ragged-right]
570 padText = #(define-music-function (parser location padding) (number?)
571 #{
572   \once \override TextScript #'padding = #$padding
573 #})
574
575 \relative c''' {
576   c4^"piu mosso" b a b
577   \padText #1.8
578   c4^"piu mosso" d e f
579   \padText #2.6
580   c4^"piu mosso" fis a g
581 }
582 @end lilypond
583 On peut s'en servir pour créer de nouvelles commandes :
584
585 @lilypond[quote,verbatim,ragged-right]
586 tempoMark = #(define-music-function (parser location padding marktext)
587                                     (number? string?)
588 #{
589   \once \override Score . RehearsalMark #'padding = $padding
590   \once \override Score . RehearsalMark #'extra-spacing-width = #'(+inf.0 . -inf.0)
591   \mark \markup { \bold $marktext }
592 #})
593
594 \relative c'' {
595   c2 e
596   \tempoMark #3.0 #"Allegro"
597   g c
598 }
599 @end lilypond
600
601 On peut même y inclure des expressions musicales :
602
603 @lilypond[quote,verbatim,ragged-right]
604 pattern = #(define-music-function (parser location x y) (ly:music? ly:music?)
605 #{
606   $x e8 a b $y b a e
607 #})
608
609 \relative c''{
610   \pattern c8 c8\f
611   \pattern {d16 dis} { ais16-> b\p }
612 }
613 @end lilypond
614