]> git.donarmstrong.com Git - lilypond.git/blobdiff - Documentation/fr/learning/tweaks.itely
Merge remote branch 'origin/master' into release/unstable
[lilypond.git] / Documentation / fr / learning / tweaks.itely
index 31f941d54701c91a7e71d508f67d184c5a86a78b..8682bff42660435bd7ff575294676f783c66ae36 100644 (file)
@@ -1,14 +1,14 @@
 @c -*- coding: utf-8; mode: texinfo; documentlanguage: fr -*-
 
 @ignore
-    Translation of GIT committish: f2f69f47b5f1d21488d06ea1a608811f43f0c5ff
+    Translation of GIT committish: c8296cf3183f30e17e4d5f0501cf1462b71ec546
 
     When revising a translation, copy the HEAD committish of the
     version that you are working on.  For details, see the Contributors'
     Guide, node Updating translation committishes..
 @end ignore
 
-@c \version "2.17.11"
+@c \version "2.19.16"
 
 @c Translators: Valentin Villenave, Nicolas Klutchnikoff, Damien Heurtebise
 @c Translation checkers: Jean-Charles Malahieude, John Mandereau
@@ -27,6 +27,7 @@ théoriquement de modifier chaque élément de votre partition.
 * Le manuel de référence des propriétés internes::
 * Apparence des objets::
 * Positionnement des objets::
+* Espacement vertical::
 * Collisions d'objets::
 * Autres retouches::
 @end menu
@@ -48,7 +49,7 @@ théoriquement de modifier chaque élément de votre partition.
 @subsection Introduction aux retouches
 @translationof Introduction to tweaks
 
