version that you are working on. See TRANSLATION for details.
@end ignore
+@c \version "2.11.51"
+
+@c Translators: Valentin Villenave
+@c Translation checkers: Gilles Thibault
+
@node Changing defaults
@chapter Changing defaults
-
LilyPond est conçu pour engendrer, par défaut, des partitions de la
plus haute qualité. Cependant, on peut parfois avoir à modifier cette
mise en page par défaut. Celle-ci est réglée par tout un ensemble de
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
-@ref{Scheme tutorial} fournit quelques notions de base pour saisir des nombres,
+@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.}
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 @internalsref{AccidentalSuggestion}.
+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 | } \\
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 @internalsref{Staff}, en @emph{tiennent compte} cette fois.
+contexte @rinternals{Staff}, en @emph{tiennent compte} cette fois.
@lilypond[quote,ragged-right]
musicA = { << \relative { cis'8 fis, d'4 <a cis>8 f bis4 | cis2. <c, g'>4 | } \\
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 @internalsref{GrandStaff} ou
-@internalsref{PianoStaff}.
+les altérations tiennent compte des autre portées du contexte @rinternals{GrandStaff} ou
+@rinternals{PianoStaff}.
@lilypond[quote,ragged-right]
musicA = { << \relative { cis'8 fis, d'4 <a cis>8 f bis4 | cis2. <c, g'>4 | } \\
@seealso
-Référence du programme : @internalsref{Accidental_engraver},
-@internalsref{Accidental}, @internalsref{AccidentalSuggestion} et @internalsref{AccidentalPlacement}.
+Référence du programme : @rinternals{Accidental_engraver},
+@rinternals{Accidental}, @rinternals{AccidentalSuggestion} et @rinternals{AccidentalPlacement}.
-@refbugs
+@knownissues
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
les ligatures automatiques doivent être désactivées, avec @code{\autoBeamOff}.
-@refcommands
+@predefined
@funindex \autoBeamOff
@code{\autoBeamOff},
@end lilypond
-@refbugs
+@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
@node Interpretation contexts
@section Interpretation contexts
-Cette section traite des contextes : que sont-ils ? Comment les modifier ?
+Cette section traite des contextes.
@menu
-* Contexts explained::
-* Creating contexts::
* Changing context properties on the fly::
* Modifying context plug-ins::
* Layout tunings within contexts::
@end menu
-@node Contexts explained
-@subsection Contexts explained
-
-Imprimer de la musique impose d'ajouter un certain nombre d'éléments de notation.
-Par exemple, voici un fragment de partition, précédé du code qui l'engendre :
-
-@lilypond[quote,verbatim,relative=2,fragment]
-cis4 cis2. g4
-@end lilypond
-
-Si le code est assez austère, dans la parition ont été ajoutés un chiffre de mesure,
-des barres de mesure, des altérations et une clé. Pour une bonne raison : LilyPond
-@emph{interprète} le code. Il le compulse dans l'ordre chronologique, de même qu'on
-lit une partition de gauche à droite ; et pendant ce traitement, le logiciel garde en
-mémoire les limites des mesures, ou encore quelles hauteurs de notes demandent des
-altérations accidentelles. Ces informations se présentent à plusieurs niveaux : ainsi,
-une altération n'a d'effet que sur une seule portée, tandis qu'une barre de mesure doit
-être synchronisée sur toute l'étendue verticale de la partition.
-
-LilyPond regroupe ces règles et ces fragments d'information dans des
-@emph{Contextes}. Certains contextes sont les voix (contexte @context{Voice}),
-les portées (contexte @context{Staff}), ou la partition dans son ensemble
-(contexte @context{Score}). Ils sont ordonnés hiérarchiquement : ainsi un
-contexte @context{Staff} peut contenir plusieurs contextes @context{Voice}, et un
-contexte @context{Score} peut contenir plusieurs contextes @context{Staff}.
-
-@quotation
-@image{context-example,5cm,,}
-@end quotation
-
-Chaque contexte est chargé de faire appliquer certaines règles de gravure,
-de créer certains objets, et de prendre en compte les propriétés qui leur
-sont associées. Ainsi, le contexte @context{Voice} peut faire intervenir une
-altération accidentelle, puis le contexte @context{Staff} devra déterminer si
-cette dernière devra être imprimée ou non dans la suite de la mesure. Les barres
-de mesure, enfin, sont alignées verticalement grâce au contexte @context{Score}.
-
-En revanche, dans une musique polymétrique, par exemple mélant une portée à 3/4
-et une autre à 4/4, les barres de mesures n'ont plus à être alignées : il faut alors
-modifier les comportement par défaut des contextes @context{Score} et @context{Staff}.
-
-Dans une partition très simple, les contextes sont créés implicitement, et peuvent
-être ignorés. Mais lorsqu'il s'agit de morceaux plus amples -- entendons par là tout
-ce qui s'écrit sur plus d'une portée -- il faut les créer explicitement pour être sûr
-d'obtenir toutes les portées nécessaires, et dans le bon ordre. Enfin pour des
-morceaux impliquant une notation spéciale, modifier les contextes ou en créer de nouveaux
-devient extrêment utile.
-
-Une description exhaustive de tous les contextes disponibles peut être trouvée dans la
-référence du programme : voir
-@ifhtml
-@internalsref{Contexts}.
-@end ifhtml
-@ifnothtml
-Translation @arrow{} Context.
-@end ifnothtml
-
-@c [TODO: describe propagation]
-
-
-@node Creating contexts
-@subsection Creating contexts
-
-Dans une partition contenant une seule voix sur une seule portée,
-les contextes sont automatiquement créés. Dans une partition plus complexe,
-il faut les crééer à la main. Trois commandes le permettent :
-
-@itemize @bullet
-
-@item
-La plus facile, et la plus rapide à saisir, est @code{\new} -- @qq{nouveau} en français.
-Elle introduit une expression musicale, comme suit :
-
-@funindex \new
-@cindex nouveaux contextes
-@cindex Contextes, création de
-
-@example
-\new @var{Contexte} @var{expression musicale}
-@end example
-
-@noindent
-le choix du @var{Contexte} pouvant être, par exemple, @code{Staff} ou
-@code{Voice}. Cette commande crée un contexte, puis interprète
-l'@var{expression musicale} dans ledit contexte.
-
-En pratique, la commande @code{\new} peut servir dans une partition
-comprenant plusieurs portées. Comme chaque partie doit se trouver sur sa propre
-portée, il faut la faire précéder de @code{\new Staff}.
-
-@lilypond[quote,verbatim,relative=2,ragged-right,fragment]
-<<
- \new Staff { c4 c }
- \new Staff { d4 d }
->>
-@end lilypond
-
-La commande @code{\new} peut aussi permettre de nommer le contexte créé :
-
-@example
-\new @var{Contexte} = @var{"inventezUnNom"} @var{musique}
-@end example
-Le nom que vous choisirez ne pourra être attribué que si aucun autre contexte
-n'a été créé précédemment avec le même nom.
-
-
-@funindex \context
-
-@item
-Tout comme @code{\new}, la commande @code{\context} envoie une expression musicale
-vers un contexte donné, mais attribue nécessairement un nom à ce contexte. La
-syntaxe est la suivante :
-
-@example
-\context @var{Contexte} = @var{unNom} @var{musique}
-@end example
-
-Cette commande va partir à la recherche d'un contexte déjà existant, de type
-@var{Contexte}, et portant le nom @var{unNom}. Ce qui peut être fort utile
-pour se référer à un contexte existant. S'il s'avère que le contexte en question
-n'existe pas encore, il est créé. Dans le cas de musique vocale avec des paroles,
-cela donne :
-
-@example
-\context Voice = "@b{tenor}" @var{musique}
-@end example
-
-@noindent
-et (pour que le texte soit aligné correctement avec les notes) :
-
-@example
-\new Lyrics \lyricsto "@b{tenor}" @var{paroles}
-@end example
-
-@noindent
-
-Une autre utilité de dénommer les contextes est de superposer en un même
-contexte différentes expressions musicales. Dans l'exemple suivant, les
-notes et les ponctuations ont été saisies séparément :
-
-@example
-musique = @{ c4 c4 @}
-ponctuation = @{ s4-. s4-> @}
-@end example
-
-En les envoyant toutes deux dans le même contexte @context{Voice}, on les combine :
-
-@example
-<<
- \new Staff \context Voice = "A" \musique
- \context Voice = "A" \ponctuation
->>
-@end example
-@lilypond[quote,ragged-right]
-music = { c4 c4 }
-arts = { s4-. s4-> }
-\relative c'' <<
- \new Staff \context Voice = "A" \music
- \context Voice = "A" \arts
->>
-@end lilypond
-
-De cette façon, il est possible d'élaborer une édition Urtext (c'est-à-dire originale,
-la plupart du temps sans ponctuations), en laissant la possibilité d'ajouter différentes
-ponctuations sur les mêmes notes.
-
-@cindex crééer des contextes
-
-@item
-La dernière commande pour créer des contextes est
-@example
-\context @var{Contexte} @var{musique}
-@end example
-
-
-@noindent
-Elle ressemble à l'emploi de @code{\context} avec @code{= @var{unNom}}, mais
-cette fois elle se considèrera chez elle partout où elle trouvera un contexte
-de type @var{Contexte}, quel que puisse être son nom.
-
-@c Au secours ! --vv
-
-Cette variante sert à des expressions musicales qui peuvent être interprétées à
-plusieurs niveaux. Par exemple, une commande telle que @code{\applyOutput} (voir
-@ref{Running a function on all layout objects}) : si elle n'est pas associée avec
-@code{\context}, elle s'applique par défaut dans le contexte @context{Voice}.
-
-@example
-\applyOutput #'@var{Contexte} #@var{fonction} % s'applique dans le contexte Voice
-@end example
-
-Pour l'appliquer au contexte @context{Score} ou @context{Staff}, il faut utiliser :
-
-@example
-\applyOutput #'Score #@var{fonction}
-\applyOutput #'Staff #@var{fonction}
-@end example
-
-@end itemize
-
-
@node Changing context properties on the fly
@subsection Changing context properties on the fly
@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 @internalsref{Voice}. Notez que 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},
La référence du programme contient une description exhaustive de toutes les
propriétés contexte par contexte : voir
@ifhtml
-@internalsref{Tunable context properties}.
+@rinternals{Tunable context properties}.
@end ifhtml
@ifnothtml
-Translation @arrow{} Tunable context properties.
+Translation @expansion{} Tunable context properties.
@end ifnothtml
Vous trouverez une description exhaustive de chaque graveur dans
@ifhtml
-@internalsref{Engravers}.
+@rinternals{Engravers}.
@end ifhtml
@ifnothtml
-Program reference @arrow Translation @arrow{} Engravers.
+Program reference @expansion Translation @expansion{} Engravers.
@end ifnothtml
Chaque contexte mentionné dans
@ifhtml
-@internalsref{Contexts}
+@rinternals{Contexts}
@end ifhtml
@ifnothtml
-Program reference @arrow Translation @arrow{} Context.
+Program reference @expansion Translation @expansion{} Context.
@end ifnothtml
répertorie les graveurs mis en œuvre.
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 @ref{Common tweaks}).
+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
@seealso
-Référence du programme : @internalsref{OverrideProperty}, @internalsref{RevertProperty},
-@internalsref{PropertySet}, @internalsref{Backend}, et
-@internalsref{All layout objects}.
+Référence du programme : @rinternals{OverrideProperty}, @rinternals{RevertProperty},
+@rinternals{PropertySet}, @rinternals{Backend}, et
+@rinternals{All layout objects}.
-@refbugs
+@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
@end example
-@refbugs
+@knownissues
Il est impossible de stocker des modifications de contexte dans un identificateur.
@end example
@noindent
-Le graveur @internalsref{Pitch_squash_engraver} intercepte les notes créées par
-@internalsref{Note_heads_engraver}, et les @q{écrase} pour qu'elles aient toutes la
+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.
@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
-@internalsref{Engraver_group},
+@rinternals{Engraver_group},
@example
\type "Engraver_group"
Il est possible d'aligner verticalement chaque nouveau contexte,
en-dessous ou au-dessus, par exemple dans le cas de musique vocale
-(@ref{Vocal ensembles}) ou d'@qq{ossias}.
+(@rlearning{Vocal ensembles}) ou d'@qq{ossias}.
@cindex ossia
@findex alignAboveContext
@quotation
@seealso
-Référence du programme : @internalsref{Fingering}.
+Référence du programme : @rinternals{Fingering}.
@end quotation
forward. For example, it says
@quotation
-Accepted by: @internalsref{Fingering_engraver},
+Accepted by: @rinternals{Fingering_engraver},
@end quotation
@noindent
plug-in, which says
@quotation
-This engraver creates the following layout objects: @internalsref{Fingering}.
+This engraver creates the following layout objects: @rinternals{Fingering}.
@end quotation
In other words, once the @code{FingerEvent}s are interpreted, the
@c I can't figure out what this is supposed to mean. -gp
The @code{Fingering_engraver} is also listed to create
-@internalsref{Fingering} objects,
+@rinternals{Fingering} objects,
@c old info? it doesn't make any sense to me with our current docs.
This is also the
dans un document au format PDF.
@end ifnothtml
-Suivons le lien @internalsref{Fingering}. En haut de la nouvelle page,
+Suivons le lien @rinternals{Fingering}. En haut de la nouvelle page,
on peut lire
@quotation
-Fingering objects are created by: @internalsref{Fingering_engraver} and
-@internalsref{New_fingering_engraver}.
+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}
(@code{Fingering} en anglais) @emph{sont créées par les graveurs
-@internalsref{Fingering_engraver} et @internalsref{New_fingering_engraver}.}
+@rinternals{Fingering_engraver} et @rinternals{New_fingering_engraver}.}
En suivant derechef les liens propres à la référence du programme, on suit en fait
le cheminement qui aboutit à la création de la partition :
@itemize @bullet
-@item @internalsref{Fingering}:
-@internalsref{Fingering} objects are created by:
-@internalsref{Fingering_engraver}
+@item @rinternals{Fingering}:
+@rinternals{Fingering} objects are created by:
+@rinternals{Fingering_engraver}
-@item @internalsref{Fingering_engraver}:
-Music types accepted: @internalsref{fingering-event}
+@item @rinternals{Fingering_engraver}:
+Music types accepted: @rinternals{fingering-event}
-@item @internalsref{fingering-event}:
+@item @rinternals{fingering-event}:
Music event type @code{fingering-event} is in Music expressions named
-@internalsref{FingerEvent}
+@rinternals{FingerEvent}
@end itemize
Ce cheminement se produit, bien sûr, en sens inverse : nous sommes ici partis
La référence du programme peut également se parcourir comme un document normal.
On y trouve des chapitres tels que
@ifhtml
-@internalsref{Music definitions},
+@rinternals{Music definitions},
@end ifhtml
@ifnothtml
@code{Music definitions}
@end ifnothtml
-@internalsref{Translation}, ou encore @internalsref{Backend}. Chaque chapitre
+@rinternals{Translation}, ou encore @rinternals{Backend}. Chaque chapitre
recense toutes les définitions employées, et les propriétés sujettes à
ajustements.
(en anglais @q{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.
-Le fonctionnement de ces objets est décrit en détail dans @internalsref{grob-interface}.
+Le fonctionnement de ces objets est décrit en détail dans @rinternals{grob-interface}.
Prenons l'exemple des doigtés (en anglais @q{Fingering}).
La page @code{Fingering} de la Référence du programme établit une liste de définitions
@end itemize
Faire appliquer ces différents attributs est le rôle des @emph{interfaces},
-que l'on trouve en bas de la page @internalsref{Fingering}.
+que l'on trouve en bas de la page @rinternals{Fingering}.
@quotation
This object supports the following interfaces:
-@internalsref{item-interface},
-@internalsref{self-alignment-interface},
-@internalsref{side-position-interface}, @internalsref{text-interface},
-@internalsref{text-script-interface}, @internalsref{font-interface},
-@internalsref{finger-interface}, and @internalsref{grob-interface}.
+@rinternals{item-interface},
+@rinternals{self-alignment-interface},
+@rinternals{side-position-interface}, @rinternals{text-interface},
+@rinternals{text-script-interface}, @rinternals{font-interface},
+@rinternals{finger-interface}, and @rinternals{grob-interface}.
@end quotation
@noindent
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 @ref{Default files}), en
-l'occurence le fichier @file{scm/@/define@/-grobs@/.scm} :
+son âme même, dans les fichiers source de LilyPond (voir
+@rlearning{Default files}), en l'occurence le fichier
+@file{scm/@/define@/-grobs@/.scm} :
@example
(Fingering
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 @internalsref{Fingering_engraver} indique :
+du graveur @rinternals{Fingering_engraver} indique :
@quotation
-Fingering_engraver is part of contexts: @dots{} @internalsref{Voice}
+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{} @internalsref{Voice}
+Le graveur Fingering_engraver fait partie des contextes : @dots{} @rinternals{Voice}
@end quotation
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
-(@internalsref{Event}) du fichier source. Par exemple :
+(@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
si oui, applique un espacement supplémentaire (@code{extra-offset}).
@end itemize
-On ajoute cette procédure à l'objet @internalsref{Tie} (liaison de tenue),
+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