-@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
-
-