]> git.donarmstrong.com Git - lilypond.git/blobdiff - Documentation/fr/notation/changing-defaults.itely
Rename OctavateEight to ClefModifier
[lilypond.git] / Documentation / fr / notation / changing-defaults.itely
index e1573087fb80ed8a936b94f280ad7109ba12d436..7778c040f5d0e91a4591c08b219c6d52d3a62ef5 100644 (file)
@@ -1,13 +1,13 @@
 @c -*- coding: utf-8; mode: texinfo; documentlanguage: fr -*-
 @ignore
-    Translation of GIT committish: f199e875f7a7beb0afd17eae2038819baab767ff
+    Translation of GIT committish: 785441aeb8cc557217d1b0658ef88d058f58eeb4
 
     When revising a translation, copy the HEAD committish of the
     version that you are working on.  For details, see the Contributors'
     Guide, node Updating translation committishes..
 @end ignore
 
-@c \version "2.17.6"
+@c \version "2.17.18"
 
 @c Translators: Valentin Villenave, Jean-Charles Malahieude
 @c Translation checkers: Gilles Thibault
@@ -63,11 +63,11 @@ symboles, en Scheme.}
 @section Contextes d'interprétation
 @translationof Interpretation contexts
 
-Cette section traite des contextes.
+Nous allons voir ici ce que sont les contextes et comment les modifier.
 
 @menu
 * Tout savoir sur les contextes::
-* Création d'un contexte::
+* Création et référencement d'un contexte::
 * Conservation d'un contexte::
 * Modification des greffons de contexte::
 * Modification des réglages par défaut d'un contexte::
@@ -104,14 +104,10 @@ Référence des propriétés internes :
 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.
+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
 
 @c TODO Improve layout, order and consistency of wording -td
@@ -216,9 +212,11 @@ particulièrement adapté au style mensural de musique ancienne.
 @unnumberedsubsubsec Contextes de bas niveau -- les voix
 @translationof Bottom-level contexts - voices
 
-Les contextes de niveau @qq{voix} initialisent un certain nombre de
-propriétés et activent les graveurs appropriés.  S'agissant de contextes
-du plus bas niveau, ils ne sauraient contenir d'autre contexte.
+Les contextes de niveau « voix » initialisent un certain nombre de
+propriétés et activent les graveurs appropriés.  Un contexte de bas
+niveau est un contexte n'ayant aucun contexte enfant -- ou
+@code{defaultchild}.  Bien qu'ils puissent accepter ou contenir des
+sous-contextes, ceux-ci devront être libellés et créés explicitement.
 
 @strong{@emph{Voice}}
 
@@ -294,152 +292,217 @@ context.
 @end ignore
 
 
-@node Création d'un contexte
-@subsection Création d'un contexte
-@translationof Creating contexts
+@node Création et référencement d'un contexte
+@subsection Création et référencement d'un contexte
+@translationof Creating and referencing contexts
 
-@c TODO more complete descriptions rather than learning style
-
-Lorsqu'une partition ne comporte qu'une portée avec une seule voix, les
-contextes sont créés automatiquement.  Dès que la structure s'étoffe, il
-devient nécessaire de les créer explicitement, en suivant l'une des
-trois méthodes suivantes :
-
-@itemize
-
-@item
-La commande la plus simple à utiliser est @code{\new} ; c'est aussi
-la plus courte.  Elle se place juste avant une expression musicale et se
-libelle ainsi :
+@cindex contexte, création
+@cindex contexte, référencement
 
 @funindex \new
-@cindex nouveau contexte
-@cindex contexte, création
+@funindex \context
+
+LilyPond crée automatiquement des contextes de bas niveau lorsque
+l'expression musicale intervient avant qu'un contexte adéquat n'existe,
+ce qui peut être pratique dans le cadre d'une partition simple ou de
+courts fragments tels ceux inclus dans cette documentation. Dès que la
+structure s'étoffe, il devient nécessaire de créer explicitement tous
+les contextes, à l'aide des commandes @code{\new} ou @code{\context}.
+Leur syntaxe est très similaire :
 
 @example
-\new @var{type} @var{expression_musicale}
+[\new | \context] @var{Contexte} [ = @var{nom}] [@var{musique}]
 @end example
 
 @noindent
-où @var{type} est le nom d'un contexte (par ex. @code{Staff} ou
-@code{Voice}).  Cette commande crée un nouveau contexte et y interprète
-le contenu de l'@var{expression_musicale}.
+où peuvent intervenir aussi bien @code{\new} que @code{\context}.
+Le @var{Contexte} est le nom du contexte à créer, qui éventuellement
+s'appellera plus particulièrement @var{nom} ; il contient l'expression
+musicale unique @var{musique} qui devra être interprétée dans ce
+contexte par les graveurs ou exécutants.
 
-C'est ce qui se passe lorsqu'une partition comporte plusieurs portées :
-chaque partie qui doit apparaître sur une portée spécifique est précédée
-d'un @code{\new Staff}.
+Le préfixe @code{\new} non suivi d'un nom s'utilise principalement pour
+créer une partition avec plusieurs portées :
 
