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
36 UNTRANSLATED NODE: IGNORE ME
40 * Introduction to tweaks::
41 * Objects and interfaces::
42 * Naming conventions of objects and properties::
46 @node Introduction to tweaks
47 @subsection Introduction to tweaks
50 UNTRANSLATED NODE: IGNORE ME
53 @node Objects and interfaces
54 @subsection Objects and interfaces
57 UNTRANSLATED NODE: IGNORE ME
60 @node Naming conventions of objects and properties
61 @subsection Naming conventions of objects and properties
64 UNTRANSLATED NODE: IGNORE ME
67 @node Tweaking methods
68 @subsection Tweaking methods
71 UNTRANSLATED NODE: IGNORE ME
74 @node The Internals Reference manual
75 @section The Internals Reference manual
78 UNTRANSLATED NODE: IGNORE ME
82 * Properties of layout objects::
83 * Properties found in interfaces::
84 * Types of properties::
87 @node Properties of layout objects
88 @subsection Properties of layout objects
91 UNTRANSLATED NODE: IGNORE ME
94 @node Properties found in interfaces
95 @subsection Properties found in interfaces
98 UNTRANSLATED NODE: IGNORE ME
101 @node Types of properties
102 @subsection Types of properties
105 UNTRANSLATED NODE: IGNORE ME
108 @node Appearance of objects
109 @section Appearance of objects
112 UNTRANSLATED NODE: IGNORE ME
116 * Visibility and color of objects::
118 * Length and thickness of objects::
121 @node Visibility and color of objects
122 @subsection Visibility and color of objects
125 UNTRANSLATED NODE: IGNORE ME
128 @node Size of objects
129 @subsection Size of objects
132 UNTRANSLATED NODE: IGNORE ME
135 @node Length and thickness of objects
136 @subsection Length and thickness of objects
139 UNTRANSLATED NODE: IGNORE ME
142 @node Placement of objects
143 @section Placement of objects
146 UNTRANSLATED NODE: IGNORE ME
150 * Automatic behavior::
151 * Within-staff objects::
152 * Outside staff objects::
155 @node Automatic behavior
156 @subsection Automatic behavior
159 UNTRANSLATED NODE: IGNORE ME
162 @node Within-staff objects
163 @subsection Within-staff objects
166 UNTRANSLATED NODE: IGNORE ME
169 @node Outside staff objects
170 @subsection Outside staff objects
173 UNTRANSLATED NODE: IGNORE ME
177 @node Collisions of objects
178 @section Collisions of objects
183 * Fixing overlapping notation::
184 * Real music example::
188 @subsection Moving objects
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.
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.
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
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.
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
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 ?
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
241 @lilypond[quote,fragment,ragged-right,verbatim,relative=2]
242 % temporary code to break this example:
243 \override TextScript #'outside-staff-priority = ##f
245 \once \override TextScript #'padding = #4.6
247 \once \override TextScript #'staff-padding = #4.6
248 c4^"piu mosso" fis a g
250 c'4^"piu mosso" b a b
251 \once \override TextScript #'padding = #4.6
253 \once \override TextScript #'staff-padding = #4.6
254 c4^"piu mosso" fis a g
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.
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
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.
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
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.
296 Une dernière mise en garde : dans cette section, nous avons eu recours à
299 \once \override TextScript @dots{}
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}.
310 @lilypond[quote,fragment,ragged-right,verbatim,relative=3]
311 % temporary code to break this example:
312 \override TextScript #'outside-staff-priority = ##f
314 \once \override TextScript #'padding = #4.6
317 \once \override TextScript #'padding = #4.6
321 \override TextScript #'padding = #4.6
324 \revert TextScript #'padding
330 Dans ce même manuel : @ruser{The \override command}, @ref{Common tweaks}.
333 @node Fixing overlapping notation
334 @subsection Fixing overlapping notation
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.
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
348 Référence du programme : @rinternals{DynamicText}, @rinternals{Hairpin}.
349 Le placement vertical de ces symboles est contrôlé par
350 @rinternals{DynamicLineSpanner}.
355 Ce qui implique que, pour modifier la hauteur d'une nuance, nous utiliserons
358 \override DynamicLineSpanner #'padding = #2.0
361 Nous ne listerons pas ici tous les types d'objets, mais seulement
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}
377 @node Real music example
378 @subsection Real music example
381 UNTRANSLATED NODE: IGNORE ME
385 @c DEPRECATED SECTION
387 @section Common tweaks
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.
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.
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}.
410 @lilypond[quote,fragment,relative=1,verbatim]
412 \override Script #'padding = #3
416 @lilypond[quote,fragment,relative=1,verbatim]
417 % This will not work, see below:
418 \override MetronomeMark #'padding = #3
422 \override Score.MetronomeMark #'padding = #3
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}.
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.
443 Dans l'exemple suivant, le second doigté est déplacé un peu vers la gauche, et
444 plus bas de 1.8 espaces :
446 @lilypond[quote,fragment,relative=1,verbatim]
449 \once \override Fingering
450 #'extra-offset = #'(-0.3 . -1.8)
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.
461 @cindex transparents, objets
462 @cindex suppression d'objets
463 @cindex masquage d'objets
464 @cindex invisibles, objets
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
471 @lilypond[quote,fragment,relative=2]
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 :
484 @lilypond[quote,fragment,relative=2,verbatim]
486 \once \override Stem #'transparent = ##t
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} :
497 @lilypond[quote,fragment,relative=2,verbatim]
499 \once \override Stem #'transparent = ##t
500 \once \override Stem #'length = #8
509 @cindex retouches, distances
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.
521 @node Further tweaking
522 @section Further tweaking
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::
532 @node Other uses for tweaks
533 @subsection Other uses for tweaks
536 UNTRANSLATED NODE: IGNORE ME
539 @node Using variables for tweaks
540 @subsection Using variables for tweaks
543 UNTRANSLATED NODE: IGNORE ME
546 @node Other sources of information
547 @subsection Other sources of information
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.
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.
564 @item Linux : @file{@var{dossierduprogramme}/lilypond/usr/share/lilypond/current/}
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}.
574 @item Windows : @file{@var{dossierduprogramme}/LilyPond/usr/share/lilypond/current/}
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.
583 @node Avoiding tweaks with slower processing
584 @subsection Avoiding tweaks with slower processing
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.
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
597 @node Advanced tweaks with Scheme
598 @subsection Advanced tweaks with Scheme
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}.
607 On peut utiliser Scheme simplement à l'aide des commandes @code{\override}.
609 @lilypond[quote,verbatim,ragged-right]
610 padText = #(define-music-function (parser location padding) (number?)
612 \once \override TextScript #'padding = #$padding
620 c4^"piu mosso" fis a g
623 On peut s'en servir pour créer de nouvelles commandes :
625 @lilypond[quote,verbatim,ragged-right]
626 tempoMark = #(define-music-function (parser location padding marktext)
629 \once \override Score . RehearsalMark #'padding = $padding
630 \once \override Score . RehearsalMark #'extra-spacing-width = #'(+inf.0 . -inf.0)
631 \mark \markup { \bold $marktext }
636 \tempoMark #3.0 #"Allegro"
641 On peut même y inclure des expressions musicales :
643 @lilypond[quote,verbatim,ragged-right]
644 pattern = #(define-music-function (parser location x y) (ly:music? ly:music?)
651 \pattern {d16 dis} { ais16-> b\p }