1 @c -*- coding: utf-8; mode: texinfo; documentlanguage: fr -*-
2 @c This file is part of lilypond.tely
4 Translation of GIT committish: 964d024dd4f022ba7cd66adc13c0169035d4c4e5
6 When revising a translation, copy the HEAD committish of the
7 version that you are working on. See TRANSLATION for details.
12 @c Translators: Valentin Villenave, Nicolas Klutchnikoff
13 @c Translation checkers: Jean-Charles Malahieude, John Mandereau
16 @chapter Tweaking output
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.
24 * The Internals Reference manual::
25 * Appearance of objects::
26 * Placement of objects::
27 * Collisions of objects::
33 @section Tweaking basics
38 * Introduction to tweaks::
39 * Objects and interfaces::
40 * Naming conventions of objects and properties::
44 @node Introduction to tweaks
45 @subsection Introduction to tweaks
49 @node Objects and interfaces
50 @subsection Objects and interfaces
54 @node Naming conventions of objects and properties
55 @subsection Naming conventions of objects and properties
59 @node Tweaking methods
60 @subsection Tweaking methods
64 @node The Internals Reference manual
65 @section The Internals Reference manual
70 * Properties of layout objects::
71 * Properties found in interfaces::
72 * Types of properties::
75 @node Properties of layout objects
76 @subsection Properties of layout objects
80 @node Properties found in interfaces
81 @subsection Properties found in interfaces
85 @node Types of properties
86 @subsection Types of properties
90 @node Appearance of objects
91 @section Appearance of objects
96 * Visibility and color of objects::
98 * Length and thickness of objects::
101 @node Visibility and color of objects
102 @subsection Visibility and color of objects
106 @node Size of objects
107 @subsection Size of objects
111 @node Length and thickness of objects
112 @subsection Length and thickness of objects
116 @node Placement of objects
117 @section Placement of objects
122 * Automatic behavior::
123 * Within-staff objects::
124 * Outside staff objects::
127 @node Automatic behavior
128 @subsection Automatic behavior
132 @node Within-staff objects
133 @subsection Within-staff objects
137 @node Outside staff objects
138 @subsection Outside staff objects
143 @node Collisions of objects
144 @section Collisions of objects
149 * Fixing overlapping notation::
150 * Real music example::
154 @subsection Moving objects
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.
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.
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
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.
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
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 ?
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
207 @lilypond[quote,fragment,ragged-right,verbatim,relative=2]
208 % temporary code to break this example:
209 \override TextScript #'outside-staff-priority = ##f
211 \once \override TextScript #'padding = #4.6
213 \once \override TextScript #'staff-padding = #4.6
214 c4^"piu mosso" fis a g
216 c'4^"piu mosso" b a b
217 \once \override TextScript #'padding = #4.6
219 \once \override TextScript #'staff-padding = #4.6
220 c4^"piu mosso" fis a g
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.
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
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.
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
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.
262 Une dernière mise en garde : dans cette section, nous avons eu recours à
265 \once \override TextScript @dots{}
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}.
276 @lilypond[quote,fragment,ragged-right,verbatim,relative=3]
277 % temporary code to break this example:
278 \override TextScript #'outside-staff-priority = ##f
280 \once \override TextScript #'padding = #4.6
283 \once \override TextScript #'padding = #4.6
287 \override TextScript #'padding = #4.6
290 \revert TextScript #'padding
296 Dans ce même manuel : @ruser{The \override command}, @ref{Common tweaks}.
299 @node Fixing overlapping notation
300 @subsection Fixing overlapping notation
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.
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
313 Référence du programme : @rinternals{DynamicText}, @rinternals{Hairpin}.
314 Le placement vertical de ces symboles est contrôlé par
315 @rinternals{DynamicLineSpanner}.
318 Ce qui implique que, pour modifier la hauteur d'une nuance, nous utiliserons
321 \override DynamicLineSpanner #'padding = #2.0
324 Nous ne listerons pas ici tous les types d'objets, mais seulement
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}
340 @node Real music example
341 @subsection Real music example
346 @c DEPRECATED SECTION
348 @section Common tweaks
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.
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.
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}.
371 @lilypond[quote,fragment,relative=1,verbatim]
373 \override Script #'padding = #3
377 @lilypond[quote,fragment,relative=1,verbatim]
378 % This will not work, see below:
379 \override MetronomeMark #'padding = #3
383 \override Score.MetronomeMark #'padding = #3
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}.
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.
404 Dans l'exemple suivant, le second doigté est déplacé un peu vers la gauche, et
405 plus bas de 1.8 espaces :
407 @lilypond[quote,fragment,relative=1,verbatim]
410 \once \override Fingering
411 #'extra-offset = #'(-0.3 . -1.8)
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.
422 @cindex transparents, objets
423 @cindex suppression d'objets
424 @cindex masquage d'objets
425 @cindex invisibles, objets
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
432 @lilypond[quote,fragment,relative=2]
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 :
445 @lilypond[quote,fragment,relative=2,verbatim]
447 \once \override Stem #'transparent = ##t
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} :
458 @lilypond[quote,fragment,relative=2,verbatim]
460 \once \override Stem #'transparent = ##t
461 \once \override Stem #'length = #8
470 @cindex retouches, distances
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.
482 @node Further tweaking
483 @section Further tweaking
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::
493 @node Other uses for tweaks
494 @subsection Other uses for tweaks
498 @node Using variables for tweaks
499 @subsection Using variables for tweaks
503 @node Other sources of information
504 @subsection Other sources of information
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.
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.
521 @item Linux : @file{@var{dossierduprogramme}/lilypond/usr/share/lilypond/current/}
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}.
531 @item Windows : @file{@var{dossierduprogramme}/LilyPond/usr/share/lilypond/current/}
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.
540 @node Avoiding tweaks with slower processing
541 @subsection Avoiding tweaks with slower processing
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.
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
554 @node Advanced tweaks with Scheme
555 @subsection Advanced tweaks with Scheme
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}.
564 On peut utiliser Scheme simplement à l'aide des commandes @code{\override}.
566 @lilypond[quote,verbatim,ragged-right]
567 padText = #(define-music-function (parser location padding) (number?)
569 \once \override TextScript #'padding = #$padding
577 c4^"piu mosso" fis a g
580 On peut s'en servir pour créer de nouvelles commandes :
582 @lilypond[quote,verbatim,ragged-right]
583 tempoMark = #(define-music-function (parser location padding marktext)
586 \once \override Score . RehearsalMark #'padding = $padding
587 \once \override Score . RehearsalMark #'extra-spacing-width = #'(+inf.0 . -inf.0)
588 \mark \markup { \bold $marktext }
593 \tempoMark #3.0 #"Allegro"
598 On peut même y inclure des expressions musicales :
600 @lilypond[quote,verbatim,ragged-right]
601 pattern = #(define-music-function (parser location x y) (ly:music? ly:music?)
608 \pattern {d16 dis} { ais16-> b\p }