-@lilypond[quote,verbatim,relative=2,ragged-right]
+@lilypond[quote,verbatim,relative=2]
 <<
-  \new Staff { c4 c }
-  \new Staff { d4 d }
+  \new Staff {
+    % leave the Voice context to be created implicitly
+    c4 c
+  }
+  \new Staff {
+    d4 d
+  }
 >>
 @end lilypond
 
-La commande @code{\new} vous permet aussi d'attribuer un nom au
-contexte que vous créez.
-
-@example
-\new @var{type} = @var{nom} @var{musique}
-@end example
-Le nom que vous spécifiez ne pourra être utilisé que s'il n'a pas déjà
-été attribué à un autre contexte.
+@noindent
+et pour regrouper des voix sur une même portée :
 
-@funindex \context
-@item
-Tout comme @code{\new}, la commande @code{\context} affectera une
-expression musicale à un objet contextuel ; elle lui attribuera de
-surcroît un nom.  La commande @code{\context} s'emploie de la façon
-suivante :
+@lilypond[quote,verbatim,relative=2]
+<<
+  \new Staff <<
+    \new Voice {
+      \voiceOne
+      c8 c c4 c c
+    }
+    \new Voice {
+      \voiceTwo
+      g4 g g g
+    }
+  >>
+>>
+@end lilypond
 
-@example
-\context @var{type} = @var{nom} @var{musique}
-@end example
+@noindent
+@code{\new} est à priviliégier lorsque les contextes ne sont pas nommés.
 
-LilyPond va dans un premier temps vérifier l'existence d'un contexte du
-type @var{type} appelé @var{nom}.  En l'absence d'un tel contexte,
-LilyPond crée un nouveau contexte du nom que vous avez spécifié.  Cette
-procédure est tout à fait pertinente lorsque vous faites appel à ce
-contexte particulier par la suite.  Prenons le cas d'un chant :
-nous commençons par nommer la ligne mélodique,
+La différence entre les commandes @code{\new} et @code{\context} se
+situe au niveau de leurs effets :
 
-@example
-\context Voice = "@b{tenor}" @var{musique}
-@end example
+@itemize
+@item
+La commande @code{\new}, suivie ou non d'un nom, crée un tout
+nouveau contexte même s'il en existe déjà un portant le même nom :
 
-@noindent
-de telle sorte que le texte s'aligne correctement sur les notes :
+@lilypond[quote,verbatim,relative=2]
+<<
+  \new Staff <<
+    \new Voice = "A" {
+      \voiceOne
+      c8 c c4 c c
+    }
+    \new Voice = "A" {
+      \voiceTwo
+      g4 g g g
+    }
+  >>
+>>
+@end lilypond
 
-@example
-\new Lyrics \lyricsto "@b{tenor}" @var{paroles}
-@end example
+@item
+La commande @code{\context} avec nommage créera un contexte distinct
+uniquement dans le cas où ne préexiste aucun contexte du même nom dans
+la même hiérarchie de contextes.  Dans le cas contraire, il servira de
+référence au contexte précédemment créé, et son expression musicale sera
+transmise dans ce contexte pour interprétation.
 
-@noindent
+Cette procédure est tout à fait pertinente lorsque l'on sépare mise en
+forme de la partition et contenu musical.  Les deux formulations
+ci-après sont tout à fait valides :
 
-L'une des autres utilisations de contextes explicitement nommés consiste
-à fusionner deux expressions musicales dans un même contexte.  Dans
-l'exemple qui suit, notes et articulations sont saisies indépendamment.
+@lilypond[quote,verbatim]
+\score {
+  <<
+    % score layout
+    \new Staff <<
+      \new Voice = "one" {
+        \voiceOne
+      }
+      \new Voice = "two" {
+        \voiceTwo
+      }
+    >>
 
-@example
-music = @{ c4 c4 @}
-arts = @{ s4-. s4-> @}
-@end example
+    % musical content
+    \context Voice = "one" {
+      \relative c'' {
+        c4 c c c
+      }
+    }
+    \context Voice = "two" {
+      \relative c'' {
+        g8 g g4 g g
+      }
+    }
+  >>
+}
+@end lilypond
 
-Elles sont ensuite fusionnées par affectation au même contexte
-@code{Voice} :
+@lilypond[quote,verbatim]
+\score {
+  <<
+    % score layout
+    \new Staff <<
+      \context Voice = "one" {
+        \voiceOne
+      }
+      \context Voice = "two" {
+        \voiceTwo
+      }
+    >>
 
-@example
-<<
-  \new Staff \context Voice = "A" \music
-  \context Voice = "A" \arts
->>
-@end example
-@lilypond[quote,ragged-right]
-music = { c4 c4 }
-arts = { s4-. s4-> }
-\relative c'' <<
-  \new Staff \context Voice = "A" \music
-  \context Voice = "A" \arts
->>
+    % musical content
+    \context Voice = "one" {
+      \relative c'' {
+        c4 c c c
+      }
+    }
+    \context Voice = "two" {
+      \relative c'' {
+        g8 g g4 g g
+      }
+    }
+  >>
+}
 @end lilypond
 