-LilyPond regroupe sous le terme de @qq{retouches} (@emph{tweaks} en
+LilyPond regroupe sous le terme de « 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
@@ -89,7 +90,7 @@ 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 @qq{Objet} est un terme générique qui fait référence à
+Le terme « 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
@@ -106,12 +107,12 @@ les liaisons, les nuances, etc.  Chaque objet dispose de son propre
 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 :
+doigtés, les clefs, etc. sont appelés « Objets de rendu » ; ils sont
+aussi connus sous le nom « d'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.
+leur taille, leur couleuretc.
 
 Certains objets de rendu, comme les liaisons de phrasé, les soufflets
 de crescendo, les marques d'octaviation et beaucoup d'autres
@@ -121,6 +122,14 @@ unique endroit -- ils ont un point de départ, un point d'arrivée, et
 avec une forme étendue sont appelés des bandeaux (@emph{Spanners} en
 anglais).
 
+De plus existent certains @emph{grobs} que l'on peut qualifier
+« d'astraits ».  Ils n'ont pas pour fonction intrinsèque d'imprimer
+quelque chose, mais plutôt de collecter, positionner et gérer d'autres
+objets.  Citons, parmi les plus courants, @code{DynamicLineSpanner},
+@code{BreakAlignment}, @code{NoteColumn}, @code{VerticalAxisGroup},
+@code{NonMusicalPaperColumn}.  Nous verrons plus avant comment les
+utiliser.
+
 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
@@ -147,14 +156,14 @@ que nous serons amenés à utiliser dans ce chapitre.
 @cindex objets, conventions de nommage
 @cindex propriétés, conventions de nommage
 
-Nous avons eu un aperçu, dans @ref{Contextes et graveurs}, 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 leurs conventions de nommage et quelques exemples
-de cas concrets.  La lettre @var{A} représente n'importe quel
-caractère alphabétique majuscule, et les lettres @var{aaa}
-un nombre indéterminé de caractères alphabétiques minuscules.
-Les autres caractères sont à prendre tels qu'ils se présentent.
+Nous avons eu un aperçu, dans @ref{Contextes et graveurs}, 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 leurs conventions de
+nommage et quelques exemples de cas concrets.  La lettre @var{A}
+représente n'importe quel caractère alphabétique majuscule, et les
+lettres @var{aaa} un nombre indéterminé de caractères alphabétiques
+minuscules. Les autres caractères sont à prendre tels qu'ils se
+présentent.
 
 @multitable @columnfractions .33 .33 .33
 @headitem Type d'objet/propriété
@@ -180,10 +189,10 @@ Les autres caractères sont à prendre tels qu'ils se présentent.
   @tab direction, beam-thickness
 @end multitable
 
-Comme nous le verrons bientôt, les propriétés des différents
-types d'objet sont modifiées par des commandes différentes, si bien
-qu'il est bon de savoir reconnaître le type d'un objet ou d'une
-propriété en fonction de son nom.
+Comme nous le verrons bientôt, les propriétés des différents types
+d'objet sont modifiées par des commandes différentes, si bien qu'il est
+bon de savoir reconnaître le type d'un objet ou d'une propriété en
+fonction de son nom.
 
 
 @node Méthodes de retouche
@@ -194,17 +203,18 @@ propriété en fonction de son nom.
 @cindex méthodes de retouche
 
 @menu
-* La commande \override::
-* La commande \revert::
-* Le préfixe \once::
-* La commande \overrideProperty::
-* La commande \tweak::
+* La commande override::
+* La commande revert::
+* Le préfixe once::
+* La commande overrideProperty::
+* La commande tweak::
+* Le préfixe single::
 @end menu
 
 
-@node La commande \override
-@unnumberedsubsubsec La commande @code{\override}
-@translationof The \override command
+@node La commande override
+@unnumberedsubsubsec La commande @code{@bs{}override}
+@translationof The override command
 
 @cindex override, commande
 @cindex override, syntaxe
@@ -238,12 +248,12 @@ 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é.
+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 -- voir @ref{Types de propriétés} -- mais, pour illustrer la
@@ -251,22 +261,20 @@ 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.
 
-Lilypond reconnaît comme expression primaire les éléments musicaux
-tels que les notes, durées et annotations (les @emph{markups}).
-D'autres expressions de base comme les nombres, chaînes de
-caractères et listes sont gérées en « mode Scheme », mode appelé
-en faisant précéder une valeur par un @samp{#}.  Bien que
-certaines valeurs puissent disposer d'une représentation tout à
-fait valide dans le mode musical de LilyPond, les exemples de ce
-manuel mentionnent un@samp{#} pour plus de clarté.  Pour de plus
-amples informations quant au mode Scheme, consultez
-@rextend{Syntaxe Scheme dans LilyPond}.
-
-La commande @code{\override} est la plus fréquemment utilisée pour
-faire des retouches, et pratiquement tout le reste de ce chapitre
-aura pour but de montrer, à travers des exemples, comment
-l'utiliser.  L'exemple ci-dessous change la couleur des têtes de
-notes :
+Lilypond reconnaît comme expression primaire les éléments musicaux tels
+que les notes, durées et annotations (les @emph{markups}).  D'autres
+expressions de base comme les nombres, chaînes de caractères et listes
+sont gérées en « mode Scheme », mode appelé en faisant précéder une
+valeur par un @samp{#}.  Bien que certaines valeurs puissent disposer
+d'une représentation tout à fait valide dans le mode musical de
+LilyPond, les exemples de ce manuel mentionnent un@samp{#} pour plus de
+clarté.  Pour de plus amples informations quant au mode Scheme,
+consultez @rextend{Syntaxe Scheme dans LilyPond}.
+
+La commande @code{\override} est la plus fréquemment utilisée pour faire
+des retouches, et pratiquement tout le reste de ce chapitre aura pour
+but de montrer, à travers des exemples, comment l'utiliser.  L'exemple
+ci-dessous change la couleur des têtes de notes :
 
 @cindex couleur,exemple d'utilisation de la propriété
 @cindex NoteHead, exemple de dérogation
@@ -280,9 +288,9 @@ g4 a b c |
 @end lilypond
 
 
-@node La commande \revert
-@unnumberedsubsubsec La commande @code{\revert}
-@translationof The \revert command
+@node La commande revert
+@unnumberedsubsubsec La commande @code{@bs{}revert}
+@translationof The revert command
 
 @cindex revert, commande
 
@@ -291,11 +299,11 @@ g4 a b c |
 
 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.
+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.
 
 @example
 \revert @var{Contexte}.@var{ObjetDeRendu}.@var{propriété-de-rendu}
@@ -303,8 +311,8 @@ la valeur par défaut.
 
 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 :
+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 d'utilisation de la propriété
 @cindex NoteHead, exemple de dérogation
@@ -320,9 +328,9 @@ b4 c |
 @end lilypond
 
 
-@node Le préfixe \once
-@unnumberedsubsubsec Le préfixe @code{\once}
-@translationof The \once prefix
+@node Le préfixe once
+@unnumberedsubsubsec Le préfixe @code{@bs{}once}
+@translationof The once prefix
 
 @funindex \once
 @funindex once
@@ -362,15 +370,15 @@ g4 a
 b c |
 @end lilypond
 
-Les commandes prédéfinies de la forme @code{\...Neutral},
-@code{\...Off} et @code{\un...} font appel, en interne, à une
-instruction @code{\revert} plutôt que @code{\override} ; les
+Les commandes prédéfinies de la forme @code{\@dots{}Neutral},
+@code{\@dots{}Off} et @code{\un@dots{}} font appel, en interne, à
+une instruction @code{\revert} plutôt que @code{\override} ; les
 préfixer d'un @code{\once} est donc sans effet.
 
 
-@node La commande \overrideProperty
-@unnumberedsubsubsec La commande @code{\overrideProperty}
-@translationof The \overrideProperty command
+@node La commande overrideProperty
+@unnumberedsubsubsec La commande @code{@bs{}overrideProperty}
+@translationof The overrideProperty command
 
 @cindex overrideProperty, commande
 
@@ -385,9 +393,9 @@ ici par souci d'exhaustivité ; pour le détail, voir
 @c Maybe explain in a later iteration  -td
 
 
-@node La commande \tweak
-@unnumberedsubsubsec La commande @code{\tweak}
-@translationof The \tweak command
+@node La commande tweak
+@unnumberedsubsubsec La commande @code{@bs{}tweak}
+@translationof The tweak command
 
 @cindex tweak, commande
 
@@ -486,26 +494,26 @@ jusqu'à l'événement originel :
 
 Cette forme développée de la commande @code{\tweak} correspond à :
 @example
-\tweak @var{objet-de-rendu}.@var{propriété-de-rendu} @var{valeur}
+\tweak @var{objet-de-rendu}.@var{propriété-de-rendu} #@var{valeur}
 @end example
 
-@cindex nolets imbriqués
+@cindex n-olets imbriqués
 @cindex triolets imbriqués
-@cindex crochet de nolet
-@cindex nolet, crochet
+@cindex crochet de n-olet
+@cindex n-olet, crochet
 @cindex triolet, crochet
 
 @funindex TupletBracket
 
-Quand plusieurs nolets sont imbriqués et commencent au même instant
+Quand plusieurs n-olets 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
+long crochet de n-olet 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
+le coefficient de n-olet doit être imprimé en rouge sur le premier
 crochet de triolet court.
 
 @cindex @code{\tweak}, exemple
@@ -522,7 +530,7 @@ crochet de triolet court.
 }
 @end lilypond
 
-Si les nolets imbriqués ne commencent pas au même moment,
+Si les n-olets 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} :
 
@@ -548,6 +556,65 @@ Manuel de notation :
 @ruser{La commande d'affinage (@emph{tweak})}.
 
 
+@node Le préfixe single
+@unnumberedsubsubsec Le préfixe @code{@bs{}single}
+@translationof The single prefix
+
+@funindex \single
+@funindex single
+
+@cindex tweak généré par override
+
+Supposons que nous voulions mettre en exergue certaines têtes de note --
+plus grosses et en rouge -- et, pour nous simplifier la vie, que nous
+avons réalisé un fonction à ce effet :
+
+@lilypond[quote,verbatim]
+emphNoteHead = {
+  \override NoteHead.color = #red
+  \override NoteHead.font-size = 2
+}
+\relative c'' {
+  c4 a \once \emphNoteHead f d |
+}
+@end lilypond
+
+Le préfixe @code{\once} fonctionne à merveille dans le cas d'une note
+isolée ou de l'intégralité d'un accord, mais ne permet pas de souligner
+individuellement l'une des notes d'un accord.  Nous avons vu comment un
+@code{\tweak} permet d'y arriver -- voir @ref{La commande tweak}.  Un
+@code{\tweak} ne peut toutefois pas s'utiliser dans une fonction ; un
+@code{\single} permet d'appliquer la fonction une seule fois :
+
+@lilypond[quote,verbatim]
+emphNoteHead = {
+  \override NoteHead.color = #red
+  \override NoteHead.font-size = 2
+}
+\relative c'' {
+   <c a \single \emphNoteHead f d>4
+}
+@end lilypond
+
+En résumé, l'instruction @code{\single} convertit les instructions
+@code{\override} en @code{\tweak} de telle sorte que lorsque plusieurs
+objets se trouvent en un même point du temps musical, comme la tête des
+notes formant un accord, @code{\single} n'en affectera qu'une seule,
+celle générée par l'expression musicale qui vient juste après,
+contrairement à un @code{\once} qui en affectera tous les objets.
+
+Cette utilisation de @code{\single} permet d'appliquer individuellement
+n'importe quel raccourci de fonction contenant des @code{\override} aux
+notes d'un accord.  Néanmoins, l'instruction @code{\single} ne permet
+pas de convertir des @code{\revert}, @code{\set} ou @code{\unset} en
+@code{\tweak}.
+
+@seealso
+Manuel d'initiation :
+@ref{La commande tweak},
+@ref{Utilisation de variables dans les retouches}.
+
+
 @node Le manuel de référence des propriétés internes
 @section Le manuel de référence des propriétés internes
 @translationof The Internals Reference manual
@@ -1171,6 +1238,7 @@ LilyPond dispose d'un raccourci -- @code{\omit} (pour « oublier »)
 -- à cet effet :
 
 @funindex \omit
+@funindex omit
 
 @lilypond[quote,fragment,ragged-right,verbatim,relative=2]
 {
@@ -1976,7 +2044,7 @@ signification est précisée.
 @item @code{\tupletDown}
   @tab @code{\tupletUp}
   @tab @code{\tupletNeutral}
-  @tab Les nolets sont au-dessous/au-dessus des notes
+  @tab Les n-olets sont au-dessous/au-dessus des notes
 @end multitable
 
 Les variantes @code{\xxxNeutral} et @code{\xxxNormal} de ces
@@ -2145,7 +2213,7 @@ qui se révèlerait ne pas être optimal.
 
 @menu
 * La propriété outside-staff-priority::
-* La commande \textLengthOn::
+* La commande textLengthOn::
 * Positionnement des nuances::
 * Dimensionnement des objets graphiques::
 @end menu
@@ -2374,9 +2442,9 @@ notes pour laisser plus de place au texte.  C'est possible grâce à la
 commande @code{textLengthOn}.
 
 
-@node La commande \textLengthOn
-@unnumberedsubsubsec La commande @code{\textLengthOn}
-@translationof The \textLengthOn command
+@node La commande textLengthOn
+@unnumberedsubsubsec La commande @code{@bs{}textLengthOn}
+@translationof The textLengthOn command
 
 @cindex notes, répartition selon le texte
 
@@ -2402,7 +2470,10 @@ c2^"Text4" |
 La commande qui permet de revenir au comportement par défaut est
 @code{\textLengthOff}.  Alternativement, lorsque l'instruction
 @code{\textLengthOn} se limite à un seul instant musical, vous
-pouvez la préfixer d'un @code{\once}.
+pouvez la préfixer d'un @code{\once}.@*
+LilyPond dispose de commandes équivalentes et dévolues au
+traitement des repères et indications de tempo :
+@code{\markLengthOn} et @code{\markLengthOff}.
 
 @cindex étiquette de texte et collision
 
@@ -2468,7 +2539,7 @@ 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
+a4\f b\mf a\mp b\p
 @end lilypond
 
 @noindent
@@ -2509,12 +2580,14 @@ 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 :
+valeur de @code{extra-spacing-width} pour leur attribuer un peu
+d'espace supplémentaire.  L'unité de base est ici la largeur
+séparant deux lignes de portée ; décaler le bord gauche d'une
+demie unité vers la gauche et le bord droit d'une demie unité vers
+la droite devrait suffire :
 
 @example
-\override DynamicText.extra-spacing-width = #'(0 . 0)
+\override DynamicText.extra-spacing-width = #'(-0.5 . 0.5)
 @end example
 
 @noindent
@@ -2523,38 +2596,219 @@ Voyons si ça marche sur notre exemple précédent :
 @cindex DynamicText, exemple de dérogation
 @cindex extra-spacing-width, exemple d'utilisation de la propriété
 
-@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 demie unité
-et le bord droit d'une demie unité, on obtient :
-
-@cindex DynamicText, exemple de dérogation
-@cindex extra-spacing-width, exemple d'utilisation de la propriété
-
 @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
+a4\f b\mf a\mp b\p
 @end lilypond
 
 @noindent
 C'est mieux mais nous voulons peut-être aligner les indications de
 nuance 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.
+@code{staff-padding} -- voir @ref{Collisions d'objets}.
+
+
+@node Espacement vertical
+@section  Espacement vertical
+@translationof Vertical spacing
+
+En règle générale, LilyPond est plutôt performant en matière
+d'espacement vertical des objets musicaux.  Examinons ce qui se passe
+avec un chant simple à deux voix accompagnées au piano :
+
+@lilypond[quote,fragment,ragged-right]
+<<
+  \new ChoirStaff
+  <<
+    \new Staff {
+      \new Voice = "music" {
+        b'2 c' c' c'
+      }
+    }
+    \new Lyrics
+    \lyricsto "music" {
+      Here are some lyrics
+    }
+    \new Staff {
+      \clef bass e'2 f e c
+    }
+  >>
+  \new PianoStaff
+  <<
+    \new Staff {
+      g''2 c'' c'' a''
+    }
+    \new Staff {
+      \clef bass e2 f c e
+    }
+  >>
+>>
+@end lilypond
+
+Il n'y a rien à redire quant à l'espacement vertical.  Toutefois,
+partons du principe que nous travaillons avec un éditeur dont les
+exigences en matière d'espacement vertical sont les suivantes : les
+paroles doivent être clairement détachées des notes, l'accompagnement de
+piano séparé du chant et les portées de piano rapprochées l'une de
+l'autre.  Commençons par les paroles.
+
+Les paroles résident dans un système ; les commandes dévolues à leur
+espacement sont donc mentionnées à la section
+@ruser{Espacement vertical au sein d'un système}. Nous y constatons que
+les paroles sont des lignes de non-portée (@code{non-staff lines}) ; les
+commandes qui gèrent leur espacement font donc référence à la propriété
+@code{nonstaff}.  Les décaler de la portée à laquelle elles sont
+attachées (celle du haut) jouera sur la propriété @code{relatedstaff},
+les décaler de la ligne inférieure sur la propriété
+@code{unrelatedstaff}.  Les parties vocales sont membre d'un
+@code{VerticalAxisGroup} ; ce sont donc les propriétés de ce groupe qui
+doivent être ajustées.  Faisons un premier essai pour voir :
+
+@lilypond[quote,fragment,ragged-right,verbatim]
+<<
+  \new ChoirStaff
+  <<
+    \new Staff {
+      \new Voice = "music" {
+        b'2 c' c' c'
+      }
+    }
+    \new Lyrics \with {
+      \override VerticalAxisGroup.
+        nonstaff-relatedstaff-spacing.padding = #5
+      \override VerticalAxisGroup.
+        nonstaff-unrelatedstaff-spacing.padding = #5
+    }
+    \lyricsto "music" {
+      Here are some lyrics
+    }
+    \new Staff {
+      \clef bass e'2 f e c
+    }
+  >>
+  \new PianoStaff
+  <<
+    \new Staff {
+      g''2 c'' c'' a''
+    }
+    \new Staff {
+      \clef bass e2 f c e
+    }
+  >>
+>>
+@end lilypond
+
+L'espacement est maintenant quelque peu exagéré.  Lorsque nous
+affectons 5 à la variable @code{padding}, LilyPond ajoute cinq espaces
+de portée à la distance séparant deux objets, ce qui est plus que
+généreux.  Nous nous limiterons à 2.
+
+Occupons-nous à présent de séparer l'accompagnement du chant.  La
+musique vocale fait l'objet d'un @code{ChoirStaff} ; il nous faut donc
+augmenter l'espace entre ce groupe et la portée de piano qui le suit.
+Nous y parviendrons en modifiant la variable @code{basic-distance} de
+l'élément @code{staffgroup-staff-spacing} du @code{StaffGrouper}.
+
+@lilypond[quote,fragment,ragged-right,verbatim]
+<<
+  \new ChoirStaff \with {
+    \override StaffGrouper.
+      staffgroup-staff-spacing.basic-distance = #15
+  }
+  <<
+    \new Staff {
+      \new Voice = "music" {
+        b'2 c' c' c'
+      }
+    }
+    \new Lyrics \with {
+      \override VerticalAxisGroup.
+        nonstaff-relatedstaff-spacing.padding = #2
+      \override VerticalAxisGroup.
+        nonstaff-unrelatedstaff-spacing.padding = #2
+    }
+    \lyricsto "music" {
+      Here are some lyrics
+    }
+    \new Staff {
+      \clef bass e'2 f e c
+    }
+  >>
+  \new PianoStaff
+  <<
+    \new Staff {
+      g''2 c'' c'' a''
+    }
+    \new Staff {
+      \clef bass e2 f c e
+    }
+  >>
+>>
+@end lilypond
+
+Excellent.  Ne reste plus qu'à répondre à la dernière exigence :
+resserrer les portées du piano.  Pour y parvenir, nous ajusterons à
+nouveau les propriétés du @code{StaffGrouper}, ici en jouant à la fois
+sur la distance de base (@code{basic-distance}) et le décalage
+(@code{padding}) comme ci-dessous :
+
+@lilypond[quote,fragment,ragged-right,verbatim]
+<<
+  \new ChoirStaff \with {
+    \override StaffGrouper.
+      staffgroup-staff-spacing.basic-distance = #15
+  }
+  <<
+    \new Staff {
+      \new Voice = "music" {
+        b'2 c' c' c'
+      }
+    }
+    \new Lyrics \with {
+      \override VerticalAxisGroup.
+        nonstaff-relatedstaff-spacing.padding = #2
+      \override VerticalAxisGroup.
+        nonstaff-unrelatedstaff-spacing.padding = #2
+    }
+    \lyricsto "music" {
+      Here are some lyrics
+    }
+    \new Staff {
+      \clef bass e'2 f e c
+    }
+  >>
+  \new PianoStaff \with {
+    \override StaffGrouper.staff-staff-spacing = #'(
+                            (basic-distance . 0)
+                            (padding . 0))
+  }
+  <<
+    \new Staff {
+      g''2 c'' c'' a''
+    }
+    \new Staff {
+      \clef bass e2 f c e
+    }
+  >>
+>>
+@end lilypond
+
+Les portées sont vraiment rapprochées, mais c'est ce que veut l'éditeur.
+On pourra toujours les écarter au besoin en jouant sur les éléments
+@code{padding} ou @code{basic-distance}.
+
+Il existe bien des manières de modifier l'espacement vertical.  Le point
+crucial à ne pas oublier est que l'espacement des objets au sein d'un
+regroupement -- un @code{StaffGroup}, tels @code{GrandStaff} ou
+@code{PianoStaff} -- dépend des variables d'espacement d'un
+@code{StaffGrouper} ; l'espacement de portées non regroupées (comme
+@code{Lyrics} et @code{Staff}) dépend des variables d'un
+@code{VerticalAxisGroup}.  Voir
+@ruser{Variables d'espacement vertical fluctuant} et
+@ruser{Espacement vertical au sein d'un système} pour de plus amples
+détails.
 
 
 @node Collisions d'objets
@@ -2595,7 +2849,7 @@ 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{Objets inclus dans la portée}).
 Les queues de note, les liaisons de phrasé et de prolongation, les
-crochets, les nuances et les nolets peuvent facilement être
+crochets, les nuances et les n-olets peuvent facilement être
 repositionnés de cette manière.  En contrepartie, vous n'avez le choix
 qu'entre deux positions, sans personnalisation possible.
 
@@ -2650,17 +2904,18 @@ 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 au-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.
+entre la portée et l'objet extérieur.  Attention : @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 ; tout
+aménagement qui lui serait apporté ne provoquera pas d'eereur, mais sera
+ignoré.
 
 Pour trouver quelle propriété @code{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 @code{padding} ne
-sont pas forcément traitées dans l'objet en question ; il faut
-alors regarder les objets qui semblent s'en rapprocher.
+l'objet dans la Référence des propriétés internes.  Prenez garde que les
+propriétés @code{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 @code{padding} sont exprimées en espace de portée.
 Pour la plupart des objets, la valeur par défaut est aux alentours de
@@ -2721,20 +2976,54 @@ collision entre des objets comme les silences valant mesure entière,
 les liaisons et les notes de différentes voix.
 
 
+@item
+@code{horizontal-shift}
+
+@cindex horizontal-shift, propriété
+@cindex notes, empilement
+@cindex empilement de notes
+@cindex notes, collisions
+@cindex collisions de notes
+@cindex shift, commandes
+@funindex \shiftOff
+@funindex shiftOff
+@funindex \shiftOn
+@funindex shiftOn
+@funindex \shiftOnn
+@funindex shiftOnn
+@funindex \shiftOnnn
+@funindex shiftOnnn
+
+Au sein d'une même voix, toutes les notes intervenant au même instant
+musical sont regroupées dans un empilement (une colonne) et est créé un
+objet @code{NoteColumn} afin de contrôler le positionnement horizontal
+de ce groupe de notes -- voir « Empilement de notes » dans
+@ref{Instanciation explicite des voix}.  Si, et seulement si deux ou
+plusieurs empilements au sein d'un même contexte de portée ont une
+orientation de hampe identique et se produisent au même instant musical,
+les valeurs de leurs propriétés @code{horizontal-shift} permettront de
+les ordonner, les empilements de rang supérieur étant progressivement
+décalés pour éviter les chevauchements des têtes.  Cette propriété est
+déterminée par les commandes @code{\voiceXXX} et peut se voir aménagée
+par une commande @code{\override} ou, plus habituellemnt, par les
+commandes @code{\shiftOn}.  Notez bien que cette propriété ne fait
+qu'affecter un rang aux empilements pour leur décalage ; elle ne
+détermine en rien la magnitude du décalage, qui sera augmentera
+progressivement et selon un pas proprotionnel à la largeur des têtes de
+chaque rang.  Le pas, généralement de la moitié de la largeur d'une
+tête, peut aller jusqu'à la pleine largeur de tête en cas de groupes
+resserrés.
+
 @item
 @code{force-hshift}
 
 @cindex force-hshift, propriété
 
-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 (ou empilement) 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 un empilement selon l'unité appropriée aux colonnes
+permet de déplacer un empilement dans le cas de chevauchement
+d'empilements.  Notez bien qu'elle sera sans effet en l'absence de
+chevauchement.  Elle s'exprime en unité appropriée aux colonnes
 de notes, à savoir la largeur des têtes de note de la première voix.
 Son utilisation est réservée à des situations complexes dans lesquelles
 les commandes habituelles @code{\shiftOn}
@@ -2782,7 +3071,7 @@ perturber quoi que ce soit.
 @cindex positions, propriété
 
 Cette propriété est très utile pour ajuster manuellement l'inclinaison
-et la hauteur des barres de ligature, des liaisons et des nolets.  Elle
+et la hauteur des barres de ligature, des liaisons et des n-olets.  Elle
 est suivie de deux nombres qui donnent la position des extrémités gauche
 et droite 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.
@@ -2812,7 +3101,7 @@ trouver les propriétés à retoucher pour obtenir un déplacement.
 @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 N-olets                         @tab @code{TupletBracket}
 @item Nuances (verticalement)         @tab @code{DynamicLineSpanner}
 @item Nuances (horizontalement)       @tab @code{DynamicText}
 @item Reprises / marques de texte     @tab @code{RehearsalMark}
@@ -2939,15 +3228,14 @@ note par la retouche de @code{right-padding}.
 @cindex objets, alignement sur une ligne de base
 
 @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 @emph{Spanners}).  Tel est donc le moyen d'aligner les
-indications de nuance, comme dans cet exemple repris de la section
-précédente :
+sur une ligne fictive à une distance donnée par rapport à la portée en
+l'absence d'autre élément de notation qui les repousserait.  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 @emph{Spanners}).
+Tel est donc le moyen d'aligner les indications de nuance, comme dans
+cet exemple repris de la section précédente :
 
 @cindex DynamicText, exemple de dérogation
 @cindex extra-spacing-width, exemple d'utilisation de la propriété
@@ -2955,12 +3243,8 @@ précédente :
 @cindex staff-padding, exemple d'utilisation de la propriété
 
 @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
+\override DynamicLineSpanner.staff-padding = #3
+a4\f b\mf a\p b\mp
 @end lilypond
 
 
@@ -2968,9 +3252,9 @@ a4\f b\mf c\mp b\p
 @unnumberedsubsubsec La propriété @code{self-alignment-X}
 @translationof The self-alignment-X property
 
-L'exemple suivant montre comment résoudre une collision entre une
-indication de corde et une hampe, en alignant le coin droit sur le point
-de référence de la note parente :
+L'exemple suivant montre comment ajuster le positionnement d'une
+indication de corde relativement à une hampe, en alignant le coin
+droit sur le point de référence de la note parente :
 
 @cindex StringNumber, exemple de dérogation
 @cindex self-alignment-X, exemple d'utilisation de la propriété
@@ -3004,7 +3288,7 @@ type :
 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{<<@{@dots{}@} \\ @{@dots{}@}>>}), la propriété
+construction @code{<<@{ @dots{} @} \\ @{ @dots{} @}>>}), la propriété
 @code{staff-position} est réglée sur @code{-4} pour les
 @code{MultiMeasureRest} ; nous avons donc besoin de la déplacer, disons,
 de quatre demi-intervalles vers le bas, ce qui donne @code{-8}.
@@ -3057,15 +3341,15 @@ f4-5
 @unnumberedsubsubsec La propriété @code{positions}
 @translationof The positions property
 
-@cindex contrôle des nolets, liaisons, phrasés et ligatures
-@cindex gestion manuelle des nolets, liaisons, phrasés et ligatures
-@cindex ligatures de nolet, gestion manuelle
+@cindex contrôle des n-olets, liaisons, phrasés et ligatures
+@cindex gestion manuelle des n-olets, liaisons, phrasés et ligatures
+@cindex ligatures de n-olet, gestion manuelle
 @cindex liaisons, gestion manuelle
 @cindex phrasés, gestion manuelle
 @cindex ligatures, gestion manuelle
 
 La propriété @code{positions} permet de contrôler manuellement la
-position et l'inclinaison des nolets, coulés, liaisons de phrasé et
+position et l'inclinaison des n-olets, coulés, liaisons de phrasé et
 barres de ligature.
 
 Voici un exemple où la liaison de phrasé recouvre la liaison
@@ -3102,18 +3386,26 @@ voir à ce sujet @ruser{Modification des liaisons}.
 Voici un autre exemple. Comme nous pouvons le constater, les barres de
 ligature chevauchent les liaisons de tenue :
 
-@lilypond[quote,verbatim,fragment,ragged-right]
+@lilypond[quote,verbatim,fragment,ragged-right,relative=1]
 {
   \time 4/2
   <<
-    { c'1 ~ c'2. e'8 f' }
+    { c1~ 2. e8 f }
     \\
-    { e''8 e'' e'' e''  e'' e'' e'' e''  f''2 g'' }
+    {
+      e'8 e e e
+      e e e e
+      f2 g
+    }
   >>
   <<
-    { c'1 ~ c'2. e'8 f' }
+    { c,,1~ 2. e8 f }
     \\
-    { e''8 e'' e'' e''  e'' e'' e'' e''  f''2 g'' }
+    {
+      e'8 e e e
+      e e e e
+      f2 g
+    }
   >>
 }
 @end lilypond
@@ -3126,29 +3418,38 @@ au-dessous de la ligne médiane mais, disons, à 1 :
 @cindex Beam, exemple de dérogation
 @cindex positions, exemple d'utilisation de la propriété
 
-@lilypond[quote,verbatim,fragment,ragged-right]
+@lilypond[quote,verbatim,fragment,ragged-right,relative=1]
 {
   \time 4/2
   <<
-    { c'1 ~ c'2. e'8 f' }
+    { c1~ 2. e'8 f' }
     \\
     {
       \override Beam.positions = #'(-1 . -1)
-      e''8 e'' e'' e''  e'' e'' e'' e''  f''2 g''
+      e'8 e e e
+      e e e e
+      f2 g
     }
   >>
   <<
-    { c'1 ~ c'2. e'8 f' }
+    { c,,1~ 2. e'8 f' }
     \\
-    { e''8 e'' e'' e''  e'' e'' e'' e''  f''2 g'' }
+    {
+      e'8 e e e
+      e e e e
+      f2 g
+      \revert Beam.positions
+    }
   >>
 }
 @end lilypond
 
 @noindent
-Vous remarquerez que la retouche continue de s'appliquer au
-second bloc de croches de la première voix mais qu'il ne s'applique
-à aucune mesure de la deuxième voix.
+Vous remarquerez que la retouche continue de s'appliquer au second bloc
+de croches de la deuxième voix mais qu'il ne s'applique à aucune des
+ligatures de la première voix, même dans la seconde mesure.  Dès que la
+dérogation ne doit plus s'appliquer, il suffit de l'annuler comme
+indiqué ici.
 
 
 @node La propriété force-hshift
@@ -3176,16 +3477,20 @@ nous avions laissé dans cet état :
 
 @noindent
 La note intermédiaire du premier accord, le la bémol à la quatrième
-voix, doit rester dans le même empilement que la note haute.  Pour y
-remédier, nous réglons le @code{force-hshift} -- qui est une propriété
-de @code{NoteColumn} -- de cette note sur zéro.
+voix, doit rester dans le même empilement que la note haute, ce
+pourquoi nous utilisons un @code{\shiftOff}
 
 Quant au second accord, il serait préférable que le fa s'aligne avec le
 la et que la note la plus basse se positionne un peu plus sur la droite
 pour éviter que les hampes se chevauchent.  Pour cela, nous réglons le
 @code{force-hshift} au niveau du @code{NoteColumn} du ré bémol de telle
 sorte qu'il se déplace de la moitié d'un espace de portée vers la
-droite.
+droite et le @code{force-hshift} du fa sur zéro.  Vous noterez la
+présence du @code{\once} qui évite la propagation de ces réglages
+au-delà de cet instantn musical particulier -- bien que la présence du
+@code{\once} et du second @code{\override} de la quatrième voix ne
+soient pas indispensables dans ce court extrait, ce ne serait pas
+montrer l'exemple que de les omettre.
 
 Et voici le résultat final :
 
@@ -3198,17 +3503,10 @@ Et voici le résultat final :
   <<
     { c2 aes4. bes8 }
     \\
-    {
-      <ees, c>2
-      \once \override NoteColumn.force-hshift = #0.5
-      des2
-    }
+    { <ees, c>2 \once \override NoteColumn.force-hshift = #0.5 des }
     \\
     \\
-    {
-      \override NoteColumn.force-hshift = #0
-      aes'2 f4 fes
-    }
+    { \once \shiftOff aes'2 \once \shiftOff f4 fes }
   >> |
   <c ees aes c>1 |
 }
@@ -3248,7 +3546,7 @@ rhMusic = \relative c'' {
     \time 6/4
     \mergeDifferentlyHeadedOn
     \mergeDifferentlyDottedOn
-    bes2.^\markup { \bold "Moderato" } r8
+    bes2.\tempo "Moderato" r8
     <<
       { c,8 d fis bes a }
       \new Voice {
@@ -3267,7 +3565,6 @@ rhMusic = \relative c'' {
         % Stem on the d2 must be down to permit merging
         \stemDown
         % Stem on the d2 should be invisible
-        \tweak Stem.transparent ##t
         \tweak Flag.transparent ##t
         d2
       }
@@ -3314,7 +3611,7 @@ opportun.  Si vous avez oublié comment faire, reportez-vous à
 @ref{J'entends des Voix} et @ref{Instanciation explicite des voix}.
 Nous opterons ici pour une déclaration explicite des voix du passage
 polyphonique, puisque LilyPond est alors plus performant en matière
-d'évitement des collisions. 
+d'évitement des collisions.
 
 Commençons par saisir les notes comme appartenant à deux variables,
 mettons en place l'ossature des portées dans un bloc @code{\Score} et
@@ -3333,7 +3630,7 @@ rhMusic = \relative c'' {
       { c,8 d fis bes a }  % continuation of main voice
       \new Voice {
         \voiceTwo
-        c,8~ c2
+        c,8~ 2
       }
       \new Voice {
         \voiceThree
@@ -3393,7 +3690,7 @@ rhMusic = \relative c'' {
       { c,8 d fis bes a }  % continuation of main voice
       \new Voice {
         \voiceTwo
-        c,8~ c2
+        c,8~ 2
       }
       \new Voice {
         \voiceThree
@@ -3467,7 +3764,7 @@ rhMusic = \relative c'' {
       { c,8 d fis bes a }  % continuation of main voice
       \new Voice {
         \voiceTwo
-        c,8~ c2
+        c,8~ 2
       }
       \new Voice {
         \voiceThree
@@ -3505,17 +3802,17 @@ lhMusic = \relative c' {
 @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 @qq{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 @qq{fusionnement de notes}
-dans l'index nous renvoie au chapitre @ruser{Résolution des collisions},
-et plus précisément aux commandes permettant de fusionner des notes en
-fonction de leur type et selon qu'elles 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
+Dans le Tutoriel, il est indiqué comment insérer une indication de tempo
+à l'aide de la commande @code{\tempo} ; pas de problème, du coup, pour
+ajouter @qq{Moderato}.  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 @qq{fusionnement de notes} dans l'index nous
+renvoie au chapitre @ruser{Résolution des collisions}, et plus
+précisément aux commandes permettant de fusionner des notes en fonction
+de leur type et selon qu'elles 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
@@ -3542,7 +3839,7 @@ rhMusic = \relative c'' {
     bes1~ |
     \bar "||"
     \time 6/4
-    bes2.^\markup { \bold "Moderato" } r8
+    bes2.\tempo "Moderato" r8
     \mergeDifferentlyHeadedOn
     \mergeDifferentlyDottedOn
     % Start polyphonic section of four voices
@@ -3550,7 +3847,7 @@ rhMusic = \relative c'' {
       { c,8 d fis bes a }  % continuation of main voice
       \new Voice {
         \voiceTwo
-        c,8~ c2
+        c,8~ 2
       }
       \new Voice {
         \voiceThree
@@ -3617,7 +3914,7 @@ rhMusic = \relative c'' {
     bes1~ |
     \bar "||"
     \time 6/4
-    bes2.^\markup { \bold "Moderato" } r8
+    bes2.\tempo "Moderato" r8
     \mergeDifferentlyHeadedOn
     \mergeDifferentlyDottedOn
     % Start polyphonic section of four voices
@@ -3688,7 +3985,7 @@ rhMusic = \relative c'' {
     bes1~ |
     \bar "||"
     \time 6/4
-    bes2.^\markup { \bold "Moderato" } r8
+    bes2.\tempo "Moderato" r8
     \mergeDifferentlyHeadedOn
     \mergeDifferentlyDottedOn
     % Start polyphonic section of four voices
@@ -3710,7 +4007,6 @@ rhMusic = \relative c'' {
         % Stem on the d2 must be down to permit merging
         \stemDown
         % Stem on the d2 should be invisible
-        \tweak Stem.transparent ##t
         \tweak Flag.transparent ##t
         d2
       }
@@ -3770,15 +4066,8 @@ lhMusic = \relative c' {
 * Rendu MIDI d'un point d'orgue::
 @end menu
 
-@cindex transparent, utilisation de la propriété
-@cindex création d'objet invisible
 @cindex suppression d'objets
 @cindex objets, suppression d'
-@cindex masquage d'objets
-@cindex objets, masquage d'
-@cindex invisibles, objets
-@cindex objets, invisibles
-@cindex liaison de tenue avec changement de voix
 
 
 @node Liaison entre plusieurs voix
@@ -3792,39 +4081,25 @@ 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] } >>
+<< { b8~ 8\noBeam } \\ { b8[ g] } >>
 @end lilypond
 
 @noindent
-et à rendre transparente la première hampe de cette voix ;
-on a alors l'impression que la liaison couvre les deux voix.
+et à supprimer la première hampe ascendante et le crochet dans cette
+voix ; on a alors l'impression que la liaison couvre les deux voix.
 
-@cindex Stem, exemple de dérogation
-@cindex transparent, exemple d'utilisation de la propriété
-
-@lilypond[quote,fragment,relative=2,verbatim]
-<<
-  {
-    \tweak Stem.transparent ##t
-    \tweak Flag.transparent ##t
-    b8~ b\noBeam
-  }
-\\
-  { b8[ g] }
->>
-@end lilypond
+@cindex Stem, exemple de suppression
+@cindex Flag, exemple de suppression
+@cindex @code{\omit}, exemple d'utilisation
 
-Pour être sûr que la hampe 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},
+@funindex \omit
 
 @lilypond[quote,fragment,relative=2,verbatim]
 <<
   {
-    \tweak Stem.transparent ##t
-    \tweak Flag.transparent ##t
-    \tweak Stem.length #8
-    b8~ b8\noBeam
+    \once \omit Stem
+    \once \omit Flag
+    b8~ 8\noBeam
   }
 \\
   { b[ g8] }
@@ -3832,38 +4107,10 @@ réglant la longueur (@code{length}) sur @code{8},
 @end lilypond
 
 
-@funindex \single
-@cindex affinage généré par une dérogation
-
-Nous aurions pu, pour déroger à la transparence d'un objet
-graphique, utiliser le raccourci @code{\omit} que nous avons vu
-plus haut.  L'affinage constitue une opération différente en ceci
-qu'il n'affecte que les propriétés générées par une expression
-musicale unique.  Nous pourrions tout à fait convertir des
-dérogations en affinages à l'aide d'un @code{\single} et ré-écrire
-l'exemple précédent de cette manière :
-
-@lilypond[quote,fragment,relative=2,verbatim]
-<<
-  {
-    \single \hide Stem
-    \single \hide Flag
-    \tweak Stem.length #8
-    b8~ b\noBeam
-  }
-\\
-  { b8[ g] }
->>
-@end lilypond
-
-Dans ce cas particulier, la différence avec un @code{\once \hide}
-n'est pas flagrante.  Elle prend cependant toute son importance
-lorsque plusieurs objets de retrouvent au même instant musical --
-comme les têtes des notes d'un accord.  En effet, la présence d'un
-@code{\once} sera répercutée à tous les objets, alors qu'un
-@code{\single} n'affectera, lui, qu'un seul objet, celui généré
-par l'expression musicale qui le suit directement.
-
+@seealso
+Manuel d'initiation :
+@ref{Le préfixe once},
+@ref{La propriété stencil}.
 
 @node Rendu MIDI d'un point d'orgue
 @unnumberedsubsubsec Rendu MIDI d'un point d'orgue
@@ -3947,7 +4194,7 @@ Glossaire musicologique :
 
 @node Utilisation de variables dans les retouches
 @subsection Utilisation de variables dans les retouches
-@translationof Using variables for tweaks
+@translationof Using variables for layout adjustments
 
 @cindex variables, utilisation dans les retouches
 @cindex utilisation de variables dans les retouches
@@ -4057,12 +4304,9 @@ les parties avec tous les @code{#()}.  Celles-ci sont expliquées dans
 
 @lilypond[quote,verbatim,ragged-right]
 mpdolce =
-#(make-dynamic-script
-  #{ \markup { \hspace #0
-               \translate #'(5 . 0)
-               \line { \dynamic "mp"
-                       \text \italic "dolce" } }
-  #})
+  \tweak self-alignment-X #-0.6
+  #(make-dynamic-script
+    #{ \markup { \dynamic mp \normal-text \italic \bold dolce } #})
 
 inst =
 #(define-music-function
@@ -4091,12 +4335,9 @@ dans nos fichiers de musique, et je trouve personnellement tous ces
 @example
 %%% enregistrez ceci dans un fichier nommé "definitions.ily"
 mpdolce =
-#(make-dynamic-script
-  #@{ \markup @{ \hspace #0
-               \translate #'(5 . 0)
-               \line @{ \dynamic "mp"
-                       \text \italic "dolce" @} @}
-  #@})
+  \tweak self-alignment-X #-0.6
+  #(make-dynamic-script
+    #@{ \markup @{ \dynamic mp \normal-text \italic \bold dolce @} #@})
 
 inst =
 #(define-music-function
@@ -4131,12 +4372,9 @@ sous @file{musique.ly}).
 
 @lilypond[quote,ragged-right]
 mpdolce =
-#(make-dynamic-script
-  #{ \markup { \hspace #0
-               \translate #'(5 . 0)
-               \line { \dynamic "mp"
-                       \text \italic "dolce" } }
-  #})
+  \tweak self-alignment-X #-0.6
+  #(make-dynamic-script
+    #{ \markup { \dynamic mp \normal-text \italic \bold dolce } #})
 
 inst =
 #(define-music-function
@@ -4168,12 +4406,9 @@ fichier @file{definitions.ily} par ceci :
 @example
 %%%  definitions.ily
 mpdolce =
-#(make-dynamic-script
-  #@{ \markup @{ \hspace #0
-               \translate #'(5 . 0)
-               \line @{ \dynamic "mp"
-                       \text \italic "dolce" @} @}
-  #@})
+  \tweak self-alignment-X #-0.6
+  #(make-dynamic-script
+    #@{ \markup @{ \dynamic mp \normal-text \italic \bold dolce @} #@})
 
 inst =
 #(define-music-function
@@ -4201,12 +4436,9 @@ inst =
 
 @lilypond[quote,ragged-right]
 mpdolce =
-#(make-dynamic-script
-  #{ \markup { \hspace #0
-               \translate #'(5 . 0)
-               \line { \dynamic "mp"
-                       \text \italic "dolce" } }
-  #})
+  \tweak self-alignment-X #-0.6
+  #(make-dynamic-script
+    #{ \markup { \dynamic mp \normal-text \italic \bold dolce } #})
 
 inst =
 #(define-music-function
@@ -4252,12 +4484,9 @@ aussi augmenter la taille globale de police.
 @example
 %%%  web-publish.ily
 mpdolce =
-#(make-dynamic-script
-  #@{ \markup @{ \hspace #0
-               \translate #'(5 . 0)
-               \line @{ \dynamic "mp"
-                       \text \italic "dolce" @} @}
-  #@})
+  \tweak self-alignment-X #-0.6
+  #(make-dynamic-script
+    #@{ \markup @{ \dynamic mp \normal-text \italic \bold dolce @} #@})
 
 inst =
 #(define-music-function
@@ -4286,12 +4515,9 @@ inst =
 
 @lilypond[quote,ragged-right]
 mpdolce =
-#(make-dynamic-script
-  #{ \markup { \hspace #0
-               \translate #'(5 . 0)
-               \line { \dynamic "mp"
-                       \text \italic "dolce" } }
-  #})
+  \tweak self-alignment-X #-0.6
+  #(make-dynamic-script
+    #{ \markup { \dynamic mp \normal-text \italic \bold dolce } #})
 
 inst =
 #(define-music-function
@@ -4329,8 +4555,8 @@ musique.
 
 Il est possible, bien sûr, de rendre cela encore plus pratique.  Nous
 pourrions créer un fichier @file{definitions.ily} qui ne contiendrait
-que les définitions de @code{mpdolce} et de @code{inst}, un
-fichier @file{publication-web.ily} qui ne contiendrait que la section
+que les définitions de @code{mpdolce} et de @code{inst}, un fichier
+@file{publication-web.ily} qui ne contiendrait que la section
 @code{layout} décrite ci-dessus et un fichier @file{universite.ily} qui
 ne contiendrait que les retouches pour produire le résultat que mon
 professeur préfère.  Le début du fichier @file{musique.ly} ressemblerait