]> git.donarmstrong.com Git - lilypond.git/commitdiff
Doc-fr: LM-4 full translation
authorJean-Charles Malahieude <lolyfan@wanadoo.fr>
Mon, 1 Dec 2008 18:45:35 +0000 (19:45 +0100)
committerJean-Charles Malahieude <lolyfan@wanadoo.fr>
Mon, 1 Dec 2008 18:45:35 +0000 (19:45 +0100)
Documentation/fr/user/tweaks.itely

index e3f859374ea39aaae0ff77dd7555e9baa47eb861..2fe47381b943a70c26be2360b3515cab07b62041 100644 (file)
@@ -1,7 +1,7 @@
 @c -*- coding: utf-8; mode: texinfo; documentlanguage: fr -*-
 @c This file is part of lilypond.tely
 @ignore
-    Translation of GIT committish: 964d024dd4f022ba7cd66adc13c0169035d4c4e5
+       Translation of GIT committish: 90a367b11c50bd1fe242656715f807d1445225d7
 
     When revising a translation, copy the HEAD committish of the
     version that you are working on.  See TRANSLATION for details.
@@ -9,15 +9,15 @@
 
 @c \version "2.11.61"
 
-@c Translators: Valentin Villenave, Nicolas Klutchnikoff
+@c Translators: Valentin Villenave, Nicolas Klutchnikoff, Damien Heurtebise
 @c Translation checkers: Jean-Charles Malahieude, John Mandereau
 
 @node Tweaking output
 @chapter Tweaking output
 
-Ce chapitre indique comment modifier le résultat que vous obtiendrez.
-LilyPond offre de nombreuses possibilités de réglages, permettant de modifier
-quasiment chaque élément de votre partition.
+Ce chapitre indique comment modifier le résultat obtenu.
+LilyPond offre de nombreuses possibilités de réglages, permettant
+théoriquement de modifier chaque élément de votre partition.
 
 @menu
 * Tweaking basics::             
@@ -32,8 +32,6 @@ quasiment chaque élément de votre partition.
 @node Tweaking basics
 @section Tweaking basics
 
-@untranslated
-
 @menu
 * Introduction to tweaks::      
 * Objects and interfaces::      
@@ -44,568 +42,3725 @@ quasiment chaque élément de votre partition.
 @node Introduction to tweaks
 @subsection Introduction to tweaks
 
-@untranslated
+LilyPond regroupe sous le terme de @qq{retouches} (@emph{tweaks} en
+anglais) les différents moyens dont dispose l'utilisateur pour 
+intervenir sur l'interprétation du fichier d'entrée et pour modifier 
+l'apparence du fichier de sortie.  Certaines retouches sont très 
+simples à mettre en œuvre ; d'autres sont plus complexes.  Mais 
+à elles toutes, elles permettent d'obtenir tout ce qu'on veut en matière
+de musique imprimée.
+
+Dans ce chapitre, nous traitons des concepts de base nécessaires
+pour comprendre l'art de la retouche.  Puis nous présentons de 
+nombreuses commandes déjà prêtes, qu'il suffit de recopier pour 
+obtenir un résultat identique dans vos partitions ; nous en profitons
+pour expliquer comment ces commandes ont été construites, si bien 
+que vous pouvez apprendre par la même occasion à développer 
+vos propres retouches.
+
+Avant de vous lancer dans ce chapitre, il peut être utile de revoir la
+section @ref{Contexts and engravers}, dans la mesure où les contextes,
+graveurs et autres propriétés qui y sont décrits, sont indispensables 
+pour comprendre et construire les retouches.
 
 @node Objects and interfaces
 @subsection Objects and interfaces
 
-@untranslated
+@cindex objet
+@cindex grob
+@cindex spanner
+@cindex extenseur
+@cindex interface
+@cindex propriétés des objets
+@cindex objet, propriétés
+@cindex objet de rendu
+@cindex rendu, objets de
+
+Toute retouche implique que l'on modifie les opérations internes 
+et les structures du programme LilyPond.  Nous allons donc, pour
+commencer, présenter certains termes qui servent à décrire ces
+opérations internes et ces structures.
+
+Le terme d'@qq{Objet} est un terme générique qui fait référence à 
+une multitude de structures internes mises en place par LilyPond 
+durant la compilation d'un fichier d'entrée.  Ainsi, quand une 
+commande du type @code{\new Staff} apparaît, un nouvel objet 
+du type @code{Staff} est créé.  Cet objet @code{Staff} contient 
+alors toutes les propriétés associées à cette portée, par exemple son
+nom et son armure, ainsi que le détail des graveurs qui ont été 
+désignés pour fonctionner dans ce contexte de portée.  
+Certains objets peuvent contenir les propriétés de tous les autres 
+contextes, comme les objets @code{Voice}, les objets @code{Score},
+les objets @code{Lyrics} ; d'autres se rapportent à tous les éléments de
+notation, comme les barres de mesure, les liaisons, les nuances, etc. 
+Chaque objet dispose de son propre échantillon de valeurs pour le 
+réglage des propriétés.
+
+Certains types d'objet portent des noms spécifiques.  Les objets qui se 
+rapportent à des éléments de notation sur le fichier de sortie, comme les 
+notes, les hampes, les liaisons de phrasé ou de prolongation, les doigtés, 
+les clefs, etc. sont appelés @qq{Objets de rendu} ; ils sont aussi connus 
+sous le nom d'@qq{Objets graphiques} (en anglais : @emph{Graphical
+objects} ou @emph{Grobs} pour faire court).  Ce sont bien des objets au
+sens générique ci-dessus, et, en tant que tels, ils reçoivent des
+propriétés qui leur sont associées, comme leur position, leur taille,
+leur couleur, etc. 
+
+Certains objets de rendu, comme les liaisons de phrasé, les soufflets 
+de crescendo, les marques d'octaviation et beaucoup d'autres @emph{grobs}, 
+ont pour particularité de ne pas se situer à un seul et unique endroit
+-- ils ont un point de départ, un point d'arrivée, et éventuellement
+d'autres propriétés relatives à leur forme.  Ces objets avec une forme
+étendue sont appelés des bandeaux (@emph{Spanners} en anglais).
+
+Il reste à expliquer ce que sont les @qq{interfaces}.  De nombreux objets, 
+qui peuvent être très différents les uns des autres, ont pour point commun
+de devoir être compilés simultanément.  Par exemple, tous les
+@emph{grobs} ont une couleur, une taille, une position, etc., et toutes
+ces propriétés sont compilées simultanément durant l'interprétation du
+fichier d'entrée par LilyPond.  Pour alléger ces opérations internes,
+ces actions et propriétés communes sont regroupées en un objet appelé
+@code{grob-interface}.  Il existe beaucoup d'autres regroupements de
+propriétés communes dans le genre de celui-ci, chacun portant un nom qui
+se termine par @code{interface}.  En tout, on en compte plus d'une
+centaine.  Nous verrons plus loin en quoi c'est intéressant et utile
+pour l'utilisateur. 
+
+Ainsi s'achève le tour des principaux termes relatifs aux objets et 
+que nous serons amenés à utiliser dans ce chapitre. 
 
 @node Naming conventions of objects and properties
 @subsection Naming conventions of objects and properties
 
-@untranslated
+@cindex conventions de nommage des objets
+@cindex conventions de nommage des propriétés
+@cindex objets, conventions de nommage des
+@cindex propriétés, conventions de nommage des
+
+Nous avons eu un aperçu, dans @ref{Contexts and engravers}, de 
+la façon de nommer les objets.  Voici maintenant une liste de 
+référence des types d'objets et de propriétés les plus courants, 
+avec leur convention de nommage et quelques exemples 
+de cas concrets.  La lettre @code{A} représente n'importe quel 
+caractère alphabétique majuscule, et les lettres @code{aaa} 
+un nombre indéterminé de caractères alphabétiques minuscules.  
+Les autres caractères sont à prendre comme ils se présentent.
+
+@multitable @columnfractions .33 .33 .33
+@headitem Type d'objet/propriété           
+       @tab Convention de désignation
+       @tab Exemples
+@item Contextes
+       @tab Aaaa ou AaaaAaaaAaaa
+       @tab Staff, GrandStaff
+@item Objets de rendu
+       @tab Aaaa ou AaaaAaaaAaaa
+       @tab Slur, NoteHead
+@item Graveurs
+       @tab Aaaa_aaa_engraver
+       @tab Clef_engraver, Note_heads_engraver
+@item Interfaces
+       @tab aaa-aaa-interface
+       @tab grob-interface, break-aligned-interface 
+@item Propriétés de contexte
+       @tab aaa ou aaaAaaaAaaa
+       @tab alignAboveContext, skipBars
+@item Propriétés d'objet de rendu
+       @tab aaa ou aaa-aaa-aaa
+       @tab direction, beam-thickness
+@end multitable
+
+Comme nous le verrons bientôt, les propriétés des différents 
+types d'objets sont modifiées par des commandes différentes, si bien 
+qu'il est bon de savoir reconnaître le type d'objet en fonction du nom
+de ses propriétés. 
 
 @node Tweaking methods
 @subsection Tweaking methods
 
-@untranslated
-
-@node The Internals Reference manual
-@section The Internals Reference manual
+@cindex retouches, méthodologie
+@cindex méthodes de retouche
 
-@untranslated
+@strong{La commande \override}
 
-@menu
-* Properties of layout objects::  
-* Properties found in interfaces::  
-* Types of properties::         
-@end menu
+@cindex override, commande
+@cindex override, syntaxe
 
-@node Properties of layout objects
-@subsection Properties of layout objects
+@funindex \override
+@funindex override
 
-@untranslated
+Dans @ref{Modifying context properties} et dans 
+@ref{Adding and removing engravers}, nous avons déjà rencontré les
+commandes @code{\set} et @code{\with}, qui servent à changer les
+propriétés des @strong{contextes} et à supprimer ou ajouter des
+@strong{graveurs}.  Voici maintenant d'autres commandes plus
+importantes. 
 
-@node Properties found in interfaces
-@subsection Properties found in interfaces
+La commande pour changer les propriétés des @strong{objets de rendu} 
+est @code{\override}.  Du fait que cette commande modifie en profondeur 
+les propriétés internes de LilyPond, sa syntaxe n'est pas aussi simple que 
+pour les commandes vues précédemment.  Elle a besoin de savoir avec 
+précision quelle est la propriété à modifier, pour quel objet et dans
+quel  contexte, et quelle doit être sa nouvelle valeur.  Voyons de quoi
+il retourne.
 
-@untranslated
+La syntaxe générale de cette commande est : 
 
-@node Types of properties
-@subsection Types of properties
+@example
+\override @var{Contexte}.@var{ObjetDeRendu} #'@var{propriété-rendu} = #@var{valeur}
+@end example
 
