]> git.donarmstrong.com Git - lilypond.git/blobdiff - Documentation/fr/user/changing-defaults.itely
lilypond-book robustness: ensure EOL at the end of @verbatim
[lilypond.git] / Documentation / fr / user / changing-defaults.itely
index 5606cb51d4d2b9d4a84b17b177b8f848f1caf5ea..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,364 +65,98 @@ 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::       
-@end menu
-
-
-@node Automatic notation
-@section Automatic notation
-
-Cette section s'intéresse au réglage de l'impression automatique des
-ligatures.
-
-@menu
-* Setting automatic beam behavior::  
+* Interpretation contexts::
+* Explaining the Internals Reference::
+* Modifying properties::
+* Useful concepts and properties::
+* Advanced tweaks::
 @end menu
 
-@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 [TODO: use \applyContext]
-
-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}.
-
-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])
-@end example
-
-@itemize @bullet
-
-@item @code{extrémité} désigne le début (@code{begin}) ou la fin (@code{end}) de la ligature.
-
-@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{*}}.
-
-
-@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{*}}.
-
-@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).
-
-
-@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)}.
-
-@end itemize
-
-Par exemple, si l'on veut que les ligatures s'achèvent toujours après la première noire :
-
-
-@example
-#(override-auto-beam-setting '(end * * * *) 1 4)
-@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
-
-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
-
-Enfin, on peut désactiver une règle de ligatures au moyen du réglage suivant :
-
-@example
-#(revert-auto-beam-setting '(extrémité p q n m) a b [contexte])
-@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}.
-
-
-
-@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
-
-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
-
-
-
-@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
-
-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).
-
-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.
-
-Ainsi, pour obtenir des ligatures en groupes de @code{(3 4 3 2)} croches, dans une mesure à 12/8,
-il faudra préalablement utiliser :
-
-@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)
-@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}.
-
-
-@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::  
+* Contexts explained::
+* Creating contexts::
+* Modifying context plug-ins::
+* Layout tunings within contexts::
+* Changing context default settings::
+* Defining new contexts::
+* Aligning contexts::
 @end menu
 
+@node Contexts explained
+@subsection Contexts explained
 
-@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
+@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
 
-@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.
+@c TODO Improve layout, order and consistency of wording -td
 
-@lilypond[quote,verbatim,relative=2,fragment]
-R1*2
-\set skipBars = ##t
-R1*2
-@end lilypond
+@c TODO Add introduction which explains contexts in generality  -td
 
-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.
+@c TODO Describe propagation of property values -td
 
-@funindex \unset
 
-La commande @code{\unset} permet d'annuler la définition d'une propriété :
+@menu
+* Score - the master of all contexts::
+* Top-level contexts - staff containers::
+* Intermediate-level contexts - staves::
+* Bottom-level contexts - voices::
+@end menu
 
-@example
-\unset @var{contexte}.@var{propriété}
-@end example
+@node Score - the master of all contexts
+@unnumberedsubsubsec Score - the master of all contexts
 
-@noindent
-si et seulement si cette propriété à été définie dans ce @var{contexte}
-précis ; ainsi,
+@untranslated
 
-@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.
+@node Top-level contexts - staff containers
+@unnumberedsubsubsec Top-level contexts - staff containers
 
-@example
-\unset Voice.autoBeaming
-@end example
+@untranslated
 
-@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 Intermediate-level contexts - staves
+@unnumberedsubsubsec Intermediate-level contexts - staves
 
+@untranslated
 
-@example
-\set Voice.autoBeaming = ##t
-\set autoBeaming = ##t
-@end example
 
+@node Bottom-level contexts - voices
+@unnumberedsubsubsec Bottom-level contexts - voices
 
-@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} :
+@untranslated
 
-@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.
+@node Creating contexts
+@subsection Creating contexts
 
-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
+@untranslated
 
 
 @node Modifying context plug-ins
@@ -438,17 +173,17 @@ chargé des têtes de notes, et dans le contexte @code{Staff}, un graveur
 
 Vous trouverez une description exhaustive de chaque graveur dans
 @ifhtml
-@rinternals{Engravers}.
+@rinternals{Engravers and Performers}.
 @end ifhtml
 @ifnothtml
-Program reference @expansion Translation @expansion{} Engravers.
+Program reference @expansion{} Translation @expansion{} Engravers.
 @end ifnothtml
 Chaque contexte mentionné dans
 @ifhtml
 @rinternals{Contexts}
 @end ifhtml
 @ifnothtml
-Program reference @expansion Translation @expansion{} Context.
+Program reference @expansion{} Translation @expansion{} Context.
 @end ifnothtml
 répertorie les graveurs mis en œuvre.
 
@@ -501,7 +236,7 @@ La clé et le chiffre de mesure ont disparu de la deuxième portée.  C'est une
 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}).
+transparents (voir @rlearning{Visibility and color of objects}).
 
 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
@@ -536,6 +271,7 @@ En les enlevant du contexte @code{Score} pour les attribuer au contexte
 @end lilypond
 
 
+@c deprecated node: delete. --fv
 @node Layout tunings within contexts
 @subsection Layout tunings within contexts
 
@@ -563,9 +299,9 @@ La commande suivante :
 @end verbatim
 
 @noindent
-rend les hampes plus épaisses (la valeur par défaut est 1.3, ce qui signifie qu'elles 
+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 ;
+indiqué @code{Staff} comme contexte, ce réglage ne s'appliquera qu'à la portée courante ;
 les autres portées demeureront intactes.
 
 
@@ -578,10 +314,10 @@ 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.
+dans le contexte @code{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}
+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]
@@ -630,12 +366,11 @@ nomme @q{sous-propriétés}.  La syntaxe est alors
 Ainsi, par exemple :
 
 @example
