From fb27c95fca0a8667e8c641e657e288c84f26b22f Mon Sep 17 00:00:00 2001 From: Valentin Villenave Date: Tue, 11 Sep 2007 00:36:46 +0200 Subject: [PATCH] Finish "Changing defaults" French translation --- Documentation/fr/user/changing-defaults.itely | 1027 +++++++++-------- 1 file changed, 538 insertions(+), 489 deletions(-) diff --git a/Documentation/fr/user/changing-defaults.itely b/Documentation/fr/user/changing-defaults.itely index 51dcf0c3e3..db3ad7f2a1 100644 --- a/Documentation/fr/user/changing-defaults.itely +++ b/Documentation/fr/user/changing-defaults.itely @@ -540,7 +540,6 @@ a16 a a a a a a a a a a a a a a a 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. -@c KEEP LY @lilypond[quote,fragment,ragged-right,verbatim,relative=2] \time 1/4 #(override-auto-beam-setting '(end 1 16 1 4) 1 8) @@ -637,7 +636,7 @@ soit achevée. @node Interpretation contexts @section Interpretation contexts -This section describes what contexts are, and how to modify them. +Cette section traite des contextes : que sont-ils ? Comment les modifier ? @menu * Contexts explained:: @@ -655,56 +654,53 @@ This section describes what contexts are, and how to modify them. @node Contexts explained @subsection Contexts explained -When music is printed, a lot of notational elements must be added to the -output. For example, compare the input and output of the following example: +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 -The input is rather sparse, but in the output, bar lines, accidentals, -clef, and time signature are added. LilyPond @emph{interprets} the -input. During this step, the musical information is inspected in time -order, similar to reading a score from left to right. While reading -the input, the program remembers where measure boundaries are, and which -pitches require explicit accidentals. This information can be presented on -several levels. For example, the effect of an accidental is limited -to a single staff, while a bar line must be synchronized across the -entire score. - -Within LilyPond, these rules and bits of information are grouped in -@emph{Contexts}. Some examples of contexts are @context{Voice}, -@context{Staff}, and @context{Score}. They are hierarchical, for -example: a @context{Staff} can contain many @context{Voice}s, and a -@context{Score} can contain many @context{Staff} contexts. +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 -Each context has the responsibility for enforcing some notation rules, -creating some notation objects and maintaining the associated -properties. For example, the @context{Voice} context may introduce an -accidental and then the @context{Staff} context maintains the rule to -show or suppress the accidental for the remainder of the measure. The -synchronization of bar lines is handled at @context{Score} context. - -However, in some music we may not want the bar lines to be -synchronized -- consider a polymetric score in 4/4 and 3/4 time. In -such cases, we must modify the default settings of the @context{Score} -and @context{Staff} contexts. - -For very simple scores, contexts are created implicitly, and you need -not be aware of them. For larger pieces, such as anything with more -than one staff, they must be -created explicitly to make sure that you get as many staves as you -need, and that they are in the correct order. For typesetting pieces -with specialized notation, it can be useful to modify existing or -to define new contexts. - - -A complete description of all available contexts is in the program -reference, see +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 @@ -718,32 +714,32 @@ Translation @arrow{} Context. @node Creating contexts @subsection Creating contexts -For scores with only one voice and one staff, contexts are -created automatically. For more complex scores, it is necessary to -create them by hand. There are three commands that do this. +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 -The easiest command is @code{\new}, and it also the quickest to type. -It is prepended to a music expression, for example +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 new contexts -@cindex Context, creating +@cindex nouveaux contextes +@cindex Contextes, création de @example -\new @var{type} @var{music expression} +\new @var{Contexte} @var{expression musicale} @end example @noindent -where @var{type} is a context name (like @code{Staff} or -@code{Voice}). This command creates a new context, and starts -interpreting the @var{music expression} with that. +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. -A practical application of @code{\new} is a score with many -staves. Each part that should be on its own staff, is preceded with -@code{\new Staff}. +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] << @@ -752,60 +748,60 @@ staves. Each part that should be on its own staff, is preceded with >> @end lilypond -The @code{\new} command may also give a name to the context, +La commande @code{\new} peut aussi permettre de nommer le contexte créé : @example -\new @var{type} = @var{id} @var{music} +\new @var{Contexte} = @var{"inventezUnNom"} @var{musique} @end example -However, this user specified name is only used if there is no other -context already earlier with the same name. +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 -Like @code{\new}, the @code{\context} command also directs a music -expression to a context object, but gives the context an explicit name. The -syntax is +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{type} = @var{id} @var{music} +\context @var{Contexte} = @var{unNom} @var{musique} @end example -This form will search for an existing context of type @var{type} -called @var{id}. If that context does not exist yet, a new -context with the specified name is created. This is useful if -the context is referred to later on. For example, when -setting lyrics the melody is in a named context +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{music} +\context Voice = "@b{tenor}" @var{musique} @end example @noindent -so the texts can be properly aligned to its notes, +et (pour que le texte soit aligné correctement avec les notes) : @example -\new Lyrics \lyricsto "@b{tenor}" @var{lyrics} +\new Lyrics \lyricsto "@b{tenor}" @var{paroles} @end example @noindent -Another possible use of named contexts is funneling two different -music expressions into one context. In the following example, -articulations and notes are entered separately, +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 -music = @{ c4 c4 @} -arts = @{ s4-. s4-> @} +musique = @{ c4 c4 @} +ponctuation = @{ s4-. s4-> @} @end example -They are combined by sending both to the same @context{Voice} context, +En les envoyant toutes deux dans le même contexte @context{Voice}, on les combine : @example << - \new Staff \context Voice = "A" \music - \context Voice = "A" \arts + \new Staff \context Voice = "A" \musique + \context Voice = "A" \ponctuation >> @end example @lilypond[quote,ragged-right] @@ -817,38 +813,40 @@ arts = { s4-. s4-> } >> @end lilypond -With this mechanism, it is possible to define an Urtext (original -edition), with the option to put several distinct articulations on the -same notes. +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 creating contexts +@cindex crééer des contextes @item -The third command for creating contexts is +La dernière commande pour créer des contextes est @example -\context @var{type} @var{music} +\context @var{Contexte} @var{musique} @end example @noindent -This is similar to @code{\context} with @code{= @var{id}}, but matches -any context of type @var{type}, regardless of its given name. +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 -This variant is used with music expressions that can be interpreted at -several levels. For example, the @code{\applyOutput} command (see -@ref{Running a function on all layout objects}). Without an explicit -@code{\context}, it is usually applied to @context{Voice} +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{context} #@var{function} % apply to Voice +\applyOutput #'@var{Contexte} #@var{fonction} % s'applique dans le contexte Voice @end example -To have it interpreted at the @context{Score} or @context{Staff} level use -these forms +Pour l'appliquer au contexte @context{Score} ou @context{Staff}, il faut utiliser : @example -\applyOutput #'Score #@var{function} -\applyOutput #'Staff #@var{function} +\applyOutput #'Score #@var{fonction} +\applyOutput #'Staff #@var{fonction} @end example @end itemize @@ -857,32 +855,35 @@ these forms @node Changing context properties on the fly @subsection Changing context properties on the fly -@cindex properties +@cindex propriétés @funindex \set -@cindex changing properties +@cindex modifier des propriétés -Each context can have different @emph{properties}, variables contained -in that context. They can be changed during the interpretation step. -This is achieved by inserting the @code{\set} command in the music, +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{context}.@var{prop} = #@var{value} +\set @var{contexte}.@var{propriété} = #@var{valeur} @end example -For example, +Ainsi : @lilypond[quote,verbatim,relative=2,fragment] R1*2 \set Score.skipBars = ##t R1*2 @end lilypond -This command skips measures that have no notes. The result is that -multi-rests are condensed. The value assigned is a Scheme object. In -this case, it is @code{#t}, the boolean True value. +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. -If the @var{context} argument is left out, then the current bottom-most -context (typically @context{ChordNames}, @context{Voice}, or -@context{Lyrics}) is used. In this example, +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 contexte 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 @@ -891,12 +892,12 @@ c8 c c c @end lilypond @noindent -the @var{context} argument to @code{\set} is left out, so automatic -beaming is switched off in the current @internalsref{Voice}. Note that -the bottom-most context does not always contain the property that you -wish to change -- for example, attempting to set the @code{skipBars} -property (of the bottom-most context, in this case @code{Voice}) will -have no effect. +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 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 @@ -904,59 +905,58 @@ R1*2 R1*2 @end lilypond -Contexts are hierarchical, so if a bigger context was specified, for -example @context{Staff}, then the change would also apply to all -@context{Voice}s in the current stave. The change is applied -@q{on-the-fly}, during the music, so that the setting only affects the -second group of eighth notes. +Les contextes s'organisent de façon hiérarchique : aussi, si un contexte de niveau +supérieur est spécifié (par exemple @context{Staff}), la propriété sera modifée dans +tous les contextes inférieurs (tous les contextes @context{Voice}, par exemple) +qu'il contient. @funindex \unset -There is also an @code{\unset} command, +La commande @code{\unset} permet d'annuler la définition d'une propriété : + @example -\unset @var{context}.@var{prop} +\unset @var{contexte}.@var{propriété} @end example @noindent -which removes the definition of @var{prop}. This command removes -the definition only if it is set in @var{context}, so +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 -introduces a property setting at @code{Staff} level. The setting also -applies to the current @code{Voice}. However, +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 -does not have any effect. To cancel this setting, the @code{\unset} -must be specified on the same level as the original @code{\set}. In -other words, undoing the effect of @code{Staff.autoBeaming = ##f} -requires +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 -Like @code{\set}, the @var{context} argument does not have to be -specified for a bottom context, so the two statements +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 -@noindent -are equivalent. - @cindex \once -Settings that should only apply to a single time-step can be entered -with @code{\once}, for example in +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 @@ -965,11 +965,10 @@ c4 c4 @end lilypond -the property @code{fontSize} is unset automatically after the second -note. +Ici le changement de taille est annulé aussitôt après la note concernée. -A full description of all available context properties is in the -program reference, see +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}. @end ifhtml @@ -981,38 +980,45 @@ Translation @arrow{} Tunable context properties. @node Modifying context plug-ins @subsection Modifying context plug-ins -Notation contexts (like @code{Score} and @code{Staff}) not only -store properties, -they also contain plug-ins called @q{engravers} that create notation -elements. For example, the @code{Voice} context contains a -@code{Note_head_engraver} and the @code{Staff} context contains a -@code{Key_signature_engraver}. +Les contextes, tels que @code{Score} ou @code{Staff}, ne contiennent +pas que des propriétés, mais mettent également en oeuvre certains +sous-programmes (@q{plug-ins}, pour employer le terme consacré) nommés +@q{graveurs} (@q{engravers}, pour reprendre le terme anglais). +Ces sous-programmes sont chargés de créer les différents éléments de notation : +Ainsi, on trouve, dans le contexte @code{Voice}, un graveur @code{Note_head_engraver}, +chargé des têtes de notes, et dans le contexte @code{Staff}, un graveur +@code{Key_signature_engraver}, chargé de l'armure. -For a full a description of each plug-in, see +Vous trouverez une description exhaustive de chaque graveur dans @ifhtml @internalsref{Engravers}. @end ifhtml @ifnothtml Program reference @arrow Translation @arrow{} Engravers. @end ifnothtml -Every context described in +Chaque contexte mentionné dans @ifhtml @internalsref{Contexts} @end ifhtml @ifnothtml Program reference @arrow Translation @arrow{} Context. @end ifnothtml -lists the engravers used for that context. +répertorie les graveurs mis en oeuvre. + + +On peut faire, au moyen de ces graveurs, sa propre @qq{cuisine}, en +modifiant les contextes à volonté. -It can be useful to shuffle around these plug-ins. This is done by -starting a new context with @code{\new} or @code{\context}, and -modifying it, +Lorsque un contexte est créé, par la commande @code{\new} ou @code{\context}, on peut +y adjoindre un bloc @code{\with} (en anglais @q{avec}), dans lequel il est possible +d'ajouter (commande @code{\consists}) ou d'enlever (commande @code{\remove}) +des graveurs : @funindex \with @example -\new @var{context} \with @{ +\new @var{contexte} \with @{ \consists @dots{} \consists @dots{} \remove @dots{} @@ -1020,14 +1026,15 @@ modifying it, @emph{etc.} @} @{ - @emph{..music..} + @emph{..musique..} @} @end example @noindent -where the @dots{} should be the name of an engraver. Here is a simple -example which removes @code{Time_signature_engraver} and -@code{Clef_engraver} from a @code{Staff} context, +Ici les points de suspension @dots{} devront être remplacés par les noms +des graveurs désirés. Dans l'exemple suivant, on enlève, dans le contexte +@code{Staff} le chiffre de mesure (graveur @code{Time_signature_engraver}) +et la clé (graveur @code{Clef_engraver}). @lilypond[quote,relative=1,verbatim,fragment] << @@ -1043,22 +1050,21 @@ example which removes @code{Time_signature_engraver} and >> @end lilypond -In the second staff there are no time signature or clef symbols. This -is a rather crude method of making objects disappear since it will affect -the entire staff. This method also influences the spacing, which may or -may not be desirable. A more -sophisticated method of blanking objects is shown in @ref{Common tweaks}. +La clé et le chiffre de mesure ont disparu de la deuxième portée. C'est une méthode +quelque peu radicale, puisqu'elle affectera toute la portée jusqu'à la fin de la +partition. L'espacement s'en trouve également affecté, ce qui peut être ou non +l'effet recherché. Une méthode plus sophistiquée aurait été de rendre ces objets +transparents (voir @ref{Common tweaks}). -The next example shows a practical application. Bar lines and time -signatures are normally synchronized across the score. This is done -by the @code{Timing_translator} and @code{Default_bar_line_engraver}. -This plug-in keeps an administration of time signature, location -within the measure, etc. By moving thes engraver from @code{Score} to -@code{Staff} context, we can have a score where each staff has its own -time signature. +Dans l'exemple suivant, voici une mise en pratique plus utile. En temps +normal, les barres de mesure et la métrique sont synchronisées verticalement +dans toute la partition. Les graveurs qui en sont responsables se nomment +@code{Timing_translator} et @code{Default_bar_line_engraver}. +En les enlevant du contexte @code{Score} pour les attribuer au contexte +@code{Staff}, chaque portée peut désormais avoir sa propre métrique. -@cindex polymetric scores -@cindex Time signatures, multiple +@cindex polymétrique, partition +@cindex Chiffres de mesure multiples @lilypond[quote,relative=1,ragged-right,verbatim,fragment] \new Score \with { @@ -1086,35 +1092,35 @@ time signature. @node Layout tunings within contexts @subsection Layout tunings within contexts -Each context is responsible for creating certain types of graphical -objects. The settings used for printing these objects are also stored by -context. By changing these settings, the appearance of objects can be -altered. +Chaque contexte est chargé de créer plusieurs types d'objets graphiques. +Il contient également les réglages nécessaires pour chacun de ces objets. +Si l'on modifie ces réglages, les objets n'auront plus la même apparence. -The syntax for this is +La syntaxe employée pour ce faire est @example -\override @var{context}.@var{name} #'@var{property} = #@var{value} +\override @var{contexte}.@var{objet} #'@var{propriété} = #@var{valeur} @end example -Here @var{name} is the name of a graphical object, like @code{Stem} or -@code{NoteHead}, and @var{property} is an internal variable of the -formatting system (@q{grob property} or @q{layout property}). The latter is a -symbol, so it must be quoted. The subsection @ref{Constructing a -tweak}, explains what to fill in for @var{name}, @var{property}, and -@var{value}. Here we only discuss the functionality of this command. +Ici @var{objet} est un objet graphique, tel que @code{Stem} (les hampes) +ou @code{NoteHead} (les têtes de note) ; @var{propriété} est une variable +(désignée par un symbole, ce qui explique l'apostrophe) employée par le système +de mise en page. La sous-section @ref{Constructing a +tweak} vous aidera à savoir quoi mettre à la place de @var{objet}, @var{propriété} et +@var{valeur} ; notre propos n'est ici que d'examiner l'emploi de cette commande. -The command +La commande suivante : @verbatim \override Staff.Stem #'thickness = #4.0 @end verbatim @noindent -makes stems thicker (the default is 1.3, with staff line thickness as a -unit). Since the command specifies @context{Staff} as context, it only -applies to the current staff. Other staves will keep their normal -appearance. Here we see the command in action: +rend les hampes plus épaisses (la valeur par défaut est 1.3, ce qui signifie qu'elles +sont 1,3 fois plus épaisses que les lignes de la portée). Dans la mesure où nous avons +indiqué @context{Staff} comme contexte, ce réglage ne s'appliquera qu'à la portée courante ; +les autres portées demeureront intactes. + @lilypond[quote,verbatim,relative=2,fragment] c4 @@ -1124,13 +1130,12 @@ c4 c4 @end lilypond -The @code{\override} command changes the definition of the @code{Stem} -within the current @context{Staff}. After the command is interpreted -all stems are thickened. +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. -Analogous to @code{\set}, the @var{context} argument may be left out, -causing the default context @context{Voice} to be used. Adding -@code{\once} applies the change during one timestep only. +Tout comme avec la commande @code{\set}, l'argument @var{contexte} peut être omis, auquel +cas le contexte par défaut (ici, @context{Voice}) sera employé. La commande @code{\once} +permet de n'appliquer la modification qu'une seule fois. @lilypond[quote,fragment,verbatim,relative=2] c4 @@ -1139,10 +1144,10 @@ c4 c4 @end lilypond -The @code{\override} must be done before the object is -started. Therefore, when altering @emph{Spanner} objects such as slurs -or beams, the @code{\override} command must be executed at the moment -when the object is created. In this example, +La commande @code{\override} doit être entrée @emph{avant} l'objet concerné. +Ainsi, lorsque l'on veut altérer un objet qui se prolonge, tel qu'une liaison, +une ligature ou tout autre objet dit @emph{Spanner}, la commande @code{\override} +doit être saisie avant que l'objet soit créé. @lilypond[quote,fragment,verbatim,relative=2] \override Slur #'thickness = #3.0 @@ -1152,29 +1157,30 @@ c8 c]) @end lilypond @noindent -the slur is fatter but the beam is not. This is because the command for -@code{Beam} comes after the Beam is started, so it has no effect. +Dans cet exemple, la liaison (@q{Slur}) est épaissie, mais non la ligature +@code{Beam}. En effet, le code qui lui est relatif n'a pas été inséré avant le début de +la ligature, et demeure donc sans effet. -Analogous to @code{\unset}, the @code{\revert} command for a context -undoes an @code{\override} command; like with @code{\unset}, it only -affects settings that were made in the same context. In other words, the -@code{\revert} in the next example does not do anything. +De même que la commande @code{\unset}, la commande @code{\revert} défait +ce qui a été fait par une commande @code{\override}. Tout comme avec @code{\unset}, +elle ne peut annuler que les réglages effectués dans le même contexte. Ainsi dans +l'exemple suivant, la commande @code{\revert} est sans effet. @example \override Voice.Stem #'thickness = #4.0 \revert Staff.Stem #'thickness @end example -Some tweakable options are called @q{subproperties} and reside inside -properties. To tweak those, use commands of the form +Il existe, à l'intérieur même de certaines propriétés, des options que l'on +nomme @q{sous-propriétés}. La syntaxe est alors @c leave this as a long long @example -\override @var{context}.@var{name} #'@var{property} #'@var{subproperty} = #@var{value} +\override @var{contexte}.@var{objet} #'@var{propriété} #'@var{sous-propriété} = #@var{valeur} @end example @noindent -such as +Ainsi, par exemple : @example \override Stem #'details #'beamed-lengths = #'(4 4 3) @@ -1183,25 +1189,25 @@ such as @seealso -Internals: @internalsref{OverrideProperty}, @internalsref{RevertProperty}, -@internalsref{PropertySet}, @internalsref{Backend}, and +Référence du programme : @internalsref{OverrideProperty}, @internalsref{RevertProperty}, +@internalsref{PropertySet}, @internalsref{Backend}, et @internalsref{All layout objects}. @refbugs -The back-end is not very strict in type-checking object properties. -Cyclic references in Scheme values for properties can cause hangs -or crashes, or both. +La sous-couche Scheme ne vérifie pas la saisie des propriétés de façon +très stricte. Des références cycliques dans des valeurs Scheme peuvent +de ce fait interrompre, ou faire planter le programme -- ou bien les deux. @node Changing context default settings @subsection Changing context default settings -The adjustments of the previous subsections (@ref{Changing context -properties on the fly}, @ref{Modifying context plug-ins}, and -@ref{Layout tunings within contexts}) can also be entered separately -from the music in the @code{\layout} block, +Les réglages montrés dans les sous-sections @ref{Changing context +properties on the fly}, @ref{Modifying context plug-ins} et +@ref{Layout tunings within contexts} peuvent également être saisis séparément +de la musique dans le bloc @code{\layout}, au moyen de la commande @code{\context} : @example \layout @{ @@ -1216,10 +1222,11 @@ from the music in the @code{\layout} block, @} @end example -The @code{\Staff} command brings in the existing definition of the -staff context so that it can be modified. +Le raccourci @code{\Staff} invoque les définitions inhérentes au contexte +@context{Staff}, de façon à ce qu'elles puissent être modifiées. -The statements +Les lignes suivantes affecteront toutes les portées (tous les contextes @context{Staff}) +dans la partition. @example \set fontSize = #-2 \override Stem #'thickness = #4.0 @@ -1227,10 +1234,10 @@ The statements @end example @noindent -affect all staves in the score. Other contexts can be modified -analogously. +Les autres contextes peuvent être modifiés de même manière. -The @code{\set} keyword is optional within the @code{\layout} block, so +La commande @code{\set}, dans le bloc @code{\layout}, est facultative ; aussi +les lignes suivantes produiront-elles le même effet. @example \context @{ @@ -1239,20 +1246,15 @@ The @code{\set} keyword is optional within the @code{\layout} block, so @} @end example -@noindent -will also work. - - @refbugs -It is not possible to collect context changes in a variable and apply -them to a @code{\context} definition by referring to that variable. +Il est impossible de stocker des modifications de contexte dans un identifieur. -The @code{\RemoveEmptyStaffContext} will overwrite your current -@code{\Staff} settings. If you wish to change the defaults for a -staff which uses @code{\RemoveEmptyStaffContext}, you must do so -after calling @code{\RemoveemptyStaffContext}, ie +Le raccourci @code{\RemoveEmptyStaffContext} détruit tous les réglages +du contexte @code{\Staff}. Pour modifier des propriétés de portées gouvernées +par @code{\RemoveEmptyStaffContext}, il faut le faire impérativement @emph{après} +avoir invoqué @code{\RemoveemptyStaffContext} : @example \layout @{ @@ -1268,14 +1270,14 @@ after calling @code{\RemoveemptyStaffContext}, ie @node Defining new contexts @subsection Defining new contexts -Specific contexts, like @context{Staff} and @code{Voice}, are made of -simple building blocks. It is possible to create new types of -contexts with different combinations of engraver plug-ins. +Les contextes tels que @context{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. -The next example shows how to build a different type of -@context{Voice} context from scratch. It will be similar to -@code{Voice}, but only prints centered slash noteheads. It can be used -to indicate improvisation in jazz pieces, +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 +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. @lilypond[quote,ragged-right] \layout { \context { @@ -1301,8 +1303,8 @@ to indicate improvisation in jazz pieces, @end lilypond -These settings are defined within a @code{\context} block inside a -@code{\layout} block, +On a rassemblé les réglages dans un bloc @code{\context}, lui-même dans +le bloc @code{\layout} : @example \layout @{ @@ -1312,59 +1314,62 @@ These settings are defined within a @code{\context} block inside a @} @end example -In the following discussion, the example input shown should go in place -of the @dots{} in the previous fragment. +En lieu et place des points (@dots{}), voici les éléments à saisir : -First it is necessary to define a name for the new context: +@itemize @bullet +@item Tout d'abord, il convient de donner un nom @code{\name} à notre nouveau contexte : @example \name ImproVoice @end example -Since it is similar to the @context{Voice}, we want commands that work -on (existing) @context{Voice}s to remain working. This is achieved by -giving the new context an alias @context{Voice}, +@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} : @example \alias Voice @end example -The context will print notes and instructive texts, so we need to add -the engravers which provide this functionality, +@item Ce contexte doit pouvoir imprimer des notes, et des indications textuelles ; +on ajoute donc les graveurs appropriés. @example \consists Note_heads_engraver \consists Text_engraver @end example -but we only need this on the center line, +@item Cependant, on veut que les notes s'affichent toutes au centre de la portée : @example \consists Pitch_squash_engraver squashedPosition = #0 @end example -The @internalsref{Pitch_squash_engraver} modifies note heads (created -by @internalsref{Note_heads_engraver}) and sets their vertical -position to the value of @code{squashedPosition}, in this case@tie{}@code{0}, -the center line. +@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 +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. -The notes look like a slash, and have no stem, +@item On veut que les notes aient la forme d'une barre oblique, sans aucune hampe : @example \override NoteHead #'style = #'slash \override Stem #'transparent = ##t @end example -All these plug-ins have to cooperate, and this is achieved with a -special plug-in, which must be marked with the keyword @code{\type}. -This should always be @internalsref{Engraver_group}, +@item Afin que tous ces graveurs puissent travailler de concert, on leur adjoint un +sous-programme special, introduit par la commande @code{\type} : il s'agit de +@internalsref{Engraver_group}, @example \type "Engraver_group" @end example -Put together, we get +@end itemize + +Récapitulons -- on se retrouve avec le bloc suivant : @example \context @{ @@ -1381,10 +1386,10 @@ Put together, we get @end example @funindex \accepts -Contexts form hierarchies. We want to hang the @context{ImproVoice} -under @context{Staff}, just like normal @code{Voice}s. Therefore, we -modify the @code{Staff} definition with the @code{\accepts} -command, +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 contexte @code{Voice}, sa place est +au sein du contexte @code{Staff}. Nous allons donc modifier le contexte @context{Staff}, +au moyen de la commande @code{\accepts} : @example \context @{ @@ -1394,10 +1399,12 @@ command, @end example @funindex \denies -The opposite of @code{\accepts} is @code{\denies}, -which is sometimes needed when reusing existing context definitions. +Le contraire de @code{\accepts} est @code{\denies}, +qui est parfois utile lorsque l'on recycle des définitions de +contextes déjà existantes. -Putting both into a @code{\layout} block, like +Enfin, tout cela doit prendre place dans le bloc @code{\layout}, +comme suit : @example \layout @{ @@ -1412,15 +1419,15 @@ Putting both into a @code{\layout} block, like @} @end example -Then the output at the start of this subsection can be entered as +On peut alors saisir la musique, comme dans l'exemple plus haut : @example \relative c'' @{ a4 d8 bes8 \new ImproVoice @{ c4^"ad lib" c - c4 c^"undress" - c c_"while playing :)" + c4 c^"dévêtez-vous" + c c_"tout en jouant :)" @} a1 @} @@ -1430,9 +1437,9 @@ Then the output at the start of this subsection can be entered as @node Aligning contexts @subsection Aligning contexts -New contexts may be aligned above or below exisiting contexts. This -could be useful in setting up a vocal staff (@ref{Vocal ensembles}) and -in ossia, +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}. @cindex ossia @findex alignAboveContext @@ -1455,28 +1462,29 @@ ossia = { f4 f f f } @node Vertical grouping of grobs @subsection Vertical grouping of grobs -The VerticalAlignment and VerticalAxisGroup grobs work together. -VerticalAxisGroup groups together different grobs like Staff, Lyrics, -etc. VerticalAlignment then vertically aligns the different grobs -grouped together by VerticalAxisGroup. There is usually only one -VerticalAlignment per score but every Staff, Lyrics, etc. has its own -VerticalAxisGroup. +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 -In the previous section, we have already touched on a command that -changes layout details: the @code{\override} command. In this section, -we will look in more detail at how to use the command in practice. The -general syntax of this command is: +La commande @code{\override} command permet de modifier la mise en page +en détail. Examinons en détail comment l'utiliser concrètement. +La syntaxe de cette commande ressemble généralement à : @example -\override @var{context}.@var{layout_object} #'@var{layout_property} = #@var{value} +\override @var{contexte}.@var{objet} #'@var{propriété} = #@var{valeur} @end example -This will set the @var{layout_property} of the specified @var{layout_object}, -which is a member of the @var{context}, to the @var{value}. +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:: @@ -1494,52 +1502,54 @@ which is a member of the @var{context}, to the @var{value}. @node Constructing a tweak @subsection Constructing a tweak -Commands which change output generally look like +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 -To construct this tweak we must determine these bits of information: +Pour élaborer un réglage de ce type, on a besoin de connaître précisément : @itemize -@item the context: here @context{Voice}. -@item the layout object: here @code{Stem}. -@item the layout property: here @code{thickness}. -@item a sensible value: here @code{3.0}. +@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 -Some tweakable options are called @q{subproperties} and reside inside -properties. To tweak those, use commands in the form +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 internal documentation -@cindex finding graphical objects -@cindex graphical object descriptions -@cindex tweaking +@cindex documentation exhaustive +@cindex trouver des objets graphiques +@cindex objets graphiques, description +@cindex régler @funindex \override -@cindex internal documentation -For many properties, regardless of the data type of the property, setting the -property to false ( @code{##f} ) will result in turning it off, causing -Lilypond to ignore that property entirely. This is particularly useful for -turning off grob properties which may otherwise be causing problems. +Pour bien des propriétés, quel que soit le type de valeur requise, attribuer la +valeur @q{Faux} (lettre @code{##f} ) 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 lorsque des propriétés causeraient, autrement, 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 -Suppose we want to move the fingering indication in the fragment -below: +Comment, par exemple, déplacer le doigté dans le fragment suivant ? @lilypond[quote,fragment,relative=2,verbatim] c-2 @@ -1547,13 +1557,13 @@ c-2 f @end lilypond -If you visit the documentation on fingering instructions (in -@ref{Fingering instructions}), you will notice: +Sur la page de la documentation relative aux doigtés, c'est-à-dire +@ref{Fingering instructions}, se trouve l'indication suivante : @quotation @seealso -Program reference: @internalsref{Fingering}. +Référence du programme : @internalsref{Fingering}. @end quotation @@ -1596,23 +1606,26 @@ manual. @end ignore @ifnothtml -The programmer's reference is available as an HTML document. It is -highly recommended that you read it in HTML form, either online or -by downloading the HTML documentation. This section will be much more -difficult to understand if you are using the -PDF manual. +Ladite Référence est disponible au format HTML, ce qui rend la navigation bien +plus aisée. Il est possible soit de la lire en ligne, soit de la télécharger +dans ce format. La démarche présentée ici sera plus difficle à comprendre +dans un document au format PDF. @end ifnothtml -Follow the link to @internalsref{Fingering}. At the top of the -page, you will see +Suivons le lien @internalsref{Fingering}. En haut de la nouvelle page, +on peut lire @quotation Fingering objects are created by: @internalsref{Fingering_engraver} and @internalsref{New_fingering_engraver}. @end quotation -By following related links inside the program reference, we can follow the -flow of information within the program: +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}.} + +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 @@ -1628,40 +1641,49 @@ Music event type @code{fingering-event} is in Music expressions named @internalsref{FingerEvent} @end itemize -This path goes against the flow of information in the program: it -starts from the output, and ends at the input event. You could -also start at an input event, and read with the flow of -information, eventually ending up at the output object(s). +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 +ou plusieurs objets graphiques. -The program reference can also be browsed like a normal document. It -contains chapters on +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}, @end ifhtml @ifnothtml @code{Music definitions} @end ifnothtml -on @internalsref{Translation}, and the @internalsref{Backend}. Every -chapter lists all the definitions used and all properties that may be -tuned. +@internalsref{Translation}, ou encore @internalsref{Backend}. Chaque chapitre +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 +@ignore +La Référence du programme n'est pas traduite en français -- notamment du fait +qu'elle est évolution constante, tout comme LilyPond. En revanche, les termes +musicaux font l'objet d'un @commentfairelelien{glossaire} fort utile pour les utilisateurs +francophones. +@end ignore @node Layout interfaces @subsection Layout interfaces -@cindex interface, layout -@cindex layout interface -@cindex grob +@cindex interfaces de rendu +@cindex rendu, interfaces de +@cindex objets graphiques -The HTML page that we found in the previous section describes the -layout object called @internalsref{Fingering}. Such an object is a -symbol within the score. It has properties that store numbers (like -thicknesses and directions), but also pointers to related objects. A -layout object is also called a @emph{Grob}, which is short for Graphical -Object. For more details about Grobs, see @internalsref{grob-interface}. +Tous les éléments de notation sont considérés comme des objets graphiques +(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}. -The page for @code{Fingering} lists the definitions for the -@code{Fingering} object. For example, the page says +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 +propre à ce type d'objets : @quotation @code{padding} (dimension, in staff space): @@ -1670,38 +1692,37 @@ The page for @code{Fingering} lists the definitions for the @end quotation @noindent -which means that the number will be kept at a distance of at least 0.5 -of the note head. +Ce qui signifie que les doigtés doivent être maintenus à une certaine distance (@q{padding}) +des notes : 0,5 unités @q{staff-space} (espace de portée). + +Chaque objet peut avoir plusieurs attributs, en tant qu'élément typographique +ou musical. Ainsi, un doigté (objet @q{Fingering}) possède les attributs suivants : -Each layout object may have several functions as a notational or -typographical element. For example, the Fingering object -has the following aspects @itemize @bullet @item -Its size is independent of the horizontal spacing, unlike slurs or beams. +Sa taille ne dépend pas de l'espacement horizontal, contrairement aux liaisons ou ligatures. @item -It is a piece of text. Granted, it is usually a very short text. +C'est du texte -- un texte vraiment court, certes. @item -That piece of text is typeset with a font, unlike slurs or beams. +Ce texte est imprimé au moyen d'une fonte, contrairement aux liaisons ou ligatures. @item -Horizontally, the center of the symbol should be aligned to the -center of the notehead. +Sur l'axe horizontal, le centre de ce symbole doit être aligné avec le centre de la note. @item -Vertically, the symbol is placed next to the note and the staff. +Sur l'axe vertical, le symbole doit être proche de la note et de la portée. @item -The vertical position is also coordinated with other superscript -and subscript symbols. +Sur l'axe vertical encore, il doit également s'ordonner avec les éventuels +autres symboles, ponctuations, ou éléments textuels. @end itemize -Each of these aspects is captured in so-called @emph{interface}s, -which are listed on the @internalsref{Fingering} page at the bottom +Faire appliquer ces différents attributs est le rôle des @emph{interfaces}, +que l'on trouve en bas de la page @internalsref{Fingering}. @quotation This object supports the following interfaces: @@ -1712,15 +1733,23 @@ This object supports the following interfaces: @internalsref{finger-interface}, and @internalsref{grob-interface}. @end quotation -Clicking any of the links will take you to the page of the respective -object interface. Each interface has a number of properties. Some of -them are not user-serviceable (@q{Internal properties}), but others -can be modified. +@noindent +En français, + +@quotation +Cet objet admet les interfaces suivantes : +@end quotation -We have been talking of @emph{the} @code{Fingering} object, but actually it -does not amount to much. The initialization file (see -@ref{Default files}) -@file{scm/@/define@/-grobs@/.scm} shows the soul of the @q{object}, +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 +propriétés internes). + +Pour aller encore plus loin, plutôt que de simplement parler de l'objet +@code{Fingering}, ce qui ne nous avance pas à grand chose, on peut aller explorer +son âme même, dans les fichiers source de LilyPond (voir @ref{Default files}), en +l'occurence le fichier @file{scm/@/define@/-grobs@/.scm} : @example (Fingering @@ -1746,15 +1775,14 @@ does not amount to much. The initialization file (see @end example @noindent -As you can see, the @code{Fingering} object is nothing more than a -bunch of variable settings, and the webpage in the Program Reference -is directly generated from this definition. - +...où l'on découvre que l'objet @code{Fingering} n'est rien de plus qu'un +amas de variables et de réglages. La page de la Référence du programme est +en fait directement engendrée par cette définition. @node Determining the grob property @subsection Determining the grob property -Recall that we wanted to change the position of the @b{2} in +Nous voulions changer la position du chiffre @b{2} dans le fragment suivant : @lilypond[quote,fragment,relative=2,verbatim] c-2 @@ -1762,10 +1790,10 @@ c-2 f @end lilypond -Since the @b{2} is vertically positioned next to its note, we have to -meddle with the interface associated with this positioning. This is -done using @code{side-position-interface}. The page for this interface -says +Dans la mesure où le @b{2} est placé, verticalement, à proximité de la note qui lui +correspond, nous allons devoir trouver l'interface en charge de ce placement, qui se +trouve être @code{side-position-interface}. Sur la page de cette interface, on +peut lire : @quotation @code{side-position-interface} @@ -1775,9 +1803,19 @@ support). The property @code{direction} signifies where to put the victim object relative to the support (left or right, up or down?) @end quotation +@noindent +Ce qui signifie +@quotation +@code{side-position-interface} + +Placer l'objet affecté à proximité d'autres objets. La propriété +@code{direction} indique où placer l'objet (à droite ou à gauche, +en haut ou en bas). +@end quotation + @cindex padding @noindent -Below this description, the variable @code{padding} is described as +En-dessous de cette description se trouve décrite la variable @code{padding} : @quotation @table @code @@ -1788,16 +1826,21 @@ Add this much extra space between objects that are next to each other. @end table @end quotation -By increasing the value of @code{padding}, we can move the -fingering away from the notehead. The following command inserts -3 staff spaces of white -between the note and the fingering: +@noindent +Ce qui signifie +@quotation Ajouter tel espace supplémentaire entre des objets proches les uns des autres. +@end quotation + +@noindent +En augmentant la valeur de @code{padding}, on peut donc éloigner le doigté de la +note. La commande suivante insère trois unités d'espace vide entre la note et le doigté : + @example \once \override Voice.Fingering #'padding = #3 @end example -Inserting this command before the Fingering object is created, -i.e., before @code{c2}, yields the following result: +En ajoutant cette commande avant la création du doigté (de l'objet @q{Fingering}), +donc avant @code{c2}, on obtient le résultat suivant : @lilypond[quote,relative=2,fragment,verbatim] \once \override Voice.Fingering #'padding = #3 @@ -1807,23 +1850,31 @@ f @end lilypond -In this case, the context for this tweak is @context{Voice}. This -fact can also be deduced from the program reference, for the page for -the @internalsref{Fingering_engraver} plug-in says +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 : @quotation Fingering_engraver is part of contexts: @dots{} @internalsref{Voice} @end quotation +@noindent +Ce qui signifie +@quotation +Le graveur Fingering_engraver fait partie des contextes : @dots{} @internalsref{Voice} +@end quotation + @node Objects connected to the input @subsection Objects connected to the input @funindex \tweak -In some cases, it is possible to take a short-cut for tuning graphical -objects. For objects that result directly from a piece of the input, -you can use the @code{\tweak} function, for example +Dans certains cas, on peut passer par un raccourci pour arranger les +objets graphiques. Lorsque 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 : @lilypond[relative=2,fragment,verbatim,ragged-right] < @@ -1834,40 +1885,41 @@ you can use the @code{\tweak} function, for example >4-\tweak #'padding #10 -. @end lilypond -As you can see, properties are set in the objects directly, -without mentioning the grob name or context where this should be -applied. +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 (@q{grob}), ni le contexte dans lequel cela doit s'appliquer. -This technique only works for objects that are directly connected to -an @internalsref{event} from the input, for example +Ce procédé ne marche que pour des objets directement liés aux évènements +(@internalsref{event}) du fichier source. Par exemple : @itemize @bullet -@item note heads, caused by chord-pitch (i.e., notes inside a chord) -@item articulation signs, caused by articulation instructions +@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 -It notably does not work for stems and accidentals (these are caused -by note heads, not by music events) or clefs (these are not caused by -music inputs, but rather by the change of a property value). +En revanche, les hampes ou les altérations sont engendrées par les têtes de notes, +et non par des évènements dans le fichier source. De même pour les clés, qui ne +sont pas directement engendrées par le fichier source, mais plutôt par le +changement d'une propriété interne. -There are very few objects which are @emph{directly} connected to -output. A normal note (like @code{c4}) is not directly connected -to output, so +En fait, très peu d'objets passent @emph{directement} du code source à la partition. +Une note toute simple, par exemple @code{c4}, fait l'objet d'un traitement et n'est donc +pas directement rendue ; c'est pourquoi le code suivant ne sera d'aucun effet : @example \tweak #'color #red c4 @end example @noindent -does not change color. See @ref{Displaying music expressions}, for -details. +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} -The main disadvantage of @code{\tweak} is its syntactical -inflexibility. For example, the following produces a syntax error. +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 @@ -1878,13 +1930,13 @@ F = \tweak #'font-size #-3 -\flageolet @end example @noindent -With other words, @code{\tweak} doesn't behave like an articulation -regarding the syntax; in particular, it can't be attached with -@samp{^} and @samp{_}. +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{_}. -Using Scheme, this problem can be circumvented. The route to the -result is given in @ref{Adding articulation to notes (example)}, -especially how to use @code{\displayMusic} as a helping guide. +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 @@ -1900,115 +1952,113 @@ F = #(let ((m (make-music 'ArticulationEvent @end example @noindent -Here, the @code{tweaks} properties of the flageolet object -@samp{m} (created with @code{make-music}) are extracted with -@code{ly:music-property}, a new key-value pair to change the -font size is prepended to the property list with the -@code{acons} Scheme function, and the result is finally -written back with @code{set!}. The last element of the -@code{let} block is the return value, @samp{m} itself. +Ici les propriétés @code{tweaks} 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 (grpace à 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 @subsection @code{\set} vs. @code{\override} -We have seen two methods of changing properties: @code{\set} and -@code{\override}. There are actually two different kinds of -properties. - -Contexts can have properties, which are usually named in -@code{studlyCaps}. They mostly control the translation from -music to notatino, eg. @code{localKeySignature} (for determining -whether to print accidentals), @code{measurePosition} (for -determining when to print a barline). Context properties can -change value over time while interpreting a piece of music; -@code{measurePosition} is an obvious example of -this. Context properties are modified with @code{\set}. - -There is a special type of context property: the element -description. These properties are named in @code{StudlyCaps} -(starting with capital letters). They contain the -@q{default settings} for said graphical object as an -association list. See @file{scm/@/define@/-grobs@/.scm} -to see what kind of settings there are. Element descriptions -may be modified with @code{\override}. - -@code{\override} is actually a shorthand; +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. + +Les contextes peuvent avoir des propriétés, dont les noms commencent par une +minuscule puis comprennent une ou plusieurs majuscules (de style @code{totoTutu}). Elles ont surtout trait +à la notation des éléments musicaux : par exemple, @code{localKeySignature} permet +de choisir s'il faut ou non imprimer une altération, ou @code{measurePosition} permet +de choisir quand il faut imprimer une barre de mesure. Ces propriétés de contextes +sont appelées à changer au long de l'interprétation de la partition : +@code{measurePosition} en est un exemple évident. Ces propriétés doivent +être modifiées avec la commande @code{\set}. + +Il existe un type particulier de propriétés : les descriptions +d'éléments. Ces propriétés, dont les noms commencent par une majuscule, puis comprennent +une ou plusieurs majuscules (de style @code{TotoTata}), contiennent les réglages +@q{par défaut} pour les objets graphiques. Ces réglages sont sous forme de liste Scheme ; on +peut les consulter dans le fichier @file{scm/@/define@/-grobs@/.scm}. +Les descriptions d'éléments doivent être modifiées avec la commande @code{\override}. + +@code{\override} est en fait un raccourci : @example -\override @var{context}.@var{name} #'@var{property} = #@var{value} +\override @var{contexte}.@var{objet} #'@var{propriété} = #@var{valeur} @end example @noindent -is more or less equivalent to +est plus ou moins l'équivalent de @c leave this long line -gp @example -\set @var{context}.@var{name} #'@var{property} = #(cons (cons '@var{property} @var{value})