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