-Grâce à ce mécanisme, vous pouvez tout à fait générer une version
-@qq{Urtext} (édition originale) et optionnellement ajouter distinctement
-des articulations à ces mêmes notes.
-
-@cindex création de contextes
+@noindent
+Par ailleurs, le recours à des variables produira les mêmes effets --
+voir @rlearning{Organisation du code source avec des variables}.
 
 @item
-Voici une troisième manière de créer un contexte :
+La commande @code{\context} utilisée sans nommage recherchera le premier
+de tous les contextes du même type précédemment créés dans la même
+hiérarchie de contextes ; l'expression musicale lui sera alors transmise
+pour interprétation.  Bien que rarement utilisée, cette formulation de
+@code{\context} sans nommage ni expression musicale permet de définir le
+contexte dans lequel une procédure Scheme comportant une clause
+@code{\applyContext} devra s'exécuter.
 
 @example
-\context @var{type} @var{musique}
+\new Staff \relative c' @{
+  c1
+  \context Timing
+  \applyContext #(lambda (ctx)
+                   (newline)
+                   (display (ly:context-current-moment ctx)))
+  c1
+@}
 @end example
 
-@noindent
-Très comparable à une déclaration @code{\context = @var{nom}},
-cette méthode permet de s'affranchir du type de contexte.
+@end itemize
 
