]> git.donarmstrong.com Git - lilypond.git/blobdiff - Documentation/fr/user/changing-defaults.itely
Imported Upstream version 2.12.3
[lilypond.git] / Documentation / fr / user / changing-defaults.itely
index 79364ec95831ed4ad6c8967805cf541df2f8c27e..3134ce3c6125c8b67f693b2618616858560a53d6 100644 (file)
@@ -1,5 +1,5 @@
 @c -*- coding: utf-8; mode: texinfo; documentlanguage: fr -*-
-@c This file is part of ../user/lilypond.tely
+@c This file is part of lilypond.tely
 @ignore
     Translation of GIT committish: 76de7e168dbc9ffc7671d99663c5ce50dae42abb
 
@@ -7,11 +7,12 @@
     version that you are working on.  See TRANSLATION for details.
 @end ignore
 
-@c \version "2.11.51"
+@c \version "2.12.0"
 
 @c Translators: Valentin Villenave
 @c Translation checkers: Gilles Thibault
 
+
 @node Changing defaults
 @chapter Changing defaults
 
@@ -34,7 +35,7 @@ référence du programme
 @ref{Top,Référence du programme,,lilypond-internals}.
 @end ifnottex
 Ce guide répertorie toutes les variables, fonctions et autres options que
-LilyPond met à votre disposition.  Il est consultable 
+LilyPond met à votre disposition.  Il est consultable
 @c leave the @uref as one long line.
 @uref{http://@/lilypond@/.org/@/doc/@/stable/@/Documentation/@/user/@/lilypond@/-internals/,en@tie{}ligne},
 au format HTML, mais est également inclus dans la documentation
@@ -48,7 +49,7 @@ La notation automatique, ce qui revient à modifier la manière dont les éléme
 de notation sont automatiquement créés -- par exemple, les règles de ligatures.
 
 @item
-L'apparence, qui se rapporte aux objets pris individuellement -- ainsi de la direction 
+L'apparence, qui se rapporte aux objets pris individuellement -- ainsi de la direction
 des hampes, du placement des indications textuelles.
 
 @item
@@ -64,983 +65,361 @@ En sous-main, LilyPond se sert du langage Scheme (un dérivé du LISP) comme
 infrastructure.  Modifier les choix de mise en page revient à pénétrer dans
 les entrailles du programme, et de ce fait requiert l'emploi du Scheme.
 Les fragments de Scheme, dans un fichier @code{.ly}, sont introduits par le
-caractère @q{hash}, (@code{#}, improprement surnommé @q{dièse}).@footnote{Le 
+caractère @q{hash}, (@code{#}, improprement surnommé @q{dièse}).@footnote{Le
 @rlearning{Scheme tutorial} fournit quelques notions de base pour saisir des nombres,
 des listes, des chaînes de caractères ou des symboles, en Scheme.}
 
 
 @menu
-* Automatic notation::          
-* Interpretation contexts::     
-* The \override command::       
+* Interpretation contexts::
+* Explaining the Internals Reference::
+* Modifying properties::
+* Useful concepts and properties::
+* Advanced tweaks::
 @end menu
 
+@node Interpretation contexts
+@section Interpretation contexts
 
-@node Automatic notation
-@section Automatic notation
-
-Cette section s'intéresse au réglage de l'impression automatique des
-altérations accidentelles et ligatures.
+Cette section traite des contextes.
 
 @menu
-* Automatic accidentals::       
-* Setting automatic beam behavior::  
+* Contexts explained::
+* Creating contexts::
+* Modifying context plug-ins::
+* Layout tunings within contexts::
+* Changing context default settings::
+* Defining new contexts::
+* Aligning contexts::
 @end menu
 
-@node Automatic accidentals
-@subsection Automatic accidentals
-@cindex Altérations accidentelles automatiques
-
-Une fonction a été créée pour regrouper les règles suivant lesquelles
-s'impriment les altérations.  Elle s'invoque de la manière suivante :
-
-@funindex set-accidental-style
-@example
-#(set-accidental-style 'REGLE)
-@end example
+@node Contexts explained
+@subsection Contexts explained
 
-@c TODO: check the context stuff below
-@c -does it *really* work?
-@c -the default contexts as specified in
-@c  scm/music-function.scm seem to be different -vv
+@ignore
+@c TODO Rethink and rewrite
+
+>> > > - list of contexts: my *danger unmaintainable*
+>> > > alarm just went off.  I'm
+
+I knew it would... And leaving out some of them is perfectly fine
+with me.
+I do think that a list like this, with the main contexts and a
+brief
+description of  what they do (perhaps also with a note about what
+default
+behavior is associated with each of them, but this may be
+unmanageable),
+should be there, and then we could simply list the remaining ones
+without
+further explanation and with links to the IR.
+@end ignore
 
-Cette fonction prend pour argument le nom de la règle d'altérations,
-auquel peut s'ajouter, comme argument facultatif, le contexte
-devant être affecté :
+@c TODO Improve layout, order and consistency of wording -td
 
-@example
-#(set-accidental-style 'REGLE #('CONTEXTE#))
-@end example
+@c TODO Add introduction which explains contexts in generality  -td
 
-Si aucun contexte n'est spécifié, le contexte @code{Staff} sera affecté ; 
-cependant on peut souhaiter l'appliquer au contexte @code{Voice} en lieu 
-et place.
+@c TODO Describe propagation of property values -td
 
-Les régles d'altérations suivantes sont possibles :
 
-@table @code
-@item default
-C'est la règle d'impression par défaut, qui se rapporte à l'usage 
-en vigueur au XVIIIème siècle : les altérations accidentelles sont valables toute
-une mesure, et uniquement à leur propre octave.
+@menu
+* Score - the master of all contexts::
+* Top-level contexts - staff containers::
+* Intermediate-level contexts - staves::
+* Bottom-level contexts - voices::
+@end menu
 
+@node Score - the master of all contexts
+@unnumberedsubsubsec Score - the master of all contexts
 
-@lilypond[quote,ragged-right]
-musicA = {  << \relative {  cis'8 fis, d'4 <a cis>8 f bis4 | cis2. <c, g'>4 | } \\
-       \relative { ais'2 cis, | fis8 b a4 cis2 | } >> }
-
-musicB = { \clef bass  \new Voice { \voiceTwo \relative { < fis, a cis>4 
-       \change Staff = up cis' \change Staff = down <fis, a>  
-       \change Staff = up dis' | \change Staff = down <fis, a cis>4 gis 
-       <f a d>2 |  } }}
-
-\score { 
-       \new PianoStaff {
-       << \context Staff = "up" {
-              %#(set-accidental-style 'default) 
-       \musicA }
-       \context Staff = "down"{
-              %#(set-accidental-style 'default)
-       \musicB } >> }
-       \header { piece = \markup {\fill-line { \fontsize #3  "'default" }}}
-}
-@end lilypond
+@untranslated
 
-@item voice
-En principe, LilyPond se souvient de toutes les altérations présentes sur la
-portée (contexte Staff).  Avec cette règle, cependant, les altérations sont indépendantes
-pour chacune des voix. 
 
+@node Top-level contexts - staff containers
+@unnumberedsubsubsec Top-level contexts - staff containers
 
-@example
- \new Staff <<
-        #(set-accidental-style 'voice)
-       @{ @dots{} @}
-       >>
-@end example
+@untranslated
 
-De ce fait, les altérations d'une voix sont ignorées dans les autres voix,
-ce qui peut donner lieu à un résultat malencontreux.  Dans l'exemple suivant,
-il est difficile de dire si le deuxième @samp{la} est dièse ou naturel.
 
-@lilypond[quote,ragged-right]
-musicA = {  << \relative {  cis'8 fis, d'4 <a cis>8 f bis4 | cis2. <c, g'>4 | } \\
-       \relative { ais'2 cis, | fis8 b a4 cis2 | } >> }
-
-musicB = { \clef bass  \new Voice { \voiceTwo \relative { < fis, a cis>4 
-       \change Staff = up cis' \change Staff = down <fis, a>  
-       \change Staff = up dis' | \change Staff = down <fis, a cis>4 gis 
-       <f a d>2 |  } }}
-
-\score { 
-       \new PianoStaff {
-       << \context Staff = "up" {
-              #(set-accidental-style 'voice) 
-       \musicA }
-       \context Staff = "down"{
-              #(set-accidental-style 'voice)
-       \musicB } >> }
-       \header { piece = \markup {\fill-line { \fontsize #3  "'voice" }}}
-}
-@end lilypond
+@node Intermediate-level contexts - staves
+@unnumberedsubsubsec Intermediate-level contexts - staves
 
-La règle @code{voice} n'est à envisager que dans le cas de voix devant être lues par
-des musiciens différents.  S'il s'agit d'un @q{conducteur}, ou d'une portée destinée
-à un seul musicien, il vaut mieux utiliser @code{modern} ou @code{modern-cautionary}.
+@untranslated
 
 
-@item modern
-@funindex modern style accidentals
-Cette règle est la plus courante au XXème siècle.  Les altérations accidentelles
-sont imprimées comme avec le style @code{default}, mais lorsqu'une note non-altérée
-apparaît à une octave différente, ou bien dans la mesure suivante, des bécarres de précaution
-sont ajoutés.  Dans l'exemple suivant, notez ainsi les deux bécarres dans la
-deuxième mesure de la main droite.
+@node Bottom-level contexts - voices
+@unnumberedsubsubsec Bottom-level contexts - voices
 
-@lilypond[quote,ragged-right]
-musicA = {  << \relative {  cis'8 fis, d'4 <a cis>8 f bis4 | cis2. <c, g'>4 | } \\
-       \relative { ais'2 cis, | fis8 b a4 cis2 | } >> }
-
-musicB = { \clef bass  \new Voice { \voiceTwo \relative { < fis, a cis>4 
-       \change Staff = up cis' \change Staff = down <fis, a>  
-       \change Staff = up dis' | \change Staff = down <fis, a cis>4 gis 
-       <f a d>2 |  } }}
-
-\score { 
-       \new PianoStaff {
-       << \context Staff = "up" {
-              #(set-accidental-style 'modern) 
-       \musicA }
-       \context Staff = "down"{
-              #(set-accidental-style 'modern)
-       \musicB } >> }
-       \header { piece = \markup {\fill-line { \fontsize #3  "'modern" }}}
-}
-@end lilypond
+@untranslated
 
-@item @code{modern-cautionary}
-@funindex modern-cautionary
-Cette règle est équivalente à @code{modern}, mais les bécarres de précaution sont
-imprimés de façon particulière : soit plus petits, soit (par défaut) entre parenthèses.
-Il est possible de le définir au moyen de la propriété @code{cautionary-style}
-pour l'objet @rinternals{AccidentalSuggestion}.
 
-@lilypond[quote,ragged-right]
-musicA = {  << \relative {  cis'8 fis, d'4 <a cis>8 f bis4 | cis2. <c, g'>4 | } \\
-       \relative { ais'2 cis, | fis8 b a4 cis2 | } >> }
-
-musicB = { \clef bass  \new Voice { \voiceTwo \relative { < fis, a cis>4 
-       \change Staff = up cis' \change Staff = down <fis, a>  
-       \change Staff = up dis' | \change Staff = down <fis, a cis>4 gis 
-       <f a d>2 |  } }}
-
-\score { 
-       \new PianoStaff {
-       << \context Staff = "up" {
-              #(set-accidental-style 'modern-cautionary) 
-       \musicA }
-       \context Staff = "down"{
-              #(set-accidental-style 'modern-cautionary)
-       \musicB } >> }
-       \header { piece = \markup {\fill-line { \fontsize #3  "'modern-cautionary" }}}
-}
-@end lilypond
+@node Creating contexts
+@subsection Creating contexts
 
-@funindex modern-voice
-@item modern-voice
-Cette règle sert aux altérations dans de la musique polyphonique destinée
-autant à des musiciens différents qu'à quelqu'un qui lirait l'ensemble des voix.
-Les altérations sont imprimées voix par voix, mais les autres voix, dans le même 
-contexte @rinternals{Staff}, en @emph{tiennent compte} cette fois.
+@untranslated
 
-@lilypond[quote,ragged-right]
-musicA = {  << \relative {  cis'8 fis, d'4 <a cis>8 f bis4 | cis2. <c, g'>4 | } \\
-       \relative { ais'2 cis, | fis8 b a4 cis2 | } >> }
-
-musicB = { \clef bass  \new Voice { \voiceTwo \relative { < fis, a cis>4 
-       \change Staff = up cis' \change Staff = down <fis, a>  
-       \change Staff = up dis' | \change Staff = down <fis, a cis>4 gis 
-       <f a d>2 |  } }}
-
-\score { 
-       \new PianoStaff {
-       << \context Staff = "up" {
-              #(set-accidental-style 'modern-voice) 
-       \musicA }
-       \context Staff = "down"{
-              #(set-accidental-style 'modern-voice)
-       \musicB } >> }
-       \header { piece = \markup {\fill-line { \fontsize #3  "'modern-voice" }}}
-}
-@end lilypond
 
-@funindex modern-voice-cautionary
-@item modern-voice-cautionary
-Cette régle est similaire à la précédente, mais les altérations de précautions
-(celles que n'aurait pas ajoutées @code{voice}), sont imprimées de façon
-particulière.  On retrouve donc toutes les altérations qu'imprimerait
-@code{default}, mais certaines sont considérées comme étant @qq{de précaution}.
+@node Modifying context plug-ins
+@subsection Modifying context plug-ins
 
-@lilypond[quote,ragged-right]
-musicA = {  << \relative {  cis'8 fis, d'4 <a cis>8 f bis4 | cis2. <c, g'>4 | } \\
-       \relative { ais'2 cis, | fis8 b a4 cis2 | } >> }
-
-musicB = { \clef bass  \new Voice { \voiceTwo \relative { < fis, a cis>4 
-       \change Staff = up cis' \change Staff = down <fis, a>  
-       \change Staff = up dis' | \change Staff = down <fis, a cis>4 gis 
-       <f a d>2 |  } }}
-
-\score { 
-       \new PianoStaff {
-       << \context Staff = "up" {
-              #(set-accidental-style 'modern-voice-cautionary) 
-       \musicA }
-       \context Staff = "down"{
-              #(set-accidental-style 'modern-voice-cautionary)
-       \musicB } >> }
-       \header { piece = \markup {\fill-line { \fontsize #3  "'modern-voice-cautionary" }}}
-}
-@end lilypond
+Les contextes, tels que @code{Score} ou @code{Staff}, ne contiennent
+pas que des propriétés ; ils mettent également en œuvre certains
+sous-programmes (@q{plug-ins}, pour employer le terme consacré) nommés
+@q{graveurs} (@q{engravers}, pour reprendre le terme anglais).
+Ces sous-programmes sont chargés de créer les différents éléments de notation :
+On trouve ainsi dans le contexte @code{Voice}, un graveur @code{Note_head_engraver},
+chargé des têtes de notes, et dans le contexte @code{Staff}, un graveur
+@code{Key_signature_engraver}, chargé de l'armure.
 
-@item piano
-@funindex piano accidentals
-Cette règle est adaptée aux contextes GrandStaff -- ce qui n'empêche pas de devoir la spécifier 
-pour chaque portée individuelle au sein du contexte GrandStaff.
+Vous trouverez une description exhaustive de chaque graveur dans
+@ifhtml
+@rinternals{Engravers and Performers}.
+@end ifhtml
+@ifnothtml
+Program reference @expansion{} Translation @expansion{} Engravers.
+@end ifnothtml
+Chaque contexte mentionné dans
+@ifhtml
+@rinternals{Contexts}
+@end ifhtml
+@ifnothtml
+Program reference @expansion{} Translation @expansion{} Context.
+@end ifnothtml
+répertorie les graveurs mis en œuvre.
 
-@example
-\new GrandStaff @{ <<
-  \new Staff = "up" @{ <<
-    #(set-accidental-style 'piano)
-    @{ @dots{} @}
-  >> @}
-  \new Staff = "down"@{ <<
-    #(set-accidental-style 'piano)
-  @{ @dots{} @}
-  >> @}
->> @}
-@end example
 
-Cette règle est communément employée pour les partitions de piano au XXème siècle.
-Très similaire à @code{modern} de par son comportement, elle s'en distingue en ce que
-les altérations tiennent compte des autre portées du contexte @rinternals{GrandStaff} ou
-@rinternals{PianoStaff}.
+On peut faire, au moyen de ces graveurs, sa propre @qq{cuisine}, en
+modifiant les contextes à volonté.
 
-@lilypond[quote,ragged-right]
-musicA = {  << \relative {  cis'8 fis, d'4 <a cis>8 f bis4 | cis2. <c, g'>4 | } \\
-       \relative { ais'2 cis, | fis8 b a4 cis2 | } >> }
-
-musicB = { \clef bass  \new Voice { \voiceTwo \relative { < fis, a cis>4 
-       \change Staff = up cis' \change Staff = down <fis, a>  
-       \change Staff = up dis' | \change Staff = down <fis, a cis>4 gis 
-       <f a d>2 |  } }}
-
-\score { 
-       \new PianoStaff {
-       << \context Staff = "up" {
-              #(set-accidental-style 'piano) 
-       \musicA }
-       \context Staff = "down"{
-              #(set-accidental-style 'piano)
-       \musicB } >> }
-       \header { piece = \markup {\fill-line { \fontsize #3  "'piano" }}}
-}
-@end lilypond
 
-@item piano-cautionary
-@funindex #(set-accidental-style 'piano-cautionary)
-Identique à @code{#(set-accidental-style 'piano)}, mais les altérations de précaution
-sont imprimées différemment.
+Lorsque un contexte est créé, par la commande @code{\new} ou @code{\context}, on peut
+y adjoindre un bloc @code{\with} (en anglais @q{avec}), dans lequel il est possible
+d'ajouter (commande @code{\consists}) ou d'enlever (commande @code{\remove})
+des graveurs :
 
-@lilypond[quote,ragged-right]
-musicA = {  << \relative {  cis'8 fis, d'4 <a cis>8 f bis4 | cis2. <c, g'>4 | } \\
-       \relative { ais'2 cis, | fis8 b a4 cis2 | } >> }
-
-musicB = { \clef bass  \new Voice { \voiceTwo \relative { < fis, a cis>4 
-       \change Staff = up cis' \change Staff = down <fis, a>  
-       \change Staff = up dis' | \change Staff = down <fis, a cis>4 gis 
-       <f a d>2 |  } }}
-
-\score { 
-       \new PianoStaff {
-       << \context Staff = "up" {
-              #(set-accidental-style 'piano-cautionary) 
-       \musicA }
-       \context Staff = "down"{
-              #(set-accidental-style 'piano-cautionary)
-       \musicB } >> }
-       \header { piece = \markup {\fill-line { \fontsize #3  "'piano-cautionary" }}}
-}
-@end lilypond
+@funindex \with
 
-@item no-reset
-@funindex no-reset accidental style
-C'est la même règle que @code{default}, mais l'effet des altérations accidentelles
-ne cesse jamais, même dans les mesures suivantes.
-@lilypond[quote,ragged-right]
-musicA = {  << \relative {  cis'8 fis, d'4 <a cis>8 f bis4 | cis2. <c, g'>4 | } \\
-       \relative { ais'2 cis, | fis8 b a4 cis2 | } >> }
-
-musicB = { \clef bass  \new Voice { \voiceTwo \relative { < fis, a cis>4 
-       \change Staff = up cis' \change Staff = down <fis, a>  
-       \change Staff = up dis' | \change Staff = down <fis, a cis>4 gis 
-       <f a d>2 |  } }}
-
-\score { 
-       \new PianoStaff {
-       << \context Staff = "up" {
-              #(set-accidental-style 'no-reset) 
-       \musicA }
-       \context Staff = "down"{
-              #(set-accidental-style 'no-reset)
-       \musicB } >> }
-       \header { piece = \markup {\fill-line { \fontsize #3  "'no-reset" }}}
-}
-@end lilypond
+@example
+\new @var{contexte} \with @{
+  \consists @dots{}
+  \consists @dots{}
+  \remove @dots{}
+  \remove @dots{}
+  @emph{etc.}
+@}
+@{
+  @emph{..musique..}
+@}
+@end example
 
-@item forget
-Tout le contraire de @code{no-reset}: l'effet des altérations cesse aussitôt,
-et de ce fait, toutes les altérations, quelque soit leur place dans la mesure, sont
-imprimées, en fonction de l'éventuelle armure.
+@noindent
+Ici les points de suspension @dots{} devront être remplacés par les noms
+des graveurs désirés.  Dans l'exemple suivant, on enlève du contexte
+@code{Staff}, le chiffre de mesure (graveur @code{Time_signature_engraver})
+et la clé (graveur @code{Clef_engraver}).
 
-@lilypond[quote,ragged-right]
-musicA = {  << \relative {  cis'8 fis, d'4 <a cis>8 f bis4 | cis2. <c, g'>4 | } \\
-       \relative { ais'2 cis, | fis8 b a4 cis2 | } >> }
-
-musicB = { \clef bass  \new Voice { \voiceTwo \relative { < fis, a cis>4 
-       \change Staff = up cis' \change Staff = down <fis, a>  
-       \change Staff = up dis' | \change Staff = down <fis, a cis>4 gis 
-       <f a d>2 |  } }}
-
-\score { 
-       \new PianoStaff {
-       << \context Staff = "up" {
-              #(set-accidental-style 'forget) 
-       \musicA }
-       \context Staff = "down"{
-              #(set-accidental-style 'forget)
-       \musicB } >> }
-       \header { piece = \markup {\fill-line { \fontsize #3  "'forget" }}}
-}
+@lilypond[quote,relative=1,verbatim,fragment]
+<<
+  \new Staff {
+    f2 g
+  }
+  \new Staff \with {
+     \remove "Time_signature_engraver"
+     \remove "Clef_engraver"
+  } {
+    f2 g2
+  }
+>>
 @end lilypond
-@end table
-
-
-@seealso
-
-Référence du programme : @rinternals{Accidental_engraver},
-@rinternals{Accidental}, @rinternals{AccidentalSuggestion} et @rinternals{AccidentalPlacement}.
 
+La clé et le chiffre de mesure ont disparu de la deuxième portée.  C'est une méthode
+quelque peu radicale, puisqu'elle affectera toute la portée jusqu'à la fin de la
+partition.  L'espacement s'en trouve également affecté, ce qui peut être ou non
+l'effet recherché.  Une méthode plus sophistiquée aurait été de rendre ces objets
+transparents (voir @rlearning{Visibility and color of objects}).
 
-@knownissues
+Dans l'exemple suivant, voici une mise en pratique plus utile.  En temps
+normal, les barres de mesure et la métrique sont synchronisées verticalement
+dans toute la partition.  Les graveurs qui en sont responsables se nomment
+@code{Timing_translator} et @code{Default_bar_line_engraver}.
+En les enlevant du contexte @code{Score} pour les attribuer au contexte
+@code{Staff}, chaque portée peut désormais avoir sa propre métrique.
 
-Les notes simultanées sont considérées comme des évènements séquentiels.
-Ce qui implique que, dans un accord, les altérations accidentelles seront 
-imprimées comme si les notes de l'accords apparaissaient une par une, en fonction
-de l'ordre dans lequels elles ont été saisies -- ce qui peut poser problème lorsqu'au
-sein d'un accord certaines altérations dépendent les unes des autres.
-Ce problème est à résoudre manuellement, en insérant des @code{!} et des @code{?} après les notes
-concernées.
+@cindex polymétrique, partition
+@cindex Chiffres de mesure multiples
 
+@lilypond[quote,relative=1,ragged-right,verbatim,fragment]
+\new Score \with {
+  \remove "Timing_translator"
+  \remove "Default_bar_line_engraver"
+} <<
+  \new Staff \with {
+    \consists "Timing_translator"
+    \consists "Default_bar_line_engraver"
+  } {
+      \time 3/4
+      c4 c c c c c
+  }
+  \new Staff \with {
+    \consists "Timing_translator"
+    \consists "Default_bar_line_engraver"
+  } {
+       \time 2/4
+       c4 c c c c c
+  }
+>>
+@end lilypond
 
-@node Setting automatic beam behavior
-@subsection Setting automatic beam behavior
 
-@funindex autoBeamSettings
-@funindex (end * * * *)
-@funindex (begin * * * *)
-@cindex ligatures automatiques, réglage
-@cindex réglage des ligatures automatiques
+@c deprecated node: delete. --fv
+@node Layout tunings within contexts
+@subsection Layout tunings within contexts
 
-@c [TODO: use \applyContext]
+Chaque contexte est chargé de créer plusieurs types d'objets graphiques.
+Il contient également les réglages nécessaires pour chacun de ces objets.
+Si l'on modifie ces réglages, les objets n'auront plus la même apparence.
 
-Dans les métriques courantes, les ligatures automatiques peuvent commencer
-sur n'importe quelle note, mais ne peuvent se terminer qu'à certains points précis
-dans la mesure : sur une pulsation, ou après toute durée spécifiée par les propriétés
-nommées @code{autoBeamSettings}.  Ces propriétés consistent en une liste de règles
-relatives au début ou à la fin des ligatures.  Par défaut, elles sont définies dans
-le fichier
-@file{scm/@/auto@/-beam@/.scm}.
+La syntaxe employée pour ce faire est
 
-On peut ajouter à cette liste une nouvelle règle, au moyen de la commande
 @example
-#(override-auto-beam-setting '(extrémité p q n m) a b [contexte])
+\override @var{contexte}.@var{objet} #'@var{propriété} = #@var{valeur}
 @end example
 
-@itemize @bullet
+Ici @var{objet} est un objet graphique, tel que @code{Stem} (les hampes)
+ou @code{NoteHead} (les têtes de note) ; @var{propriété} est une variable
+(désignée par un symbole, ce qui explique l'apostrophe) employée par le système
+de mise en page.  La sous-section @ref{Constructing a tweak} vous
+aidera à savoir quoi mettre à la place de @var{objet}, @var{propriété} et
+@var{valeur} ; notre propos n'est ici que d'examiner l'emploi de cette commande.
 
-@item @code{extrémité} désigne le début (@code{begin}) ou la fin (@code{end}) de la ligature.
+La commande suivante :
+
+@verbatim
+\override Staff.Stem #'thickness = #4.0
+@end verbatim
+
+@noindent
+rend les hampes plus épaisses (la valeur par défaut est 1.3, ce qui signifie qu'elles
+sont 1,3 fois plus épaisses que les lignes de la portée).  Dans la mesure où nous avons
+indiqué @code{Staff} comme contexte, ce réglage ne s'appliquera qu'à la portée courante ;
+les autres portées demeureront intactes.
 
-@item @code{p/q} désigne la valeur rythmique de la note que l'on veut affecter, ou de la
-plus brève des notes concernées.  Si cette règle doit s'appliquer à toutes les ligatures,
-remplacez @code{p} et @code{q} par des étoiles @qq{@code{*}}.
 
+@lilypond[quote,verbatim,relative=2,fragment]
+c4
+\override Staff.Stem #'thickness = #4.0
+c4
+c4
+c4
+@end lilypond
 
-@item @code{n/m} est le chiffre de mesure dans lequel la règle doit
-s'appliquer.  Si celle-ci doit s'appliquer dans toutes les métriques,
-remplacez @code{n} et @code{m} par des étoiles @qq{@code{*}}.
+La commande @code{\override} modifie donc la définition de l'objet @code{Stem}
+dans le contexte @code{Staff} ; toutes les hampes qui suivent seront affectées.
 
-@item @code{a/b} est l'emplacement, dans la mesure, auquel les ligatures doivent
-débuter ou s'achever (suivant la valeur @q{extrémité} que nous venons de voir).
+Tout comme avec la commande @code{\set}, l'argument @var{contexte} peut être omis, auquel
+cas le contexte par défaut (ici, @code{Voice}) sera employé.  La commande @code{\once}
+permet de n'appliquer la modification qu'une seule fois.
 
+@lilypond[quote,fragment,verbatim,relative=2]
+c4
+\once \override Stem #'thickness = #4.0
+c4
+c4
+@end lilypond
 
-@item @code{contexte} est un argument facultatif, qui détermine le contexte dans lequel
-la règle doit s'appliquer.  Par défaut, il s'agit de @code{'Voice}.
-@code{#(score-override-auto-beam-setting '(A B C D) E F)} équivaut à
-@code{#(override-auto-beam-setting '(A B C D) E F 'Score)}.
+La commande @code{\override} doit être entrée @emph{avant} l'objet concerné.
+Ainsi, lorsque l'on veut altérer un objet qui se prolonge, tel qu'une liaison,
+une ligature ou tout autre objet dit @emph{Spanner}, la commande @code{\override}
+doit être saisie avant que l'objet soit créé.
 
-@end itemize
+@lilypond[quote,fragment,verbatim,relative=2]
+\override Slur #'thickness = #3.0
+c8[( c
+\override Beam #'thickness = #0.6
+c8 c])
+@end lilypond
 
-Par exemple, si l'on veut que les ligatures s'achèvent toujours après la première noire :
+@noindent
+Dans cet exemple, la liaison (@emph{Slur}) est épaissie, mais non la ligature
+(@emph{Beam}).  En effet, le code qui lui est relatif n'a pas été inséré avant le début de
+la ligature, et demeure donc sans effet.
 
+De même que la commande @code{\unset}, la commande @code{\revert} défait
+ce qui a été fait par une commande @code{\override}.  Tout comme avec @code{\unset},
+elle ne peut annuler que les réglages effectués dans le même contexte.
+Ainsi dans l'exemple suivant, la commande @code{\revert} est sans effet.
 
 @example
-#(override-auto-beam-setting '(end * * * *) 1 4)
+\override Voice.Stem #'thickness = #4.0
+\revert Staff.Stem #'thickness
 @end example
 
-On peut obliger une règle de ligatures à ne s'appliquer qu'à des groupes dont la note
-la plus brève est d'une valeur précise :
-
-@lilypond[quote,fragment,ragged-right,verbatim,relative=2]
-\time 2/4
-#(override-auto-beam-setting '(end 1 16 * *) 1 16)
-a16 a a a a a a a |
-a32 a a a a16 a a a a a |
-#(override-auto-beam-setting '(end 1 32 * *) 1 16)
-a32 a a a a16 a a a a a |
-@end lilypond
+Il existe, à l'intérieur même de certaines propriétés, des options que l'on
+nomme @q{sous-propriétés}.  La syntaxe est alors
 
-On peut obliger une règle de ligatures à ne s'appliquer que pour un chiffre de mesure
-précis :
-
-@lilypond[quote,fragment,ragged-right,verbatim,relative=2]
-\time 5/8
-#(override-auto-beam-setting '(end * * 5 8) 2 8)
-c8 c d d d
-\time 4/4
-e8 e f f e e d d
-\time 5/8
-c8 c d d d
-@end lilypond
+@c leave this as a long long
+@example
+\override @var{contexte}.@var{objet} #'@var{propriété} #'@var{sous-propriété} = #@var{valeur}
+@end example
 
-Enfin, on peut désactiver une règle de ligatures au moyen du réglage suivant :
+@noindent
+Ainsi, par exemple :
 
 @example
-#(revert-auto-beam-setting '(extrémité p q n m) a b [contexte])
+\override Stem #'(details beamed-lengths) = #'(4 4 3)
 @end example
 
-@noindent
-@code{extrémité}, @code{p}, @code{q}, @code{n}, @code{m}, @code{a}, @code{b} et @code{contexte}
-étant les mêmes que plus haut.  Il est même possible de désactiver des règles que l'on n'a pas
-explicitement créées : les règles par défaut, qui se trouvent dans le fichier @file{scm/@/auto@/-beam@/.scm}.
 
+@seealso
+Référence du programme : @rinternals{OverrideProperty}, @rinternals{RevertProperty},
+@rinternals{PropertySet}, @rinternals{Backend}, et
+@rinternals{All layout objects}.
 
 
-@lilypond[quote,fragment,ragged-right,verbatim,relative=2]
-\time 4/4
-a16 a a a a a a a a a a a a a a a
-#(revert-auto-beam-setting '(end 1 16 4 4) 1 4)
-a16 a a a a a a a a a a a a a a a
-@end lilypond
+@knownissues
 
-La commande @code{revert-auto-beam-setting} requiert exactement les mêmes arguments
-que la règle d'origine.  En d'autres termes, les étoiles ne seront pas prises en compte ici.
-
-@lilypond[quote,fragment,ragged-right,verbatim,relative=2]
-\time 1/4
-#(override-auto-beam-setting '(end 1 16 1 4) 1 8)
-a16 a a a
-#(revert-auto-beam-setting '(end 1 16 * *) 1 8) % ceci ne désactive pas la règle !
-a a a a
-#(revert-auto-beam-setting '(end 1 16 1 4) 1 8) % ceci marche
-a a a a
-@end lilypond
+La sous-couche Scheme ne vérifie pas la saisie des propriétés de façon
+très stricte.  Des références cycliques dans des valeurs Scheme peuvent
+de ce fait interrompre, ou faire planter le programme -- ou bien les deux.
 
 
+@node Changing context default settings
+@subsection Changing context default settings
 
-@c TODO:  old material -- not covered by above stuff, I think.
-Si, dans une mesure à 5/4, l'on veut que les ligatures soient regroupées temps par temps,
-il est nécessaire d'indiquer toutes les terminaisons de ligatures.
-@example
-#(override-auto-beam-setting '(end * * * *) 1 4 'Staff)
-#(override-auto-beam-setting '(end * * * *) 1 2 'Staff)
-#(override-auto-beam-setting '(end * * * *) 3 4 'Staff)
-#(override-auto-beam-setting '(end * * * *) 5 4 'Staff)
-@dots{}
-@end example
+Les réglages montrés dans les sous-sections @ref{The
+set command}, @ref{Modifying context plug-ins} et
+@ref{Layout tunings within contexts} peuvent également être saisis indépendamment
+de la musique dans le bloc @code{\layout}, au moyen de la commande @code{\context} :
 
-La même syntaxe peut servir à définir les points de départ des ligatures.
-Dans l'exemple suivant, les ligatures automatiques  ne peuvent se terminer 
-que sur une noire pointée.
 @example
-#(override-auto-beam-setting '(end * * * *) 3 8)
-#(override-auto-beam-setting '(end * * * *) 1 2)
-#(override-auto-beam-setting '(end * * * *) 7 8)
-@end example
-@c ???? Je n'y comprends rien --vv
-Dans une mesure à 4/4, cela implique que les ligatures ne peuvent se terminer que sur
-la troisième croche, ou sur le quatrième temps (après la valeur de deux fois trois croches).
+\layout @{
+  @dots{}
+  \context @{
+    \Staff
 
-Si une ligature se fait de manière inattendue, pensez à vérifer les règles automatiques
-dans le fichier @file{scm/@/auto@/-beam@/.scm} pour rechercher d'éventuels conflits, dans
-la mesure ou les règles par défaut s'ajoutent à vos propres règles.  Il est alors nécessaire
-de désactiver toute règle par défaut conduisant à des ligatures indésirables.
+    \set fontSize = #-2
+    \override Stem #'thickness = #4.0
+    \remove "Time_signature_engraver"
+  @}
+@}
+@end example
 
-Ainsi, pour obtenir des ligatures en groupes de @code{(3 4 3 2)} croches, dans une mesure à 12/8,
-il faudra préalablement utiliser :
+Le raccourci @code{\Staff} invoque les définitions inhérentes au contexte
+@code{Staff}, de façon à ce qu'elles puissent être modifiées.
 
+Les lignes suivantes affecteront toutes les portées (tous les contextes @code{Staff})
+dans la partition.
 @example
-%%% annulons les réglages par défaut relatifs à 12/8, dans scm/auto-beam.scm 
-#(revert-auto-beam-setting '(end * * 12 8) 3 8)
-#(revert-auto-beam-setting '(end * * 12 8) 3 4)
-#(revert-auto-beam-setting '(end * * 12 8) 9 8)
-
-%%% puis ajoutons nos propres règles
-#(override-auto-beam-setting '(end 1 8 12 8) 3 8)
-#(override-auto-beam-setting '(end 1 8 12 8) 7 8)
-#(override-auto-beam-setting '(end 1 8 12 8) 10 8)
+\set fontSize = #-2
+\override Stem #'thickness = #4.0
+\remove "Time_signature_engraver"
 @end example
 
-@cindex ligatures automatiques
-@cindex groupes de notes
-@funindex autoBeaming
-@cindex paroles
-
-Si des ligatures sont utilisées dans les paroles d'une chanson (pour indiquer des mélismes),
-les ligatures automatiques doivent être désactivées, avec @code{\autoBeamOff}.
-
+@noindent
+Les autres contextes peuvent être modifiés de même manière.
 
-@predefined
-
-@funindex \autoBeamOff
-@code{\autoBeamOff},
-@funindex \autoBeamOn
-@code{\autoBeamOn}.
-
-@commonprop
-
-Les groupes de notes reliées par les ligatures peuvent être spécifiés au moyen
-de la propriété @code{beatGrouping}.
-
-@lilypond[quote,verbatim,relative=2,fragment,ragged-right]
-\time 5/16
-\set beatGrouping = #'(2 3)
-c8[^"(2+3)" c16 c8]
-\set beatGrouping = #'(3 2)
-c8[^"(3+2)" c16 c8]
-@end lilypond
-
-
-@knownissues
-
-Si une partition se termine alors qu'une ligature automatique est restée inachevée,
-cette dernière ligature ne sera pas imprimée du tout.  C'est également valable dans
-le cas d'une musique polyphonique, saisie avec la syntaxe @code{<< @dots{} \\ @dots{}
->>}, où une voix se terminerait sans que la dernière ligature
-soit achevée.
-
-@node Interpretation contexts
-@section Interpretation contexts
-
-Cette section traite des contextes.
-
-@menu
-* Changing context properties on the fly::  
-* Modifying context plug-ins::  
-* Layout tunings within contexts::  
-* Changing context default settings::  
-* Defining new contexts::       
-* Aligning contexts::           
-* Vertical grouping of grobs::  
-@end menu
-
-
-@node Changing context properties on the fly
-@subsection Changing context properties on the fly
-
-@cindex propriétés
-@funindex \set
-@cindex modifier des propriétés
-
-Chaque contexte peut avoir plusieurs @emph{propriétés}, c'est-à-dire
-des variables qu'il inclut.  Ces dernières peuvent être modifiées @qq{à la volée},
-c'est-à-dire pendant que la compilation s'accomplit.  C'est là le rôle de la
-commande @code{\set}.
-
-@example
-\set @var{contexte}.@var{propriété} = #@var{valeur}
-@end example
-
-Ainsi :
-@lilypond[quote,verbatim,relative=2,fragment]
-R1*2
-\set Score.skipBars = ##t
-R1*2
-@end lilypond
-
-Cette commande permet de condenser les mesures vides de notes, en des silences
-multi-mesures.  Il s'agit d'un objet Scheme, auquel on attribue la valeur booléenne
-@q{vrai}, c'est-à-dire la lettre @code{#t} pour @q{True} en anglais.
-
-Ce changement étant appliqué @q{à la volée}, il n'affecte que le second groupe de notes.
-
-Si l'argument @var{contexte} n'est pas spécifié, alors la propriété cherchera à s'appliquer
-dans le contexte le plus restreint où elle est employée : le plus souvent
- @context{ChordNames}, @context{Voice}, ou @context{Lyrics}.  Dans l'exemple suivant,
-
-@lilypond[quote,verbatim,relative=2,fragment]
-c8 c c c
-\set autoBeaming = ##f
-c8 c c c
-@end lilypond
-
-@noindent
-aucun argument @var{contexte} n'a été donné à la commande @code{\set}.
-De ce fait, les ligatures automatiques sont désactivées dans le
-contexte actuel, c'est-à-dire @rinternals{Voice}.  Notez que le
-contexte le plus restreint n'est pas toujours le bon, 
-et peut ne pas contenir la propriété qui vous intéresse : ainsi, la propriété 
-@code{skipBars}, évoquée plus haut, ne relève pas du contexte @code{Voice}, 
-et le code suivant ne fonctionnera pas.
-
-@lilypond[quote,verbatim,relative=2,fragment]
-R1*2
-\set skipBars = ##t
-R1*2
-@end lilypond
-
-Les contextes s'organisent de façon hiérarchique : aussi, lorsqu'un contexte de niveau
-supérieur est spécifié (par exemple @context{Staff}), la propriété sera modifée dans
-tous les contextes inférieurs (tous les contextes @context{Voice}, par exemple)
-qu'il contient.
-
-@funindex \unset
-
-La commande @code{\unset} permet d'annuler la définition d'une propriété :
-
-@example
-\unset @var{contexte}.@var{propriété}
-@end example
-
-@noindent
-si et seulement si cette propriété à été définie dans ce @var{contexte}
-précis ; ainsi,
-
-@example
-\set Staff.autoBeaming = ##f
-@end example
-
-@noindent
-même s'il s'applique à tous les contextes @code{Voice} contenus dans le
-contexte @code{Staff}, ne peut être annulé au niveau @code{Voice}.  Le code
-suivant sera sans effet.
-
-@example
-\unset Voice.autoBeaming
-@end example
-
-@noindent
-En d'autres termes, la commande @code{\unset} doit impérativement être
-accompagnée du même contexte que la commande @code{\set} d'origine.
-Pour annuler l'effet, dans notre exemple, de @code{Staff.autoBeaming = ##f},
-il faut donc entrer :
-@example
-\unset Staff.autoBeaming
-@end example
-
-Si l'on se trouve dans le contexte le plus restreint, il n'est pas obligatoire,
-là encore, de spécifier le @var{contexte}.  Ainsi, les deux lignes suivantes sont équivalentes.
-
-
-@example
-\set Voice.autoBeaming = ##t
-\set autoBeaming = ##t
-@end example
-
-
-@cindex \once
-Pour modifier une propriété de façon à ce qu'elle ne s'applique qu'une seule fois,
-il convient d'employer la commande @code{\once} :
-
-@lilypond[quote,verbatim,relative=2,fragment]
-c4
-\once \set fontSize = #4.7
-c4
-c4
-@end lilypond
-
-Ici le changement de taille est annulé aussitôt après la note concernée.
-
-La référence du programme contient une description exhaustive de toutes les
-propriétés contexte par contexte : voir
-@ifhtml
-@rinternals{Tunable context properties}.
-@end ifhtml
-@ifnothtml
-Translation @expansion{} Tunable context properties.
-@end ifnothtml
-
-
-@node Modifying context plug-ins
-@subsection Modifying context plug-ins
-
-Les contextes, tels que @code{Score} ou @code{Staff}, ne contiennent
-pas que des propriétés ; ils mettent également en œuvre certains
-sous-programmes (@q{plug-ins}, pour employer le terme consacré) nommés
-@q{graveurs} (@q{engravers}, pour reprendre le terme anglais).
-Ces sous-programmes sont chargés de créer les différents éléments de notation :
-On trouve ainsi dans le contexte @code{Voice}, un graveur @code{Note_head_engraver},
-chargé des têtes de notes, et dans le contexte @code{Staff}, un graveur
-@code{Key_signature_engraver}, chargé de l'armure.
-
-Vous trouverez une description exhaustive de chaque graveur dans
-@ifhtml
-@rinternals{Engravers}.
-@end ifhtml
-@ifnothtml
-Program reference @expansion Translation @expansion{} Engravers.
-@end ifnothtml
-Chaque contexte mentionné dans
-@ifhtml
-@rinternals{Contexts}
-@end ifhtml
-@ifnothtml
-Program reference @expansion Translation @expansion{} Context.
-@end ifnothtml
-répertorie les graveurs mis en œuvre.
-
-
-On peut faire, au moyen de ces graveurs, sa propre @qq{cuisine}, en
-modifiant les contextes à volonté.
-
-
-Lorsque un contexte est créé, par la commande @code{\new} ou @code{\context}, on peut
-y adjoindre un bloc @code{\with} (en anglais @q{avec}), dans lequel il est possible
-d'ajouter (commande @code{\consists}) ou d'enlever (commande @code{\remove})
-des graveurs :
-
-@funindex \with
-
-@example
-\new @var{contexte} \with @{
-  \consists @dots{}
-  \consists @dots{}
-  \remove @dots{}
-  \remove @dots{}
-  @emph{etc.}
-@}
-@{
-  @emph{..musique..}
-@}
-@end example
-
-@noindent
-Ici les points de suspension @dots{} devront être remplacés par les noms
-des graveurs désirés.  Dans l'exemple suivant, on enlève du contexte
-@code{Staff}, le chiffre de mesure (graveur @code{Time_signature_engraver})
-et la clé (graveur @code{Clef_engraver}).
-
-@lilypond[quote,relative=1,verbatim,fragment]
-<<
-  \new Staff {
-    f2 g
-  }
-  \new Staff \with {
-     \remove "Time_signature_engraver"
-     \remove "Clef_engraver"
-  } {
-    f2 g2
-  }
->>
-@end lilypond
-
-La clé et le chiffre de mesure ont disparu de la deuxième portée.  C'est une méthode
-quelque peu radicale, puisqu'elle affectera toute la portée jusqu'à la fin de la
-partition.  L'espacement s'en trouve également affecté, ce qui peut être ou non
-l'effet recherché.  Une méthode plus sophistiquée aurait été de rendre ces objets
-transparents (voir @rlearning{Common tweaks}).
-
-Dans l'exemple suivant, voici une mise en pratique plus utile.  En temps
-normal, les barres de mesure et la métrique sont synchronisées verticalement
-dans toute la partition.  Les graveurs qui en sont responsables se nomment
-@code{Timing_translator} et @code{Default_bar_line_engraver}.
-En les enlevant du contexte @code{Score} pour les attribuer au contexte
-@code{Staff}, chaque portée peut désormais avoir sa propre métrique.
-
-@cindex polymétrique, partition
-@cindex Chiffres de mesure multiples
-
-@lilypond[quote,relative=1,ragged-right,verbatim,fragment]
-\new Score \with {
-  \remove "Timing_translator"
-  \remove "Default_bar_line_engraver"
-} <<
-  \new Staff \with {
-    \consists "Timing_translator"
-    \consists "Default_bar_line_engraver"
-  } {
-      \time 3/4
-      c4 c c c c c
-  }
-  \new Staff \with {
-    \consists "Timing_translator"
-    \consists "Default_bar_line_engraver"
-  } {
-       \time 2/4
-       c4 c c c c c
-  }
->>
-@end lilypond
-
-
-@node Layout tunings within contexts
-@subsection Layout tunings within contexts
-
-Chaque contexte est chargé de créer plusieurs types d'objets graphiques.
-Il contient également les réglages nécessaires pour chacun de ces objets.
-Si l'on modifie ces réglages, les objets n'auront plus la même apparence.
-
-La syntaxe employée pour ce faire est
-
-@example
-\override @var{contexte}.@var{objet} #'@var{propriété} = #@var{valeur}
-@end example
-
-Ici @var{objet} est un objet graphique, tel que @code{Stem} (les hampes)
-ou @code{NoteHead} (les têtes de note) ; @var{propriété} est une variable
-(désignée par un symbole, ce qui explique l'apostrophe) employée par le système
-de mise en page.  La sous-section @ref{Constructing a tweak} vous
-aidera à savoir quoi mettre à la place de @var{objet}, @var{propriété} et
-@var{valeur} ; notre propos n'est ici que d'examiner l'emploi de cette commande.
-
-La commande suivante :
-
-@verbatim
-\override Staff.Stem #'thickness = #4.0
-@end verbatim
-
-@noindent
-rend les hampes plus épaisses (la valeur par défaut est 1.3, ce qui signifie qu'elles 
-sont 1,3 fois plus épaisses que les lignes de la portée).  Dans la mesure où nous avons
-indiqué @context{Staff} comme contexte, ce réglage ne s'appliquera qu'à la portée courante ;
-les autres portées demeureront intactes.
-
-
-@lilypond[quote,verbatim,relative=2,fragment]
-c4
-\override Staff.Stem #'thickness = #4.0
-c4
-c4
-c4
-@end lilypond
-
-La commande @code{\override} modifie donc la définition de l'objet @code{Stem}
-dans le contexte @context{Staff} ; toutes les hampes qui suivent seront affectées.
-
-Tout comme avec la commande @code{\set}, l'argument @var{contexte} peut être omis, auquel
-cas le contexte par défaut (ici, @context{Voice}) sera employé.  La commande @code{\once}
-permet de n'appliquer la modification qu'une seule fois.
-
-@lilypond[quote,fragment,verbatim,relative=2]
-c4
-\once \override Stem #'thickness = #4.0
-c4
-c4
-@end lilypond
-
-La commande @code{\override} doit être entrée @emph{avant} l'objet concerné.
-Ainsi, lorsque l'on veut altérer un objet qui se prolonge, tel qu'une liaison,
-une ligature ou tout autre objet dit @emph{Spanner}, la commande @code{\override}
-doit être saisie avant que l'objet soit créé.
-
-@lilypond[quote,fragment,verbatim,relative=2]
-\override Slur #'thickness = #3.0
-c8[( c
-\override Beam #'thickness = #0.6
-c8 c])
-@end lilypond
-
-@noindent
-Dans cet exemple, la liaison (@emph{Slur}) est épaissie, mais non la ligature
-(@emph{Beam}).  En effet, le code qui lui est relatif n'a pas été inséré avant le début de
-la ligature, et demeure donc sans effet.
-
-De même que la commande @code{\unset}, la commande @code{\revert} défait
-ce qui a été fait par une commande @code{\override}.  Tout comme avec @code{\unset},
-elle ne peut annuler que les réglages effectués dans le même contexte.
-Ainsi dans l'exemple suivant, la commande @code{\revert} est sans effet.
-
-@example
-\override Voice.Stem #'thickness = #4.0
-\revert Staff.Stem #'thickness
-@end example
-
-Il existe, à l'intérieur même de certaines propriétés, des options que l'on
-nomme @q{sous-propriétés}.  La syntaxe est alors
-
-@c leave this as a long long
-@example
-\override @var{contexte}.@var{objet} #'@var{propriété} #'@var{sous-propriété} = #@var{valeur}
-@end example
-
-@noindent
-Ainsi, par exemple :
-
-@example
-\override Stem #'details #'beamed-lengths = #'(4 4 3)
-@end example
-
-
-@seealso
-
-Référence du programme : @rinternals{OverrideProperty}, @rinternals{RevertProperty},
-@rinternals{PropertySet}, @rinternals{Backend}, et
-@rinternals{All layout objects}.
-
-
-@knownissues
-
-La sous-couche Scheme ne vérifie pas la saisie des propriétés de façon
-très stricte.  Des références cycliques dans des valeurs Scheme peuvent
-de ce fait interrompre, ou faire planter le programme -- ou bien les deux.
-
-
-@node Changing context default settings
-@subsection Changing context default settings
-
-Les réglages montrés dans les sous-sections @ref{Changing context
-properties on the fly}, @ref{Modifying context plug-ins} et
-@ref{Layout tunings within contexts} peuvent également être saisis indépendamment
-de la musique dans le bloc @code{\layout}, au moyen de la commande @code{\context} :
-
-@example
-\layout @{
-  @dots{}
-  \context @{
-    \Staff
-
-    \set fontSize = #-2
-    \override Stem #'thickness = #4.0
-    \remove "Time_signature_engraver"
-  @}
-@}
-@end example
-
-Le raccourci @code{\Staff} invoque les définitions inhérentes au contexte
-@context{Staff}, de façon à ce qu'elles puissent être modifiées.
-
-Les lignes suivantes affecteront toutes les portées (tous les contextes @context{Staff})
-dans la partition.
-@example
-\set fontSize = #-2
-\override Stem #'thickness = #4.0
-\remove "Time_signature_engraver"
-@end example
-
-@noindent
-Les autres contextes peuvent être modifiés de même manière.
-
-La commande @code{\set}, dans le bloc @code{\layout}, est facultative ; aussi
-les lignes suivantes produiront-elles le même effet.
+La commande @code{\set}, dans le bloc @code{\layout}, est facultative ; aussi
+les lignes suivantes produiront-elles le même effet.
 
 @example
 \context @{
@@ -1073,12 +452,12 @@ avoir invoqué @code{\RemoveEmptyStaffContext} :
 @node Defining new contexts
 @subsection Defining new contexts
 
-Les contextes tels que @context{Staff} ou @code{Voice} sont faits
+Les contextes tels que @code{Staff} ou @code{Voice} sont faits
 de briques de constructions empilées.  En combinant divers graveurs,
 il est possible de créer de nouveaux types de contextes.
 
 Dans l'exemple suivant, on construit, de zéro, un nouveau contexte très
-semblable à @context{Voice}, mais qui n'imprime que des têtes de notes en forme
+semblable à @code{Voice}, mais qui n'imprime que des têtes de notes en forme
 de barres obliques au centre de la portée.  Un tel contexte, par exemple, peut
 servir à indiquer un passage improvisé dans un morceau de jazz.
 
@@ -1088,6 +467,7 @@ servir à indiquer un passage improvisé dans un morceau de jazz.
   \name ImproVoice
   \type "Engraver_group"
   \consists "Note_heads_engraver"
+  \consists "Rhythmic_column_engraver"
   \consists "Text_engraver"
   \consists Pitch_squash_engraver
   squashedPosition = #0
@@ -1127,9 +507,9 @@ En lieu et place des points (@dots{}), voici les éléments à saisir :
 \name ImproVoice
 @end example
 
-@item Comme il est très semblable à @context{Voice}, nous souhaitons que toutes les
-commandes associées au @context{Voice} déjà existant, restent valables.  D'où nécessité
-de la commande @code{\alias}, qui va l'associer au contexte @context{Voice} :
+@item Comme il est très semblable à @code{Voice}, nous souhaitons que toutes les
+commandes associées au @code{Voice} déjà existant, restent valables.  D'où nécessité
+de la commande @code{\alias}, qui va l'associer au contexte @code{Voice} :
 
 @example
 \alias Voice
@@ -1151,7 +531,7 @@ squashedPosition = #0
 @end example
 
 @noindent
-Le graveur @rinternals{Pitch_squash_engraver} intercepte les notes créées par 
+Le graveur @rinternals{Pitch_squash_engraver} intercepte les notes créées par
 @rinternals{Note_heads_engraver}, et les @q{écrase} pour qu'elles aient toutes la
 même position verticale, définie par @code{squashedPosition} : ici il s'agit de la
 valeur@tie{}@code{0}, c'est-à-dire la ligne du milieu.
@@ -1165,7 +545,7 @@ valeur@tie{}@code{0}, c'est-à-dire la ligne du milieu.
 
 @item Afin que tous ces graveurs puissent travailler de concert, on leur adjoint un
 sous-programme spécial, introduit par la commande @code{\type} : il s'agit de
-@rinternals{Engraver_group},
+@code{Engraver_group},
 
 @example
 \type "Engraver_group"
@@ -1191,9 +571,9 @@ Récapitulons -- on se retrouve avec le bloc suivant :
 
 @funindex \accepts
 Ce n'est pas tout.  En effet, on veut intégrer le nouveau contexte
-@context{ImproVoice} dans la hiérarchie des contextes.  Tout comme le
+@code{ImproVoice} dans la hiérarchie des contextes.  Tout comme le
 contexte @code{Voice}, sa place est au sein du contexte @code{Staff}.
-Nous allons donc modifier le contexte @context{Staff},
+Nous allons donc modifier le contexte @code{Staff},
 au moyen de la commande @code{\accepts} :
 
 @example
@@ -1219,138 +599,63 @@ comme suit :
   @}
   \context @{
     \Staff
-    \accepts "ImproVoice"
-  @}
-@}
-@end example
-
-On peut alors saisir la musique, comme dans l'exemple plus haut :
-
-@example
-\relative c'' @{
-  a4 d8 bes8
-  \new ImproVoice @{
-    c4^"ad lib" c
-    c4 c^"dévêtez-vous"
-    c c_"tout en jouant :)"
-  @}
-  a1
-@}
-@end example
-
-
-@node Aligning contexts
-@subsection Aligning contexts
-
-Il est possible d'aligner verticalement chaque nouveau contexte,
-en-dessous ou au-dessus, par exemple dans le cas de musique vocale
-(@rlearning{Vocal ensembles}) ou d'@qq{ossias}.
-
-@cindex ossia
-@findex alignAboveContext
-@findex alignBelowContext
-
-@lilypond[quote,ragged-right]
-ossia = { f4 f f f }
-\score{
-  \relative c' \new Staff = "main" {
-    c4 c c c
-    <<
-      \new Staff \with {alignAboveContext=main} \ossia
-      { d8 f d f d f d f }
-    >>
-  }
-}
-@end lilypond
-
-
-@node Vertical grouping of grobs
-@subsection Vertical grouping of grobs
-
-Les objets @code{VerticalAlignment} et @code{VerticalAxisGroup}
-travaillent de concert.  Comme leurs noms anglais l'indiquent,
-@code{VerticalAxisGroup} regroupe différents objets tels que les portées
-(@code{Staff}), les paroles (@code{Lyrics}) et ainsi de suite ; puis
-@code{VerticalAlignment} synchronise verticalement ces différents groupes.
-En général, il n'y a qu'un seul @code{VerticalAlignment} pour l'ensemble
-de la partition, mais chaque contexte @context{Staff}, @context{Lyrics}, etc.
-possède son propre @code{VerticalAxisGroup}.
-
-
-@node The \override command
-@section The @code{\override} command
-
-La commande @code{\override} permet de modifier la mise en page
-en détail.  Examinons son utilisation concrètementet dans les détails.
-La syntaxe de cette commande ressemble généralement à :
-
-@example
-\override @var{contexte}.@var{objet} #'@var{propriété} = #@var{valeur}
-@end example
-
-La propriété @var{propriété} de l'objet @var{objet}, appartenant au contexte
-@var{contexte}, se voit ainsi attribuer la valeur @var{valeur}.
-
-@menu
-* Constructing a tweak::        
-* Navigating the program reference::  
-* Layout interfaces::           
-* Determining the grob property::  
-* Objects connected to the input::  
-* Using Scheme code instead of \tweak::  
-* \set versus \override::       
-* Difficult tweaks::            
-@end menu
-
-
-
-@node Constructing a tweak
-@subsection Constructing a tweak
+    \accepts "ImproVoice"
+  @}
+@}
+@end example
 
-Les commandes permettant de modifier l'apparence de la partition
-ressemblent en général à
+On peut alors saisir la musique, comme dans l'exemple plus haut :
 
 @example
-\override Voice.Stem #'thickness = #3.0
+\relative c'' @{
+  a4 d8 bes8
+  \new ImproVoice @{
+    c4^"ad lib" c
+    c4 c^"dévêtez-vous"
+    c c_"tout en jouant :)"
+  @}
+  a1
+@}
 @end example
 
-@noindent
-Pour élaborer un réglage de ce type, on a besoin de connaître précisément :
 
-@itemize
-@item le contexte : ici @context{Voice} (la voix).
-@item l'objet à affecter : ici @code{Stem} (les hampes).
-@item la propriété à modifier : ici @code{thickness} (l'épaisseur du trait).
-@item la valeur désirée : ici @code{3.0} (par défaut, elle est de 1.3).
-@end itemize
+@node Aligning contexts
+@subsection Aligning contexts
 
-Certaines @q{sous-propriétés} sont parfois contenues dans une propriété.
-La commande devient alors :
 
-@example
-\override Stem #'details #'beamed-lengths = #'(4 4 3)
-@end example
+Il est possible d'aligner verticalement chaque nouveau contexte,
+en-dessous ou au-dessus, par exemple dans le cas de musique vocale
+(@rlearning{Vocal ensembles}) ou d'@qq{ossias}.
 
-@cindex documentation exhaustive
-@cindex trouver des objets graphiques
-@cindex objets graphiques, description
-@cindex régler
-@funindex \override
+@cindex ossia
+@findex alignAboveContext
+@findex alignBelowContext
 
-Pour bien des propriétés, quel que soit le type de valeur requise,
-attribuer la valeur @q{faux} (@code{##f} en Scheme) reviendra à désactiver
-complètement l'action de la propriété qui se trouve ainsi purement
-ignorée par LilyPond.  Cela peut s'avérer fort utile pour des propriétés
-causant des désagréments.
+@lilypond[quote,ragged-right]
+ossia = { f4 f f f }
+\score{
+  \relative c' \new Staff = "main" {
+    c4 c c c
+    <<
+      \new Staff \with { alignAboveContext = #"main" } \ossia
+      { d8 f d f d f d f }
+    >>
+  }
+}
+@end lilypond
 
-@c such announcements are to be avoided -vv
-@ignore
-We demonstrate how to glean this information from the notation manual
-and the program reference.
-@end ignore
 
+@node Explaining the Internals Reference
+@section Explaining the Internals Reference
 
 
+@menu
+* Navigating the program reference::
+* Layout interfaces::
+* Determining the grob property::
+* Naming conventions::
+@end menu
+
 @node Navigating the program reference
 @subsection Navigating the program reference
 
@@ -1365,13 +670,10 @@ f
 Sur la page de la documentation relative aux doigtés, c'est-à-dire
 @ref{Fingering instructions}, se trouve l'indication suivante :
 
-@quotation
-@seealso
 
+@seealso
 Référence du programme : @rinternals{Fingering}.
 
-@end quotation
-
 
 @c  outdated info; probably will delete.
 @ignore
@@ -1425,7 +727,7 @@ Fingering objects are created by: @rinternals{Fingering_engraver} and
 @rinternals{New_fingering_engraver}.
 @end quotation
 
-En d'autres termes, @emph{Les indications de doigtés} 
+En d'autres termes, @emph{Les indications de doigtés}
 (@code{Fingering} en anglais) @emph{sont créées par les graveurs
 @rinternals{Fingering_engraver} et @rinternals{New_fingering_engraver}.}
 
@@ -1443,13 +745,13 @@ Music types accepted: @rinternals{fingering-event}
 
 @item @rinternals{fingering-event}:
 Music event type @code{fingering-event} is in Music expressions named
-@rinternals{FingerEvent}
+@rinternals{FingeringEvent}
 @end itemize
 
 Ce cheminement se produit, bien sûr, en sens inverse : nous sommes ici partis
 du résultat, et avons abouti aux évènements (en anglais @q{Events}) engendrés
 par le fichier d'entrée.  L'inverse est également possible : on peut partir d'un
-évènement, et suivre le cheminement de LilyPond qui aboutit à la création d'un 
+évènement, et suivre le cheminement de LilyPond qui aboutit à la création d'un
 ou plusieurs objets graphiques.
 
 La référence du programme peut également se parcourir comme un document normal.
@@ -1461,7 +763,7 @@ On y trouve des chapitres tels que
 @code{Music definitions}
 @end ifnothtml
 @rinternals{Translation}, ou encore @rinternals{Backend}.  Chaque chapitre
-recense toutes les définitions employées, et les propriétés sujettes à 
+recense toutes les définitions employées, et les propriétés sujettes à
 ajustements.
 
 @c -- what about adding a link to the glossary here ? -vv
@@ -1548,13 +850,13 @@ Cet objet admet les interfaces suivantes :
 Suit la liste des interfaces en question, présentées comme autant de liens,
 qui conduisent sur les pages dédiées à chacune d'entre elles.
 Chaque interface est dotée d'un certain nombre de propriétés, dont certaines
-peuvent être modifiées, et d'autres non (les @q{Internal properties}, ou 
+peuvent être modifiées, et d'autres non (les @q{Internal properties}, ou
 propriétés internes).
 
 Pour aller encore plus loin, plutôt que de simplement parler de l'objet
 @code{Fingering}, ce qui ne nous avance pas à grand chose, on peut aller explorer
 son âme même, dans les fichiers source de LilyPond (voir
-@rlearning{Default files}), en l'occurence le fichier
+@rlearning{Other sources of information}), en l'occurence le fichier
 @file{scm/@/define@/-grobs@/.scm} :
 
 @example
@@ -1580,101 +882,322 @@ son âme même, dans les fichiers source de LilyPond (voir
                     item-interface))))))
 @end example
 
-@noindent
-@dots{}où l'on découvre que l'objet @code{Fingering} n'est rien de plus qu'un
-amas de variables et de réglages.  La page de la Référence du programme est
-en fait directement engendrée par cette définition.
+@noindent
+@dots{}où l'on découvre que l'objet @code{Fingering} n'est rien de plus qu'un
+amas de variables et de réglages.  La page de la Référence du programme est
+en fait directement engendrée par cette définition.
+
+
+@node Determining the grob property
+@subsection Determining the grob property
+
+
+Nous voulions changer la position du chiffre @b{2} dans le fragment suivant :
+
+@lilypond[quote,fragment,relative=2,verbatim]
+c-2
+\stemUp
+f
+@end lilypond
+
+Dans la mesure où le @b{2} est placé, verticalement, à proximité de la note qui lui
+correspond, nous allons devoir trouver l'interface en charge de ce placement, qui se
+trouve être @code{side-position-interface}.  Sur la page de cette interface, on
+peut lire :
+
+@quotation
+@code{side-position-interface}
+
+Position a victim object (this one) next to other objects (the
+support).  The property @code{direction} signifies where to put the
+victim object relative to the support (left or right, up or down?)
+@end quotation
+
+@noindent
+Ce qui signifie
+@quotation
+@code{side-position-interface}
+
+Placer l'objet affecté à proximité d'autres objets.  La propriété
+@code{direction} indique où placer l'objet (à droite ou à gauche,
+en haut ou en bas).
+@end quotation
+
+@cindex padding
+@noindent
+En-dessous de cette description se trouve décrite la variable @code{padding} :
+
+@quotation
+@table @code
+@item padding
+(dimension, in staff space)
+
+Add this much extra space between objects that are next to each other.
+@end table
+@end quotation
+
+@noindent
+Ce qui signifie
+@quotation
+Ajouter tel espace supplémentaire entre des objets proches les uns des
+autres.
+@end quotation
+
+@noindent
+En augmentant la valeur de @code{padding}, on peut donc éloigner le doigté de la
+note.  La commande suivante insère trois unités d'espace vide entre la note et le doigté :
+
+@example
+\once \override Voice.Fingering #'padding = #3
+@end example
+
+En ajoutant cette commande avant la création du doigté (de l'objet @q{Fingering}),
+donc avant @code{c2}, on obtient le résultat suivant :
+
+@lilypond[quote,relative=2,fragment,verbatim]
+\once \override Voice.Fingering #'padding = #3
+c-2
+\stemUp
+f
+@end lilypond
+
+
+Dans le cas présent, le réglage intervient dans le contexte @code{Voice},
+ce qui pouvait également se déduire de la Référence du programme, où la page
+du graveur @rinternals{Fingering_engraver} indique :
+
+@quotation
+Fingering_engraver is part of contexts: @dots{} @rinternals{Voice}
+@end quotation
+
+@noindent
+Ce qui signifie
+@quotation
+Le graveur Fingering_engraver fait partie des contextes : @dots{} @rinternals{Voice}
+@end quotation
+
+
+@node Naming conventions
+@subsection Naming conventions
+
+@untranslated
+
+
+@node Modifying properties
+@section Modifying properties
+
+@c TODO change the menu and subsection node names to use
+@c backslash once the new macro to handle the refs
+@c is available.  Need to find and change all refs at
+@c the same time. -td
+
+@menu
+* Overview of modifying properties::
+* The set command::
+* The override command::
+* Constructing a tweak::
+* The tweak command::
+* set versus override::
+@end menu
+
+@node Overview of modifying properties
+@subsection Overview of modifying properties
+
+@untranslated
+
+
+@node The set command
+@subsection The @code{\set} command
+
+@cindex propriétés
+@funindex \set
+@cindex modifier des propriétés
+
+Chaque contexte peut avoir plusieurs @emph{propriétés}, c'est-à-dire
+des variables qu'il inclut.  Ces dernières peuvent être modifiées @qq{à la volée},
+c'est-à-dire pendant que la compilation s'accomplit.  C'est là le rôle de la
+commande @code{\set}.
+
+@example
+\set @var{contexte}.@var{propriété} = #@var{valeur}
+@end example
+
+Ainsi :
+@lilypond[quote,verbatim,relative=2,fragment]
+R1*2
+\set Score.skipBars = ##t
+R1*2
+@end lilypond
+
+Cette commande permet de condenser les mesures vides de notes, en des silences
+multi-mesures.  Il s'agit d'un objet Scheme, auquel on attribue la valeur booléenne
+@q{vrai}, c'est-à-dire la lettre @code{#t} pour @q{True} en anglais.
+
+Ce changement étant appliqué @q{à la volée}, il n'affecte que le second groupe de notes.
+
+Si l'argument @var{contexte} n'est pas spécifié, alors la propriété cherchera à s'appliquer
+dans le contexte le plus restreint où elle est employée : le plus souvent
+ @code{ChordNames}, @code{Voice}, ou @code{Lyrics}.  Dans l'exemple suivant,
+
+@lilypond[quote,verbatim,relative=2,fragment]
+c8 c c c
+\set autoBeaming = ##f
+c8 c c c
+@end lilypond
+
+@noindent
+aucun argument @var{contexte} n'a été donné à la commande @code{\set}.
+De ce fait, les ligatures automatiques sont désactivées dans le
+contexte actuel, c'est-à-dire @rinternals{Voice}.  Notez que le
+contexte le plus restreint n'est pas toujours le bon,
+et peut ne pas contenir la propriété qui vous intéresse : ainsi, la propriété
+@code{skipBars}, évoquée plus haut, ne relève pas du contexte @code{Voice},
+et le code suivant ne fonctionnera pas.
+
+@lilypond[quote,verbatim,relative=2,fragment]
+R1*2
+\set skipBars = ##t
+R1*2
+@end lilypond
+
+Les contextes s'organisent de façon hiérarchique : aussi, lorsqu'un contexte de niveau
+supérieur est spécifié (par exemple @code{Staff}), la propriété sera modifée dans
+tous les contextes inférieurs (tous les contextes @code{Voice}, par exemple)
+qu'il contient.
+
+@funindex \unset
+
+La commande @code{\unset} permet d'annuler la définition d'une propriété :
+
+@example
+\unset @var{contexte}.@var{propriété}
+@end example
+
+@noindent
+si et seulement si cette propriété à été définie dans ce @var{contexte}
+précis ; ainsi,
+
+@example
+\set Staff.autoBeaming = ##f
+@end example
+
+@noindent
+même s'il s'applique à tous les contextes @code{Voice} contenus dans le
+contexte @code{Staff}, ne peut être annulé au niveau @code{Voice}.  Le code
+suivant sera sans effet.
+
+@example
+\unset Voice.autoBeaming
+@end example
+
+@noindent
+En d'autres termes, la commande @code{\unset} doit impérativement être
+accompagnée du même contexte que la commande @code{\set} d'origine.
+Pour annuler l'effet, dans notre exemple, de @code{Staff.autoBeaming = ##f},
+il faut donc entrer :
+@example
+\unset Staff.autoBeaming
+@end example
+
+Si l'on se trouve dans le contexte le plus restreint, il n'est pas obligatoire,
+là encore, de spécifier le @var{contexte}.  Ainsi, les deux lignes suivantes sont équivalentes.
 
-@node Determining the grob property
-@subsection Determining the grob property
 
-Nous voulions changer la position du chiffre @b{2} dans le fragment suivant :
+@example
+\set Voice.autoBeaming = ##t
+\set autoBeaming = ##t
+@end example
 
-@lilypond[quote,fragment,relative=2,verbatim]
-c-2
-\stemUp
-f
+
+@cindex \once
+Pour modifier une propriété de façon à ce qu'elle ne s'applique qu'une seule fois,
+il convient d'employer la commande @code{\once} :
+
+@lilypond[quote,verbatim,relative=2,fragment]
+c4
+\once \set fontSize = #4.7
+c4
+c4
 @end lilypond
 
-Dans la mesure où le @b{2} est placé, verticalement, à proximité de la note qui lui
-correspond, nous allons devoir trouver l'interface en charge de ce placement, qui se
-trouve être @code{side-position-interface}.  Sur la page de cette interface, on
-peut lire :
+Ici le changement de taille est annulé aussitôt après la note concernée.
 
-@quotation
-@code{side-position-interface}
+La référence du programme contient une description exhaustive de toutes les
+propriétés contexte par contexte : voir
+@ifhtml
+@rinternals{Tunable context properties}.
+@end ifhtml
+@ifnothtml
+Translation @expansion{} Tunable context properties.
+@end ifnothtml
 
-Position a victim object (this one) next to other objects (the
-support).  The property @code{direction} signifies where to put the
-victim object relative to the support (left or right, up or down?)
-@end quotation
 
-@noindent
-Ce qui signifie
-@quotation
-@code{side-position-interface}
+@node The override command
+@subsection The @code{\override} command
 
-Placer l'objet affecté à proximité d'autres objets.  La propriété
-@code{direction} indique où placer l'objet (à droite ou à gauche,
-en haut ou en bas).
-@end quotation
 
-@cindex padding
-@noindent
-En-dessous de cette description se trouve décrite la variable @code{padding} :
+La commande @code{\override} permet de modifier la mise en page
+en détail.  Examinons son utilisation concrètementet dans les détails.
+La syntaxe de cette commande ressemble généralement à :
 
-@quotation
-@table @code
-@item padding
-(dimension, in staff space)
+@example
+\override @var{contexte}.@var{objet} #'@var{propriété} = #@var{valeur}
+@end example
 
-Add this much extra space between objects that are next to each other.
-@end table
-@end quotation
+La propriété @var{propriété} de l'objet @var{objet}, appartenant au contexte
+@var{contexte}, se voit ainsi attribuer la valeur @var{valeur}.
 
-@noindent
-Ce qui signifie
-@quotation 
-Ajouter tel espace supplémentaire entre des objets proches les uns des
-autres.
-@end quotation
 
-@noindent
-En augmentant la valeur de @code{padding}, on peut donc éloigner le doigté de la
-note.  La commande suivante insère trois unités d'espace vide entre la note et le doigté :
+@c deprecated node. Delete. --fv
+@node Constructing a tweak
+@subsection Constructing a tweak
+
+Les commandes permettant de modifier l'apparence de la partition
+ressemblent en général à
 
 @example
-\once \override Voice.Fingering #'padding = #3
+\override Voice.Stem #'thickness = #3.0
 @end example
 
-En ajoutant cette commande avant la création du doigté (de l'objet @q{Fingering}),
-donc avant @code{c2}, on obtient le résultat suivant :
+@noindent
+Pour élaborer un réglage de ce type, on a besoin de connaître précisément :
 
-@lilypond[quote,relative=2,fragment,verbatim]
-\once \override Voice.Fingering #'padding = #3
-c-2
-\stemUp
-f
-@end lilypond
+@itemize
+@item le contexte : ici @code{Voice} (la voix).
+@item l'objet à affecter : ici @code{Stem} (les hampes).
+@item la propriété à modifier : ici @code{thickness} (l'épaisseur du trait).
+@item la valeur désirée : ici @code{3.0} (par défaut, elle est de 1.3).
+@end itemize
 
+Certaines @q{sous-propriétés} sont parfois contenues dans une propriété.
+La commande devient alors :
 
-Dans le cas présent, le réglage intervient dans le contexte @context{Voice},
-ce qui pouvait également se déduire de la Référence du programme, où la page
-du graveur @rinternals{Fingering_engraver} indique :
+@example
+\override Stem #'(details beamed-lengths) = #'(4 4 3)
+@end example
 
-@quotation
-Fingering_engraver is part of contexts: @dots{} @rinternals{Voice}
-@end quotation
+@cindex documentation exhaustive
+@cindex trouver des objets graphiques
+@cindex objets graphiques, description
+@cindex régler
+@funindex \override
 
-@noindent
-Ce qui signifie
-@quotation
-Le graveur Fingering_engraver fait partie des contextes : @dots{} @rinternals{Voice}
-@end quotation
+Pour bien des propriétés, quel que soit le type de valeur requise,
+attribuer la valeur @q{faux} (@code{##f} en Scheme) reviendra à désactiver
+complètement l'action de la propriété qui se trouve ainsi purement
+ignorée par LilyPond.  Cela peut s'avérer fort utile pour des propriétés
+causant des désagréments.
+
+@c such announcements are to be avoided -vv
+@ignore
+We demonstrate how to glean this information from the notation manual
+and the program reference.
+@end ignore
 
 
-@node Objects connected to the input
-@subsection Objects connected to the input
+@node The tweak command
+@subsection The @code{\tweak} command
+
 
 @funindex \tweak
 
@@ -1697,11 +1220,11 @@ Comme on peut le voir, les propriétés sont ici modifiées directement
 en même temps que les objets sont saisis.  Il n'est plus besoin de spécifier ni
 le nom de l'objet (@emph{grob}), ni le contexte dans lequel cela doit s'appliquer.
 
-Ce procédé ne marche que pour des objets directement liés aux évènements 
+Ce procédé ne marche que pour des objets directement liés aux évènements
 (@rinternals{Event}) du fichier source.  Par exemple :
 
 @itemize @bullet
-@item Les têtes de notes au sein d'un accord, qui sont directement engendrées par 
+@item Les têtes de notes au sein d'un accord, qui sont directement engendrées par
 les hauteurs indiquées
 @item Les signes d'articulation, engendrés par les indications de ponctuation.
 @end itemize
@@ -1723,55 +1246,10 @@ pas directement rendue ; c'est pourquoi le code suivant ne sera d'aucun effet :
 Voir pour plus de détails @ref{Displaying music expressions}.
 
 
-@node Using Scheme code instead of \tweak
-@subsection Using Scheme code instead of @code{\tweak}
-
-L'inconvénient principal de la commande @code{\tweak} est la rigidité de sa
-syntaxe.  Par exemple, le code suivant produit une erreur.
-
-@example
-F = \tweak #'font-size #-3 -\flageolet
-
-\relative c'' @{
-  c4^\F c4_\F
-@}
-@end example
-
-@noindent
-En d'autres termes, @code{\tweak} ne se comporte pas comme une articulation :
-il ne peut notamment pas être accolé avec les symboles @samp{^} ou @samp{_}.
-
-C'est en se servant du langage Scheme que l'on peut résoudre ce problème.
-Dans cet exemple, on a recours aux méthodes décrites dans @ref{Adding 
-articulation to notes (example)}, en particulier quant à l'emploi de
-@code{\displayMusic}.
-
-@example
-F = #(let ((m (make-music 'ArticulationEvent
-                          'articulation-type "flageolet")))
-       (set! (ly:music-property m 'tweaks)
-             (acons 'font-size -3
-                    (ly:music-property m 'tweaks)))
-       m)
-\relative c'' @{
-  c4^\F c4_\F
-@}
-@end example
-
-@noindent
-Ici les propriétés @code{tweak} de l'objet flageolet nommé
-@samp{m} (créé au moyen de @code{make-music}) sont extraites par
-@code{ly:music-property}, une nouvelle valeur de la taille de fonte
-est ajoutée à la liste de ses propriétés (grâce à la fonction Scheme
-@code{acons}), et le résultat de cette opération est renvoyé par @code{set!}.
-Le dernier élément, dans ce bloc @code{let}, est la valeur finale de
-@samp{m} lui-même.
-
-
-@node \set versus \override
+@node set versus override
 @subsection @code{\set} vs. @code{\override}
 
+
 Si les propriétés peuvent être modifiées de deux façons, par les commandes
 @code{\set} et @code{\override}, c'est qu'il y a deux types de propriétés.
 
@@ -1820,90 +1298,207 @@ courante, une propriété spéciale a été créée.  Elle doit
 être modifiée avec la commande @code{\set}.
 
 
-@node Difficult tweaks
-@subsection Difficult tweaks
 
-Certains réglages sont plus délicats que d'autres.
+@node Useful concepts and properties
+@section Useful concepts and properties
 
-@itemize @bullet
 
+@menu
+* Input modes::
+* Direction and placement::
+* Distances and measurements::
+* Staff symbol properties::
+* Spanners::
+* Visibility of objects::
+* Line styles::
+* Rotating objects::
+@end menu
+
+@node Input modes
+@subsection Input modes
 
-@item
-L'un d'entre eux est l'apparence des objets dits @q{spanner}, qui s'étendent 
-horizontalement, tels que les liaisons.  Si, en principe, un seul de ces objets
-est créé à la fois et peut donc être modifié de façon habituelle, lorsque ces
-objets doivent enjamber un changement de ligne, ils sont dupliqués au début
-du ou des systèmes suivants.  Comme ces objets sont des clones de l'objet d'origine,
-ils en héritent toutes les propriétés, y compris les éventuelles commandes @code{\override}.
+@untranslated
 
 
-En d'autres termes, une commande @code{\override} affecte toujours les deux extrémités
-d'un objet @q{spanner}.  Pour ne modifier que la partie précédant ou suivant le changement
-de ligne, il faut intervenir directement dans le processus de mise en page.  
-La fonction de rappel @code{after-line-breaking} contient toute l'opération Scheme
-effectuée lorsque les sauts de lignes ont été déterminés, et que des objets graphiques
-ont été divisés sur des systèmes différents.
+@node Direction and placement
+@subsection Direction and placement
 
-Dans l'exemple suivant, on définit une nouvelle opération nommée
-@code{my-callback}.  Cette opération
+@untranslated
 
-@itemize @bullet
-@item
-détermine si l'objet a été divisé à l'occasion d'un changement de ligne
-@item
-si oui, recherche les différents morceaux de l'objet
-@item
-vérifie si l'objet considéré est bien la deuxième moitié d'un objet divisé
-@item
-si oui, applique un espacement supplémentaire (@code{extra-offset}).
-@end itemize
 
-On ajoute cette procédure à l'objet @rinternals{Tie} (liaison de tenue),
-de façon à ce que le deuxième morceau d'une liaison divisée soit rehaussé.
+@node Distances and measurements
+@subsection Distances and measurements
 
-@c KEEP LY
-@lilypond[quote,verbatim,ragged-right]
-#(define (my-callback grob)
-  (let* (
-         ; l'objet a-t-il été divisé ?
-         (orig (ly:grob-original grob))
+@untranslated
 
-         ; si oui, rechercher les morceaux frères (siblings)
-         (siblings (if (ly:grob? orig)
-                     (ly:spanner-broken-into orig) '() )))
 
-   (if (and (>= (length siblings) 2)
-             (eq? (car (last-pair siblings)) grob))
-     (ly:grob-set-property! grob 'extra-offset '(-2 . 5)))))
+@node Staff symbol properties
+@subsection Staff symbol properties
 
-\relative c'' {
-  \override Tie #'after-line-breaking =
-  #my-callback
-  c1 ~ \break c2 ~ c
-}
-@end lilypond
+@untranslated
 
-@noindent
-Lorsque cette astuce va être appliquée, notre nouvelle fonction de rappel
-@code{after-line-breaking} devra également appeler celle d'origine
-(@code{after-line-breaking}), si elle existe.
-Ainsi, pour l'utiliser dans le cas d'un crescendo (objet @code{Hairpin}),
-il faudra appeler également @code{ly:hairpin::after-line-breaking}.
 
+@node Spanners
+@subsection Spanners
 
-@item Pour des raisons d'ordre technique, certains objets ne peuvent être modifiés par
-@code{\override}.  Parmi ceux-là, les objets @code{NonMusicalPaperColumn}
-et @code{PaperColumn}.  La commande @code{\overrideProperty} sert à les modifier, de
-façon similaire à @code{\once \override}, mais avec une syntaxe différente :
+@untranslated
 
-@example
-\overrideProperty
-#"Score.NonMusicalPaperColumn"  % Nom de l'objet
-#'line-break-system-details     % Nom de la propriété
-#'((next-padding . 20))         % valeur
-@end example
 
-Notez cependant que la commande @code{\override} peut tout de même être appliquée
-à @code{NoteMusicalPaperColumn} et @code{PaperColumn} dans un bloc @code{\context}.
+@unnumberedsubsubsec Using the @code{spanner-interface}
+@unnumberedsubsubsec Using the @code{line-spanner-interface}
+@node Visibility of objects
+@subsection Visibility of objects
+
+@untranslated
+
+
+@menu
+* Removing the stencil::
+* Making objects transparent::
+* Painting objects white::
+* Using break-visibility::
+* Special considerations::
+@end menu
+
+@node Removing the stencil
+@unnumberedsubsubsec Removing the stencil
+
+@untranslated
+
+
+@node Making objects transparent
+@unnumberedsubsubsec Making objects transparent
+
+@untranslated
+
+
+@node Painting objects white
+@unnumberedsubsubsec Painting objects white
+
+@untranslated
+
+
+@node Using break-visibility
+@unnumberedsubsubsec Using break-visibility
+
+@untranslated
+
+
+@node Special considerations
+@unnumberedsubsubsec Special considerations
+
+@untranslated
+
+
+@node Line styles
+@subsection Line styles
+
+@untranslated
+
+
+@node Rotating objects
+@subsection Rotating objects
+
+@untranslated
+
+
+@menu
+* Rotating layout objects::
+* Rotating markup::
+@end menu
+
+@node Rotating layout objects
+@unnumberedsubsubsec Rotating layout objects
+
+@untranslated
+
+
+@node Rotating markup
+@unnumberedsubsubsec Rotating markup
+
+@untranslated
+
+
+@node Advanced tweaks
+@section Advanced tweaks
+
+@untranslated
+
+
+@menu
+* Aligning objects::
+* Vertical grouping of grobs::
+* Modifying stencils::
+* Modifying shapes::
+@end menu
+
+@node Aligning objects
+@subsection Aligning objects
+
+@untranslated
+
+
+@menu
+* Setting @code{X-offset} and @code{Y-offset} directly::
+* Using the @code{side-position-interface}::
+* Using the @code{self-alignment-interface}::
+* Using the @code{break-alignable-interface}::
+@end menu
+
+@node Setting @code{X-offset} and @code{Y-offset} directly
+@unnumberedsubsubsec Setting @code{X-offset} and @code{Y-offset} directly
+
+@untranslated
+
+
+@node Using the @code{side-position-interface}
+@unnumberedsubsubsec Using the @code{side-position-interface}
+
+@untranslated
+
+
+@node Using the @code{self-alignment-interface}
+@unnumberedsubsubsec Using the @code{self-alignment-interface}
+
+@untranslated
+
+
+@unnumberedsubsubsec Using the @code{aligned-on-parent} procedures
+@unnumberedsubsubsec Using the @code{centered-on-parent} procedures
+@node Using the @code{break-alignable-interface}
+@unnumberedsubsubsec Using the @code{break-alignable-interface}
+
+@untranslated
+
+
+@node Vertical grouping of grobs
+@subsection Vertical grouping of grobs
+
+Les objets @code{VerticalAlignment} et @code{VerticalAxisGroup}
+travaillent de concert.  Comme leurs noms anglais l'indiquent,
+@code{VerticalAxisGroup} regroupe différents objets tels que les portées
+(@code{Staff}), les paroles (@code{Lyrics}) et ainsi de suite ; puis
+@code{VerticalAlignment} synchronise verticalement ces différents groupes.
+En général, il n'y a qu'un seul @code{VerticalAlignment} pour l'ensemble
+de la partition, mais chaque contexte @code{Staff}, @code{Lyrics}, etc.
+possède son propre @code{VerticalAxisGroup}.
+
+
+@node Modifying stencils
+@subsection Modifying stencils
+
+@untranslated
+
+
+@node Modifying shapes
+@subsection Modifying shapes
+
+@menu
+* Modifying ties and slurs::
+@end menu
+
+@node Modifying ties and slurs
+@unnumberedsubsubsec Modifying ties and slurs
+
+@untranslated
 
-@end itemize