-@untranslated
+@noindent
+Elle attribue à la propriété appelée @var{propriété-rendu}, associée à
+l'objet @var{ObjetDeRendu}, appartenant lui-même au contexte 
+@var{Contexte}, une valeur @var{valeur}.
+
+Le contexte @var{Contexte} peut être omis (c'est généralement 
+le cas) quand il n'y a pas d'ambiguïté et qu'il s'agit d'un contexte 
+de très bas niveau, comme @code{Voice}, @code{ChordNames} 
+ou @code{Lyrics}.  Dans les exemples qui suivent, le contexte sera 
+très souvent omis.  Nous verrons plus tard dans quelles
+circonstances il doit impérativement être indiqué.
+
+Les sections ci-dessous traitent largement des propriétés et de leurs 
+valeurs mais, pour illustrer la mise en forme et l'utilisation de ces 
+commandes, nous nous limiterons à n'employer que quelques propriétés et
+valeurs simples, facilement compréhensibles.
+
+Nous ne parlerons dans l'immédiat ni du @code{#'}, qui précède 
+toujours la propriété, ni du @code{#}, qui précède toujours la 
+valeur.  Ces deux éléments doivent obligatoirement être 
+présents sous cette forme.  Voici la commande la plus fréquente 
+pour faire des retouches, et pratiquement tout le reste de ce 
+chapitre aura pour but montrer, à travers des exemples, comment 
+l'utiliser.  L'exemple ci-dessous change la couleur des têtes de 
+notes :
+
+@cindex couleur,exemple de propriété
+@cindex NoteHead, exemple de dérogation
+
+@lilypond[quote,fragment,ragged-right,verbatim,relative=1]
+c d
+\override NoteHead #'color = #red
+e f g
+\override NoteHead #'color = #green
+a b c
+@end lilypond
 
-@node Appearance of objects
-@section Appearance of objects
+@strong{La commande \revert}
 
-@untranslated
+@cindex revert, commande
 
-@menu
-* Visibility and color of objects::  
-* Size of objects::             
-* Length and thickness of objects::  
-@end menu
+@funindex \revert
+@funindex revert
 
-@node Visibility and color of objects
-@subsection Visibility and color of objects
+Une fois qu'elle a été modifiée, la propriété conserve sa nouvelle valeur 
+jusqu'à ce qu'elle soit à nouveau modifiée ou qu'elle rencontre la 
+commande @code{\revert}.  La commande @code{\revert} obéit à 
+la syntaxe ci-dessous et ramène la valeur de la propriété à sa valeur 
+d'origine.  Attention : dans le cas où plusieurs @code{\override} ont 
+été employés, il ne s'agit pas de la valeur précédente mais bien de la 
+valeur par défaut. 
 
-@untranslated
+@example
+\revert @var{Contexte}.@var{ObjetDeRendu} #'@var{propriété-de-rendu}
+@end example
 
-@node Size of objects
-@subsection Size of objects
+Tout comme pour la commande @code{\override}, la mention du 
+@var{Contexte} est souvent facultative.  Elle sera omise dans de 
+nombreux exemples ci-dessous.  Voici un exemple qui ramène la 
+couleur des deux dernières notes à leur valeur par défaut :
+
+@cindex couleur,exemple de propriété
+@cindex NoteHead, exemple de dérogation
+
+@lilypond[quote,fragment,ragged-right,verbatim,relative=1]
+c d
+\override NoteHead #'color = #red
+e f g
+\override NoteHead #'color = #green
+a
+\revert NoteHead #'color
+b c
+@end lilypond
 
-@untranslated
+@strong{Le préfixe \once}
 
-@node Length and thickness of objects
-@subsection Length and thickness of objects
+@funindex \once
+@funindex once
 
-@untranslated
+Les commandes @code{\override} et @code{\set} peuvent supporter  
+toutes les deux le préfixe @code{\once}.  Celui-ci a pour fonction de 
+n'appliquer la commande @code{\override} ou @code{\set} qu'à
+l'instant musical en cours, avant que la propriété ne reprenne 
+sa valeur par défaut.  Toujours à partir du même exemple, il est
+possible de ne changer la couleur que d'une seule note :
 
-@node Placement of objects
-@section Placement of objects
+@cindex couleur,exemple de propriété
+@cindex NoteHead, exemple de dérogation
 
-@untranslated
+@lilypond[quote,fragment,ragged-right,verbatim,relative=1]
+c d
+\once \override NoteHead #'color = #red
+e f g
+\once \override NoteHead #'color = #green
+a b c
+@end lilypond
 
-@menu
-* Automatic behavior::          
-* Within-staff objects::        
-* Outside staff objects::       
-@end menu
+@strong{La commande \overrideProperty}
 
-@node Automatic behavior
-@subsection Automatic behavior
+@cindex overrideProperty, commande
 
-@untranslated
+@funindex \overrideProperty
+@funindex overrideProperty
 
-@node Within-staff objects
-@subsection Within-staff objects
+Il existe une autre forme de commande @code{\override}, 
+@code{\overrideProperty}, qui est parfois utile.  Nous la mentionnons
+ici par souci d'exhaustivité ; pour le détail, voir @ruser{Difficult tweaks}.
 
-@untranslated
+@c Maybe explain in a later iteration  -td
 
-@node Outside staff objects
-@subsection Outside staff objects
+@strong{La commande \tweak}
 
-@untranslated
+@cindex tweak, commande
 
+@funindex \tweak
+@funindex tweak
 
-@node Collisions of objects
-@section Collisions of objects
+La dernière commande disponible pour les retouches est 
+@code{\tweak}.  Elle sert à changer les propriétés d'objets qui
+surviennent simultanément dans la musique, comme par exemple les 
+notes d'un accord.  La commande @code{\override} modifierait toutes
+les notes de l'accord, tandis que @code{\tweak} ne modifie que 
+l'élément suivant dans la chaîne de saisie.
 
+Voici un exemple.  Supposons que nous voulions changer la taille de 
+la tête de note du milieu (le mi) dans un accord de do majeur.  Voyons 
+d'abord ce que donnerait @code{\once \override} :
 
-@menu
-* Moving objects::              
-* Fixing overlapping notation::  
-* Real music example::          
-@end menu
+@cindex font-size, exemple de propriété
+@cindex NoteHead, exemple de dérogation
 
-@node Moving objects
-@subsection Moving objects
+@lilypond[quote,fragment,ragged-right,verbatim,relative=1]
+<c e g>4
+\once \override NoteHead #'font-size = #-3
+<c e g>
+<c e g>
+@end lilypond
 
-Aussi surprenant que cela puisse paraître, LilyPond n'est pas parfait.
-Certains éléments sur la partition peuvent se chevaucher, ce qui est 
-regrettable mais, le plus souvent, facile à corriger.
+Nous voyons que @code{\override} modifie @emph{toutes} les têtes 
+de notes de l'accord, car toutes les notes de l'accord surviennent au 
+même @emph{instant musical} et que la fonction de @code{\once} 
+est de faire porter la modification sur tous les objets du type spécifié 
+qui surviennent au même instant musical, comme le fait la commande 
+@code{\override} elle-même. 
+
+La commande @code{\tweak} opère différemment.  Elle agit 
+sur l'élément immédiatement suivant dans la chaîne de saisie.  Elle ne
+fonctionne toutefois que sur des objets créés directement à partir de 
+la chaîne de saisie, c'est-à-dire essentiellement des têtes de notes et
+des articulations ; des objets comme les hampes ou les 
+altérations accidentelles sont créés ultérieurement et ne peuvent 
+être retouchés de cette manière.  En outre, quand la retouche porte 
+sur une tête de note, celle-ci @emph{doit} appartenir à un accord, 
+c'est-à-dire être comprise à l'intérieur de chevrons gauche/droite.  Pour 
+retoucher une note isolée, il faut donc placer la commande 
+@code{\tweak} avec la note à l'intérieur des chevrons gauche/droite.
+
+Pour reprendre notre exemple, la taille de la note du milieu d'un 
+accord peut être modifiée de cette manière : 
+
+@cindex font-size, exemple de propriété
+@cindex @code{\tweak}, exemple
+
+@lilypond[quote,fragment,ragged-right,verbatim,relative=1]
+<c e g>4
+<c \tweak #'font-size #-3 e g>4
+@end lilypond
 
-@c  FIXME: find a better example for 5.1 Moving Objects.  -gp
-@c  yes, I want this TODO to be visible to end-users.  It's better
-@c  than having nothing at all.
-À FAIRE : les modifications de la gestion des espacements de la version 2.12
-feront perdre leur pertinence aux exemples suivants.  Ils démontrent cependant 
-la puissance de LilyPond, et justifient à ce titre leur présence dans
-ces lignes, tant que d'autres exemples n'auront pas été proposés.
+Vous noterez que la syntaxe de @code{\tweak} est différente de 
+celle de la commande @code{\override}.  Ni le contexte, 
+ni l'objet n'ont besoin d'être spécifiés ; au contraire, cela 
+produirait une erreur si on le faisait.  Tous deux sont sous-entendus
+par l'élément suivant dans la chaîne de saisie.  La syntaxe générale 
+de la commande @code{\tweak} est donc, tout simplement :
 
-@lilypond[quote,fragment,ragged-right,verbatim,relative=2]
-  % temporary code to break this example:
-  \override TextScript #'outside-staff-priority = ##f
-e4^\markup{ \italic ritenuto } g b e
-@end lilypond
+@example
+\tweak #'@var{propriété-de-rendu} = #@var{valeur}
+@end example
 
-@cindex padding
+La commande @code{\tweak} est aussi utilisée quand on veut, dans 
+une série d'articulations, n'en modifier qu'une seule.  Ainsi :
 
-Le plus simple est ici d'augmenter la distance entre l'objet (du
-texte comme ici, ou bien des nuances ou des doigtés) et la note.
-Dans LilyPond, il s'agit de la propriété @code{padding}, qui
-se mesure en espaces relatifs à la taille de la portée. Pour la plupart
-des objets (chacun ayant sa propre valeur), elle est définie à 1.0, ou
-un peu moins.  Nous voulons ici l'augmenter : essayons 1.5.
+@cindex couleur, exemple de propriété
+@cindex @code{\tweak}, exemple
 
 @lilypond[quote,fragment,ragged-right,verbatim,relative=2]
-  % temporary code to break this example:
-  \override TextScript #'outside-staff-priority = ##f
-\once \override TextScript #'padding = #1.5
-e4^\markup{ \italic ritenuto } g b e
+a ^Black
+       -\tweak #'color #red ^Red
+       -\tweak #'color #green _Green
 @end lilypond
 
+@noindent
+Attention : la commande @code{\tweak} doit être précédée d'une 
+marque d'articulation, comme si elle-même était une articulation.
+
+@cindex nolets imbriqués
+@cindex triolets imbriqués
+@cindex crochet de nolet
+@cindex nolet, crochet
+@cindex triolet, crochet
+
+@funindex TupletBracket
+
+Quand plusieurs nolets sont imbriqués et commencent au même instant 
+musical, c'est encore la commande @code{\tweak} qui est utilisée pour 
+changer l'apparence de l'un d'entre eux.  Dans l'exemple suivant, le
+long crochet de nolet et le premier des trois crochets courts commencent
+au même instant musical ; une commande @code{\override} s'appliquerait 
+donc à la fois aux deux.  En revanche, @code{\tweak} permet  
+de les dissocier.  La première commande @code{\tweak} indique que 
+le long crochet doit être placé au-dessus des notes, et la seconde 
+indique que le coefficient de nolet doit être imprimé en rouge sur le 
+premier crochet de triolet court. 
+
+@cindex @code{\tweak}, exemple
+@cindex direction, exemple de propriété
+@cindex couleur, exemple de propriété
+
+@lilypond[quote,ragged-right,verbatim,fragment,relative=2]
+\tweak #'direction #up
+\times 4/3 {
+       \tweak #'color #red
+       \times 2/3 { c8[ c8 c8] }
+       \times 2/3 { c8[ c8 c8] }
+       \times 2/3 { c8[ c8 c8] }
+}
+@end lilypond
 
-C'est déjà mieux ! Mais on peut certainement encore améliorer le résultat. 
-Il nous semble, après plusieurs essais, que la meilleure valeur
-dans ce cas soit 2.3. Toutefois, ce constat est le fruit 
-d'expérimentations et de goût personnel en matière de notation.
-Essayez le même exemple avec 2.3... mais également avec 
-des valeurs plus grandes (ou plus petites).
-À votre avis, quelle est la meilleure version ?
+Si les nolets imbriqués ne commencent pas au même moment, 
+leur apparence peut alors être modifiée de la façon habituelle, 
+avec la commande @code{\override} :
+
+@cindex texte, exemple de propriété
+@cindex tuplet-number, example de fonction
+@cindex transparence, example de propriété
+@cindex TupletNumber, exemple de dérogation
+
+@c NOTE Tuplet brackets collide if notes are high on staff
+@c See issue 509
+@lilypond[quote,ragged-right,verbatim,fragment,relative=1]
+\times 2/3 { c8[ c c]}
+\once \override TupletNumber
+       #'text = #tuplet-number::calc-fraction-text
+\times 2/3 {
+       c[ c]
+       c[ c]
+       \once \override TupletNumber #'transparent = ##t
+       \times 2/3 { c8[ c c] }
+\times 2/3 { c8[ c c]}
+}
+@end lilypond
 
+@seealso
+Manuel de notation :
+@ruser{The tweak command}.
 
-La propriété @code{staff-padding} est de nature similaire.
-@code{padding} détermine l'espace minimum entre un objet et l'objet
-le plus proche (le plus souvent une note ou les lignes de la portée) ;
-@code{staff-padding} détermine pour sa part l'espace minimum entre
-un objet et la portée. La différence est subtile, mais vous apparaîtra 
-clairement ici :
 
-@lilypond[quote,fragment,ragged-right,verbatim,relative=2]
-  % temporary code to break this example:
-  \override TextScript #'outside-staff-priority = ##f
-c4^"piu mosso" b a b
-\once \override TextScript #'padding = #4.6
-c4^"piu mosso" d e f
-\once \override TextScript #'staff-padding = #4.6
-c4^"piu mosso" fis a g
-\break
-c'4^"piu mosso" b a b
-\once \override TextScript #'padding = #4.6
-c4^"piu mosso" d e f
-\once \override TextScript #'staff-padding = #4.6
-c4^"piu mosso" fis a g
-@end lilypond
-
-@cindex extra-offset
-
-Une autre démarche permet de contrôler totalement la position d'un
-objet --- on peut le déplacer horizontalement ou verticalement.  Il
-suffit d'avoir recours à la propriété @code{extra-offset}.  En fait
-c'est une méthode plus complexe, qui peut en outre poser des
-problèmes.  Quand on déplace un objet à l'aide de @code{extra-offset},
-le déplacement est effectué après que LilyPond a placé tous les autres
-objets.  Par conséquent, l'objet ainsi déplacé peut venir
-recouvrir d'autres objets déjà placés.
+@node The Internals Reference manual
+@section The Internals Reference manual
 
+@cindex Références internes
 
-@lilypond[quote,fragment,ragged-right,verbatim,relative=2]
-  % temporary code to break this example:
-  \override TextScript #'outside-staff-priority = ##f
-\once \override TextScript #'extra-offset = #'( 1.0 . -1.0 )
-e4^\markup{ \italic ritenuto } g b e
-@end lilypond
+@menu
+* Properties of layout objects::  
+* Properties found in interfaces::  
+* Types of properties::         
+@end menu
 
-Lorsqu'on utilise @code{extra-offset}, le premier nombre décrit le
-déplacement horizontal (négatif pour un déplacement vers la gauche) 
-tandis que le deuxième décrit un déplacement vertical (positif 
-pour le haut).  Après quelques essais, on peut choisir les valeurs suivantes
-qui semblent donner un résultat satisfaisant.
+@node Properties of layout objects
+@subsection Properties of layout objects
 
-@lilypond[quote,fragment,ragged-right,verbatim,relative=2]
-  % temporary code to break this example:
-  \override TextScript #'outside-staff-priority = ##f
-\once \override TextScript #'extra-offset = #'( -1.6 . 1.0 )
-e4^\markup{ \italic ritenuto } g b e
+@cindex propriétés des objets de rendu
+@cindex propriétés des objets graphiques (grobs)
+@cindex grobs, propriétés
+@cindex objets de rendu, propriétés
+@cindex Manuel des références internes
+
+Imaginons que votre partition contienne une liaison trop fine à votre 
+goût et que vous vouliez la rendre plus épaisse.  Comment vous y 
+prendre ?  Vous êtes convaincu, avec tout ce qui a été dit sur la 
+souplesse de LilyPond, qu'une telle retouche est réalisable et 
+vous vous dites qu'elle fera sans doute intervenir la commande 
+@code{\override}.  Mais existe-t-il une propriété lourde qui s'applique 
+à une liaison et, dans l'affirmative, comment faire pour la modifier ? 
+C'est là qu'intervient la Référence des propriétés internes. 
+Elle contient toutes les informations dont vous avez besoin pour 
+construire n'importe quelle commande @code{\override}.
+
+Avant de nous plonger dans la Référence des propriétés 
+internes, un mot d'avertissement.  Il s'agit d'un document de 
+@strong{références}, de sorte qu'il ne contient pas ou peu 
+d'explications : son but est de présenter les informations de 
+façon précise et concise.  Cela peut paraître décourageant 
+à première vue.  Pas d'inquiétude !  Les conseils et les explications 
+fournis ici vous permettent de retrouver par vous-même les 
+informations dans la Référence des propriétés internes.  Il 
+suffit d'un peu de pratique. 
+
+@cindex override, exemple
+@cindex dérogation, exemple
+@cindex Références internes, exemple d'utilisation
+@cindex @code{\addlyrics} -- exemple
+
+Prenons un exemple concret tiré d'un morceau de musique connu :
+
+@lilypond[quote,verbatim,relative=2]
+{
+  \time 6/8
+  {
+    r4 b8 b[( g]) g |
+    g[( e]) e d[( f]) a |
+    a g
+  }
+  \addlyrics {
+    The man who feels love's sweet e -- mo -- tion
+  }
+}
 @end lilypond
 
-@noindent
+Admettons que nous voulions rendre les traits de liaison plus épais. 
+Est-ce possible ?  Une liaison est assurément un objet de rendu, si bien 
+que la question est @qq{Existe-t-il une propriété attachée aux liaisons 
+et qui en contrôle l'épaisseur ? } Pour y répondre, nous consultons la 
+Référence des propriétés internes (ou RPI pour faire court).
+
+Vous trouverez sur le site de LilyPond @uref{http://lilypond.org} la
+RPI correspondant à votre version du programme.  Allez sur la page 
+Documentation et cliquez sur Référence des propriétés internes. 
+Pour l'apprentissage, mieux vaut utiliser la version HTML standard, 
+et non la @q{page unique en anglais} ou le PDF.  Durant la lecture 
+des prochains paragraphes, il vous est conseillé de vous y reporter 
+réellement afin que les explications prennent tout leur sens.
+
+En dessous du bandeau d'en-tête figurent cinq liens.  Cliquez sur le lien 
+vers le @emph{Backend}, où se trouvent les informations sur les 
+objets de rendu.  En dessous du titre @strong{Backend}, choisissez 
+alors le lien vers @emph{Tous les objets de rendu}.  La page qui s'ouvre 
+énumère, dans l'ordre alphabétique, tous les objets utilisés dans votre 
+version de LilyPond.  Cliquez sur Liaisons (@emph{Slurs} en anglais), 
+et les propriétés des liaisons apparaîtront. 
+
+Il existe un autre moyen de trouver cette page, à partir du Manuel de 
+notation.  Une des pages qui traitent des liaisons contient un lien vers 
+la Référence des propriétés internes, qui mène directement à cette 
+page.  Mais lorsque vous connaissez le nom de l'objet à retoucher, le 
+plus simple est de consulter la RPI. 
+
+La page de la RPI sur les liaisons commence par préciser que les objets 
+Liaison sont créés par le graveur Slur_engraver.  Vient ensuite la liste 
+des réglages standard.  Attention : ceux-ci @strong{ne suivent pas} l'ordre 
+alphabétique.  Il faut donc les parcourir en entier pour trouver la propriété 
+susceptible de contrôler l'épaisseur des traits de liaison.
 
-Une fois encore, c'est après quelques tâtonnements que l'on a abouti à
-ces nombres, au regard du résultat final.  Si vous souhaitez que 
-le texte soit plus haut, plus à gauche, etc. essayez vous-même et choisissez
-aprés avoir regardé le résultat.
+@example
+@code{thickness} (number)
+     @code{1.2}
+     Épaisseur de ligne, généralement mesurée en @code{line-thickness}
+@end example
 
-Une dernière mise en garde : dans cette section, nous avons eu recours à
+Voilà qui semble approprié pour changer l'épaisseur (@emph{thickness} en
+anglais).  On apprend que la valeur de @code{thickness} 
+est un simple nombre (@emph{number}), qu'elle est par défaut 
+à 1,2 et que l'unité de mesure est fixée par une autre propriété 
+appelée @code{line-thickness}.
+
+Comme il a été indiqué, on ne trouve que peu, voire pas du tout 
+d'explications dans la RPI, mais nous en savons assez pour essayer 
+de changer l'épaisseur de la liaison.  Comme nous l'avons vu, le 
+nom de l'objet est @code{Slur}, le nom de la propriété à changer 
+est @code{thickness} et la nouvelle valeur sera un nombre supérieur 
+à 1.2 si l'on veut augmenter l'épaisseur du trait.
+
+Pour construire la commande @code{\override}, il suffit donc de 
+remplacer les valeurs que nous avons trouvées en guise de noms, en 
+laissant de côté le contexte.  Commençons par une valeur très élevée
+dans un premier temps, pour nous assurer que la commande fonctionne. 
+Nous obtenons :
 
 @example
-\once \override TextScript @dots{}
+\override Slur #'thickness = #5.0
 @end example
 
-ce qui permet de régler le placement du texte pour la note suivante. 
-Mais si cette note n'a pas de texte, le réglage ne s'appliquera pas
-et n'attendra @strong{pas} le prochain texte.  Pour que ce comportement 
-persiste après la commande, ne mettez pas @code{\once}.  Votre réglage
-s'appliquera alors partout, jusqu'à ce que vous l'annuliez au moyen de
-la commande @code{\revert}.  Ceci est expliqué en détail dans 
-@ruser{The \override command}.
+N'oublions pas le @code{#'} qui doit précéder le nom de la propriété et 
+le @code{#} qui doit précéder la nouvelle valeur.
+
+La dernière question est : @qq{Où placer cette commande ?}  
+Tant qu'on n'est pas sûr de soi, la meilleure réponse est @qq{À
+l'intérieur de l'expression musicale, avant la première liaison et
+proche d'elle.}  Essayons :
+
+@cindex Slur, exemple de dérogation
+@cindex thickness, exemple de propriété
+
+@lilypond[quote,verbatim,relative=2]
+{
+  \time 6/8
+  {
+    % Increase thickness of all following slurs from 1.2 to 5.0
+    \override Slur #'thickness = #5.0
+    r4 b8 b[( g]) g |
+    g[( e]) e d[( f]) a |
+    a g
+  }
+  \addlyrics {
+    The man who feels love's sweet e -- mo -- tion
+  }
+}
+@end lilypond 
 
-@lilypond[quote,fragment,ragged-right,verbatim,relative=3]
-  % temporary code to break this example:
-  \override TextScript #'outside-staff-priority = ##f
-c4^"piu mosso" b
-\once \override TextScript #'padding = #4.6
-  a4 b
-c4^"piu mosso" d e f
-\once \override TextScript #'padding = #4.6
-c4^"piu mosso" d e f
-c4^"piu mosso" d e f
-\break
-\override TextScript #'padding = #4.6
-c4^"piu mosso" d e f
-c4^"piu mosso" d e f
-\revert TextScript #'padding
-c4^"piu mosso" d e f
-@end lilypond
+@noindent
+et nous constatons que le trait de liaison est beaucoup plus épais.
+
+Telle est la façon normale de construire les commandes 
+@code{\override}.  Comme nous aurons l'occasion de le voir 
+par la suite, le problème est parfois plus complexe.  Dans 
+l'immédiat, nous en savons assez pour construire nos propres 
+commandes -- mais il faut encore s'exercer.  Les exemples 
+suivants sont là dans cette intention.
+
+@subheading Finding the context
+
+@cindex contexte, détermination du
+@cindex contexte, identification correcte du
+
+Tout d'abord, de quoi avions-nous besoin pour préciser le 
+contexte ?  À quoi devait-il ressembler ?  Gageons que les 
+liaisons appartiennent au contexte Voix, dans la mesure où 
+elles sont étroitement liées à une ligne mélodique, mais 
+comment en être sûr ?  Pour répondre à cette question, 
+revenons en haut de la page de la RPI consacrée aux liaisons ; 
+il est écrit : @q{Les objets Liaison sont créés par le graveur 
+Slur_engraver}.  Ainsi les liaisons seront créées dans n'importe 
+quel contexte où se trouve le @code{Slur_engraver}.  Suivons 
+le lien vers la page @code{Slur_engraver}.  Tout en bas, on 
+lit que le @code{Slur_engraver} est un élément appartenant 
+à cinq contextes Voix, dont le contexte de voix 
+standard, @code{Voice}.  Notre hypothèse était donc juste. 
+Et parce que @code{Voice} est un contexte de très bas 
+niveau, qu'il est activé sans ambiguïté par le fait que l'on est 
+en train de saisir des notes, on peut ici ne pas le mentionner.
+
+@subheading Overriding once only
+
+@cindex dérogation pour une seule fois
+@cindex usage unique, dérogation à
+
+@funindex \once
+@funindex once
+
+Dans le dernier exemple ci-dessus, @emph{toutes} les liaisons étaient plus 
+épaisses.  Et si on veut épaissir uniquement la première liaison ?  On
+recourt alors à la commande @code{\once}.  Placée juste avant la commande 
+@code{\override}, elle lui indique de ne changer que la liaison commençant 
+avec la note @strong{juste après}.  Si la note juste après n'ouvre pas une 
+liaison, la commande sera sans aucun effet -- elle ne reste pas en mémoire 
+jusqu'à la prochaine liaison, elle est purement et simplement ignorée.
+Il faut donc que la commande introduite par @code{\once} soit insérée
+comme suit : 
+
+
+@cindex Slur, exemple de dérogation
+@cindex thickness, exemple de propriété
+@cindex Liaison, exemple de dérogation
+@cindex Épaisseur, exemple de propriété
+
+@lilypond[quote,verbatim,relative=2]
+{
+  \time 6/8
+  {
+    r4 b8
+    % Increase thickness of immediately following slur only
+    \once \override Slur #'thickness = #5.0
+    b[( g]) g |
+    g[( e]) e d[( f]) a |
+    a g
+  }
+  \addlyrics {
+    The man who feels love's sweet e -- mo -- tion
+  }
+}
+@end lilypond 
 
+@noindent
+Alors seule la première liaison est rendue plus épaisse.
+
+La commande @code{\once} peut aussi être utilisée devant la commande 
+@code{\set}.
+
+@subheading Reverting
+
+@cindex revert
+@cindex retour
+@cindex défaut, retour aux propriétés par
+
+@funindex \revert
+@funindex revert
+
+Et si l'on voulait que les deux premières liaisons soient plus épaisses ? 
+On pourrait bien sûr utiliser deux commandes, chacune précédée de 
+@code{\once}, et placées juste avant la note par laquelle débute la 
+liaison :
+
+
+@cindex Slur, exemple de dérogation
+@cindex thickness, exemple de propriété
+@cindex Liaison, exemple de dérogation
+@cindex Épaisseur, exemple de propriété
+
+@lilypond[quote,verbatim,relative=2]
+{
+  \time 6/8
+  {
+    r4 b8
+    % Increase thickness of immediately following slur only
+    \once \override Slur #'thickness = #5.0
+    b[( g]) g |
+    % Increase thickness of immediately following slur only
+    \once \override Slur #'thickness = #5.0
+    g[( e]) e d[( f]) a |
+    a g
+  }
+  \addlyrics {
+    The man who feels love's sweet e -- mo -- tion
+  }
+}
+@end lilypond 
 
-@seealso
-Dans ce même manuel : @ruser{The \override command}, @ref{Common tweaks}.
+@noindent
+mais on peut aussi, au lieu de la commande @code{\once}, utiliser après 
+la seconde liaison la commande @code{\revert}, qui ramène la propriété 
+@code{thickness} à sa valeur par défaut .
+
+@cindex Slur, exemple de dérogation
+@cindex thickness, exemple de propriété
+@cindex Liaison, exemple de dérogation
+@cindex Épaisseur, exemple de propriété
+
+@lilypond[quote,verbatim,relative=2]
+{
+  \time 6/8
+  {
+    r4 b8
+    % Increase thickness of all following slurs from 1.2 to 5.0
+    \override Slur #'thickness = #5.0
+    b[( g]) g |
+    g[( e])
+    % Revert thickness of all following slurs to default of 1.2
+    \revert Slur #'thickness
+    e d[( f]) a |
+    a g
+  }
+  \addlyrics {
+  The man who feels love's sweet e -- mo -- tion
+  }
+}
+@end lilypond
 
+@noindent
+N'importe quelle propriété modifiée par @code{\override} peut ainsi 
+être ramenée, grâce à la commande @code{\revert}, à sa valeur par 
+défaut. 
+
+Ici s'achève notre introduction à la RPI et aux retouches 
+simples.  Vous trouverez d'autres exemples dans les prochaines 
+sections de ce chapitre ; ils vous permettront, d'une part, 
+d'apprendre à connaître un peu mieux la RPI et, d'autre part, de 
+vous entraîner un peu plus à y chercher les informations.  Ces 
+exemples seront progressivement accompagnés d'explications et 
+introduiront des termes nouveaux.
+@node Properties found in interfaces
+@subsection Properties found in interfaces
 
-@node Fixing overlapping notation
-@subsection Fixing overlapping notation
+@cindex interface
+@cindex interfaces, propriétés des
+@cindex propriétés des interfaces
+
+Supposons maintenant que nous voulions imprimer des paroles en italique.  
+Quelle formulation de la commande @code{\override} allons-nous utiliser ? 
+Nous consultons en premier lieu, comme précédemment, la page de la RPI 
+qui contient la liste @q{Tous les objets de rendu}, et recherchons 
+un objet qui contrôle les paroles.  Nous trouvons @code{LyricText}, qui 
+semble approprié.  Nous cliquons dessus et nous voyons apparaître les 
+différentes propriétés des paroles, parmi lesquelles @code{font-series} 
+et @code{font-size}.  Mais aucune ne propose l'italique.  Car la mise 
+en forme des caractères est une propriété commune à tous les objets 
+d'écriture, si bien que, au lieu de figurer dans tous les objets de rendu, 
+elle est regroupée avec d'autres propriétés semblables et placée dans une 
+@strong{Interface}, la @code{font-interface}.
+
+Il nous faut donc apprendre à trouver les propriétés des interfaces 
+et découvrir les objets qui utilisent les propriétés de ces interfaces.
+
+Retournons à la page de la RPI qui traite des paroles
+(@emph{LyricText}).  En bas de la page est dressée sous forme de liens
+la liste des interfaces qui concernent LyricText.  Cette liste comporte
+plusieurs entrées, dont @code{font-interface}.  En cliquant dessus, nous
+voyons apparaître les différentes propriétés associées à cette
+interface, qui sont en même temps les propriétés de tous les objets qui
+s'y rapportent, parmi lesquels  LyricText.
+
+Nous avons alors sous les yeux tous les réglages de propriétés qui 
+contrôlent les polices de caractères, et notamment 
+@code{font-shape(symbole)}, où @code{symbole} peut prendre la valeur 
+@code{upright}, @code{italics} ou @code{caps}.
+
+Vous remarquerez que @code{font-series} et @code{font-size} figurent 
+aussi dans la liste.  La question qui ne manque pas de se poser est : 
+@qq{Comment se fait-il que les propriétés @code{font-series} et 
+@code{font-size} se retrouvent à la fois dans @code{LyricText} et dans 
+l'interface @code{font-interface} alors que ce n'est pas le cas pour 
+@code{font-shape} ?}  La réponse est que lorsqu'un objet @code{LyricText} 
+est créé, les valeurs globales par défaut de @code{font-series} et 
+@code{font-size} sont modifiées, mais pas celles de @code{font-shape}. 
+Les possibilités de modification dans @code{LyricText} ne concernent 
+donc que les valeurs à appliquer à @code{LyricText}.  Les autres objets qui 
+dépendent de @code{font-interface} fixeront leurs propriétés différemment 
+lorsqu'ils seront créés.
+
+Voyons maintenant si nous sommes en mesure de formuler la commande 
+@code{\override} pour mettre les paroles en italique.  L'objet est 
+@code{LyricText}, la propriété est @code{font-shape} et la valeur est 
+@code{italic}.  Comme auparavant, nous laissons de côté le contexte. 
+
+Signalons rapidement -- même si cette remarque est importante -- que,
+puisque les valeurs de @code{font-shape} se présentent sous forme de
+symboles, elles doivent être précédées d'une simple apostrophe,
+@code{'}.  C'est pour cette raison qu'il fallait une apostrophe devant
+@code{thickness} dans l'exemple précédent, et qu'il en faut une devant
+@code{font-shape}. Ce sont à chaque fois des symboles, qui sont
+interprétés comme tels par LilyPond.  Certains symboles peuvent être des
+noms de propriété, comme @code{thickness} ou @code{font-shape},
+d'autres sont des valeurs à attribuer aux propriétés, comme
+@code{italic}. À ne pas confondre avec les chaînes de caractères libres,
+qui se présentent comme @code{"un texte libre"} ; pour plus de détails
+sur les symboles et les chaînes de caractères, voir @ref{Scheme
+tutorial}. 
+
+Ainsi, la commande @code{\override} pour mettre les paroles en italique 
+est : 
 
-Dans la section @ref{Moving objects}, nous avons vu comment
-déplacer un objet @code{TextScript}.  Ce même procédé peut être
-appliqué à d'autres types d'objet : il vous suffira de remplacer
-@code{TextScript} par le nom de l'objet en question.
+@example
+\override LyricText #'font-shape = #'italic
+@end example
 
-Pour trouver cette dénomination, regardez les liens @q{@strong{Voir aussi}}
-en bas des pages de la documentation.  Par exemple, en bas de la page
-@ruser{Dynamics}, nous trouvons 
+@noindent
+et elle doit être placée juste devant et tout près des paroles à modifier, 
+comme ceci :
 
+@cindex font-shape, exemple de propriété
+@cindex italic, exemple
+@cindex LyricText, exemple de dérogation
+@cindex @code{\addlyrics}, exemple
 
-@seealso
-Référence du programme : @rinternals{DynamicText}, @rinternals{Hairpin}.
-Le placement vertical de ces symboles est contrôlé par
-@rinternals{DynamicLineSpanner}.
+@lilypond[quote,fragment,ragged-right,verbatim,relative=2]
+{
+  \time 6/8
+  {
+    r4 b8 b[( g]) g |
+    g[( e]) e d[( f]) a |
+    a g
+  }
+  \addlyrics {
+    \override LyricText #'font-shape = #'italic
+    The man who feels love's sweet e -- mo -- tion
+  }
+}
+@end lilypond
 
 @noindent
-Ce qui implique que, pour modifier la hauteur d'une nuance, nous utiliserons
+et voilà les paroles en italiques.
+
+@subheading Specifying the context in lyric mode
+
+@cindex contexte, spécification en mode lyrique
+@cindex mode lyrique, spécification de contexte en
+
+Lorsqu'il s'agit de paroles et qu'on cherche à préciser le contexte 
+sur le modèle de ce qui a été fait précédemment, la commande échoue. 
+Car une syllabe saisie en mode Paroles (lyricmode) se termine 
+obligatoirement par une espace, un saut de ligne ou un nombre. Tout 
+autre caractère compte comme un élément de la syllabe. C'est pourquoi 
+il faut une espace ou un saut de ligne avant le @code{@}} final, pour 
+éviter qu'il ne soit assimilé à la dernière syllabe. De même, il faut insérer 
+des espaces avant et après le point, @q{.}, qui sépare le nom de 
+contexte du nom de l'objet, faute de quoi les deux noms seront joints et 
+l'interpréteur ne pourra pas les reconnaître. La formulation correcte est 
+donc : 
 
 @example
-\override DynamicLineSpanner #'padding = #2.0
+\override Lyrics . LyricText #'font-shape = #'italic
 @end example
 
-Nous ne listerons pas ici tous les types d'objets, mais seulement
-les plus communs :
-
-@multitable @columnfractions .33 .66
-@headitem Type d'objet            @tab Nom de l'objet
-@item Nuances (verticalement)     @tab @code{DynamicLineSpanner}
-@item Nuances (horizontalement)   @tab @code{DynamicText}
-@item Laisons de tenue            @tab @code{Tie}
-@item Liaisons                    @tab @code{Slur}
-@item Indications d'articulation  @tab @code{Script}
-@item Doigtés                     @tab @code{Fingering}
-@item Textes (@code{^"texte"})    @tab @code{TextScript}
-@item Repères                     @tab @code{RehearsalMark}
-@end multitable
+@warning{Dans la saisie des paroles, pensez à toujours laisser une
+espace entre la dernière syllabe et l'accolade fermante.}
 
+@warning{Lorsqu'on retouche des paroles, toujours placer des espaces 
+autour du point qui sépare le nom de contexte du nom d'objet.}
 
-@node Real music example
-@subsection Real music example
+@seealso
+Manuel d'initiation : @ref{Scheme tutorial}.
 
-@untranslated
 
+@node Types of properties
+@subsection Types of properties
 
-@c DEPRECATED SECTION
-@node Common tweaks
-@section Common tweaks
 
-Certains réglages sont si courants que des raccourcis sont fournis
-sous forme de commandes telles que @code{\slurUp} ou @code{\stemDown}.  
-Toutes ces commandes sont décrites dans les différentes sections
-de la Référence de notation.
+@cindex propriété, types de
+
+Nous avons vu jusqu'à maintenant deux types de propriétés :
+@code{nombre} et @code{symbol}.  Pour pouvoir fonctionner, la valeur
+associée à une propriété doit correspondre au type attendu et suivre les
+règles liées à ce type.  Le type de propriété est toujours donné entre
+parenthèses après le nom de propriété dans la RPI.  Voici une liste des
+différents types de propriétés, avec les règles qui les régissent et
+quelques exemples d'utilisation.  Il faut, bien sûr, toujours ajouter un
+symbole hash, @code{#}, devant ces valeurs lors de la saisie de la
+commande @code{\override}. 
+
+@multitable @columnfractions .2 .45 .35
+@headitem Type de propriété 
+  @tab Règles
+  @tab Exemples
+@item Booléenne (anglais @emph{Boolean})
+  @tab Vrai (@emph{true} en anglais) ou Faux (@emph{false} en anglais),
+sous la forme #t  ou #f
+  @tab @code{#t}, @code{#f}
+@item Dimension (en lignes de portée)
+  @tab Un nombre positif décimal (en unités de lignes de portée)
+  @tab @code{2.5}, @code{0.34}
+@item Direction
+  @tab Une direction valide ou son équivalent numérique (valeur décimale
+comprise entre -1 et 1 seulement)
+  @tab @code{LEFT}, @code{CENTER}, @code{UP}, @code{1}, @code{-1}
+@item Durée (@emph{Moment} en anglais)
+  @tab Une durée de note construite avec la fonction make-moment
+  @tab @code{(ly:make-moment 1 4)}, @code{(ly:make-moment 3 8)}
+@item Entier (@emph{Integer} en anglais)
+  @tab Un nombre entier positif
+  @tab @code{3}, @code{1}
+@item Inconnu (@emph{Unknown} en anglais)
+  @tab Un processus, ou @code{#f} pour empêcher toute action 
+  @tab @code{bend::print}, @code{ly:text-interface::print}, @code{#f}
+@item Liste
+  @tab Plusieurs valeurs séparées par une espace, encadrées par des
+parenthèses et prédédées par une apostrophe 
+  @tab @code{'(left-edge staff-bar)}, @code{'(1)}, @code{'(1.0 0.25 0.5)}
+@item Markup (ou étiquette)
+  @tab Toute commande @code{\markup} valide
+  @tab @code{\markup @{ \italic "cresc." @}}
+@item Nombre
+  @tab Une valeur décimale positive ou négative
+  @tab @code{3.5}, @code{-2.45}
+@item Paire (de nombres)
+  @tab Deux nombres séparées par @q{espace . espace}, encadrés 
+par des parenthèses et précédés par une apostrophe
+  @tab @code{'(2 . 3.5)}, @code{'(0.1 . -3.2)}
+@item Symbole
+  @tab L'un des symboles autorisés pour cette propriété, précédé par une
+apostrophe
+  @tab @code{'italic}, @code{'inside}
+@item Vecteur
+  @tab Une liste de trois éléments encadrés par des parenthèses et
+précédés par apostrophe-hash, @code{'#}
+  @tab @code{'#(#t #t #f)}
+@end multitable
 
-La liste complète des modifications possibles pour chaque type d'objet
-(tel que liaison ou ligature) se trouve dans la Référence du
-programme.  Cependant, certaines propriétés sont communes à de nombreux
-objets, et on peut de ce fait définir quelques réglages génériques.
+@seealso
+Manuel d'initiation : @ref{Scheme tutorial}.
 
 
-@itemize @bullet
+@node Appearance of objects
+@section Appearance of objects
 
-@cindex padding
+Il est temps de mettre en pratique les notions apprises précédemment
+pour modifier l'allure de la partition ; les exemples qui suivent
+montrent l'utilisation des différentes méthodes de retouche.  
 
-@item
-La propriété @code{padding} peut être définie de manière à
-accroître (ou décroître) la distance entre les symboles qui se
-placent au-dessus ou au-dessous des notes.  Ce qui s'applique à
-tous les objets régis par @code{side-position-interface}.
+@menu
+* Visibility and color of objects::  
+* Size of objects::             
+* Length and thickness of objects::  
+@end menu
 
-@lilypond[quote,fragment,relative=1,verbatim]
-c2\fermata
-\override Script #'padding = #3
-b2\fermata
+
+@node Visibility and color of objects
+@subsection Visibility and color of objects
+
+Dans un but pédagogique, on peut être amené à masquer certains éléments
+d'une partition, que les élèves doivent ensuite compléter.  Imaginons,
+par exemple, un exercice dans lequel il faudrait rétablir les barres de
+mesure dans un morceau de musique. En temps normal, les barres de mesure
+s'insèrent automatiquement.  Comment faire pour les effacer de la
+partition ?  
+
+Avant de nous y attaquer, souvenons-nous que les propriétés d'objets
+sont parfois groupées dans ce qu'on appelle des @emph{interfaces} --
+voir @ref{Properties found in interfaces}.  Cela permet de rapprocher
+toutes les propriétés susceptibles d'être utilisées ensemble pour
+modifier un objet graphique -- si l'une d'elles est choisie pour un
+objet, elle s'appliquera à tous les autres.  Certains objets tirent
+alors leurs propriétés de telle ou telle interface, d'autres objets de
+telle ou telle autre interface.  La liste des interfaces qui contiennent
+les propriétés liées à un objet graphique (@emph{grob}) figure dans la
+RPI, en bas de la page de description du @emph{grob} ; pour voir ces
+propriétés, il faut aller voir ces interfaces.  
+
+Nous avons vu, dans @ref{Properties of layout objects}, comment trouver 
+les informations sur les @emph{grobs}.  Nous procédons de la même manière
+et consultons la RPI pour connaître l'objet chargé d'imprimer les barres
+de mesure.  En cliquant sur @emph{Backend} puis sur @emph{Tous les
+objets de rendu}, nous trouvons un objet appelé @code{BarLine}.  Parmi 
+ses propriétés, deux d'entre elles déterminent son aspect visuel : 
+@code{break-visibility} et @code{stencil}.  L'objet @code{BarLine} 
+est également lié à plusieurs interfaces, dont la @code{grob-interface} 
+où figurent les propriétés @code{transparent} et @code{color}.  Toutes
+peuvent modifier l'aspect visuel des barres de mesure -- et de beaucoup
+d'autres objets, bien sûr.  Examinons chacune d'elles tour à tour.
+
+@subheading stencil
+
+@cindex stencil, propriété
+
+Cette propriété contrôle l'apparence des barres de mesure en précisant 
+le type de symbole (glyphe) à imprimer.  Comme pour de nombreuses 
+autres propriétés, on peut lui indiquer de ne rien imprimer en lui
+attribuant la valeur @code{#f}.  Essayons en laissant de côté, une fois
+encore, le contexte concerné (@code{Voice} en l'occurrence) : 
+
+@cindex BarLine, exemple de dérogation
+@cindex stencil, exemple de propriété
+
+@lilypond[quote,fragment,ragged-right,verbatim,relative=2]
+{
+  \time 12/16
+  \override BarLine #'stencil = ##f
+  c4 b8 c d16 c d8 |
+  g, a16 b8 c d4 e16 |
+  e8
+}
 @end lilypond
 
-@lilypond[quote,fragment,relative=1,verbatim]
-% This will not work, see below:
-\override MetronomeMark #'padding = #3
-\tempo 4=120
-c1
-% This works:
-\override Score.MetronomeMark #'padding = #3
-\tempo 4=80
-d1
+Les barres de mesure sont encore là !  Pourquoi ?  Retournons à la RPI
+et regardons de nouveau la page qui traite des propriétés de BarLine.
+En haut de la page, il est précisé que @qq{Les objets BarLine sont créés
+par le graveur Bar_engraver}.  Allons à la page de @code{Bar_engraver}. 
+Tout en bas se trouve la liste des contextes dans lesquels fonctionne ce 
+graveur.  Tous sont du type @code{Staff}, de sorte que, si la commande 
+@code{\override} n'a pas fonctionné comme prévu, c'est parce que 
+@code{Barline} n'appartient pas au contexte par défaut, @code{Voice}. 
+Si le contexte spécifié est erroné, la commande ne fonctionne pas.  Cela 
+n'entraîne pas de message d'erreur, et rien n'apparaît sur le fichier log. 
+Essayons de corriger en mentionnant le bon contexte : 
+
+@cindex BarLine, exemple de dérogation
+@cindex stencil, exemple de propriété
+
+@lilypond[quote,fragment,ragged-right,verbatim,relative=2]
+{
+  \time 12/16
+  \override Staff.BarLine #'stencil = ##f
+  c4 b8 c d16 c d8 |
+  g, a16 b8 c d4 e16 |
+  e8
+}
 @end lilypond
 
-Notez, dans le second exemple, l'importance de savoir à quel contexte
-correspond l'objet.  Dans la mesure où l'objet @code{MetronomeMark}
-appartient au contexte @code{Score}, ses modifications affectées au
-contexte @code{Voice} ne l'affecteront pas.  Pour plus de détails, voir 
-@ruser{Constructing a tweak}.
+Cette fois, les barres de mesure ont disparu.
 
-@cindex extra-offset
+@subheading break-visibility
 
-@item
-La propriété @code{extra-offset} permet de déplacer latéralement et
-verticalement ; c'est pourquoi elle requiert deux nombres.  Le premier
-affecte le placement horizontal (un nombre positif déplace l'objet
-vers la droite) ; le second le placement vertical (un nombre positif
-déplace l'objet vers le haut).  Cette propriété est de bas niveau : le
-moteur de formatage ne tient aucun compte des placements qu'elle induit.
+@cindex break-visibility, propriété
 
-Dans l'exemple suivant, le second doigté est déplacé un peu vers la gauche, et
-plus bas de 1.8 espaces :
+La RPI mentionne, à la page sur @code{BarLine}, que la propriété
+@code{break-visibility} attend comme argument un vecteur de trois
+boléens.  Ceux-ci indiquent respectivement si les barres de mesure
+doivent être imprimées ou non à la fin de la ligne, à l'intérieur de la
+ligne et au début de la ligne.  Dans notre cas, nous voulons que toutes
+les barres soient supprimées, si bien que la valeur dont nous avons
+besoin est @code{'#(#f@tie{}#f@tie{}#f)}. Essayons, sans oublier
+d'ajouter le contexte @code{Staff}.  Vous remarquerez que, en plus de
+cette valeur, nous ajoutons @code{#'#} devant la parenthèse ouvrante.
+Le @code{'#} est nécessaire car il fait partie intégrante de la valeur
+contenant un vecteur, et le premier @code{#} est là, comme toujours avec
+la commande @code{\override}, pour introduire la valeur elle-même. 
 
-@lilypond[quote,fragment,relative=1,verbatim]
-\stemUp
-f-5
-\once \override Fingering
-    #'extra-offset = #'(-0.3 . -1.8)
-f-5
+@cindex BarLine, example of overriding
+@cindex break-visibility property, example
+
+@lilypond[quote,fragment,ragged-right,verbatim,relative=2]
+{
+  \time 12/16
+  \override Staff.BarLine #'break-visibility = #'#(#f #f #f)
+  c4 b8 c d16 c d8 |
+  g, a16 b8 c d4 e16 |
+  e8
+}
 @end lilypond
 
-@item
-La propriété @code{transparent} imprime les objets avec de 
-l'@q{encre invisible} : l'objet n'est pas visible, mais tous
-les comportement le concernant s'appliquent quand même.  Il occupe
-une certaine place, intervient dans la gestion des collisions, et on
-peut lui attacher des liaisons ou des ligatures.
-
-@cindex transparents, objets
-@cindex suppression d'objets
-@cindex masquage d'objets
-@cindex invisibles, objets
-
-L'exemple suivant montre comment tenir des notes entre différentes voix,
-au moyen de liaisons.  Ces liaisons de tenue, en principe, ne peuvent relier
-que deux notes d'une même voix.  On introduit donc la liaison dans une
-autre voix :
+Comme on peut le constater, cette solution-là aussi supprime les barres 
+de mesure.
 
-@lilypond[quote,fragment,relative=2]
-<< {
-  b8~ b8\noBeam
-} \\ {
-  b[ g8]
-} >>
+@subheading transparent
+
+@cindex transparent, propriété
+@cindex transparence
+
+La RPI mentionne, à la page sur @code{grob-interface}, que la propriété
+@code{transparent} attend comme argument un boléen.  Il faudrait donc
+mettre @code{#t} pour rendre l'objet transparent.  Dans cet exemple,
+essayons de rendre transparente la métrique (@emph{time signature} en
+anglais) plutôt que les barres de mesure.  Pour cela, il nous faut
+trouver le nom du @emph{grob} chargé de l'indication de mesure.  De
+retour sur la page @q{Tous les objets de rendu} de la RPI, nous
+cherchons les propriétés de l'objet @code{TimeSignature}.  Celui-ci est
+géré par le graveur @code{Time_signature_engraver} qui, comme vous
+pouvez le constater, appartient au contexte @code{Staff} et peut se
+rattacher à la @code{grob-interface}.  Dans ces conditions, la commande
+pour rendre la métrique transparente est : 
+
+@cindex TimeSignature, exemple de dérogation
+@cindex transparent, exemple de propriété
+
+@lilypond[quote,fragment,ragged-right,verbatim,relative=2]
+{
+  \time 12/16
+  \override Staff.TimeSignature #'transparent = ##t
+  c4 b8 c d16 c d8 |
+  g, a16 b8 c d4 e16 |
+  e8
+}
 @end lilypond
 
 @noindent
-et on efface la première croche (hampe vers le haut) de ladite voix ; 
-maintenant la liaison semble passer d'une voix à l'autre :
+La métrique a bien disparu mais la commande a laissé un blanc en lieu et
+place du chiffrage.  Ce peut être souhaitable dans le cadre d'un
+exercice, afin que les élèves aient la place à compléter, mais dans
+d'autres circonstances, ce peut être gênant.  Pour y remédier,
+attribuons plutôt au stencil des métriques la valeur @code{#f} : 
 
+@cindex TimeSignature, exemple de dérogation
+@cindex stencil, exemple de propriété
 
-@lilypond[quote,fragment,relative=2,verbatim]
-<< {
-  \once \override Stem #'transparent = ##t
-  b8~ b8\noBeam
-} \\ {
-  b[ g8]
-} >>
+@lilypond[quote,fragment,ragged-right,verbatim,relative=2]
+{
+  \time 12/16
+  \override Staff.TimeSignature #'stencil = ##f
+  c4 b8 c d16 c d8 |
+  g, a16 b8 c d4 e16 |
+  e8
+}
 @end lilypond
 
-Pour s'assurer que le crochet de la hampe que nous avons effacée ne 
-raccourcira pas la liaison, nous allons également rallonger cette hampe,
-en attribuant à la propriété @code{length} la valeur @code{8} :
+@noindent
+La différence est flagrante : le fait d'attribuer au stencil la valeur
+@code{#f} supprime totalement l'objet, tandis que le fait de le rendre
+@code{transparent} le laisse en place, mais de façon invisible. 
+
+@subheading color
+
+@cindex color, propriété
+
+Essayons enfin de rendre les barres de mesure invisibles en les colorant
+en blanc.  La difficulté est de savoir si les barres blanches vont
+couper ou non les lignes de la portée aux endroits où elles se
+croisent.  Vous verrez dans les exemples ci-dessous que cela peut se
+produire, sans qu'on le sache à l'avance.  Les explications de ce
+phénomène et les solutions pour y remédier sont exposées dans
+@ruser{Painting objects white}.  Pour le moment, acceptons cet
+inconvénient et concentrons-nous sur l'apprentissage de la gestion des
+couleurs. 
+
+La @code{grob-interface} indique que la valeur de la propriété
+@code{color} est une liste, sans plus d'explication.  En fait, cette
+liste est une liste de valeurs en unités internes ; pour éviter d'avoir
+à chercher ce qu'il faut y mettre, il existe différents moyens
+d'indiquer la couleur.  Le premier moyen consiste à utiliser l'une des
+couleurs @emph{normales} de la première @ruser{List of colors}.  Pour
+mettre les barres de mesure en blanc, on écrit :  
+
+@cindex BarLine, exemple de dérogation
+@cindex color, exemple de propriété
 
-@lilypond[quote,fragment,relative=2,verbatim]
-<< {
-  \once \override Stem #'transparent = ##t
-  \once \override Stem #'length = #8
-  b8~ b8\noBeam
-} \\ {
-  b[ g8]
-} >>
+@lilypond[quote,fragment,ragged-right,verbatim,relative=2]
+{
+  \time 12/16
+  \override Staff.BarLine #'color = #white
+  c4 b8 c d16 c d8 |
+  g, a16 b8 c d4 e16 |
+  e8
+}
 @end lilypond
 
-@end itemize
+@noindent
+et nous constatons que les barres de mesure sont une fois de plus
+invisibles.  Attention : aucune apostrophe ne précède @code{white} -- il
+ne s'agit pas d'un symbole mais d'une @emph{fonction}.  Quand on
+l'invoque, elle fournit une liste de valeurs internes requises pour
+changer la couleur en blanc.  Les autres couleurs aussi, dans la
+@qq{liste normale}, sont des fonctions.  Pour en être certain, vous
+pouvez faire l'essai en choisissant une autre fonction de la liste en
+guise de couleur. 
 
-@cindex retouches, distances
-@cindex distances
+@cindex couleur X11
+@cindex X11, couleurs
 
-Les distances dans LilyPond sont mesurées dans l'unité staff-space
-(espace de portée) tandis que la plupart des propriétés relatives aux
-épaisseurs sont mesurées à l'aide de l'unité line-thickness (épaiseur
-de ligne). Toutefois, certaines d'entre-elles échappent à cette règle
-: par exemple l'épaisseur des liens de croches est mesurée à l'aide de
-l'unité staff-space.  Pour de plus amples informations, 
-consultez les sections correspondantes de la Référence du programme.
+@funindex x11-color
 
+Le deuxième moyen de changer la couleur consiste à utiliser la deuxième
+@ruser{List of colors}, dite noms de couleurs X11.  Ceux-ci doivent
+obligatoirement être précédés d'une autre fonction, qui convertit les
+noms de couleurs X11 en une liste de valeurs internes, @code{x11-color},
+comme ceci : 
 
-@node Further tweaking
-@section Further tweaking
+@cindex BarLine, exemple de dérogation
+@cindex color, exemple de propriété
 
-@menu
-* Other uses for tweaks::       
-* Using variables for tweaks::  
-* Other sources of information::  
-* Avoiding tweaks with slower processing::  
-* Advanced tweaks with Scheme::  
-@end menu
+@lilypond[quote,fragment,ragged-right,verbatim,relative=2]
+{
+  \time 12/16
+  \override Staff.BarLine #'color = #(x11-color 'white)
+  c4 b8 c d16 c d8 |
+  g, a16 b8 c d4 e16 |
+  e8
+}
+@end lilypond
 
-@node Other uses for tweaks
-@subsection Other uses for tweaks
+@noindent
+Vous noterez que, dans ce cas, la fonction @code{x11-color} admet un
+symbole comme argument ; il faut donc placer une apostrophe devant le
+symbole et insérer les deux à l'intérieur de parenthèses.  
 
-@untranslated
+@cindex rgb, couleur
+@cindex couleurs rgb
 
-@node Using variables for tweaks
-@subsection Using variables for tweaks
+@funindex rgb-color
 
-@untranslated
+Il existe une troisième fonction, écrite pour convertir les valeurs RGB
+en couleurs internes -- la fonction @code{rgb-color}.  Elle comporte
+trois arguments, donnant respectivement l'intensité du rouge, du vert et
+du bleu.  Ces arguments prennent des valeurs comprises entre 0 et 1.
+Ainsi, pour choisir la couleur rouge, la valeur serait 
+@code{(rgb-color1 0 0)} ; pour le blanc, ce serait 
+@code{(rgb-color 1 1 1)} : 
 
-@node Other sources of information
-@subsection Other sources of information
+@cindex BarLine, exemple de dérogation
+@cindex color, exemple de propriété
 
-La Référence du programme contient
-beaucoup d'informations sur LilyPond. Cependant vous pouvez en découvrir 
-encore plus en consultant les fichiers internes de LilyPond.
+@lilypond[quote,fragment,ragged-right,verbatim,relative=2]
+{
+  \time 12/16
+  \override Staff.BarLine #'color = #(rgb-color 1 1 1)
+  c4 b8 c d16 c d8 |
+  g, a16 b8 c d4 e16 |
+  e8
+}
+@end lilypond
 
-Des réglages par défaut (tels que les définitions des blocs
-@code{\header@{@}}) sont contenus dans des fichiers @code{.ly}. D'autres 
-(comme les définitions des commandes @qq{markup} ) sont contenus dans
-des fichiers @code{.scm} (Scheme).  Malheureusement, des explications
-plus complètes dépassent le cadre de ce manuel.
-Les utilisateurs qui souhaiteraient comprendre le fonctionnement de
-ces fichiers de configuration doivent être avertis que des
-connaissances techniques substantielles et beaucoup de temps sont nécessaires.
+Enfin, il existe une échelle de gris parmi les possibilités de couleurs
+X11.  Elle va du noir, @code{'grey0}, au blanc, @code{'grey100}, avec
+un pas de 1.  Essayons de l'utiliser en attribuant à tous les objets de
+notre exemple différentes nuances de gris : 
 
-@itemize @bullet
+@cindex StaffSymbol, exemple de dérogation
+@cindex TimeSignature, exemple de dérogation
+@cindex Clef, exemple de dérogation
+@cindex NoteHead, exemple de dérogation
+@cindex Stem, exemple de dérogation
+@cindex BarLine, exemple de dérogation
+@cindex color, exemple de propriété
+@cindex x11-color, exemple d'utilisation
 
-@item Linux : @file{@var{dossierduprogramme}/lilypond/usr/share/lilypond/current/}
+@lilypond[quote,fragment,ragged-right,verbatim,relative=2]
+{
+  \time 12/16
+  \override Staff.StaffSymbol   #'color = #(x11-color 'grey30)
+  \override Staff.TimeSignature #'color = #(x11-color 'grey60)
+  \override Staff.Clef          #'color = #(x11-color 'grey60)
+  \override Voice.NoteHead      #'color = #(x11-color 'grey85)
+  \override Voice.Stem          #'color = #(x11-color 'grey85)
+  \override Staff.BarLine       #'color = #(x11-color 'grey10)
+  c4 b8 c d16 c d8 |
+  g, a16 b8 c d4 e16 |
+  e8
+}
+@end lilypond
 
-@item Mac OS X :
-@file{@var{dossierduprogramme}/LilyPond.app/Contents/Resources/share/lilypond/current/}.
-Pour accéder à ce dossier, deux possibilités : soit, dans un Terminal,
-taper @code{cd} suivi du chemin complet ci-dessus ; soit
-Control-cliquer (ou clic droit) sur l'application LilyPond
-et sélectionner @q{Afficher le contenu du paquet}.
+@noindent
+Vous remarquerez le contexte associé à chacun des objets.  Une erreur
+sur ce point empêcherait la commande de fonctionner.  Souvenez-vous que
+le contexte est celui dans lequel est placé le graveur approprié.  Pour
+chaque graveur, on peut trouver son contexte par défaut en partant de
+l'objet lui-même, puis en cherchant le graveur qui le produit ; la page
+du graveur dans la RPI nous indique alors le contexte dans lequel le
+graveur se trouve normalement. 
 
 
-@item Windows : @file{@var{dossierduprogramme}/LilyPond/usr/share/lilypond/current/}
+@node Size of objects
+@subsection Size of objects
 
-@end itemize
+@cindex modification de la taille des objets
+@cindex taille d'objets
+@cindex objets, taille
+@cindex objets, modification de taille
 
-Les répertoires @file{ly/} et @file{scm/} sont tout particulièrement
-intéressants.  En effet les fichiers du type
-@file{ly/property-init.ly} ou encore @file{ly/declarations-init.ly}
-déterminent toutes les définitions avancées communes.
+Pour commencer, reprenons l'exemple qui se trouvait dans 
+@ref{Nesting music expressions}, qui montrait comment créer une nouvelle
+portée temporaire, du type  @rglos{ossia}. 
 
-@node Avoiding tweaks with slower processing
-@subsection Avoiding tweaks with slower processing
+@cindex alignAboveContext, exemple de propriété
+@cindex @code{\with}, exemple
 
-LilyPond peut effectuer des vérifications supplémentaires lors du 
-traitement des fichiers, cependant le rendu nécessitera alors plus de
-temps.  En contrepartie, il y aura moins d'ajustements manuels à réaliser.
+@lilypond[quote,fragment,ragged-right,verbatim,relative=2]
+\new Staff ="main" {
+       \relative g' {
+         r4 g8 g c4 c8 d |
+         e4 r8
+         <<
+           { f c c }
+           \new Staff \with {
+             alignAboveContext = "main" }
+           { f8 f c }
+         >>
+         r4 |
+  }
+}
+@end lilypond
+
+Normalement, les ossia ne comportent ni clef ni indication de mesure, et
+elles sont imprimées légèrement plus petit que la portée principale.
+Nous avons déjà appris à enlever la clef et la métrique -- il suffit de
+régler le stencil de chacun sur @code{#f}, comme ceci : 
+
+@cindex alignAboveContext, exemple de propriété
+@cindex @code{\with}, exemple
+@cindex stencil, exemple de propriété
+@cindex Clef, exemple de dérogation
+@cindex TimeSignature, exemple de dérogation
+
+@lilypond[quote,fragment,ragged-right,verbatim,relative=2]
+\new Staff ="main" {
+  \relative g' {
+    r4 g8 g c4 c8 d |
+    e4 r8
+    <<
+      { f c c }
+      \new Staff \with {
+        alignAboveContext = "main"
+      }
+      {
+        \override Staff.Clef #'stencil = ##f
+        \override Staff.TimeSignature #'stencil = ##f
+        { f8 f c }
+      }
+    >>
+    r4 |
+  }
+}
+@end lilypond
+
+@noindent
+La paire d'accolades ajoutée après la clause @code{\with} est nécessaire
+pour être sûr que les retouches (@code{\override}) ainsi que la musique
+qui se trouvent à l'intérieur soient bien appliquées à la portée
+d'ossia. 
+
+Mais alors, quelle différence y a-t-il à modifier le contexte de portée
+au moyen de @code{\with} ou à modifier les stencils de la clef et de la
+métrique  avec @code{\override} ?  La principale différence est que les
+changements opérés dans une clause @code{\with} sont réalisés au moment
+où le contexte est créé et restent par la suite les valeurs @strong{par
+défaut} aussi longtemps que ce contexte existe, tandis que les commandes
+@code{\set} ou @code{\override} insérées dans la musique sont dynamiques
+-- elles provoquent des changements synchronisés avec un point
+particulier de la musique.  Si les changements sont annulés ou
+désactivés par @code{\unset} ou@code{\revert}, les réglages reprennent
+les valeurs par défaut, c'est-à-dire celles qui ont été fixées dans la
+clause @code{\with}, ou, en l'absence de celle-ci, les valeurs par
+défaut normales. 
+
+Certaines propriétés de contexte ne peuvent être modifiées que dans une
+clause @code{\with}.  Il s'agit des propriétés qu'on ne peut évidemment
+plus changer après que le contexte a été créé.  C'est le cas de 
+@code{alignAboveContext} et de son pendant, @code{alignBelowContext} 
+-- une fois que la portée a été créée, son alignement est décidé et cela
+n'aurait aucun sens de vouloir le modifier par la suite. 
+
+Dans une clause @code{\with}, on peut aussi régler les valeurs par
+défaut des propriétés d'un objet.  Il suffit d'utiliser la commande 
+@code{\override} normale, sans s'occuper du nom de contexte 
+puisqu'il ne fait pas de doute qu'il s'agit du contexte en cours de 
+modification par la clause @code{\with}.  Il se produirait même une 
+erreur si le contexte était précisé.
+
+Remplaçons donc l'exemple ci-dessus par celui-ci :
+
+@cindex alignAboveContext, exemple de propriété
+@cindex @code{\with}, exemple
+@cindex Clef, exemple de dérogation
+@cindex TimeSignature, exemple dérogation
+
+@lilypond[quote,fragment,ragged-right,verbatim,relative=2]
+\new Staff ="main" {
+  \relative g' {
+    r4 g8 g c4 c8 d |
+    e4 r8
+    <<
+      { f c c }
+      \new Staff \with {
+        alignAboveContext = "main"
+        % Don't print clefs in this staff
+        \override Clef #'stencil = ##f
+        % Don't print time signatures in this staff
+        \override TimeSignature #'stencil = ##f
+      }
+        { f8 f c }
+    >>
+    r4 |
+  }
+}
+@end lilypond
+
+Venons-en finalement au changement de taille des objets.
+
+Certains objets sont créés comme des glyphes choisis dans une police de
+caractères.  C'est le cas des têtes de notes, des altérations, des
+@emph{markup}, des clefs, des métriques, des nuances et des paroles.
+Pour changer leur taille, on modifie la propriété @code{font-size},
+comme nous le verrons rapidement.  D'autres objets, comme les liaisons
+de phrasé ou de prolongation -- en général les objets étendus -- sont
+dessinés à la demande, si bien qu'aucune @code{font-size} ne leur est
+associée.  Ces objets tirent généralement leur dimension des objets
+auxquels ils sont rattachés, de sorte qu'on ne doit pas avoir à les
+redimensionner à la main.  D'autres propriétés, comme la hauteur des
+hampes et des barres de mesure, l'épaisseur des ligatures et d'autres
+lignes, et l'écartement des lignes de portée, doivent encore être
+modifiées de façon particulière. 
+
+Si l'on revient à l'exemple d'ossia, commençons par changer la taille de
+police.  Nous pouvons employer deux méthodes.  Soit nous changeons la
+taille de police de chaque type d'objet avec des commandes comme 
+celle-ci pour les têtes de notes (@code{NoteHead}) :
 
-  
 @example
-%%  Ceci sert à s'assurer que les indications textuelles resteront à l'intérieur des marges de la page.
-\override Score.PaperColumn #'keep-inside-line = ##t 
+\override NoteHead #'font-size = #-2
 @end example
 
+soit nous changeons la taille de toutes les polices à la fois grâce à la 
+propriété @code{fontSize}, en utilisant @code{\set} ou en l'insérant 
+dans une clause @code{\with} (mais alors sans le @code{\set}).
 
-@node Advanced tweaks with Scheme
-@subsection Advanced tweaks with Scheme
+@example
+\set fontSize = #-2
+@end example
 
-Nous avons déjà vu comment le résultat obtenu avec LilyPond peut être
-largement personnalisé à l'aide de commandes comme 
-@code{\override TextScript #'extra-offset = ( 1 . -1)}.  Cependant,
-l'utilisation de Scheme ouvre des possibilités encore plus grandes.
-Pour des explications complètes là-dessus, consultez le 
-@ref{Scheme tutorial}  et les @ruser{Interfaces for programmers}.
+Chacune de ces méthodes réduira la taille de police de deux points par 
+rapport à sa valeur précédente, sachant que chaque point réduit ou 
+augmente la taille d'environ 12 %.
 
-On peut utiliser Scheme simplement à l'aide des commandes @code{\override}.
+Essayons sur l'exemple d'ossia :
 
-@lilypond[quote,verbatim,ragged-right]
-padText = #(define-music-function (parser location padding) (number?)
-#{
-  \once \override TextScript #'padding = #$padding
-#})
+@cindex alignAboveContext, exemple de propriété
+@cindex @code{\with}, exemple
+@cindex Clef, exemple de dérogation
+@cindex TimeSignature, exemple de dérogation
+@cindex fontSize, exemple de propriété
 
-\relative c''' {
-  c4^"piu mosso" b a b
-  \padText #1.8
-  c4^"piu mosso" d e f
-  \padText #2.6
-  c4^"piu mosso" fis a g
+@lilypond[quote,fragment,ragged-right,verbatim,relative=2]
+\new Staff ="main" {
+  \relative g' {
+    r4 g8 g c4 c8 d |
+    e4 r8
+    <<
+      { f c c }
+      \new Staff \with {
+        alignAboveContext = "main"
+        \override Clef #'stencil = ##f
+        \override TimeSignature #'stencil = ##f
+        % Reduce all font sizes by ~24%
+        fontSize = #-2
+      }
+        { f8 f c }
+    >>
+    r4 |
+  }
 }
 @end lilypond
-On peut s'en servir pour créer de nouvelles commandes :
 
-@lilypond[quote,verbatim,ragged-right]
-tempoMark = #(define-music-function (parser location padding marktext)
-                                    (number? string?)
-#{
-  \once \override Score . RehearsalMark #'padding = $padding
-  \once \override Score . RehearsalMark #'extra-spacing-width = #'(+inf.0 . -inf.0)
-  \mark \markup { \bold $marktext }
-#})
+Ce n'est pas encore parfait.  Les têtes de notes et les crochets sont
+plus petits mais, proportionnellement, les hampes sont trop longues et
+les lignes de portée trop espacées.  Il faut donc les réduire dans les
+mêmes proportions que les polices de caractères.  La prochaine
+sous-section montrera comment faire. 
 
-\relative c'' {
-  c2 e
-  \tempoMark #3.0 #"Allegro"
-  g c
+@node Length and thickness of objects
+@subsection Length and thickness of objects
+
+@cindex distance
+@cindex épaisseur
+@cindex longueur
+@cindex magstep
+@cindex taille, modification
+@cindex hampe, modification de longueur
+@cindex écartement des lignes, modification
+
+Dans LilyPond, les écartements et longueurs sont généralement mesurés en
+@qq{intervalles de lignes} (@emph{staff-spaces} en anglais),
+c'est-à-dire l'écartement qui sépare deux lignes adjacentes dans la
+portée -- plus rarement, il est question de demi-intervalles de lignes.  
+Les propriétés d'épaisseur (@code{thickness}), quant à elles, sont
+généralement mesurées en unités d'une propriété interne appelée
+@qq{épaisseur de ligne} (@code{line-thickness}).  Par exemple, les
+lignes de crescendo/decrescendo présentent par défaut une épaisseur de 1
+unité de @code{line-thickness}, alors que l'épaisseur d'une hampe est de
+1,3.  Toutefois, certaines propriétés d'épaisseur sont différentes : par
+exemple, l'épaisseur des ligature se mesure en espaces de portée. 
+
+Dans ces conditions, comment ajuster les longueurs à la taille des 
+polices de caractères ?  La solution consiste à utiliser une fonction 
+spéciale appelée @code{magstep} -- pseudo facteur de zoom --, créée
+précisément dans ce but.  Elle comporte un argument, le changement de
+taille de police (#-2 dans l'exemple précédent), à partir duquel elle
+applique un facteur de mise à l'échelle qui réduit, ou augmente, les
+objets en proportion.  Voici comment elle s'utilise : 
+
+@cindex alignAboveContext, exemple de propriété
+@cindex @code{\with}, exemple
+@cindex Clef, exemple de dérogation
+@cindex TimeSignature, exemple de dérogation
+@cindex fontSize , exemple de propriété
+@cindex StaffSymbol, exemple de dérogation
+@cindex magstep, exemple d'utilisation de la fonction
+@cindex staff-space, exemple de propriété
+@cindex stencil, exemple de propriété
+
+@lilypond[quote,fragment,ragged-right,verbatim,relative=2]
+\new Staff ="main" {
+  \relative g' {
+    r4 g8 g c4 c8 d |
+    e4 r8
+    <<
+      { f c c }
+      \new Staff \with {
+        alignAboveContext = "main"
+        \override Clef #'stencil = ##f
+        \override TimeSignature #'stencil = ##f
+        fontSize = #-2
+        % Reduce stem length and line spacing to match
+        \override StaffSymbol #'staff-space = #(magstep -2)
+      }
+        { f8 f c }
+    >>
+    r4 |
+  }
 }
 @end lilypond
 
-On peut même y inclure des expressions musicales :
+@noindent
+Puisque la longueur des hampes et plusieurs autres propriétés de
+longueur sont calculées par rapport à la valeur de la propriété
+@code{staff-space}, elles sont automatiquement mises à l'échelle.  Vous 
+remarquerez que cela n'affecte que la dimension verticale de l'ossia --
+la dimension horizontale étant déterminée par les objets de la portée
+principale de façon à rester synchronisée vis-à-vis d'elle, elle n'est
+pas affectée par tous ces changements de taille.  Bien sûr, si l'échelle
+de toute la portée principale était modifiée, tout le placement
+horizontal s'en trouverait affecté.  Il en sera question plus bas dans
+cette section. 
+
+Voilà qui complète la création d'une ossia. Les tailles et longueurs de tous 
+les objets peuvent être modifiées de manière analogue.
+
+Pour de petits changements d'échelle, comme dans l'exemple ci-dessus, il
+n'est généralement pas utile d'ajuster l'épaisseur des différentes
+lignes telles que les barres de mesure, les ligatures, les soufflets de
+crescendo/decrescendo, les liaisons, etc.  Si l'épaisseur d'un objet en
+particulier doit être ajustée, le mieux est de modifier sa propriété
+@code{thickness}.  Nous avons vu plus haut, dans 
+@ref{Properties of layout objects}, un exemple de modification de
+l'épaisseur des liaisons.  L'épaisseur de tous les objets tracés
+(c'est-à-dire ceux qui ne proviennent pas d'une police de caractère)
+peut être changée de la même manière. 
 
-@lilypond[quote,verbatim,ragged-right]
-pattern = #(define-music-function (parser location x y) (ly:music? ly:music?)
-#{
-  $x e8 a b $y b a e
-#})
+@node Placement of objects
+@section Placement of objects
 
-\relative c''{
-  \pattern c8 c8\f
-  \pattern {d16 dis} { ais16-> b\p }
+ @menu
+* Automatic behavior::          
+* Within-staff objects::        
+* Outside staff objects::       
+@end menu
+
+@node Automatic behavior
+@subsection Automatic behavior
+
+@cindex within-staff objects
+@cindex outside-staff objects
+@cindex objects, within-staff
+@cindex objects, outside-staff
+
+Dans la notation musicale, il y a des objets qui appartiennent à la 
+portée et d'autres qui sont placés à l'extérieur de la portée. On les 
+appelle respectivement les @q{objets de la portée} (@emph{within-staff
+objects} en anglais) et les @q{objets extérieurs à la portée}
+(@emph{outside-staff objects}en anglais). 
+
+Les objets de la portée sont ceux qui sont placés sur la portée 
+-- les têtes de notes et les hampes, les altérations, etc.  Leur
+position est généralement déterminée par la musique elle-même -- ils
+sont placés verticalement sur des lignes spécifiques ou sont liés à
+d'autres objets placés de cette manière.  Normalement, les collisions
+entre les têtes et queues de notes et les altérations dans des accords
+proches sont évitées automatiquement.  Comme nous le verrons rapidement,
+il existe des commandes et des possibilités de retouches qui permettent
+de modifier ce comportement automatique. 
+
+Parmi les objets extérieurs à la portée, on compte des éléments comme
+les marques de reprise, les indications de texte ou de nuances.  Dans
+LilyPond, la règle est de placer verticalement ces objets extérieurs à
+la portée le plus près possible de la portée, tout en évitant la
+collision avec d'autres objets.  LilyPond utilise la propriété
+@code{outside-staff-priority} pour déterminer l'ordre selon lequel
+placer ces objets, de la manière suivante : 
+
+D'abord, LilyPond dresse la liste de tous les objets extérieurs à la
+portée.  Puis ceux-ci sont classés suivant leur
+@code{outside-staff-priority}.  Enfin, ils sont pris un par un, en 
+commençant par les objets avec la @code{outside-staff-priority} la plus
+basse, et placés de façon à ne pas entrer en collision avec d'autres
+objets déjà placés.  Cela signifie que, si deux @emph{grobs} extérieurs
+à la portée doivent occuper la même place, c'est celui qui a la
+@code{outside-staff-priority} la plus basse qui est placé le plus près
+de la portée.  Et si deux objets ont la même
+@code{outside-staff-priority}, le premier rencontré sera placé le plus
+près de la portée.  
+
+Dans l'exemple suivant, tous les @emph{markup} ont la même priorité, 
+dans la mesure où rien n'est indiqué explicitement.  Vous remarquerez
+que @code{Text3} est également positionné près de la portée, juste
+en-dessous de @code{Text2}. 
+
+@cindex markup, exemple
+
+@lilypond[quote,fragment,ragged-right,verbatim,relative=2]
+c2^"Text1"
+c^"Text2"
+c^"Text3"
+c^"Text4"
+@end lilypond
+
+Les portées aussi sont positionnées, par défaut, le plus près possible 
+les unes des autres, en ménageant tout de même une certaine séparation.
+Si des notes se rapprochent nettement d'une portée adjacente, elles ne
+forceront les portées à s'écarter que s'il y a un risque de
+chevauchement.  
+
+@lilypond[quote,ragged-right,verbatim]
+<<
+  \new Staff {
+    \relative c' { c a, }
+  }
+  \new Staff {
+    \relative c'''' { c a, }
+  }
+>>
+@end lilypond 
+
+
+@node Within-staff objects
+@subsection Within-staff objects
+
+Nous avons vu que les commandes @code{\voiceXXX} jouent sur la 
+direction des liaisons, des doigtés et sur toute autre chose liée à 
+l'orientation des queues de notes. Ces commandes sont essentielles dans 
+la musique polyphonique pour distinguer des lignes mélodiques 
+entremêlées.  Mais il arrive qu'on ait besoin de modifier ce comportement 
+automatique.  On peut le faire pour toutes les parties de la musique ou 
+juste pour une note.  La propriété qui contrôle ce comportement est la 
+propriété @code{direction} de chaque objet.  Expliquons d'abord ce 
+qu'elle fait, puis nous présenterons un certain nombre de commandes 
+déjà prêtes qui évitent, pour les modifications les plus courantes, 
+d'avoir à encoder les retouches. 
+
+Certains objets comme les traits des liaisons se recourbent tantôt 
+vers le haut, tantôt vers le bas ; d'autres encore, comme les hampes 
+et les crochets, peuvent se décaler vers la gauche ou vers la droite 
+selon qu'ils pointent vers le haut ou vers le bas.  Ce comportement est 
+géré automatiquement dès lors que @code{direction} est activé. 
+
+@cindex down
+@cindex up
+@cindex center
+@cindex neutral
+
+L'exemple ci-dessous montre dans la première mesure le comportement par 
+défaut des hampes -- celles des notes les plus hautes pointant vers le
+bas et celles des notes les plus basses pointant vers le haut ; viennent
+ensuite quatre notes avec les hampes forcées vers le bas, puis quatre
+autres avec les hampes forcées vers le haut, et pour finir quatre notes
+de nouveau avec le comportement par défaut. 
+
+@cindex Stem, exemple de dérogation
+@cindex direction, exemple de propriété
+
+@lilypond[quote,fragment,ragged-right,verbatim,relative=2]
+a4 g c a
+\override Stem #'direction = #DOWN
+a g c a
+\override Stem #'direction = #UP
+a g c a
+\revert Stem #'direction
+a g c a
+@end lilypond
+
+Nous utilisons ici les directions @code{DOWN} et @code{UP}.  Elles 
+correspondent respectivement aux valeurs @code{-1} et @code{+1}, 
+que l'on peut utiliser à la place.  La valeur @code{0} peut aussi être 
+utilisée dans certains cas.  Elle est interprétée comme un @code{UP} 
+pour les hampes, et comme un @q{centré} pour d'autres objets.  Il
+existe une direction, @code{CENTER}, qui correspond à la valeur
+@code{0}. 
+
+Quoi qu'il en soit, ces retouches manuelles sont rarement utilisées car
+il existe des équivalents sous forme de commandes prédéfinies.  Voici un
+tableau des plus courantes.  Lorsque ce n'est pas évident, leur
+signification est précisée. 
+
+@multitable @columnfractions .2 .2 .25 .35
+@headitem Bas/Gauche
+  @tab Haut/Droite
+  @tab Annulation
+  @tab Effet
+@item @code{\arpeggioArrowDown}
+  @tab @code{\arpeggioArrowUp}
+  @tab @code{\arpeggioNormal}
+  @tab Flèche en bas, en haut, ou pas de flèche
+@item @code{\dotsDown}
+  @tab @code{\dotsUp}
+  @tab @code{\dotsNeutral}
+  @tab Déplacement des points pour éviter les lignes de portée
+@item @code{\dynamicDown}
+  @tab @code{\dynamicUp}
+  @tab @code{\dynamicNeutral}
+  @tab
+@item @code{\phrasingSlurDown}
+  @tab @code{\phrasingSlurUp}
+  @tab @code{\phrasingSlurNeutral}
+  @tab Attention : à distinguer des commandes de liaison ci-dessous
+@item @code{\slurDown}
+  @tab @code{\slurUp}
+  @tab @code{\slurNeutral}
+  @tab
+@item @code{\stemDown}
+  @tab @code{\stemUp}
+  @tab @code{\stemNeutral}
+  @tab
+@item @code{\textSpannerDown}
+  @tab @code{\textSpannerUp}
+  @tab @code{\textSpannerNeutral}
+  @tab Le texte saisi en tant qu'extension est au-dessous/au-dessus de la portée
+@item @code{\tieDown}
+  @tab @code{\tieUp}
+  @tab @code{\tieNeutral}
+  @tab
+@item @code{\tupletDown}
+  @tab @code{\tupletUp}
+  @tab @code{\tupletNeutral}
+  @tab Les nolets sont au-dessous/au-dessus des notes
+@end multitable
+
+Attention : ces commandes prédéfinies @strong{ne doivent pas} être
+précédées de @code{\once}.  Pour limiter l'effet à une seule note, il
+faut soit utiliser la commande équivalente @code{\once \override}, soit
+utiliser la commande prédéfinie, suivie, après la note à modifier, de la
+commande @code{\xxxNeutral} correspondante. 
+
+@subheading Fingering
+
+@cindex doigtés, positionnement
+@cindex doigtés, accords
+
+Le placement des doigtés sur des notes simples peut aussi être contrôlé
+par la propriété @code{direction}, mais le changement de
+@code{direction} n'a pas d'effet sur les accords.  Comme nous le
+verrons, il existe des commandes qui permettent de contrôler le doigté
+sur chaque note d'un accord, en plaçant l'indication de doigté
+au-dessus, en dessous, à gauche ou à droite de chaque note. 
+
+Tout d'abord, voici l'effet de @code{direction} sur le doigté lié à une
+note simple.  La première mesure montre le comportement par défaut, et
+les deux suivantes montrent l'effet lorsqu'on indique @code{DOWN} et
+@code{UP} : 
+
+@cindex doigtés, exemple de dérogation
+@cindex direction, exemple de propriété
+
+@lilypond[quote,verbatim,relative=2]
+c-5 a-3 f-1 c'-5
+\override Fingering #'direction = #DOWN
+c-5 a-3 f-1 c'-5
+\override Fingering #'direction = #UP
+c-5 a-3 f-1 c'-5
+@end lilypond
+
+Le fait d'intervenir sur la propriété @code{direction} n'est sûrement
+pas la façon la plus simple de placer manuellement les doigtés au-dessus
+ou en dessous des notes ; mieux vaut utiliser @code{_} ou @code{^}
+devant le chiffre de doigté plutôt que @code{-}.  Voici ce que donne
+l'exemple précédent avec cette méthode : 
+
+@cindex doigtés, exemple
+
+@lilypond[quote,verbatim,relative=2]
+c-5 a-3 f-1 c'-5
+c_5 a_3 f_1 c'_5
+c^5 a^3 f^1 c'^5
+@end lilypond
+
+La propriété @code{direction} ne fonctionne pas pour les accords alors
+que les préfixes de direction, @code{_} et @code{^}, fonctionnent.  Par
+défaut, le doigté est placé automatiquement à la fois au-dessus et
+au-dessous des notes d'un accord, comme ceci : 
+
+@cindex doigtés, exemple
+
+@lilypond[quote,verbatim,relative=2]
+<c-5 g-3>
+<c-5 g-3 e-2>
+<c-5 g-3 e-2 c-1>
+@end lilypond
+
+@noindent
+mais il est possible de forcer manuellement vers le haut ou vers le bas le 
+placement de tous ou certains chiffres de doigté, comme ceci :
+
+@cindex doigtés, exemple
+
+@lilypond[quote,verbatim,relative=2]
+<c-5 g-3 e-2 c-1>
+<c^5 g_3 e_2 c_1>
+<c^5 g^3 e^2 c_1>
+@end lilypond
+
+On peut aller encore plus loin dans le positionnement des doigtés pour
+chacune des notes d'un accord grâce à la commande @code{\set
+fingeringOrientations}.  La syntaxe de cette commande est :
+
+@example
+@code{\set fingeringOrientations = #'([up] [left/right] [down])}
+@end example
+
+@noindent
+On utilise @code{\set} car @code{fingeringOrientations} est une propriété 
+du contexte @code{Voice}, créée et utilisée par le graveur 
+@code{New_fingering_engraver}.
+
+On peut attribuer à cette propriété une liste composée de une à trois 
+valeurs.  Celles-ci déterminent si l'indication de doigté doit être
+placée au-dessus (lorsque @code{up} apparaît dans la liste), au-dessous
+(lorsque @code{down} apparaît), à gauche (lorsque @code{left} apparaît)
+ou à droite (lorsque @code{right} apparaît).  En revanche, si une valeur
+n'est pas sur la liste, aucun doigté n'ira à cet emplacement.  LilyPond
+garde ces contraintes en mémoire et recherche le meilleur emplacement
+pour le doigté des notes des accords suivants.  Vous remarquerez que
+@code{left} et @code{right} s'excluent l'un l'autre -- l'indication de
+doigté ne peut être placée que d'un côté ou de l'autre, pas des deux. 
+
+@warning{Ppour contrôler à l'aide de cette commande le placement du
+doigté sur une note simple, il faut la saisir comme un accord composé
+d'une note unique, en l'encadrant de chevrons.}
+
+Voici quelques exemples : 
+
+@cindex doigtés, exemple
+@cindex @code{\set}, exemple d'utilisation
+@cindex fingeringOrientations, exemple de propriété
+
+@lilypond[quote,fragment,ragged-right,verbatim,relative=1]
+\set fingeringOrientations = #'(left)
+<f-2>
+< c-1  e-2 g-3 b-5 > 4
+\set fingeringOrientations = #'(left)
+<f-2>
+< c-1  e-2 g-3 b-5 > 4
+\set fingeringOrientations = #'(up left down)
+<f-2>
+< c-1  e-2 g-3 b-5 > 4
+\set fingeringOrientations = #'(up left)
+<f-2>
+< c-1  e-2 g-3 b-5 > 4
+\set fingeringOrientations = #'(right)
+<f-2>
+< c-1  e-2 g-3 b-5 > 4
+@end lilypond
+
+@noindent
+Si les indications de doigtés paraissent un peu serrées, on peut 
+toujours réduire la taille de police (@code{font-size}).  La valeur 
+par défaut donnée dans la RPI à la page de l'objet 
+@code{Fingering} étant @code{-5}, essayons @code{-7} :
+
+@lilypond[quote,fragment,ragged-right,verbatim,relative=1]
+\override Fingering #'font-size = #-7
+\set fingeringOrientations = #'(left)
+<f-2>
+< c-1  e-2 g-3 b-5 > 4
+\set fingeringOrientations = #'(left)
+<f-2>
+< c-1  e-2 g-3 b-5 > 4
+\set fingeringOrientations = #'(up left down)
+<f-2>
+< c-1  e-2 g-3 b-5 > 4
+\set fingeringOrientations = #'(up left)
+<f-2>
+< c-1  e-2 g-3 b-5 > 4
+\set fingeringOrientations = #'(right)
+<f-2>
+< c-1  e-2 g-3 b-5 > 4
+@end lilypond
+
+
+@node Outside staff objects
+@subsection Outside staff objects
+
+Les objets extérieurs à la portée sont placés automatiquement de façon à
+éviter les collisions.  Les objets avec la plus petite valeur de la
+propriété @code{outside-staff-priority} sont placés au plus près de la
+portée, tandis que les autres sont écartés autant qu'il faut pour éviter
+les collisions.  La @code{outside-staff-priority} est définie dans la
+@code{grob-interface} ; elle est donc une propriété commune à tous les
+objets de rendu.  Par défaut, elle est réglée sur @code{#f} pour tous
+les objets de la portée, et porte une valeur numérique appropriée à
+chacun des objets extérieurs à la portée, à mesure qu'ils sont créés.
+Le tableau suivant montre la valeur numérique par défaut pour
+quelques-uns des objets extérieurs à la portée les plus courants qui
+sont placés, par défaut, dans les contextes @code{Staff} ou
+@code{Voice}. 
+
+@multitable @columnfractions .3 .3 .3
+@headitem Objet de rendu
+  @tab Priorité 
+  @tab Contrôle la position de :
+@item @code{MultiMeasureRestText}
+  @tab @code{450}
+  @tab Texte sur les silences qui couvrent des mesures entières 
+@item @code{TextScript}
+  @tab @code{450}
+  @tab Texte des @emph{markup} (ou étiquettes)
+@item @code{OttavaBracket}
+  @tab @code{400}
+  @tab Indication d'octaviation
+@item @code{TextSpanner}
+  @tab @code{350}
+  @tab Bandeau ou extension de texte
+@item @code{DynamicLineSpanner}
+  @tab @code{250}
+  @tab Toutes les marques de nuances
+@item @code{VoltaBracketSpanner}
+  @tab @code{100}
+  @tab Bandeau de répétition
+@item @code{TrillSpanner}
+  @tab @code{50}
+  @tab Bandeau de trille
+@end multitable
+
+Voici un exemple qui montre le placement par défaut de certains 
+d'entre eux.
+
+@cindex text spanner
+@cindex ottava bracket
+
+@funindex \startTextSpan
+@funindex startTextSpan
+@funindex \stopTextSpan
+@funindex stopTextSpan
+
+@cindex TextSpanner, exemple de dérogation
+@cindex bound-details, exemple de propriété
+
+@lilypond[quote,fragment,ragged-right,verbatim,relative=1]
+% Set details for later Text Spanner
+\override TextSpanner #'bound-details #'left #'text
+    = \markup { \small \bold Slower }
+% Place dynamics above staff
+\dynamicUp
+% Start Ottava Bracket
+\ottava #1
+c' \startTextSpan
+% Add Dynamic Text
+c\pp
+% Add Dynamic Line Spanner
+c\<
+% Add Text Script
+c^Text
+c c
+% Add Dynamic Text
+c\ff c \stopTextSpan
+% Stop Ottava Bracket
+\ottava #0
+c, c c c
+@end lilypond
+
+Cet exemple montre comment créer des extensions de texte (@emph{Text
+Spanners} en anglais ) -- texte avec des longues lignes au-dessus d'un
+passage musical.  L'extension s'étend depuis la commande
+@code{\startTextSpan} jusqu'à la commande @code{\stopTextSpan} et le
+format de texte est défini par la commande @code{\override TextSpanner}.
+Pour de plus amples détails, voir @ruser{Text spanners}.
+
+Il montre aussi comment créer des marques d'octaviation.
+
+@cindex modification du positionnement des numéros de mesure
+@cindex numéros de mesure, modification du positionnement
+@cindex modification du positionnement des indications métronomiques
+@cindex indications métronomiques, modification du positionnement
+@cindex modification du positionnement des marques de repère
+@cindex marques de repère, modification du positionnement
+
+Vous aurez remarqué que les numéros de mesure, l'indication métronomique
+et les marques de répétition n'apparaissent pas.  Par défaut, ils sont
+créés dans le contexte @code{Score} et leur
+@code{outside-staff-priority} est ignorée face aux objets qui sont créés
+dans le contexte @code{Staff}.  Si vous voulez faire apparaître les
+numéros de mesure, l'indication métronomique ou les marques de
+répétition conformément à la valeur de leur
+@code{outside-staff-priority}, il vous faudra retirer respectivement le
+@code{Bar_number_engraver}, le @code{Metronome_mark_engraver} oule
+@code{Mark_engraver} du contexte @code{Score} et les placer en haut du
+contexte @code{Staff}.  Après quoi ces marques porteront les valeurs de 
+@code{outside-staff-priority} par défaut suivantes : 
+
+@multitable @columnfractions .3 .3
+@headitem Objet de rendu          @tab Priorité
+@item @code{RehearsalMark}        @tab @code{1500}
+@item @code{MetronomeMark}        @tab @code{1000}
+@item @code{BarNumber}            @tab @code{ 100}
+@end multitable
+
+Si les valeurs de @code{outside-staff-priority} par défaut ne donnent
+pas les résultats que vous attendez, il suffit de modifier la priorité
+de l'un de ces objets.  Supposons que vous vouliez placer l'indication
+d'octaviation sous le bandeau de texte, dans l'exemple précédent.  Tout
+ce que nous devons faire, c'est regarder la priorité de
+@code{OttavaBracket} dans la RPI ou dans le tableau plus haut, et la
+ramener à une valeur plus basse que celle de @code{TextSpanner}, en
+gardant à l'esprit que @code{OttavaBracket} est créé dans le contexte
+@code{Staff} : 
+
+@cindex TextSpanner, exemple de dérogation
+@cindex bound-details, exemple de propriété
+
+@lilypond[quote,fragment,ragged-right,verbatim,relative=1]
+% Set details for later Text Spanner
+\override TextSpanner #'bound-details #'left #'text
+    = \markup { \small \bold Slower }
+% Place dynamics above staff
+\dynamicUp
+%Place following Ottava Bracket below Text Spanners
+\once \override Staff.OttavaBracket #'outside-staff-priority = #340
+% Start Ottava Bracket
+\ottava #1
+c' \startTextSpan
+% Add Dynamic Text
+c\pp
+% Add Dynamic Line Spanner
+c\<
+% Add Text Script
+c^Text
+c c
+% Add Dynamic Text
+c\ff c \stopTextSpan
+% Stop Ottava Bracket
+\ottava #0
+c, c c c
+@end lilypond
+
+Le fait de changer la @code{outside-staff-priority} peut aussi servir à
+contrôler le positionnement vertical des objets individuels, quoique le
+résultat ne soit pas toujours formidable.  Imaginons que nous voulions
+placer @qq{Text3} au-dessus de @qq{Text4} dans l'exemple de la section
+Comportement automatique, plus haut (voir @ref{Automatic behavior}).  Il
+nous suffit pour cela de regarder dans la RPI ou dans le tableau plus
+haut la priorité de @code{TextScript}, et d'augmenter la priorité de
+@qq{Text3} jusqu'à une valeur très haute : 
+
+@cindex TextScript, exemple de dérogation
+@cindex outside-staff-priority, exemple de propriété
+
+@lilypond[quote,fragment,ragged-right,verbatim,relative=2]
+c2^"Text1"
+c^"Text2"
+\once \override TextScript #'outside-staff-priority = #500
+c^"Text3"
+c^"Text4"
+@end lilypond
+
+S'il est vrai que cela place @qq{Text3} au-dessus de @qq{Text4}, ça le
+place aussi plus haut que @qq{Text2} tandis que @qq{Text4} dégringole.
+Ce n'est peut-être pas si bien que ça.  En fait, ce que nous aimerions
+faire, c'est placer toutes les annotations à égale distance de la
+portée.  Pour cela, nous avons besoin d'espacer horizontalement les
+notes pour laisser plus de place au texte.  C'est possible grâce à la
+commande @code{textLengthOn}. 
+
+@subheading \textLengthOn
+
+@cindex notes, répartition selon le texte
+
+@funindex \textLengthOn
+@funindex textLengthOn
+@funindex \textLengthOff
+@funindex textLengthOff
+
+Par défaut, l'espacement horizontal d'un texte produit sous forme de
+@emph{markup} (ou d'étiquette) n'est pas pris en compte, dans la mesure
+où ce qui est concerné n'entre pas dans la musique.  La commande
+@code{\textLengthOn} inverse ce comportement, faisant en sorte que les
+notes soient espacées autant qu'il faut pour s'adapter au texte :  
+
+@lilypond[quote,fragment,ragged-right,verbatim,relative=2]
+\textLengthOn  % Cause notes to space out to accommodate text
+c2^"Text1"
+c^"Text2"
+c^"Text3"
+c^"Text4"
+@end lilypond  
+
+La commande qui permet de revenir au comportement par défaut est 
+@code{\textLengthOff}.  Rappelez-vous que @code{\once} ne 
+fonctionne qu'avec @code{\override}, @code{\set}, @code{\revert} ou 
+@code{\unset}, et donc ne peut pas être utilisé avec 
+@code{\textLengthOn}.
+
+@cindex markup text, allowing collisions
+
+Les textes des @emph{markup} éviteront également les notes qui
+s'échappent au-dessus de la portée.  Si ce n'est pas notre souhait, il
+est possible de supprimer ce déplacement automatique vers le haut en
+attribuant à la priorité la valeur @code{#f}.  Voici un exemple qui
+montre comment les textes des @emph{markup} interagissent avec ces types
+de notes. 
+
+@cindex TextScript, exemple de dérogation
+@cindex outside-staff-priority, exemple de propriété
+
+@lilypond[quote,fragment,ragged-right,verbatim,relative=2]
+% This markup is short enough to fit without collision
+c2^"Tex"
+c''2
+R1
+% This is too long to fit, so it is displaced upwards
+c,,2^"Text"
+c''2
+R1
+% Turn off collision avoidance
+\once \override TextScript #'outside-staff-priority = ##f
+c,,2^"Long Text   "
+c''2
+R1
+% Turn off collision avoidance
+\once \override TextScript #'outside-staff-priority = ##f
+\textLengthOn  % and turn on textLengthOn
+c,,2^"Long Text   "  % Spaces at end are honored
+c''2
+@end lilypond
+
+
+@subheading Dynamics
+
+@cindex modifier le positionnement des nuances
+@cindex nuances, modifier le positionnement
+
+Les indications de nuances se placent normalement sous la portée mais on
+peut les placer au-dessus avec la commande @code{dynamicUp}.  Elles se
+positionnent verticalement par rapport à la note à laquelle elles sont
+liées et se décalent vers le bas (ou le haut) en fonction des objets de
+la portée comme les liaisons de phrasé ou les numéros de mesure.  Cela
+peut donner d'assez bons résultats, comme le montre cet exemple : 
+
+@lilypond[quote,fragment,ragged-right,verbatim,relative=1]
+\clef "bass"
+\key aes \major
+\time 9/8
+\dynamicUp
+bes4.~\f\< \( bes4 bes8 des4\ff\> c16 bes\! |
+ees,2.~\)\mf ees4 r8 |
+@end lilypond
+
+De toute façon, si les notes et les nuances qui leur sont liées sont 
+trop proches, le positionnement automatique évitera les collisions en  
+déplaçant davantage les nuances suivantes, mais le résultat peut ne 
+pas être très satisfaisant, comme le montre cet exemple artificiel : 
+
+@lilypond[quote,fragment,ragged-right,verbatim,relative=2]
+\dynamicUp
+a4\f b\mf c\mp b\p
+@end lilypond
+
+@noindent
+Si une telle situation devait survenir dans de la musique @qq{réelle},
+il serait préférable d'espacer un peu plus les notes, de façon que les
+indications de nuance puissent toutes se situer à la même distance de la
+portée.  Il était possible de faire cela pour les textes de
+@emph{markup} grâce à la commande @code{\textLengthOn} mais il n'existe
+pas d'équivalent pour les indications de nuance.  Il nous faut donc
+chercher à faire cela avec la commande @code{\override}. 
+
+@subheading Grob sizing
+
+@cindex grob, dimensionnement
+@cindex dimensionnement des grobs
+
+Tout d'abord, nous devons apprendre ce qui détermine la dimension des 
+grobs. Tous les grobs portent en eux un point de référence qui est 
+utilisé pour les positionner par rapport à leur objet parent. Ce point du 
+grob est placé à une distance horizontale, @code{X-offset}, 
+et à une distance verticale, @code{Y-offset}, de son parent. 
+L'étendue horizontale de l'objet est fixée par une paire de 
+nombres, @code{X-extent}, qui donnent la position du coin 
+gauche et du coin droit par rapport au point de référence.  De 
+même, l'étendue verticale est fixée par une paire de nombre, 
+@code{Y-extent}. Ce sont des propriétés communes à tous les 
+grobs et que gère la @code{grob-interface}.
+
+@cindex @code{extra-spacing-width}
+
+Par défaut, la largeur des objets extérieurs à la portée est donnée 
+comme étant nulle, si bien qu'ils peuvent se chevaucher 
+horizontalement. Pour arriver à cela, on a ajouté l'infini à 
+l'extension gauche et moins l'infini à l'extension droite, en 
+attribuant à @code{extra-spacing-width} la valeur
+ @code{'(+inf.0 . -inf.0)}. Pour être sûr que les objets ne se 
+chevaucheront pas horizontalement, nous devons donc corriger 
+cette valeur de @code{extra-spacing-width} en @code{'(0 . 0)}, 
+afin que leur vraie largeur se manifeste. La commande pour y 
+parvenir avec des indications de nuances est : 
+
+@example
+\override DynamicText #'extra-spacing-width = #'(0 . 0)
+@end example
+
+@noindent
+Voyons si ça marche sur notre exemple précédent :
+
+@cindex DynamicText, example of overriding
+@cindex extra-spacing-width property, example
+
+@lilypond[quote,fragment,ragged-right,verbatim,relative=2]
+\dynamicUp
+\override DynamicText #'extra-spacing-width = #'(0 . 0)
+a4\f b\mf c\mp b\p
+@end lilypond
+
+@noindent
+Bon, cela a mis un terme aux déplacements verticaux des 
+nuances mais il reste deux problèmes. Il faudrait que les 
+nuances soient un peu plus écartées et ce serait mieux si 
+elles étaient toutes à la même distance de la portée. Le 
+premier problème est simple à résoudre. Au lieu d'attribuer 
+à @code{extra-spacing-width} la valeur zéro, nous pourrions 
+mettre un peu plus. L'unité est la distance entre deux lignes 
+de portée, donc en écartant le bord gauche d'une demi-unité 
+et le bord droit d'une demi-unité, on obtient : 
+
+@cindex DynamicText, example of overriding
+@cindex extra-spacing-width property, example
+
+@lilypond[quote,fragment,ragged-right,verbatim,relative=2]
+\dynamicUp
+% Extend width by 1 staff space
+\override DynamicText #'extra-spacing-width = #'(-0.5 . 0.5)
+a4\f b\mf c\mp b\p
+@end lilypond
+
+@noindent
+C'est mieux mais nous voulons peut-être aligner les indications de 
+nuances sur une même ligne plutôt que de les voir monter et 
+descendre avec les notes. La propriété qui gère cela est 
+@code{staff-padding} ; la section suivante lui est consacrée.
+
+
+@node Collisions of objects
+@section Collisions of objects
+
+
+@menu
+* Moving objects::              
+* Fixing overlapping notation::  
+* Real music example::          
+@end menu
+
+@node Moving objects
+@subsection Moving objects
+
+Aussi surprenant que cela puisse paraître, LilyPond n'est pas parfait.
+Certains éléments sur la partition peuvent se chevaucher, ce qui est 
+regrettable mais, le plus souvent, facile à corriger. En général, quand 
+on déplace des objets, c'est pour des raisons de lisibilité ou 
+d'esthétique -- ils rendraient mieux avec un peu plus ou un peu moins 
+d'espace autour d'eux. 
+
+Il y a trois façons de résoudre les problèmes de chevauchement. Il est 
+préférable de les aborder dans l'ordre suivant :
+
+@enumerate
+@item
+L'@strong{orientation} d'un objet qui en chevauche un autre peut être 
+changée grâce aux commandes prédéfinies dont la liste a été donnée 
+plus haut à propos des objets de portée (voir @ref{Within-staff objects}). 
+Les queues de notes, les liaisons de phrasé et de prolongation, les 
+crochets, les nuances et les nolets peuvent facilement être repositionnés 
+de cette manière. En contrepartie, vous n'avez le choix qu'entre deux 
+positions, sans personnalisation possible.
+
+@item
+Les @strong{propriétés d'objet}, auxquelles LilyPond a recours pour 
+positionner les objets, sont modifiables avec @code{\override}. Il y a deux 
+avantages à changer ces propriétés : (a) d'autres objets pourront être 
+déplacés automatiquement si nécessaire pour faire de la place, et (b) 
+la même retouche peut s'appliquer à toutes les occurrences du même 
+type d'objet. Ces propriétés sont :
+
+@itemize
+
+@item
+@code{direction}
+
+Ce point a déjà été traité en détails -- voir @ref{Within-staff objects}.
+
+@item
+@code{padding}, @code{left-padding},
+@code{right-padding}, @code{staff-padding}
+
+@cindex padding
+@cindex left-padding property
+@cindex padding property
+@cindex right-padding property
+@cindex staff-padding property
+
+Au moment de positionner un objet, la valeur de sa propriété 
+@code{padding} détermine l'espace à laisser libre entre celui-ci et le 
+coin le plus proche de l'objet à côté duquel il est placé. Vous remarquerez 
+que c'est la valeur @code{padding} de l'objet @strong{à placer} qui 
+compte ; la valeur @code{padding} de l'objet déjà placé est ignorée. 
+Les espaces libres déterminés par @code{padding} s'appliquent à tous 
+les objets associés à la @code{side-position-interface}.
+
+Le positionnement de groupes d'altérations est contrôlé par 
+@code{left-padding} et @code{right-padding}, et non plus @code{padding}.
+Ces propriétés appartiennent à l'objet @code{AccidentalPlacement}, qui, 
+vous le remarquerez, prend place dans le contexte @strong{Staff}. Dans le 
+processus de composition, les têtes de notes sont composées en premier, 
+puis les altérations, s'il y en a, sont ajoutées à gauche des têtes de notes 
+suivant la propriété @code{right-padding} qui détermine l'espacement par 
+rapport aux têtes de notes. C'est pourquoi seule la propriété 
+@code{right-padding} de l'objet @code{AccidentalPlacement} joue sur le 
+positionnement des altérations. 
+
+La propriété @code{staff-padding} est très proche de la propriété 
+@code{padding} : @code{padding} contrôle l'espace minimum entre un 
+objet qui accepte la @code{side-position-interface} et l'objet le plus 
+proche (généralement une note ou une ligne de portée) ; @code{staff-padding} 
+ne s'applique qu'aux objets qui sont toujours placés en-dehors de la portée -- 
+il contrôle l'espace minimum à insérer entre l'objet et la portée. Attention : 
+par défaut, @code{staff-padding} concerne les objets positionnés par rapport 
+à la portée et n'a aucun effet sur les objets qui sont positionnés par
+rapport à une note ; il est toutefois possible de le régler pour
+fonctionner avec ces derniers. 
+
+Pour trouver quelle propriété  @q{padding} employer pour l'objet que vous 
+cherchez à repositionner, il vous faut consulter les propriétés de l'objet dans 
+la RPI. Prenez garde que les propriétés @q{padding} ne sont pas forcément 
+traitées dans l'objet en question ; il faut alors regarder les objets
+qui semblent s'en rapprocher. 
+
+Toutes les valeurs @q{padding} sont exprimées en espaces de portée. 
+Pour la plupart des objets, la valeur par défaut est aux alentours de 1.0, 
+parfois moins (cela dépend de chaque objet). Il est possible de la modifier 
+lorsqu'on a besoin d'un espace vide plus grand (ou plus petit).
+
+
+@item
+@code{self-alignment-X}
+
+@cindex self-alignment-X property
+Cette propriété sert à aligner les objets sur la gauche, sur la droite ou 
+à les centrer par rapport au point de référence des objets parents. 
+Elle peut être utilisée avec tous les objets qui acceptent la 
+@code{self-alignment-interface}. Il s'agit, en général, des objets qui 
+contiennent du texte. Les valeurs admises sont @code{LEFT}, 
+@code{RIGHT} et @code{CENTER}. On peut aussi attribuer à 
+la place une valeur numérique entre @code{-1} et @code{+1}, 
+où @code{-1} signifie alignement sur la gauche, @code{+1} 
+alignement sur la droite, et les nombres intermédiaires déplacent 
+progressivement le texte de la gauche vers la droite. Des valeurs 
+numériques supérieures à @code{1} sont également admises 
+pour déplacer le texte encore plus loin vers la gauche, ou des 
+valeurs inférieures à @code{-1} pour déplacer le texte encore 
+plus loin vers la droite. Un écart de @code{1} en valeur 
+correspond à un déplacement de la moitié de la longueur du 
+texte.
+
+@item
+@code{extra-spacing-width}
+
+@cindex extra-spacing-width property
+Cette propriété est utilisée pour tous les objets qui acceptent la 
+@code{item-interface}. Elle reçoit deux nombres, le premier étant 
+ajouté au bord gauche et le second au bord droit. Des nombres 
+négatifs déplacent le coin vers la gauche, des nombres positifs 
+vers la droite, si bien que pour élargir un objet, le premier nombre 
+doit être négatif et le second positif. Attention : tous les objets 
+n'acceptent pas forcément les deux nombres. Par exemple, l'objet 
+@code{Accidental} ne retient que le premier nombre (coin gauche).
+
+
+@item
+@code{staff-position}
+
+@cindex staff-position property
+@code{staff-position} est une propriété de la 
+@code{staff-symbol-referencer-interface}, qui s'applique aux objets 
+positionnés par rapport à la portée. Elle indique, en demi-espaces de 
+portée, la position verticale des objets par rapport à la ligne médiane 
+de la portée. C'est bien pratique pour résoudre des problèmes de 
+collision entre des objets comme les silences valant mesure entière, 
+les liaisons et les notes de différentes voix.
+
+@item
+@code{force-hshift}
+
+@cindex force-hshift property
+Des notes très proches dans un accord, ou des notes simultanées dans 
+différentes voix, peuvent être disposées sur deux colonnes, rarement 
+plus, pour éviter que les têtes de notes ne se chevauchent. On parle 
+alors de colonnes de notes et un objet appelé @code{NoteColumn} 
+est créé pour placer les notes sur la colonne.
+
+La propriété @code{force-hshift} appartient à @code{NoteColumn} (en 
+réalité à la @code{note-column-interface}). Le fait de la modifier permet 
+de déplacer une colonne de notes selon l'unité appropriée aux colonnes 
+de notes, à savoir la largeur des têtes de notes de la première voix. Son 
+utilisation est réservée à des situations complexes dans lesquelles les 
+commandes habituelles @code{\shiftOn} 
+(voir @ref{Explicitly instantiating voices}) ne suffisent plus à résoudre les 
+conflits. Elle est alors préférable à l'utilisation de la propriété 
+@code{extra-offset}, dans la mesure où on n'a pas besoin d'exprimer 
+la distance en espaces de portée et où le fait de déplacer les notes à 
+l'intérieur ou à l'extérieur d'une @code{NoteColumn} affecte d'autres 
+actions comme les fusionnements de notes.
+
+@end itemize
+
+@item
+Pour terminer, quand toutes les autres méthodes ont échoué, il est 
+possible de repositionner verticalement les objets à la main par rapport 
+à la ligne médiane de la portée, ou en les déplaçant à une distance 
+donnée vers une nouvelle position. Les inconvénients sont qu'il faut
+individuellement pour chaque objet trouver les valeurs correctes de 
+repositionnement, souvent par tâtonnement, et que, puisque le 
+mouvement est opéré après que LilyPond a placé tous les autres 
+objets, c'est à l'utilisateur de résoudre tous les problèmes de collisions 
+qui pourraient survenir. Et le pire avec cette méthode est que, le jour 
+où la musique est modifiée, il faut de nouveau rechercher les 
+valeurs de repositionnement. Les propriétés à utiliser pour ce type de 
+repositionnement manuel sont :
+
+
+@table @code
+@item extra-offset
+
+@cindex extra-offset property
+Cette propriété s'applique à tout objet acceptant la @code{grob-interface}. 
+Elle reçoit une paire de nombre qui indiquent le déplacement supplémentaire 
+dans le sens horizontal et vertical. Des nombres négatifs déplacent l'objet 
+vers la gauche ou vers la droite. L'unité utilisée est l'espace de portée. Le 
+déplacement supplémentaire intervient une fois que la composition des 
+objets est achevée, si bien qu'un objet peut être repositionné à n'importe 
+quel endroit sans que ça perturbe quoi que ce soit. 
+
+@item positions
+
+@cindex positions property
+Cette propriété est très utile pour ajuster manuellement l'inclinaison et 
+la hauteur des barres de croches, des liaisons et des nolets. Elle est  
+suivie de deux nombres qui donnent la position des bords gauche et 
+droit des barres, liaisons, etc., par rapport à la ligne médiane de la 
+portée. L'unité de référence est l'intervalle de lignes de portée. Attention 
+toutefois au fait que les liaisons et phrasés ne peuvent pas être repositionnés 
+n'importe où. LilyPond commence par dresser la liste des emplacements 
+possibles pour les liaisons et choisit par défaut la liaison qui @qq{semble 
+la meilleure}. Si la propriété @code{positions} a été retouchée, la 
+liaison la plus proche de la position demandée sera retenue dans la 
+liste.
+@end table
+
+@end enumerate
+
+Il est possible qu'un objet ne dispose pas de toutes ces propriétés. Il 
+est donc nécessaire de consulter la RPI pour vérifier quelles sont les 
+propriétés disponibles pour l'objet en question. 
+
+Voici une liste d'objets les plus couramment impliqués dans les 
+collisions, avec le nom de l'objet à consulter dans la RPI afin de trouver 
+les propriétés à retoucher pour obtenir un déplacement.
+
+
+@multitable @columnfractions .5 .5
+@headitem Type d'objet              @tab Nom d'objet
+@item Articulations                 @tab @code{Script}
+@item Barres de croches             @tab @code{Beam}
+@item Doigté                        @tab @code{Fingering}
+@item Liaisons de phrasé            @tab @code{Slur}  
+@item Liaisons de prolongation      @tab @code{Tie}
+@item Nolets                        @tab @code{TupletBracket}
+@item Nuances (verticalement)       @tab @code{DynamicLineSpanner}
+@item Nuances (horizontalement)     @tab @code{DynamicText}
+@item Reprises / marques de texte   @tab @code{RehearsalMark}
+@item Texte, p.ex. @code{^"texte"}  @tab @code{TextScript}
+@end multitable
+
+
+@node Fixing overlapping notation
+@subsection Fixing overlapping notation
+
+Voyons maintenant comment les propriétés décrites dans la section 
+précédente peuvent nous aider à résoudre les collisions. 
+
+@subheading padding property
+
+@cindex padding
+@cindex fixing overlapping notation
+@cindex overlapping notation
+
+En jouant sur la propriété @code{padding} (littéralement 
+@q{rembourrage}), on augmente (ou on diminue) la distance entre 
+des symboles qui sont imprimés au-dessus ou en dessous des notes. 
+
+@cindex Script, example of overriding
+@cindex padding property, example
+
+@lilypond[quote,fragment,relative=1,verbatim]
+c2\fermata
+\override Script #'padding = #3
+b2\fermata
+@end lilypond
+
+@cindex MetronomeMark, example of overriding
+@cindex padding property, example
+
+@lilypond[quote,fragment,relative=1,verbatim]
+% This will not work, see below:
+\override MetronomeMark #'padding = #3
+\tempo 4=120
+c1
+% This works:
+\override Score.MetronomeMark #'padding = #3
+\tempo 4=80
+d1
+@end lilypond
+
+Vous remarquerez dans le second exemple à quel point il est important de 
+préciser le nom du contexte qui contient l'objet. Puisque l'objet 
+@code{MetronomeMark} appartient au contexte @code{Score}, le fait de 
+modifier la propriété dans le contexte @code{Voice} passera inaperçu. 
+Pour plus de détails, voir @ruser{Modifying properties}.
+
+Si on augmente la propriété @code{padding} d'un objet alors que celui-ci 
+fait partie d'un ensemble d'objets positionnés en fonction de leur 
+@code{outside-staff-priority}, cet objet sera déplacé, ainsi que tous les 
+autres objets du groupe. 
+
+@subheading left-padding and right-padding
+
+@cindex left-padding property
+@cindex right-padding property
+
+La propriété @code{right-padding} joue sur l'espacement entre une 
+altération et la note sur laquelle elle porte. On ne l'utilise pas souvent, 
+mais l'exemple ci-dessous montre une situation où elle est nécessaire. 
+Imaginons que nous voulions faire apparaître un accord qui contienne 
+à la fois un si bécarre et un si bémol. Pour qu'il n'y ait pas de doute, 
+nous chercherions à précéder la note d'un signe bécarre et d'un signe 
+bémol. Voici différentes tentatives pour y parvenir : 
+
+@lilypond[quote,fragment,ragged-right,verbatim,relative=2]
+<b bes>
+<b! bes>
+<b? bes>
+@end lilypond
+
+Pas une ne convient, et la seconde se solde même par une collision 
+entre les deux signes. 
+
+Une solution pour arriver à nos fins consiste à retoucher le stencil des 
+altérations grâce à un markup qui contient les symboles bécarre et 
+bémol, dans l'ordre que nous souhaitons, comme ceci :
+
+@cindex Accidental, example of overriding
+@cindex text property, example
+@cindex stencil property, example
+@cindex AccidentalPlacement, example of overriding
+@cindex right-padding property, example
+
+@lilypond[quote,ragged-right,verbatim]
+naturalplusflat = \markup { \natural \flat }
+\relative c'' {
+  \once \override Accidental
+    #'stencil = #ly:text-interface::print
+  \once \override Accidental #'text = #naturalplusflat
+  \once \override Score.AccidentalPlacement #'right-padding = #1.5
+  <b bes>
 }
 @end lilypond
 
+@noindent
+Cette méthode utilise, pour le stencil des altérations, une retouche 
+qui ne sera par reprise par la suite. Le type de stencil est obligatoirement 
+une procédure, qui consiste ici à imprimer le contenu de la propriété 
+@code{text} de @code{Accidental}, déclaré comme étant un signe 
+bécarre suivi d'un signe bémol. Celui-ci est ensuite repoussé devant la 
+tête de note par la retouche de @code{right-padding}.
+
+@noindent
+
+@subheading staff-padding property
+
+@cindex aligning objects on a baseline
+@cindex objects, aligning on a baseline
+
+@code{staff-padding} sert à aligner des objets tels que des nuances 
+sur une ligne fictive à une hauteur donnée par rapport à la portée, plutôt 
+qu'à une hauteur qui varie en fonction de la position de la note sur laquelle 
+porte l'objet. Ce n'est pas une propriété de @code{DynamicText} mais de 
+@code{DynamicLineSpanner}. Car la ligne fictive est destinée à s'appliquer 
+autant à @strong{toutes} les nuances, notamment celles qui sont créées 
+comme des bandeaux en longueur (en anglais @q{Spanners}). Tel est donc 
+le moyen d'aligner les indications de nuances, comme dans cet exemple 
+repris de la section précédente : 
+
+@cindex DynamicText, example of overriding
+@cindex extra-spacing-width property, example
+@cindex DynamicLineSpanner, example of overriding
+@cindex staff-padding property, example
+
+@lilypond[quote,fragment,ragged-right,verbatim,relative=2]
+\dynamicUp
+% Extend width by 1 unit
+\override DynamicText #'extra-spacing-width = #'(-0.5 . 0.5)
+% Align dynamics to a base line 2 units above staff
+\override DynamicLineSpanner #'staff-padding = #2
+a4\f b\mf c\mp b\p
+@end lilypond
+
+
+@subheading self-alignment-X property
+L'exemple suivant montre comment résoudre une collision entre une indication 
+de corde et une queue de note, en alignant le coin droit sur le point de 
+référence de la note parente :
+
+@cindex StringNumber, example of overriding
+@cindex self-alignment-X property, example
+
+@lilypond[quote,fragment,ragged-right,verbatim,relative=3]
+\voiceOne
+< a \2 >
+\once \override StringNumber #'self-alignment-X = #RIGHT
+< a \2 >
+@end lilypond
+
+@subheading staff-position property
+
+@cindex object collision within a staff
+Dans une voix, un silence valant une mesure entière peut chevaucher les 
+notes d'une autre voix. Vu que ces silences sont centrés entre les deux 
+barres de mesure, il serait très compliqué de programmer LilyPond pour repérer 
+ces risques de collisions, dans la mesure où, normalement, toutes les collisions 
+entre notes ou entre notes et silences se produisent sur des notes et silences 
+simultanés. Voici un exemple de collision de ce type :
+
+@lilypond[quote,verbatim,fragment,ragged-right, relative=1]
+<< {c c c c} \\ {R1} >>
+@end lilypond
+
+Ici, la meilleure solution consiste à déplacer le symbole de pause vers
+le bas -- puisque cette pause appartient à la voix deux.  Par défaut, dans la 
+@code{\voiceTwo} (c'est-à-dire dans la seconde voix d'une construction 
+@code{<<@{...@} \\ @{...@}>>}), la propriété @code{staff-position} est 
+réglée sur -4 pour les MultiMeasureRest ; nous avons donc besoin de la 
+déplacer, disons, de quatre demi-intervalles vers le bas, ce qui donne
+@code{-8}.
+
+
+@cindex MultiMeasureRest, example of overriding
+@cindex staff-position property, example
+
+@lilypond[quote,verbatim,fragment,ragged-right, relative=1]
+<<
+  {c c c c}
+\\
+  \override MultiMeasureRest #'staff-position = #-8
+  {R1}
+>>
+@end lilypond
+
+C'est mieux que d'utiliser, par exemple, @code{extra-offset}, 
+car la ligne supplémentaire au-dessus du silence est insérée 
+automatiquement. 
+
+@subheading extra-offset property
+
+@cindex positioning objects
+@cindex positioning grobs
+@cindex objects, positioning
+@cindex grobs, positioning
+
+La propriété @code{extra-offset}
+La propriété @code{extra-offset} offre la possibilité de contrôler 
+entièrement le placement d'un objet, aussi bien horizontalement que 
+verticalement. 
+
+Dans l'exemple suivant, la seconde indication de doigté est déplacée 
+légèrement vers la gauche et de 1.8 intervalle de lignes vers le bas :
+
+@cindex Fingering, example of overriding
+@cindex extra-offset property, example
+
+@lilypond[quote,fragment,relative=1,verbatim]
+\stemUp
+f-5
+\once \override Fingering
+    #'extra-offset = #'(-0.3 . -1.8)
+f-5
+@end lilypond
+
+
+@subheading positions property
+
+@cindex controlling tuplets, slurs, phrasing slurs, and beams manually
+@cindex manually controlling tuplets, slurs, phrasing slurs, and beams
+@cindex tuplet beams, controlling manually
+@cindex slurs, controlling manually
+@cindex phrasing slurs, controlling manually
+@cindex beams, controlling manually
+
+La propriété @code{positions} permet de contrôler manuellement la 
+position et l'inclinaison des nolets, coulés, liaisons de phrasé et barres 
+de croches. Voici un exemple avec une horrible liaison de phrasé -- 
+horrible pour avoir tenté de contourner la liaison de l'acciaccature.
+
+@lilypond[quote,verbatim,fragment,ragged-right,relative=1]
+r4  \acciaccatura e8\( d8 c ~c d c d\)
+@end lilypond
+
+@noindent
+Nous pourrions tout simplement déplacer la liaison de phrasé au-dessus des
+notes, et ce serait la meilleure solution :
+
+@lilypond[quote,verbatim,fragment,ragged-right,relative=1]
+r4
+\phrasingSlurUp
+\acciaccatura e8\( d8 c ~c d c d\)
+@end lilypond
+
+@noindent
+Mais si, pour une quelconque raison, cette solution n'était pas 
+envisageable, l'autre solution consiste à déplacer légèrement vers le 
+bas l'extrémité gauche de la liaison de phrasé, grâce à la propriété 
+@code{positions}. Cela corrige en même temps la forme plutôt 
+disgracieuse de la liaison.
+
+@cindex PhrasingSlur, example of overriding
+@cindex positions property, example
+
+@lilypond[quote,verbatim,fragment,ragged-right,relative=1]
+r4
+\once \override PhrasingSlur #'positions = #'(-4 . -3)
+\acciaccatura
+e8\( d8 c ~c d c d\)
+@end lilypond
+
+Voici un autre exemple, tiré du début de la partie de main gauche 
+du Prélude de Chopin, Op. 28, No 2. Comme nous pouvons le 
+constater, les barres de croches chevauchent les notes les plus hautes :
+
+@lilypond[quote,verbatim,fragment,ragged-right]
+{
+\clef "bass"
+<< {b,8 ais, b, g,} \\ {e, g e, g} >>
+<< {b,8 ais, b, g,} \\ {e, g e, g} >>
+}
+@end lilypond
+
+@noindent
+On peut y remédier en déplaçant manuellement vers le haut les deux 
+extrémités des barres de croches, non plus à 2 intervalles au-dessus 
+de la ligne médiane mais, disons, à 3 :
+
+@cindex Beam, example of overriding
+@cindex positions property, example
+
+@lilypond[quote,verbatim,fragment,ragged-right]
+{
+  \clef "bass"
+  <<
+    \override Beam #'positions = #'(3 . 3)
+    {b,8 ais, b, g,}
+  \\
+    {e, g e, g}
+  >>
+  << {b,8 ais, b, g,} \\ {e, g e, g} >>
+}
+@end lilypond
+
+@noindent
+Vous remarquerez que la retouche continue à s'appliquer au 
+second bloc de croches de la première voix mais qu'il ne s'applique 
+à aucune barre de la deuxième voix.
+
+@subheading force-hshift property
+
+@c FIXME: formatting stuff  (ie not important right now IMO)
+@c @a nchor Chopin finally corrected TODOgp
+
+Maintenant, nous sommes prêts à appliquer les dernières corrections  à
+l'exemple de Chopin présenté à la fin de @ref{I'm hearing Voices}, que 
+nous avions laissé dans cet état :
+
+@lilypond[quote,verbatim,fragment,ragged-right]
+\new Staff \relative c'' {
+  \key aes \major
+  <<
+    { c2 aes4. bes8 } \\
+    { aes2 f4 fes   } \\
+    { \voiceFour
+      <ees c>2
+      des2
+    }
+  >> |
+  <c ees aes c>1 |
+}
+@end lilypond
+
+@noindent
+Les deux plus basses notes du premier accord (c'est-à-dire celles de la 
+troisième voix) ne devraient pas être décalées de la colonne des deux 
+plus hautes notes. Pour y remédier, nous réglons le @code{force-hshift} 
+-- qui est une propriété de @code{NoteColumn} -- de ces notes sur zéro. 
+Ensuite, la note la plus basse du second accord serait mieux à droite des 
+notes plus hautes. Pour cela, nous réglons le @code{force-hshift} de cette 
+note sur 0.5 -- c'est-à-dire la moitié de la largeur d'une tête de note vers la 
+droite de la colonne des notes plus hautes.
+
+Et voici le résultat final :
+
+@cindex NoteColumn, example of overriding
+@cindex force-hshift property, example
+
+@lilypond[quote,verbatim,fragment,ragged-right]
+\new Staff \relative c'' {
+  \key aes \major
+  <<
+    { c2 aes4. bes8 } \\
+    { aes2 f4 fes   } \\
+    { \voiceFour
+      \once \override NoteColumn #'force-hshift = #0 <ees c>2
+      \once \override NoteColumn #'force-hshift = #0.5 des2
+    }
+  >> |
+  <c ees aes c>1 |
+}
+@end lilypond
+
+
+@node Real music example
+@subsection Real music example
+
+Pour terminer ce chapitre consacré aux retouches, voici, étape par 
+étape, la mise en forme d'un exemple concret nécessitant un certain 
+nombre de retouches jusqu'à l'obtention du résultat attendu. Cet exemple 
+a été choisi en raison des problèmes inhabituels de notation qu'il soulevait 
+et pour vous apprendre à les résoudre grâce au Manuel de notation.  Il
+n'est pas représentatif d'une opération normale de gravure ; que ces 
+difficultés ne vous découragent donc pas ! Des difficultés comme celles-ci 
+ne sont, heureusement, pas courantes !
+
+Cet exemple est tiré de la Première Ballade de Chopin, Op. 23, mesures 
+6 à 9 ; cela correspond à la transition entre le Lento d'ouverture et le 
+Moderato. Voici, pour commencer, ce à quoi nous voulons que la 
+partition ressemble ; pour limiter les complications, nous n'avons pas 
+fait apparaître les indications de nuances, de doigté ni de pédale.
+
+
+@c The following should appear as music without code
+@c This example should not be indexed
+@lilypond[quote,ragged-right]
+rhMusic = \relative c'' {
+  r2
+  c4.\( g8 |
+  \once \override Tie #'staff-position = #3.5
+  bes1~ |
+  \bar "||"
+  \time 6/4
+  \mergeDifferentlyHeadedOn
+  \mergeDifferentlyDottedOn
+  bes2.^\markup {\bold "Moderato"} r8
+  <<
+    {c,8[ d fis bes a] | }
+  \\
+    % Reposition the c2 to the right of the merged note
+    {c,8~ \once \override NoteColumn #'force-hshift = #1.0
+    % Move the c2 out of the main note column so the merge will work
+    \shiftOnn c2}
+  \\
+    % Stem on the d2 must be down to permit merging
+    {s8 \stemDown \once \override Stem #'transparent = ##t d2}
+  \\
+    {s4 fis4.}
+  >>
+  \mergeDifferentlyHeadedOff
+  \mergeDifferentlyDottedOff
+  g2.\)
+}
+
+lhMusic = \relative c' {
+  r2 <c g ees>2( |
+  <d g, d>1)\arpeggio |
+  r2. d,,4 r4 r |
+  r4
+}
+
+\score {
+  \new PianoStaff <<
+    \new Staff = "RH"  <<
+      \key g \minor
+      \rhMusic
+    >>
+    \new Staff = "LH" <<
+      \key g \minor
+      \clef "bass"
+      \lhMusic
+    >>
+  >>
+}
+@end lilypond
+
+Nous constatons tout d'abord que, dans la troisième mesure, la main 
+droite compte quatre voix. Ce sont les cinq croches avec une barre, 
+le do avec liaison, le ré blanche qui se fond avec le ré croche, et le 
+fa dièse noire pointée qui se fond lui aussi avec la croche de même 
+hauteur. Tout le reste se réduit à une seule voix. Le plus simple est 
+donc de créer temporairement ces quatre voix au moment opportun. 
+Si vous avez oublié comment faire, reportez-vous à 
+@ref{I'm hearing Voices}. Commençons par saisir les notes comme 
+appartenant à deux variables, mettons en place l'ossature des 
+portées dans un bloc score et voyons ce que LilyPond propose par 
+défaut : 
+
+@lilypond[quote,verbatim,ragged-right]
+rhMusic = \relative c'' {
+  r2 c4. g8 |
+  bes1~ |
+  \time 6/4
+  bes2. r8
+  % Start polyphonic section of four voices
+  <<
+    {c,8 d fis bes a | }
+  \\
+    {c,8~ c2 | }
+  \\
+    {s8 d2 | }
+  \\
+    {s4 fis4. | }
+  >>
+  g2.
+}
+
+lhMusic = \relative c' {
+  r2 <c g ees>2 |
+  <d g, d>1 |
+  r2. d,,4 r4 r |
+  r4
+}
+
+\score {
+  \new PianoStaff <<
+    \new Staff = "RH"  <<
+      \key g \minor
+      \rhMusic
+    >>
+    \new Staff = "LH" <<
+      \key g \minor
+      \clef "bass"
+      \lhMusic
+    >>
+  >>
+}
+@end lilypond
+
+Toutes les notes sont correctes mais l'allure générale est loin d'être 
+satisfaisante. La liaison se heurte à l'indication de mesure lors du 
+changement de chiffrage, la barre des croches n'est pas bonne dans la 
+troisième mesure, les notes ne sont pas fusionnées et il manque plusieurs 
+éléments de notation. Commençons par le plus simple. Nous pouvons 
+corriger la barre des croches en la créant manuellement et nous pouvons 
+facilement ajouter les limites droite et gauche de la liaison de phrasé, 
+puisque tout cela a déjà été traité dans le tutoriel. Voici le résultat :
+
+@lilypond[quote,verbatim,ragged-right]
+rhMusic = \relative c'' {
+  r2 c4.\( g8 |
+  bes1~ |
+  \time 6/4
+  bes2. r8
+  % Start polyphonic section of four voices
+  <<
+    {c,8[ d fis bes a] | }
+  \\
+    {c,8~ c2 | }
+  \\
+    {s8 d2 | }
+  \\
+    {s4 fis4. | }
+  >>
+  g2.\)
+}
+
+lhMusic = \relative c' {
+  r2 <c g ees>2( |
+  <d g, d>1) |
+  r2. d,,4 r4 r |
+  r4
+}
+
+\score {
+  \new PianoStaff <<
+    \new Staff = "RH"  <<
+      \key g \minor
+      \rhMusic
+    >>
+    \new Staff = "LH" <<
+      \key g \minor
+      \clef "bass"
+      \lhMusic
+    >>
+  >>
+}
+@end lilypond
+
+La première mesure est maintenant correcte. La seconde contient un arpège 
+et doit se terminer par une double barre. Comment faire, puisque cela n'a pas 
+été traité dans le Manuel d'initiation ? C'est alors qu'il faut nous
+reporter au Manuel de notation.  Quand on cherche @q{arpège} et @q{barre
+de mesure} dans l'index, on voit aisément qu'il faut ajouter
+@code{\arpeggio} à un accord pour produire un arpège et qu'une double
+barre est le résultat de la commande @code{\bar "||"}.  Rien de plus
+facile ! Nous devons ensuite corriger la collision entre la liaison et
+l'indication de mesure. Le mieux est de déplacer la liaison vers le
+haut. La méthode pour déplacer les objets a déjà été présentée dans
+@ref{Moving objects}, et l'on sait que, pour des objets positionnés par
+rapport à la portée, il nous faut modifier leur propriété
+@code{staff-position}, exprimée en demi-intervalles de lignes par
+rapport à la ligne médiane de la portée.  Voici donc la retouche à
+insérer juste devant la première note liée ; elle est censée déplacer la
+liaison vers le haut de 3,5 demi-intervalles de lignes au-dessus de la
+ligne médiane : 
+
+@code{\once \override Tie #'staff-position = #3.5}
+
+Cela s'adjoint à la deuxième mesure, pour donner :
+
+@lilypond[quote,verbatim,ragged-right]
+rhMusic = \relative c'' {
+  r2 c4.\( g8 |
+  \once \override Tie #'staff-position = #3.5
+  bes1~ |
+  \bar "||"
+  \time 6/4
+  bes2. r8
+  % Start polyphonic section of four voices
+  <<
+    {c,8[ d fis bes a] | }
+  \\
+    {c,8~ c2 | }
+  \\
+    {s8 d2 | }
+  \\
+    {s4 fis4. | }
+  >>
+  g2.\)
+}
+
+lhMusic = \relative c' {
+  r2 <c g ees>2( |
+  <d g, d>1)\arpeggio |
+  r2. d,,4 r4 r |
+  r4
+}
+
+\score {
+  \new PianoStaff <<
+    \new Staff = "RH"  <<
+      \key g \minor
+      \rhMusic
+    >>
+    \new Staff = "LH" <<
+      \key g \minor
+      \clef "bass"
+      \lhMusic
+    >>
+  >>
+}
+@end lilypond
+
+Venons-en à la troisième mesure et au début de la section Moderato. Dans 
+le Tutoriel, il est indiqué comment insérer du texte en gras à l'aide de la 
+commande @code{\markup} ; pas de problème, du coup, pour ajouter 
+@q{Moderato} en gras. Mais comment faire pour fusionner les notes de 
+différentes voix ? C'est là que le Manuel de notation peut nous venir en 
+aide. Une recherche sur @q{fusionnement de notes} dans l'index nous renvoie, 
+dans @ruser{Collision resolution}, aux  commandes pour fusionner les notes, 
+différentes en fonction du type de note et selon que celles-ci sont
+pointées ou non.  Dans notre exemple, pour la durée de la polyphonie de
+la troisième mesure, nous avons besoin de fusionner deux types de notes
+; grâce aux informations trouvées dans le Manuel de notation, nous
+ajoutons  
+
+@example
+\mergeDifferentlyHeadedOn
+\mergeDifferentlyDottedOn
+@end example
+
+@noindent
+au début de cette section et
+
+@example
+\mergeDifferentlyHeadedOff
+\mergeDifferentlyDottedOff
+@end example
+
+@noindent
+à la fin, ce qui donne : 
+
+@lilypond[quote,verbatim,ragged-right]
+rhMusic = \relative c'' {
+  r2 c4.\( g8 |
+  \once \override Tie #'staff-position = #3.5
+  bes1~ |
+  \bar "||"
+  \time 6/4
+  bes2.^\markup {\bold "Moderato"} r8
+  \mergeDifferentlyHeadedOn
+  \mergeDifferentlyDottedOn
+  % Start polyphonic section of four voices
+  <<
+    {c,8[ d fis bes a] | }
+  \\
+    {c,8~ c2 | }
+  \\
+    {s8 d2 | }
+  \\
+    {s4 fis4. | }
+  >>
+  \mergeDifferentlyHeadedOff
+  \mergeDifferentlyDottedOff
+  g2.\)
+}
+
+lhMusic = \relative c' {
+  r2 <c g ees>2( |
+  <d g, d>1)\arpeggio |
+  r2. d,,4 r4 r |
+  r4
+}
+
+\score {
+  \new PianoStaff <<
+    \new Staff = "RH"  <<
+      \key g \minor
+      \rhMusic
+    >>
+    \new Staff = "LH" <<
+      \key g \minor
+      \clef "bass"
+      \lhMusic
+    >>
+  >>
+}
+@end lilypond
+
+Ces retouches ont permis de fusionner les deux fa dièse mais pas les 
+deux ré. Pourquoi ? La réponse se trouve dans la même section du 
+Manuel de notation : les notes à fusionner doivent avoir des queues dans 
+des directions opposées et deux notes ne peuvent pas être fusionnées s'il 
+y a une troisième note dans la même colonne. Ici, les deux ré ont leur 
+queue orientée vers le haut et il y a une troisième note, do. Nous 
+savons changer l'orientation de la queue avec @code{\stemDown} et 
+le Manuel de notation nous indique également comment déplacer le do 
+-- en produisant un décalage grâce à l'une des commandes @code{\shift}.
+Mais laquelle ? Le do appartient à la deuxième voix et n'est pas décalé ; 
+les deux ré appartiennent respectivement à la première et à la troisième 
+voix, et l'un n'est pas décalé tandis que l'autre l'est. Il nous faut donc 
+décaler largement le do avec la commande @code{\shiftOnn} pour 
+éviter une interférence avec les deux ré. Voici ce que donnent ces 
+modifications : 
+
+@cindex Tie, example of overriding
+@cindex staff-position property, example
+
+@lilypond[quote,verbatim,ragged-right]
+rhMusic = \relative c'' {
+  r2 c4.\( g8 |
+  \once \override Tie #'staff-position = #3.5
+  bes1~ |
+  \bar "||"
+  \time 6/4
+  bes2.^\markup {\bold "Moderato"} r8
+  \mergeDifferentlyHeadedOn
+  \mergeDifferentlyDottedOn
+  % Start polyphonic section of four voices
+  <<
+    {c,8[ d fis bes a] | }
+  \\
+    % Move the c2 out of the main note column so the merge will work
+    {c,8~ \shiftOnn c2 | }
+  \\
+    % Stem on the d2 must be down to permit merging
+    {s8 \stemDown d2 | }
+  \\
+    {s4 fis4. | }
+  >>
+  \mergeDifferentlyHeadedOff
+  \mergeDifferentlyDottedOff
+  g2.\)
+}
+
+lhMusic = \relative c' {
+  r2 <c g ees>2( |
+  <d g, d>1)\arpeggio |
+  r2. d,,4 r4 r |
+  r4
+}
+
+\score {
+  \new PianoStaff <<
+    \new Staff = "RH"  <<
+      \key g \minor
+      \rhMusic
+    >>
+    \new Staff = "LH" <<
+      \key g \minor
+      \clef "bass"
+      \lhMusic
+    >>
+  >>
+}
+@end lilypond
+
+Pas loin. Il ne reste plus que deux problèmes : les ré une fois fusionnés 
+ne devraient plus avoir de queue vers le bas, et le do serait mieux à la 
+droite des ré. Nous savons remédier à ces deux problèmes grâce aux 
+retouches précédentes : nous allons rendre la queue transparente et 
+déplacer le do avec la propriété @code{force-hshift}. Et voici le 
+résultat final : 
+
+@cindex NoteColumn, example of overriding
+@cindex force-hshift property, example
+@cindex Stem, example of overriding
+@cindex transparent property, example
+
+@lilypond[quote,verbatim,ragged-right]
+rhMusic = \relative c'' {
+  r2
+  c4.\( g8 |
+  \once \override Tie #'staff-position = #3.5
+  bes1~ |
+  \bar "||"
+  \time 6/4
+  bes2.^\markup {\bold "Moderato"} r8
+  \mergeDifferentlyHeadedOn
+  \mergeDifferentlyDottedOn
+  <<
+    {c,8[ d fis bes a] | }
+  \\
+    % Reposition the c2 to the right of the merged note
+    {c,8~ \once \override NoteColumn #'force-hshift = #1.0
+    % Move the c2 out of the main note column so the merge will work
+    \shiftOnn c2}
+  \\
+    % Stem on the d2 must be down to permit merging
+    {s8 \stemDown \once \override Stem #'transparent = ##t d2}
+  \\
+    {s4 fis4.}
+  >>
+  \mergeDifferentlyHeadedOff
+  \mergeDifferentlyDottedOff
+  g2.\)
+}
+
+lhMusic = \relative c' {
+  r2 <c g ees>2( |
+  <d g, d>1)\arpeggio |
+  r2. d,,4 r4 r |
+  r4
+}
+
+\score {
+  \new PianoStaff <<
+    \new Staff = "RH"  <<
+      \key g \minor
+      \rhMusic
+    >>
+    \new Staff = "LH" <<
+      \key g \minor
+      \clef "bass"
+      \lhMusic
+    >>
+  >>
+}
+
+@end lilypond
+
+
+@node Further tweaking
+@section Further tweaking
+
+@menu
+* Other uses for tweaks::       
+* Using variables for tweaks::  
+* Other sources of information::  
+* Avoiding tweaks with slower processing::  
+* Advanced tweaks with Scheme::  
+@end menu
+
+@node Other uses for tweaks
+@subsection Other uses for tweaks
+
+@cindex transparent property, use of
+@cindex objects, making invisible
+@cindex removing objects
+@cindex objects, removing
+@cindex hiding objects
+@cindex objects, hiding
+@cindex invisible objects
+@cindex objects, invisible
+@cindex tying notes across voices
+
+@subheading Tying notes across voices
+
+Voici un exemple qui montre comment créer une liaison de 
+prolongation entre des notes appartenant à des voix différentes. En 
+temps normal, seules deux notes appartenant à une même voix 
+peuvent être ainsi liées. La solution consiste à utiliser deux voix, 
+dont l'une avec les notes liées
+
+@lilypond[quote,fragment,relative=2]
+<< { b8~ b8\noBeam }
+\\ { b[ g8] }
+>>
+@end lilypond
+
+@noindent
+et à rendre transparente la première queue de note de cette voix ; 
+on a alors l'impression que la liaison couvre les deux voix.
+
+@cindex Stem, example of overriding
+@cindex transparent propery, example
+
+@lilypond[quote,fragment,relative=2,verbatim]
+<<
+  {
+    \once \override Stem #'transparent = ##t
+    b8~ b8\noBeam
+  }
+\\
+  { b[ g8] }
+>>
+@end lilypond
+
+Pour être sûr que la queue que nous avons rendue transparente 
+n'empiète pas trop sur le trait de liaison, nous pouvons l'allonger en 
+réglant la longueur (@code{length}) sur @code{8},
+
+@lilypond[quote,fragment,relative=2,verbatim]
+<<
+  {
+    \once \override Stem #'transparent = ##t
+    \once \override Stem #'length = #8
+    b8~ b8\noBeam
+  }
+\\
+  { b[ g8] }
+>>
+@end lilypond
+
+@subheading Simulating a fermata in MIDI
+
+@cindex stencil property, use of
+@cindex fermata, implementing in MIDI
+
+En ce qui concerne les objets extérieurs à la portée, quand on veut les 
+faire disparaître de la partition imprimée , il est généralement préférable 
+de modifier leur propriété @code{stencil} plutôt que leur propriété 
+@code{transparent}. Le fait d'attribuer à la propriété @code{stencil} 
+d'un objet la valeur @code{#f} supprimera entièrement celui-ci de la 
+partition. Il ne risquera donc pas de gêner le placement d'autres objets.
+
+Par exemple, si nous voulons changer le réglage de métronome pour 
+simuler un point d'orgue dans le fichier MIDI, nous ne voulons surtout 
+pas que cette indication métronomique apparaisse sur la partition ni 
+qu'elle influence l'espacement entre les deux systèmes ou la position 
+des annotations voisines sur la portée. Le fait d'attribuer à la propriété 
+@code{stencil} la valeur @code{#f} est donc la bonne solution. Nous 
+montrons ci-dessous le résultat des deux méthodes : 
+
+@cindex MetronomeMark, example of overriding
+@cindex transparent property, example
+
+@lilypond[quote,verbatim,ragged-right]
+\score {
+  \relative c'' {
+    % Visible tempo marking
+    \tempo 4=120
+    a4 a a
+    \once \override Score.MetronomeMark #'transparent = ##t
+    % Invisible tempo marking to lengthen fermata in MIDI
+    \tempo 4=80
+    a\fermata
+    % New tempo for next section
+    \tempo 4=100
+    a a a a
+  }
+  \layout { }
+  \midi { }
+}
+@end lilypond
+
+@cindex MetronomeMark, example of overriding
+@cindex stencil property, example
+
+@lilypond[quote,verbatim,ragged-right]
+\score {
+  \relative c'' {
+    % Visible tempo marking
+    \tempo 4=120
+    a4 a a
+    \once \override Score.MetronomeMark #'stencil = ##f
+    % Invisible tempo marking to lengthen fermata in MIDI
+    \tempo 4=80
+    a\fermata
+    % New tempo for next section
+    \tempo 4=100
+    a a a a
+  }
+  \layout { }
+  \midi { }
+}
+@end lilypond
+
+@noindent
+Les deux méthodes permettent l'enlever l'indication métronomique qui allonge 
+le point d'orgue de la partition, et toutes deux modifient le rythme MIDI comme 
+souhaité, mais, dans la première, l'indication métronomique transparente 
+repousse vers le haut l'indication de tempo, contrairement à la seconde (avec 
+le stencil désactivé) qui la laisse à sa place.
+
+
+@node Using variables for tweaks
+@subsection Using variables for tweaks
+
+@cindex variables, using for tweaks
+@cindex using variables for tweaks
+@cindex tweaks, using variables for
+
+Les commandes de retouche sont souvent longues et pénibles à 
+taper, et ne tolèrent pas la moindre erreur. Lorsqu'on a besoin de 
+faire plusieurs fois les mêmes retouches, il est préférable de 
+définir des variables qui les contiennent. Imaginons que nous 
+voulions accentuer certains mots dans des paroles en les mettant 
+en italiques. Au lieu des commandes @code{\italic} et 
+@code{\bold}, qui ne fonctionnent dans les paroles que si elles 
+sont enchâssées dans un @code{\markup}, ce qui les rend 
+pénibles à saisir, pouvons-nous employer les commandes 
+@code{\override} et @code{\revert}?
+
+@example
+@code{\override Lyrics . LyricText #'font-shape = #'italic}
+@code{\override Lyrics . LyricText #'font-series = #'bold}
+
+@code{\revert Lyrics . LyricText #'font-shape}
+@code{\revert Lyrics . LyricText #'font-series}
+@end example
+
+Là encore, ce serait extrêmement pénible à saisir, surtout s'il y avait 
+beaucoup de mots à retoucher de cette façon. Plutôt que cette 
+solution, nous déclarons ces commandes comme étant deux variables 
+et les utilisons comme suit -- quoique on choisirait sans doute pour les 
+variables des noms plus courts pour simplifier la frappe : 
+
+@cindex LyricText, example of overriding
+@cindex font-shape property, example
+@cindex font-series property, example
+
+@lilypond[quote,verbatim]
+emphasize = {
+  \override Lyrics . LyricText #'font-shape = #'italic
+  \override Lyrics . LyricText #'font-series = #'bold
+}
+normal = {
+  \revert Lyrics . LyricText #'font-shape
+  \revert Lyrics . LyricText #'font-series
+}
+
+global = { \time 4/4 \partial 4 \key c \major}
+SopranoMusic   = \relative c' { c4 | e4. e8 g4  g  | a a g }
+AltoMusic  = \relative c' { c4 | c4. c8 e4  e  | f f e }
+TenorMusic = \relative c  { e4 | g4. g8 c4. b8 | a8 b c d e4 }
+BassMusic  = \relative c  { c4 | c4. c8 c4  c  | f8 g a b c4 }
+VerseOne   = \lyrics { E -- | ter -- nal \emphasize Fa -- ther, \normal | strong to save, }
+VerseTwo   = \lyricmode { O | \emphasize Christ, \normal whose voice the | wa -- ters heard, }
+VerseThree = \lyricmode { O | \emphasize Ho -- ly Spi -- rit, \normal | who didst brood }
+VerseFour  = \lyricmode { O | \emphasize Tri -- ni -- ty \normal of | love and pow'r }
+
+\score {
+  \new ChoirStaff <<
+    \new Staff <<
+      \clef "treble"
+      \new Voice = "Soprano"  { \voiceOne \global \SopranoMusic }
+      \new Voice = "Alto" { \voiceTwo \AltoMusic }
+      \new Lyrics \lyricsto "Soprano" { \VerseOne   }
+      \new Lyrics \lyricsto "Soprano" { \VerseTwo   }
+      \new Lyrics \lyricsto "Soprano" { \VerseThree }
+      \new Lyrics \lyricsto "Soprano" { \VerseFour  }
+    >>
+    \new Staff <<
+      \clef "bass"
+      \new Voice = "Tenor" { \voiceOne \TenorMusic }
+      \new Voice = "Bass"  { \voiceTwo \BassMusic  }
+    >>
+  >>
+}
+@end lilypond
+
+
+@node Other sources of information
+@subsection Other sources of information
+
+La Référence du programme contient beaucoup d'informations sur 
+LilyPond. Cependant vous pouvez en découvrir 
+encore plus en consultant les fichiers internes de LilyPond. Pour cela, 
+il vous faut d'abord connaître le répertoire ad hoc sur votre système. 
+L'emplacement du répertoire dépend (a) du fait que, pour vous procurer 
+LilyPond, vous avez téléchargé un paquet précompilé sur lilypond.org, ou 
+vous l'avez installé grâce à votre gestionnaire de paquetages (c'est-à-dire 
+distribué avec Linux ou installé avec fink ou cygwin), ou encore vous l'avez 
+compilé directement à partir des sources ; et (b) du système d'exploitation 
+sous lequel il tourne. 
+
+@strong{Téléchargé depuis lilypond.org}
+
+@itemize @bullet
+@item Linux
+
+@file{@var{INSTALLDIR}/lilypond/usr/share/lilypond/current/}
+
+@item MacOS X
+
+@file{@var{INSTALLDIR}/LilyPond.app/Contents/Resources/share/lilypond/current/}
+Pour accéder à ce dossier, deux possibilités : soit, dans un Terminal,
+taper @code{cd} suivi du chemin complet ci-dessus ; soit
+Control-cliquer (ou clic droit) sur l'application LilyPond
+et sélectionner @q{Afficher le contenu du paquet}.
+
+@item Windows
+
+Dans l'Explorateur Windows, voir
+@file{@var{INSTALLDIR}/LilyPond/usr/share/lilypond/current/}
+
+@end itemize
+
+@strong{Installé par un gestionnaire de paquetages ou compilé d'après
+les sources} 
+
+@file{@var{PREFIX}/share/lilypond/@var{X.Y.Z}/}, où
+@var{PREFIX} est déterminé par votre gestionnaire de paquetages ou par le script 
+@code{configure}, et @var{X.Y.Z} est le numéro de version de LilyPond.
+
+@smallspace
+
+Dans ce répertoire, deux sous-répertoires sont particulièrement intéressants :
+
+@itemize
+@item @file{ly/} - contient les fichiers en format LilyPond
+@item @file{scm/} - contient les fichiers en format Scheme
+@end itemize
+
+Commençons par examiner quelques fichiers contenus dans @file{ly/}.
+Nous ouvrons @file{ly/property-init.ly} dans un éditeur de texte -- celui 
+que vous avez l'habitude d'utiliser pour les fichiers @code{.ly} fera très 
+bien l'affaire. Ce fichier contient les définitions de toutes les commandes 
+standard prédéfinies de LilyPond, comme @code{\stemUp} et 
+@code{\slurDotted}. Vous pouvez constater que ce n'est rien d'autre 
+que des définitions de variables composées d'un ou plusieurs groupes 
+de commandes @code{\override}. Par exemple, @code{\tieDotted} 
+est défini comme :
+
+@example
+tieDotted = @{
+  \override Tie #'dash-period = #0.75
+  \override Tie #'dash-fraction = #0.1
+@}
+@end example
+
+Si vous n'aimez pas les valeurs par défaut, les commandes prédéfinies
+peuvent être facilement redéfinies, comme n'importe quelle autre variable,
+en tête de votre fichier d'entrée.
+
+Voici les fichiers les plus utiles dans le répertoire @file{ly/}:
+
+@multitable @columnfractions .4 .6
+@headitem Nom de fichier
+  @tab Contenu
+@item @file{ly/engraver-init.ly}
+  @tab Définitions des Contextes de graveurs
+@item @file{ly/paper-defaults-init.ly}
+  @tab Réglages papier par défaut
+@item @file{ly/performer-init.ly}
+  @tab Définitions des Contextes d'interprétation
+@item @file{ly/property-init.ly}
+  @tab Définitions de toutes les commandes prédéfinies courantes
+@item @file{ly/spanner-init.ly}
+  @tab Définitions des commandes prédéfinies pour les bandeaux 
+@end multitable
+
+Les autres réglages (comme les définitions de commandes markup) sont 
+conservés comme fichiers @code{.scm} (Scheme). Le langage de 
+programmation Scheme offre une interface programmable dans le 
+processus interne de LilyPond. De plus amples explications sur ces 
+fichiers dépasseraient le cadre de ce manuel, dans la mesure où elles 
+requièrent la connaissance du langage Scheme. Les utilisateurs qui 
+souhaiteraient comprendre le fonctionnement de ces fichiers de 
+configuration doivent être avertis que des connaissances techniques 
+substantielles et beaucoup de temps sont nécessaires (voir 
+@ref{Scheme tutorial}).
+
+Si c'est votre cas, les fichiers Scheme les plus utiles à connaître sont :
+
+@multitable @columnfractions .4 .6
+@headitem Nom de fichier
+  @tab Contenu
+@item @file{scm/auto-beam.scm}
+  @tab Régles par défaut des ligatures subalternes
+@item @file{scm/define-grobs.scm}
+  @tab Réglages par défaut des propriétés de grobs
+@item @file{scm/define-markup-commands.scm}
+  @tab Spécification de toutes les commandes de @emph{markup}
+@item @file{scm/midi.scm}
+  @tab Réglages par défaut pour les sorties MIDI
+@item @file{scm/output-lib.scm}
+  @tab Réglages affectant l'apparence des frets, couleurs, altérations,
+       barres de mesure, etc
+@item @file{scm/parser-clef.scm}
+       @tab Définition des clefs prises en charge
+@item @file{scm/script.scm}
+       @tab Réglages par défaut des articulations
+@end multitable
+
+
+
+@node Avoiding tweaks with slower processing
+@subsection Avoiding tweaks with slower processing
+
+LilyPond peut effectuer des vérifications supplémentaires lors du 
+traitement des fichiers ; cependant, le rendu nécessitera alors plus de
+temps.  En contrepartie, il y aura moins d'ajustements manuels à réaliser. 
+Si une indication textuelle ou des paroles  débordent dans la marge, ces 
+vérifications auront pour effet de serrer la ligne suffisamment pour faire 
+tenir le texte entre les marges. 
+
+Pour pouvoir fonctionner en toutes circonstances, ces vérifications doivent 
+être activées ; il faut pour cela placer les retouches dans un bloc Score 
+@code{\with}, plutôt qu'à l'intérieur du fragment musical, comme ceci :
+
+@example
+\new Score \with @{
+  % Pour s'assurer que les indications textuelles et paroles 
+  % seront à l'intérieur des marges de la page.
+  \override PaperColumn #'keep-inside-line = ##t
+  \override NonMusicalPaperColumn #'keep-inside-line = ##t
+@} @{
+   ..
+@}
+@end example
+
+
+@node Advanced tweaks with Scheme
+@subsection Advanced tweaks with Scheme
+
+Nous avons vu à quel point le résultat obtenu avec LilyPond peut 
+être largement personnalisé à l'aide de commandes comme 
+@code{\override} et @code{\tweak}.  Et pourtant l'utilisation de 
+Scheme ouvre des possibilités encore plus grandes.
+Le code écrit dans le langage de programmation Scheme peut être 
+intégré directement dans le processus interne de LilyPond. Bien sûr, 
+il faut pour cela connaître un minimum de programmation en langage 
+Scheme. Pour des explications complètes là-dessus, consultez le 
+@ref{Scheme tutorial}.
+
+En guise d'illustration - et ce n'est qu'une possibilité parmi tant 
+d'autres -- nous allons attribuer à une propriété non pas une valeur 
+préétablie mais une procédure Scheme qui sera lancée à chaque 
+utilisation de la propriété par LilyPond. De cette façon, nous obtenons 
+un réglage dynamique de la propriété par le simple fait d'invoquer la 
+procédure. Dans cet exemple, nous colorons les têtes de notes en fonction 
+de leur position sur la portée. 
+
+
+@cindex x11-color function, example of using
+@cindex NoteHead, example of overriding
+@cindex color property, setting to Scheme procedure
+
+@lilypond[quote,verbatim,ragged-right]
+#(define (color-notehead grob)
+  "Color the notehead according to its position on the staff."
+  (let ((mod-position (modulo (ly:grob-property grob 'staff-position) 7)))
+    (case mod-position
+      ;;   Return rainbow colors
+      ((1) (x11-color 'red    ))  ; for C
+      ((2) (x11-color 'orange ))  ; for D
+      ((3) (x11-color 'yellow ))  ; for E
+      ((4) (x11-color 'green  ))  ; for F
+      ((5) (x11-color 'blue   ))  ; for G
+      ((6) (x11-color 'purple ))  ; for A
+      ((0) (x11-color 'violet ))  ; for B
+    )
+  )
+)
+
+\relative c' {
+  % Arrange to obtain color from color-notehead procedure
+  \override NoteHead #'color = #color-notehead
+  c2 c' |
+  b4 g8 a b4 c |
+  c,2 a' |
+  g1 |
+}
+\addlyrics {
+  Some -- where o -- ver the Rain -- bow, way up high,
+}
+@end lilypond
+
+Vous trouverez dans @ref{Tweaking with Scheme} d'autres exemples d'utilisation de ces interfaces programmables.
+