-Cette variante s'utilise lorsque les expression musicales peuvent être
-interprétées à différents niveaux, comme par exemple lorsque intervient
-la commande @code{\applyOutput} -- pour de plus amples détails, voir
-@rextend{Application d'une fonction à tous les objets de mise en forme}.
-En l'absence de @code{\context} explicite, LilyPond considère qu'il
-s'agit de @code{Voice}.
+Un contexte auquel il est ultérieurement fait référence doit
+impérativement être nommé.  C'est le cas par exemple lorsque des paroles
+sont associées à de la musique :
 
 @example
-\applyOutput #'@var{contexte} #@var{fonction}   % s'applique à Voice
+\new Voice = "tenor" @var{musique}
+...
+\new Lyrics \lyricsto "tenor" @var{paroles}
 @end example
 
-Vous devrez respecter ces formulations si la fonction doit
-s'interpréter au niveau @code{Score} ou @code{Staff} :
+@noindent
+L'association de paroles à de la musique est abordée en détails à la
+rubrique @ref{Durée automatique des syllabes}.
+
+Les propriétés de tous les contextes d'un même type se modifient au sein
+d'un bloc @code{\layout}, selon une syntaxe différente -- voir
+@ref{Modification de tous les contextes d'un même type}.  Une telle
+construction permet de séparer mise en forme et contenu musical.
+Lorsque un seul contexte requiert une adaptation, mieux vaut recourir à
+un bloc @code{\with} -- voir
+@ref{Modification d'un contexte particulier}.
 
-@example
-\applyOutput #'Score #@var{fonction}
-\applyOutput #'Staff #@var{fonction}
-@end example
+@seealso
 
-@end itemize
+Manuel d'initiation :
+@rlearning{Organisation du code source avec des variables}.
+
+Manuel de notation :
+@ref{Modification d'un contexte particulier},
+@ref{Durée automatique des syllabes}.
 
 
 @node Conservation d'un contexte
@@ -846,7 +909,7 @@ en définissant directement une propriété de contexte :
 
 @item
 à l'aide d'une commande prédéfinie comme @code{\dynamicUp}, ou bien une
-expression musicale telle que @code{\accidentalStyle "dodecaphonic"} :
+expression musicale telle que @code{\accidentalStyle dodecaphonic} :
 
 @c KEEP LY
 @lilypond[quote,verbatim]
@@ -870,7 +933,7 @@ expression musicale telle que @code{\accidentalStyle "dodecaphonic"} :
 
 @item
 à l'aide d'une variable personnalisée contenant un bloc @code{\with} :
-pour de plus amples iformations sur le bloc @code{\with}, voir
+pour de plus amples informations sur le bloc @code{\with}, voir
 @ref{Modification d'un contexte particulier}.
 
 @c KEEP LY
@@ -934,7 +997,7 @@ musical.
 
 Dans le cas d'un contexte pris individuellement, ses propriétés se
 modifient à l'aide d'un bloc @code{\with}.  Toutes les autres instances
-de contexte appartenant au même type seront affectés des réglages
+de contexte appartenant au même type seront affectées des réglages
 prédéfinis par LilyPond, modifiés le cas échéant par un bloc
 @code{\layout}.  Le bloc @code{\with} se place directement à la suite de
 la commande @code{\new} @var{type-de-contexte}.
@@ -1170,7 +1233,7 @@ squashedPosition = #0
 @end example
 
 Le graveur @rinternals{Pitch_squash_engraver} intercepte les notes
-créées par le @rinternals{Note_heads_engraver}, et les @qq{écrase} pour
+créées par le @rinternals{Note_heads_engraver}, et les « écrase » pour
 qu'elles aient toutes la même position verticale, définie par
 @code{squashedPosition} : ici il s'agit de la valeur @code{0},
 c'est-à-dire la ligne du milieu.
@@ -1273,18 +1336,18 @@ Les contextes viennent en principe se positionner selon leur ordre
 d'apparition dans le fichier source.  Lorsque plusieurs contextes sont
 imbriqués, le contexte englobant supportera les différents contextes
 mentionnés dans le fichier source, à la stricte condition qu'ils soient
-dûment @qq{agréés}.  Les contextes imbriqués qui ne font pas partie de
-la @qq{liste d'agréments} du contexte englobant se retrouveront en
+dûment « agréés ».  Les contextes imbriqués qui ne font pas partie de
+la « liste d'agréments » du contexte englobant se retrouveront en
 dessous de celui-ci au lieu d'y être imbriqués.
 
-La liste des @qq{agréments} d'un contexte se gère à l'aide des
+La liste des « agréments » d'un contexte se gère à l'aide des
 instructions @code{\accepts} et @code{\denies} -- @code{\accepts} pour
 ajouter un contexte à la liste, et @code{\denies} pour retirer
 l'agrément.  Il est par exemple peu conventionnel que les accords nommés
-apparaissent dans un contexte @code{Staff} ; autrement dit, le
-contexte @code{ChordNames} ne fait pas partie de la @qq{liste
-d'agréments} du contexte @code{Staff} par défaut.  Néanmoins, et s'il
-devait en être ainsi, vous pourriez le spécifier.
+apparaissent dans un contexte @code{Staff} ; autrement dit, le contexte
+@code{ChordNames} ne fait pas partie de la « liste d'agréments » du
+contexte @code{Staff} par défaut.  Néanmoins, et s'il devait en être
+ainsi, vous pourriez le spécifier.
 
 @lilypond[verbatim,quote]
 \score {
@@ -1314,12 +1377,27 @@ L'instruction @code{\denies} permet, lorsqu'un nouveau contexte reprend
 les définitions d'un contexte existant, d'en ajuster les composantes.
 C'est par exemple le cas du contexte @code{VaticanaStaff}, réplique du
 contexte @code{Staff} au sein duquel le contexte @code{VaticanaVoice} se
-substitue au contexte @code{Voice} dans la @qq{liste d'agrément}.
+substitue au contexte @code{Voice} dans la « liste d'agrément ».
+
+@cindex contextes implicites
+@cindex implicites, contextes
+@funindex \defaultchild
 
 Gardez à l'esprit que, face à une instruction qui ne s'appliquerait à
 aucun contexte déjà existant, LilyPond créera un nouveau contexte
-implicite.  Ceci peut engendrer une nouvelle portée ou une autre
-partition.
+implicite.
+
+Lors de la définition d'un contexte, les types de contextes
+sous-jascents susceptibles d'être créés implicitement sont spécifiés à
+l'aide d'une commande @code{\defaultchild}. Un certain nombre
+d'événements musicaux requièrent un contexte de plus bas niveau ; face à
+un tel événement, LilyPond crée autant de « sous-contextes » que
+nécessaire, jusqu'au contexte ne comportant aucun @emph{defaultchild}.
+
+La création implicite de contexte peut donc finir par engendrer de
+manière intempestive une nouvelle portée ou une autre partition.
+L'utilisation d'une instruction @code{\new} pour créer explicitement des
+contextes permet d'éviter ces problèmes.
 
 @cindex alignAboveContext
 @cindex alignBelowContext
@@ -1340,11 +1418,11 @@ autres contextes existants.  Le repositionner au-dessus du contexte
 
 Il en va de même pour les contextes temporaires de paroles au sein d'un
 système à plusieurs portées comme un @code{ChoirStaff} lorsque, par
-exemple, un couplet supplémentaire apparaît à l'occasion d'une
-reprise.  Ce contexte de paroles temporaire se place par défaut sous les
-portées inférieures.  Lui adjoindre une instruction
-@code{alignBelowContext} dès son initialisation permet de l'accoler au
-contexte de paroles (nommé) qui contient le premier couplet.
+exemple, un couplet supplémentaire apparaît à l'occasion d'une reprise.
+Ce contexte de paroles temporaire se place par défaut sous les portées
+inférieures.  Lui adjoindre une instruction @code{alignBelowContext} dès
+son initialisation permet de l'accoler au contexte de paroles (nommé)
+qui contient le premier couplet.
 
 Des exemples de repositionnement de contexte temporaire sont disponibles
 aux rubriques @rlearning{Expressions musicales imbriquées},
@@ -1509,11 +1587,12 @@ francophones.
 @cindex interfaces de rendu
 @cindex rendu, interfaces de
 @cindex objets graphiques
+@cindex grob
 
 Tous les éléments de notation sont considérés comme des objets
 graphiques (en anglais @emph{Graphical Object}, d'où le diminutif
 @emph{Grob}).  Chaque objet est doté d'un certain nombre de propriétés
-(l'épaisseur du trait, l'orientation,  etc.), et lié à d'autres objets.
+(l'épaisseur du trait, l'orientation, etc.), et lié à d'autres objets.
 Le fonctionnement de ces objets est décrit en détail dans
 @rinternals{grob-interface}.
 
@@ -1801,7 +1880,7 @@ objets graphiques.
 La syntaxe employée pour ce faire est
 
 @example
-\override @var{contexte}.@var{objet} #'@var{propriété} = #@var{valeur}
+\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)
@@ -2081,27 +2160,9 @@ liste Scheme ; on peut les consulter dans le fichier
 @code{\override} est en fait un raccourci :
 
 @example
-\override @var{contexte}.@var{NomObjet} #'@var{propriété} = #@var{valeur}
+\override [@var{contexte}.]@var{NomObjet}.@var{propriété} = #@var{valeur}
 @end example
 
-@noindent
-plus ou moins équivalent à
-
-@c  leave this long line -gp
-@example
-\set @var{contexte}.@var{NomObjet}  =
-  #(cons (cons '@var{propriété} @var{valeur})
-         <valeur antérieure de @var{contexte}.@var{NomObjet}>)
-@end example
-
-La valeur de @var{contexte}.@var{NomObjet} (une liste associative, ou
-@emph{alist}) permet d'initialiser les propriétés des objets un par un.
-Les objets eux-mêmes ont leurs propriétés, dont les noms, dans la
-tradition du langage Scheme, comprennent un trait d'union
-(@code{toto-titi}).  Ces propriétés internes changent constamment au
-cours de la mise en page : en fait, la gravure d'une page n'est autre
-que le calcul de toutes ces propriétés au moyen de fonctions de rappel.
-
 Nous pouvons donc par exemple accroître l'épaisseur des hampes en jouant
 sur la propriété @code{thickness} de l'objet @code{stem} :
 
@@ -2128,12 +2189,34 @@ celle-ci s'appliquera au contexte le plus bas :
 }
 @end lilypond
 
+Certaines @qq{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
+
+ou, pour modifier les extrémités d'un objet à extension :
+
+@example
+\override TextSpanner.bound-details.left.text = #"texte de gauche"
+\override TextSpanner.bound-details.right.text = #"texte de droite"
+@end example
+
 @cindex annulation d'un override
 @cindex override, annulation des effets
 @funindex \revert
 
 Les effets d'un @code{\override} prennent fin à l'aide de l'instruction
-@code{\revert} :
+@code{\revert}.
+
+La syntaxe de la commande @code{\revert} command est :
+
+@example
+\revert [@var{contexte}.]@var{NomObjet}.@var{propriété}
+@end example
+
+Par exemple :
 
 @lilypond[quote,verbatim,relative=2]
 c4
@@ -2205,13 +2288,6 @@ du trait).
 @item la valeur désirée : ici @code{3.0} (par défaut, elle est de 1.3).
 @end itemize
 
-Certaines @qq{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
@@ -2245,11 +2321,11 @@ L'utilisation d'un @code{\override} pour modifier les propriétés d'un
 objet graphique affectera toutes les instances de l'objet en question au
 sein du contexte, et ce dès son apparition.  Il peut parfois être
 préférable de n'affecter qu'un seul objet en particulier plutôt que tous
-les objets du contexte.  C'est là rôle de l'instruction @code{\tweak},
+les objets du contexte.  C'est là le rôle de l'instruction @code{\tweak},
 dont la syntaxe est :
 
 @example
-\tweak @var{objet-de-rendu} #'@code{objet-propriété} @code{valeur}
+\tweak [@var{objet-de-rendu}.]@code{objet-propriété} @code{valeur}
 @end example
 
 Mention de l'@var{objet-de-rendu} est optionnel.
@@ -2371,8 +2447,9 @@ la mesure où elles seront ultérieurement générées et après les têtes de
 note (objets @code{NoteHead}, plutôt qu'au fil des éléments musicaux
 saisis.
 
-De tels objets créés indirectement peuvent être ajustés que par une
-forme dévelppée de la commande @code{\tweak} :
+De tels objets créés indirectement ne peuvent être ajustés que par une
+forme développée de la commande @code{\tweak}, autrement dit
+lorsque l'objet est explicitement mentionné :
 
 @lilypond[relative=2,verbatim,quote]
 \tweak Stem.color #red
@@ -2700,7 +2777,15 @@ tantôt par la droite, ou être centrées.  La plupart de ces choix peuvent
 dans certains cas, d'imposer l'orientation ou le positionnement des
 éléments.
 
-@strong{Indicateurs de position d'une articulation}
+@menu
+* Indicateurs de position d'une articulation::
+* La propriété direction::
+@end menu
+
+
+@node Indicateurs de position d'une articulation
+@unnumberedsubsubsec Indicateurs de position d'une articulation
+@translationof Articulation direction indicators
 
 Certains positionnements sont opérés par défaut -- toujours au-dessus ou
 toujours en dessous (nuances ou points d'orgue) -- alors que d'autres
@@ -2737,7 +2822,10 @@ c2( c)
 c2^( c)
 @end lilypond
 
-@strong{La propriété @code{direction}}
+
+@node La propriété direction
+@unnumberedsubsubsec La propriété @code{direction}
+@translationof The direction property
 
 Le positionnement ou l'orientation de nombreux objets de rendu sont
 gérés par la propriété @code{direction}.
@@ -2922,9 +3010,15 @@ Tout extenseur dispose de la @code{spanner-interface}.  Quelques uns,
 tout particulièrement ceux chargés de dessiner une ligne droite entre
 deux objets, disposent aussi de la @code{line-spanner-interface}.
 
++@menu
+* Utilisation de spanner-interface::
+* Utilisation de line-spanner-interface::
+@end menu
+
 
+@node Utilisation de spanner-interface
 @unnumberedsubsubsec Utilisation de @code{spanner-interface}
-@translationof Using the @code{spanner-interface}
+@translationof Using the spanner-interface
 
 Cette interface fournit deux propriétés qui s'appliquent à certains
 extenseurs.
@@ -3055,8 +3149,9 @@ affecter @code{#t}) dans le cas d'une liaison d'articulation ou de
 phrasé !
 
 
+@node Utilisation de line-spanner-interface
 @unnumberedsubsubsec Utilisation de @code{line-spanner-interface}
-@translationof Using the @code{line-spanner-interface}
+@translationof Using the line-spanner-interface
 
 Un certain nombre d'objets disposent de la propriété
 @code{line-spanner-interface}, entre autres :
@@ -3399,7 +3494,7 @@ ces réglages par défaut.
 @item @code{KeySignature}        @tab @code{Staff}          @tab @code{begin-of-line-visible}
 @c omit LeftEdge until it can be explained -td
 @c @item @code{LeftEdge}         @tab @code{Score}          @tab @code{center-invisible}
-@item @code{OctavateEight}       @tab @code{Staff}          @tab @code{begin-of-line-visible}
+@item @code{ClefModifier}       @tab @code{Staff}          @tab @code{begin-of-line-visible}
 @item @code{RehearsalMark}       @tab @code{Score}          @tab @code{end-of-line-invisible}
 @item @code{TimeSignature}       @tab @code{Staff}          @tab @code{all-visible}
 
@@ -3541,9 +3636,9 @@ intervenir qu'à l'occasion d'un @code{\bar} explicite.
 @cindex clef, visibilité de l'octaviation
 
 L'indication d'octaviation d'une clef est produite par l'objet de rendu
-@code{OctavateEight}.  Sa visibilité étant gérée par héritage direct de
+@code{ClefModifier}.  Sa visibilité étant gérée par héritage direct de
 l'objet @code{Clef}, nul n'est besoin de forcer un quelconque
-@code{break-visibility} au niveau des objets @code{OctavateEight} pour
+@code{break-visibility} au niveau des objets @code{ClefModifier} pour
 éliminer une indication d'octaviation lorsque la clef est invisible.
 
 Lors d'un changement explicite de clef, la propriété
@@ -3846,7 +3941,7 @@ valeur de @code{direction}.
 @unnumberedsubsubsec Utilisation de @code{self-alignment-interface}
 @translationof Using the self-alignment-interface
 
-@emph{Réalignement d'objets horizontalement}
+@subsubsubheading Réalignement d'objets horizontalement
 
 L'alignement horizontal d'un objet disposant de la
 @code{self-alignment-interface} dépend de la valeur de sa propriété
@@ -3882,7 +3977,7 @@ a'
 @end lilypond
 
 
-@emph{Réalignement d'objets verticalement}
+@subsubsubheading Réalignement d'objets verticalement
 
 L'alignement vertical suit le même principe : la propriété
 @code{Y-offset} doit alors engager la procédure
@@ -3903,7 +3998,7 @@ de son parent.  Les valeurs symboliques @code{DOWN}, @code{CENTER} et
 et @code{1}.
 
 
-@emph{Réalignement d'objets sur les deux axes}
+@subsubsubheading Réalignement d'objets sur les deux axes
 
 Définir à la fois @code{X-offset} et @code{Y-offset} permet de réaligner
 un objet sur les deux axes.
@@ -4159,12 +4254,30 @@ Manuel de notation :
 @cindex Bézier, points de contrôle d'une courbe
 @cindex points de contrôle, courbe de Bézier
 
-Les liaisons, qu'elles soient de prolongation, d'articulation ou de
-phrasé, sont dessinées sous la forme de courbes de Bézier de degré
-trois.  Lorsque l'aspect de la liaison automatiquement calculé n'est pas
-satisfaisant,  il peut être modifié manuellement, en fournissant
-explicitement les quatre points de contrôle qui permettront de définir
-cette courbe.
+Les liaisons, qu'elles soient de prolongation (@code{Tie}),
+d'articulation (@code{Slur}), de phrasé (@code{PhrasingSlur}), de
+laisser-vibrer (@code{LaissezVibrerTie} ou de reprise
+(@code{RepeatTie}), sont dessinées sous la forme de courbes de
+Bézier de degré trois.  Lorsque l'aspect de la liaison
+automatiquement calculé n'est pas satisfaisant, il peut être
+modifié manuellement de deux manières différentes :
+
+@enumerate a
+@item
+en spécifiant l'ajustement qui doit être apporté aux points de
+contrôle de la courbe calculée automatiquement, ou
+@item
+en fournissant explicitement les quatre points de contrôle qui
+permettront de définir cette courbe.
+@end enumerate
+
+Ces deux méthodes sont expliquées ci-dessous.  La première
+convient mieux dans le cas d'une légère adaptation de la courbe ;
+la seconde sera plus efficace lorsqu'il s'agira de créer une courbe
+sur une seule et unique note.
+
+@subsubsubheading Courbes de Bézier cubiques
+@c VO  Cubic Bézier curves
 
 Quatre points définissent une courbe de Bézier cubique. Les premier et
 quatrième points sont les points de départ et d'arrivée de la
@@ -4172,11 +4285,20 @@ courbe ; les deux autres points de contrôle -- P1 et P2 -- en
 détermineront l'allure.  La courbe se trace en partant du point P0, en
 se dirigeant vers P1 et en arrivant au point P3 selon la direction
 @w{P2-P3}.  La courbe est à l'intérieur de l'enveloppe convexe des
-points de contrôle.
+points de contrôle.  Tout déplacement (translation, rotation,
+échelonnement) des points de contrôle sera répercuté sur le dessin
+de la courbe.
+
+
+@subsubsubheading Spécification de l'ajustement des points de contrôle
+@c VO Specifying displacements from current control points
 
 Voici par exemple une liaison de prolongation dont l'allure n'est pas
 des plus heureuses, même en optant pour un @code{\tieDown}.
 
+@cindex galbe des liaisons
+@funindex \shape
+
 @lilypond[verbatim,quote,relative=1]
 <<
   { e1~ e }
@@ -4185,8 +4307,122 @@ des plus heureuses, même en optant pour un @code{\tieDown}.
 >>
 @end lilypond
 
-L'un des moyens d'améliorer cette liaison consiste à modifier
-manuellement ses quatre points de contrôle.
+L'ajustement des points de contrôle de cette liaison de tenue à
+l'aide de @code{\shape} permet d'éviter les collisions.
+
+L'instruction @code{\shape} obéit à la syntaxe
+
+@example
+[-]@code{\shape} @var{déplacements} @var{élément}
+@end example
+
+Ceci aura pour effet de repositionner les points de contrôle de
+@var{élément} des différents montants fournis par
+@var{déplacements}.  L'argument @var{déplacements} est constitué
+d'une liste de paires de nombres ou bien d'une liste de telles
+listes.  Chacun des membres de l'une des paires indique
+l'ajustement de la coordonnée d'un point de contrôle.  Lorsque
+@var{élément} est textuel, il en résulte une dérogation
+particulière appliquée au type d'objet considéré, alors que dans
+le cas d'une expression musicale sera appliqué un affinage
+approprié.
+
+En d'autres termes, la fonction @code{\shape} se comporte soit
+comme un @code{\once \override}, soit comme un @code{\tweak} selon
+que l'argument @var{élément} est un nom d'objet -- tel « Slur »
+-- ou une expression musicale tel un « ( ».  L'argument
+@var{déplacements} spécifie les ajustements à apporter aux quatre
+points de contrôle, sous la forme d'une liste de paires
+@w{@code{(dx . dy)}} dont les valeurs sont exprimées en espace de
+portée ; on utilisera une liste de listes de paires dans le cas où
+la courbe comporte plusieurs segments.
+
+La fonction sera précédée d'un tiret si et seulement si elle doit
+s'appliquer sous forme de @code{\tweak}.
+
+Pour l'exemple qui nous occupe, l'adaptation sous forme
+dérogatoire -- recours à @code{\once\override} -- de la fonction
+@code{\shape}, nous pouvons remonter la liaison d'un demi espace
+de portée :
+
+@lilypond[verbatim,quote,relative=1]
+<<
+  {
+    \shape #'((0 . 0.5) (0 . 0.5) (0 . 0.5) (0 . 0.5)) Tie
+    e1~ e
+  }
+\\
+  { r4 <g c,> <g c,> <g c,> }
+>>
+@end lilypond
+
+La liaison est maintenant mieux positionnée ; mais sa partie
+centrale pourrait être un peu plus relevée, en procédant comme
+ci-dessous, cette fois en utilisant la formulation d'affinage
+-- la forme @code{\tweak} :
+
+@lilypond[verbatim,quote,relative=1]
+<<
+  {
+    e1-\shape #'((0 . 0.5) (0 . 1) (0 . 1) (0 . 0.5)) ~ e
+  }
+\\
+  { r4 <g c,> <g c,> <g c,> }
+>>
+@end lilypond
+
+L'adaptation du positionnement horizontal des points de contrôle
+se réalise de la même manière, ce qui permet de gérer le galbe de
+deux courbes débutant au même instant musical :
+
+@lilypond[verbatim,quote,ragged-right,relative=2]
+c8(\( a) a'4 e c\)
+\shape #'((0.7 . -0.4) (0.5 . -0.4) (0.3 . -0.3) (0 . -0.2)) Slur
+\shape #'((0 . 0) (0 . 0.5) (0 . 0.5) (0 . 0)) PhrasingSlur
+c8(\( a) a'4 e c\)
+@end lilypond
+
+La fonction @code{\shape} permet aussi d'adapter les points de
+contrôle d'une courbe qui se prolonge après un saut de ligne.
+Chaque portion de la courbe peut se voir appliquer sa propre liste
+d'ajustements.  Lorsque l'un des segments ne nécessite pas de
+retouche, il suffit de lui fournir une liste vide.  Dans l'exemple
+suivant, le saut de ligne laisse à croire qu'il y a non pas une
+seule mais deux liaisons :
+
+@lilypond[verbatim,quote,ragged-right,relative=1]
+c4( f g c
+\break
+d,4 c' f, c)
+@end lilypond
+
+Regalber les deux moitiés de la liaison rend plus évident le fait
+qu'elle d'étend par delà le saut de ligne :
+
+@lilypond[verbatim,quote,ragged-right,relative=1]
+% () may be used as a shorthand for ((0 . 0) (0 . 0) (0 . 0) (0 . 0))
+% if any of the segments does not need to be changed
+\shape #'(
+           (( 0 . 0) (0 . 0) (0 . 0) (0 . 1))
+           ((0.5 . 1.5) (1 . 0) (0 . 0) (0 . -1.5))
+         ) Slur
+c4( f g c
+\break
+d,4 c' f, c)
+@end lilypond
+
+La présence d'une courbe en S requiert obligatoirement d'ajuster
+manuellement les points de contrôle -- LilyPond n'optera jamais
+automatiquement pour un tel galbe.
+
+@lilypond[verbatim,quote,relative=2]
+c8( e b-> f d' a e-> g)
+\shape #'((0 . -1) (5.5 . -0.5) (-5.5 . -10.5) (0 . -5.5)) PhrasingSlur
+c8\( e b-> f d' a e-> g\)
+@end lilypond
+
+@subsubsubheading Déclaration explicite des points de contrôle
+@c VO Specifying control points explicitly
 
 Les coordonnées des points de contrôle sont données en unités d'espace
 de portée.  L'abscisse est relative au point de référence de la note de
@@ -4195,29 +4431,35 @@ de la portée.  Les différentes coordonnées sont entrées sous la forme
 d'une liste de quatre paires de nombres décimaux (ou nombres réels).
 L'une des manières de procéder consiste à tout d'abord estimer les
 coordonnées des deux extrémités puis, par tâtonnement, déterminer les
-deux points intermédiaires.
-
-Remarque intéressante au sujet des courbes : une courbe sera
-symétrique si ses points de contrôle sont symétriques.  L'une des
-propriétés avantageuses des courbes de Bézier est que leur
-transformation -- déplacement, rotation ou échelonnement -- est
-réalisable en simplement corrigeant de manière identique ses points de
-contrôle.
+deux points intermédiaires.  Gardez à l'esprit que ces valeurs
+pourront devoir être revues si la musique ou sa mise en forme sont
+modifées.
 
-Pour l'exemple qui nous occupe, l'adaptation suivante nous permet
-d'obtenir un résultat plutôt satisfaisant.  Notez bien l'endroit où
-cette adaptation est stipulée : juste avant la note de départ de la
-liaison.
+L'une des situation où spécifier explicitement les points de
+contrôle se révèle être tout à fait appropriée est lorsqu'ils se
+réfèrent à une seul et unique note.  L'exemple suivant illustre
+l'un des moyens d'indiquer une liaison qui se prolonge sur les
+alternatives d'une répétition.
 
-@lilypond[verbatim,quote,relative=1]
-<<
+@lilypond[verbatim,quote,relative=2]
+c1
+\repeat volta 3 { c4 d( e f }
+\alternative {
+  { g2) d }
   {
-    \once \override Tie.control-points = #'((1 . -1) (3 . 0.6) (12.5 . 0.6) (14.5 . -1))
-     e1 ~ e
+    g2
+    % create a slur and move it to a new position
+    % the <> is just an empty chord to carry the slur termination
+    -\tweak control-points #'((-2 . 3.8) (-1 . 3.9) (0 . 4) (1 . 3.4)) ( <> )
+    f,
   }
-\\
-  { r4 <g c,> <g c,> <g c,> }
->>
+  {
+    e'2
+    % create a slur and move it to a new position
+    -\tweak control-points #'((-2 . 3) (-1 . 3.1) (0 . 3.2) (1 . 2.4)) ( <> )
+    f,
+  }
+}
 @end lilypond
 
 @knownissues