-\override Stem #'details #'beamed-lengths = #'(4 4 3)
+\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}.
@@ -651,8 +386,8 @@ 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
+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} :
 
@@ -670,9 +405,9 @@ de la musique dans le bloc @code{\layout}, au moyen de la commande @code{\contex
 @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.
+@code{Staff}, de façon à ce qu'elles puissent être modifiées.
 
-Les lignes suivantes affecteront toutes les portées (tous les contextes @context{Staff})
+Les lignes suivantes affecteront toutes les portées (tous les contextes @code{Staff})
 dans la partition.
 @example
 \set fontSize = #-2
@@ -717,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.
 
@@ -732,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
@@ -771,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
@@ -795,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.
@@ -809,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"
@@ -835,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
@@ -886,6 +622,7 @@ On peut alors saisir la musique, comme dans l'exemple plus haut :
 @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}.
@@ -900,7 +637,7 @@ ossia = { f4 f f f }
   \relative c' \new Staff = "main" {
     c4 c c c
     <<
-      \new Staff \with {alignAboveContext=main} \ossia
+      \new Staff \with { alignAboveContext = #"main" } \ossia
       { d8 f d f d f d f }
     >>
   }
@@ -908,93 +645,17 @@ ossia = { f4 f f 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
+@node Explaining the Internals Reference
+@section Explaining the Internals Reference
 
-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::            
+* Navigating the program reference::
+* Layout interfaces::
+* Determining the grob property::
+* Naming conventions::
 @end menu
 
-
-
-@node Constructing a tweak
-@subsection Constructing a tweak
-
-Les commandes permettant de modifier l'apparence de la partition
-ressemblent en général à
-
-@example
-\override Voice.Stem #'thickness = #3.0
-@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
-
-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
-
-@cindex documentation exhaustive
-@cindex trouver des objets graphiques
-@cindex objets graphiques, description
-@cindex régler
-@funindex \override
-
-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 Navigating the program reference
 @subsection Navigating the program reference
 
@@ -1009,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
@@ -1069,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}.}
 
@@ -1087,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.
@@ -1105,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
@@ -1192,7 +850,7 @@ 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
@@ -1229,9 +887,11 @@ son âme même, dans les fichiers source de LilyPond (voir
 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]
@@ -1278,7 +938,7 @@ Add this much extra space between objects that are next to each other.
 
 @noindent
 Ce qui signifie
-@quotation 
+@quotation
 Ajouter tel espace supplémentaire entre des objets proches les uns des
 autres.
 @end quotation
@@ -1302,7 +962,7 @@ f
 @end lilypond
 
 
-Dans le cas présent, le réglage intervient dans le contexte @context{Voice},
+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 :
 
@@ -1317,13 +977,232 @@ Le graveur Fingering_engraver fait partie des contextes : @dots{} @rinternals{Vo
 @end quotation
 
 
-@node Objects connected to the input
-@subsection Objects connected to the input
+@node Naming conventions
+@subsection Naming conventions
 
-@funindex \tweak
+@untranslated
 
-Dans certains cas, on peut passer par un raccourci pour arranger les
-objets graphiques.  Lorsqu'un objet est directement engendré par un élément distinct
+
+@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.
+
+
+@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 The override command
+@subsection 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}.
+
+
+@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
+\override Voice.Stem #'thickness = #3.0
+@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 @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 :
+
+@example
+\override Stem #'(details beamed-lengths) = #'(4 4 3)
+@end example
+
+@cindex documentation exhaustive
+@cindex trouver des objets graphiques
+@cindex objets graphiques, description
+@cindex régler
+@funindex \override
+
+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 The tweak command
+@subsection The @code{\tweak} command
+
+
+@funindex \tweak
+
+Dans certains cas, on peut passer par un raccourci pour arranger les
+objets graphiques.  Lorsqu'un objet est directement engendré par un élément distinct
 du fichier source, on peut utiliser la commande @code{\tweak}.
 
 Dans l'accord suivant, les notes sont modifiées une par une :
@@ -1341,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
@@ -1367,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.
 
@@ -1464,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
 
-@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}.
+@node Input modes
+@subsection Input modes
 
+@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.
 
-Dans l'exemple suivant, on définit une nouvelle opération nommée
-@code{my-callback}.  Cette opération
+@node Direction and placement
+@subsection Direction and placement
 
-@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
+@untranslated
 
-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é.
 
-@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))
+@node Distances and measurements
+@subsection Distances and measurements
 
-         ; si oui, rechercher les morceaux frères (siblings)
-         (siblings (if (ly:grob? orig)
-                     (ly:spanner-broken-into orig) '() )))
+@untranslated
 
-   (if (and (>= (length siblings) 2)
-             (eq? (car (last-pair siblings)) grob))
-     (ly:grob-set-property! grob 'extra-offset '(-2 . 5)))))
 
-\relative c'' {
-  \override Tie #'after-line-breaking =
-  #my-callback
-  c1 ~ \break c2 ~ c
-}
-@end lilypond
+@node Staff symbol properties
+@subsection Staff symbol properties
 
-@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}.
+@untranslated
 
 
-@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 :
+@node Spanners
+@subsection Spanners
 
-@example
-\overrideProperty
-#"Score.NonMusicalPaperColumn"  % Nom de l'objet
-#'line-break-system-details     % Nom de la propriété
-#'((next-padding . 20))         % valeur
-@end example
+@untranslated
 
-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}.
 
-@end itemize
+@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
+