@c -*- coding: utf-8; mode: texinfo; documentlanguage: fr -*-
@ignore
- Translation of GIT committish: a6cd9e45dcb86a249936f174403c9f8bc8afebc0
+ Translation of GIT committish: b38fd63a19190741c0c19faf6a904af82c3f434c
When revising a translation, copy the HEAD committish of the
version that you are working on. For details, see the Contributors'
* Autres retouches::
@end menu
+
@node Retouches élémentaires
@section Retouches élémentaires
@translationof Tweaking basics
* Méthodes de retouche::
@end menu
+
@node Introduction aux retouches
@subsection Introduction aux retouches
@translationof Introduction to tweaks
graveurs et autres propriétés qui y sont décrits, sont indispensables
pour comprendre et construire les retouches.
+
@node Objets et interfaces
@subsection Objets et interfaces
@translationof Objects and interfaces
doigtés, les clefs, etc. sont appelés @qq{Objets de rendu}@tie{}; ils
sont aussi connus sous le nom d'@qq{Objets graphiques} (en
anglais@tie{}: @emph{Graphical objects} ou @emph{Grobs} pour faire
-court). Ce sont bien des objets au sens générique ci-dessus, et, en
+court). Ce sont bien des objets au sens générique ci-dessus et, en
tant que tels, ils reçoivent des propriétés qui leur sont associées,
comme leur position, leur taille, leur couleur, etc.
compte plus d'une centaine. Nous verrons plus loin en quoi c'est
intéressant et utile pour l'utilisateur.
-Ainsi s'achève le tour des principaux termes relatifs aux objets et
+Ainsi s'achève le tour des principaux termes relatifs aux objets
que nous serons amenés à utiliser dans ce chapitre.
+
@node Conventions de nommage des objets et propriétés
@subsection Conventions de nommage des objets et propriétés
@translationof Naming conventions of objects and properties
@multitable @columnfractions .33 .33 .33
@headitem Type d'objet/propriété
- @tab Convention de nommage
- @tab Exemples
+ @tab Convention de nommage
+ @tab Exemples
@item Contextes
- @tab Aaaa ou AaaaAaaaAaaa
- @tab Staff, GrandStaff
+ @tab Aaaa ou AaaaAaaaAaaa
+ @tab Staff, GrandStaff
@item Objets de rendu
- @tab Aaaa ou AaaaAaaaAaaa
- @tab Slur, NoteHead
+ @tab Aaaa ou AaaaAaaaAaaa
+ @tab Slur, NoteHead
@item Graveurs
- @tab Aaaa_aaa_engraver
- @tab Clef_engraver, Note_heads_engraver
+ @tab Aaaa_aaa_engraver
+ @tab Clef_engraver, Note_heads_engraver
@item Interfaces
- @tab aaa-aaa-interface
- @tab grob-interface, break-aligned-interface
+ @tab aaa-aaa-interface
+ @tab grob-interface, break-aligned-interface
@item Propriétés de contexte
- @tab aaa ou aaaAaaaAaaa
- @tab alignAboveContext, skipBars
+ @tab aaa ou aaaAaaaAaaa
+ @tab alignAboveContext, skipBars
@item Propriétés d'objet de rendu
- @tab aaa ou aaa-aaa-aaa
- @tab direction, beam-thickness
+ @tab aaa ou aaa-aaa-aaa
+ @tab direction, beam-thickness
@end multitable
Comme nous le verrons bientôt, les propriétés des différents
qu'il est bon de savoir reconnaître le type d'un objet en fonction du
nom de ses propriétés.
+
@node Méthodes de retouche
@subsection Méthodes de retouche
@translationof Tweaking methods
}
@end lilypond
+
@seealso
Manuel de notation :
@ruser{La commande d'affinage (@emph{tweak})}.
* Types de propriétés::
@end menu
+
@node Propriétés des objets de rendu
@subsection Propriétés des objets de rendu
@translationof Properties of layout objects
prendre@tie{}? Vous êtes convaincu, avec tout ce qui a été dit sur la
souplesse de LilyPond, qu'une telle retouche est réalisable et
vous vous dites qu'elle fera sans doute intervenir la commande
-@code{\override}. Mais existe-t-il une propriété lourde qui s'applique
-à une liaison et, dans l'affirmative, comment faire pour la
+@code{\override}. Mais existe-t-il une propriété épaisseur qui
+s'applique à une liaison et, dans l'affirmative, comment faire pour la
modifier@tie{}? C'est là qu'intervient la Référence des propriétés
internes. Elle contient toutes les informations dont vous avez besoin
pour construire n'importe quelle commande @code{\override}.
commandes -- mais il faut encore s'exercer. Les exemples
suivants sont là dans cette intention.
+
@subheading Détermination du contexte adéquat
@cindex contexte, détermination du
niveau, qu'il est activé sans ambiguïté par le fait que l'on est
en train de saisir des notes, on peut ici ne pas le mentionner.
+
@subheading Redéfinition pour une seule occurence
@cindex dérogation pour une seule fois
exemples seront progressivement accompagnés d'explications et
introduiront des termes nouveaux.
+
@node Propriétés listées par interface
@subsection Propriétés listées par interface
@translationof Properties found in interfaces
est@tie{}: @qq{Comment se fait-il que les propriétés @code{font-series}
et @code{font-size} se retrouvent à la fois dans @code{LyricText} et
dans l'interface @code{font-interface} alors que ce n'est pas le cas
-pour @code{font-shape} ?} La réponse est que lorsqu'un objet
+pour @code{font-shape}@tie{}?} La réponse est que lorsqu'un objet
@code{LyricText} est créé, les valeurs globales par défaut de
@code{font-series} et @code{font-size} sont modifiées, mais pas celles
de @code{font-shape}. Les possibilités de modification dans
@noindent
et voilà les paroles en italiques.
+
@subheading Spécification du contexte en mode lyrique
@cindex contexte, spécification en mode lyrique
autre caractère compte comme un élément de la syllabe. C'est pourquoi
il faut une espace ou un saut de ligne avant le @code{@}} final, pour
éviter qu'il ne soit assimilé à la dernière syllabe. De même, il faut
-insérer des espaces avant et après le point, @qq{.}, qui sépare le nom
-de contexte du nom de l'objet, faute de quoi les deux noms seront joints
-et l'interpréteur ne pourra pas les reconnaître. La formulation
+insérer des espaces de part et d'autre du point, @qq{.}, qui sépare le
+nom de contexte du nom de l'objet, faute de quoi les deux noms seront
+joints et l'interpréteur ne pourra pas les reconnaître. La formulation
correcte est donc@tie{}:
@example
@subsection Types de propriétés
@translationof Types of properties
-
@cindex propriété, types de
Nous avons vu jusqu'à maintenant deux types de propriétés@tie{}:
@tab Vrai (@emph{true} en anglais) ou Faux (@emph{false} en anglais),
sous la forme @code{#t} ou @code{#f}
@tab @code{#t}, @code{#f}
-@item Dimension (en lignes de portée)
+@item Dimension (en espaces de portée)
@tab Un nombre positif décimal (en unités de lignes de portée)
@tab @code{2.5}, @code{0.34}
@item Direction
@item Liste
@tab Plusieurs valeurs séparées par une espace, encadrées par des
parenthèses et prédédées par une apostrophe
- @tab @code{'(left-edge staff-bar)}, @code{'(1)}, @code{'(1.0 0.25 0.5)}
+ @tab @code{'(left-edge staff-bar)}, @code{'(1)},
+ @code{'(1.0 0.25 0.5)}
@item Markup (ou étiquette)
@tab Toute commande @code{\markup} valide
@tab @code{\markup @{ \italic "cresc." @}}
mesure -- et de beaucoup d'autres objets, bien sûr. Examinons chacune
d'elles tour à tour.
+
@subheading stencil
@cindex stencil, propriété
@code{stencil} déclechera une erreur dès lors que l'objet en question se
doit d'avoir des dimensions pour les nécessités du traitement. Ce sera
le cas, par exemple, si vous effacez le @code{stencil} d'un objet
-@code{NoteHead}. Il vaut mieux, en pareil caas, utiliser la fonction
+@code{NoteHead}. Il vaut mieux, en pareil cas, utiliser la fonction
@code{point-stencil} qui, quant à elle, attribue à l'objet une taille à
zero@tie{}:
}
@end lilypond
+
@subheading visibilité des barres (break-visibility)
@cindex break-visibility, propriété
Comme on peut le constater, cette solution-là aussi supprime les barres
de mesure.
+
@subheading transparence
@cindex transparent, propriété
valeur @code{#f} supprime totalement l'objet, tandis que le fait de le
rendre @code{transparent} le laisse en place, mais de façon invisible.
+
@subheading couleur
@cindex color, propriété
les mêmes proportions que les polices de caractères. La prochaine
sous-section montrera comment faire.
+
@node Longueur et épaisseur des objets
@subsection Longueur et épaisseur des objets
@translationof Length and thickness of objects
Pour de petits changements d'échelle, comme dans l'exemple ci-dessus, il
n'est généralement pas utile d'ajuster l'épaisseur des différentes
lignes telles que les barres de mesure, les ligatures, les soufflets de
-crescendo/decrescendo, les liaisons, etc. Si l'épaisseur d'un objet en
-particulier doit être ajustée, le mieux est de modifier sa propriété
+crescendo ou decrescendo, les liaisons, etc. Si l'épaisseur d'un objet
+en particulier doit être ajustée, le mieux est de modifier sa propriété
@code{thickness}. Nous avons vu plus haut, dans
@ref{Propriétés des objets de rendu}, un exemple de modification de
l'épaisseur des liaisons. L'épaisseur de tous les objets tracés
(c'est-à-dire ceux qui ne proviennent pas d'une police de caractère)
peut être changée de la même manière.
+
@node Positionnement des objets
@section Positionnement des objets
@translationof Placement of objects
* Objets hors de la portée::
@end menu
+
@node Comportement automatique
@subsection Comportement automatique
@translationof Automatic behavior
de modifier ce comportement automatique.
Parmi les objets extérieurs à la portée, on compte des éléments comme
-les marques de reprise, les indications de texte ou de nuances. Dans
+les marques de reprise, les indications de texte ou de nuance. Dans
LilyPond, la règle est de placer verticalement ces objets extérieurs à
la portée le plus près possible de la portée, tout en évitant la
collision avec d'autres objets. LilyPond utilise la propriété
à la portée doivent occuper la même place, c'est celui qui a la
@code{outside-staff-priority} la plus basse qui est placé le plus près
de la portée. Et si deux objets ont la même
-@code{outside-staff-priority}, le premier rencontré sera placé le plus
+@code{outside-staff-priority}, le premier rencontré sera placé au plus
près de la portée.
Dans l'exemple suivant, tous les @emph{markup} ont la même priorité,
utiliser la commande prédéfinie, suivie, après la note à modifier, de la
commande @code{\xxxNeutral} correspondante.
+
@subheading Doigtés
@cindex doigtés, positionnement
c,4 c c c |
@end lilypond
+N'oublions pas que certains objets, tels les numéros de mesure,
+indications métronomiques et marques-repères, sont par défaut attachés
+au contexte @code{Score}.
+
@cindex liaisons et outside-staff-priority
@cindex liaisons et articulations
@cindex articulations et liaisons
notes pour laisser plus de place au texte. C'est possible grâce à la
commande @code{textLengthOn}.
+
@subheading \textLengthOn
@cindex notes, répartition selon le texte
@subheading Nuances
-@cindex modifier le positionnement des nuances
-@cindex nuances, modifier le positionnement
+@cindex modification du positionnement des nuances
+@cindex nuances, modification du positionnement
-Les indications de nuance se placent normalement sous la portée mais on
+Les indications de nuance se placent normalement sous la portée, mais on
peut les placer au-dessus avec la commande @code{dynamicUp}. Elles se
positionnent verticalement par rapport à la note à laquelle elles sont
liées et se décalent vers le bas (ou le haut) en fonction des objets de
Si une telle situation devait survenir dans de la musique @qq{réelle},
il serait préférable d'espacer un peu plus les notes, de façon que les
indications de nuance puissent toutes se situer à la même distance de la
-portée. Il était possible de faire cela pour les textes de
-@emph{markup} grâce à la commande @code{\textLengthOn} mais il n'existe
+portée. S'il est possible de faire cela pour les textes de
+@emph{markup} grâce à la commande @code{\textLengthOn}, il n'existe
pas d'équivalent pour les indications de nuance. Il nous faut donc
chercher à faire cela avec la commande @code{\override}.
+
@subheading Dimensionnement des objets graphiques
@cindex grob, dimensionnement
@code{'(+inf.0@tie{}.@tie{}-inf.0)}. Pour être sûr que les objets ne se
chevaucheront pas horizontalement, nous devons donc corriger cette
valeur de @code{extra-spacing-width} en @w{@code{'(0 . 0)}}, afin que
-leur vraie largeur se manifeste. La commande pour y parvenir avec des
+leur vraie largeur se manifeste. La commande pour y parvenir avec des
indications de nuances est@tie{}:
@example
* Exemple concret::
@end menu
+
@node Déplacement d'objets
@subsection Déplacement d'objets
@translationof Moving objects
Ce point a déjà été traité en détails -- voir
@ref{Objets inclus dans la portée}.
+
@item
@code{padding}, @code{right-padding}, @code{staff-padding}
sont pas forcément traitées dans l'objet en question@tie{}; il faut
alors regarder les objets qui semblent s'en rapprocher.
-Toutes les valeurs @code{padding} sont exprimées en espaces de portée.
+Toutes les valeurs @code{padding} sont exprimées en espace de portée.
Pour la plupart des objets, la valeur par défaut est aux alentours de
1,0 et parfois moins (cela dépend de chaque objet). Il est possible de
la modifier lorsqu'on a besoin d'un espace vide plus grand (ou plus
correspond à un déplacement de la moitié de la longueur du
texte.
+
@item
@code{extra-spacing-width}
@code{staff-position} est une propriété de la
@code{staff-symbol-referencer-interface}, qui s'applique aux objets
-positionnés par rapport à la portée. Elle indique, en demi-espaces de
+positionnés par rapport à la portée. Elle indique, en demi-espace de
portée, la position verticale des objets par rapport à la ligne médiane
de la portée. C'est bien pratique pour résoudre des problèmes de
collision entre des objets comme les silences valant mesure entière,
les liaisons et les notes de différentes voix.
+
@item
@code{force-hshift}
(voir @ref{Instanciation explicite des voix}) ne suffisent plus à
résoudre les conflits. Elle est alors préférable à l'utilisation de la
propriété @code{extra-offset}, dans la mesure où on n'a pas besoin
-d'exprimer la distance en espaces de portée et où le fait de déplacer
+d'exprimer la distance en espace de portée et où le fait de déplacer
les notes à l'intérieur ou à l'extérieur d'une @code{NoteColumn} affecte
d'autres actions comme les fusions de notes.
@end itemize
+
@item
Pour terminer, quand toutes les autres méthodes ont échoué, il est
possible de repositionner verticalement les objets à la main par rapport
à la ligne médiane de la portée, ou en les déplaçant à une distance
donnée vers une nouvelle position. Les inconvénients sont qu'il faut
individuellement, pour chaque objet, trouver les valeurs correctes de
-repositionnement souvent par tâtonnement, et que, puisque le
+repositionnement souvent par tâtonnement et que, puisque le
mouvement est opéré après que LilyPond a placé tous les autres
objets, c'est à l'utilisateur de résoudre tous les problèmes de
collision qui pourraient survenir. Et le pire avec cette méthode est
@cindex extra-offset, propriété
Cette propriété s'applique à tout objet acceptant la
-@code{grob-interface}. Elle reçoit une paire de nombre qui indiquent le
-déplacement supplémentaire dans le sens horizontal et vertical. Des
+@code{grob-interface}. Elle reçoit une paire de nombres qui indiquent
+le déplacement supplémentaire dans le sens horizontal et vertical. Des
nombres négatifs déplacent l'objet vers la gauche ou vers la droite.
L'unité utilisée est l'espace de portée. Le déplacement supplémentaire
intervient une fois que la composition des objets est achevée, si bien
Cette propriété est très utile pour ajuster manuellement l'inclinaison
et la hauteur des barres de ligature, des liaisons et des nolets. Elle
-est suivie de deux nombres qui donnent la position des bords gauche et
-droit des barres, liaisons, etc. par rapport à la ligne médiane de la
-portée. L'unité de référence est l'intervalle de lignes de portée.
+est suivie de deux nombres qui donnent la position des extrémités gauche
+et droite des barres, liaisons, etc. par rapport à la ligne médiane de
+la portée. L'unité de référence est l'intervalle de lignes de portée.
Attention toutefois au fait que les liaisons et phrasés ne peuvent pas
être repositionnés n'importe où. LilyPond commence par dresser la liste
des emplacements possibles pour les liaisons et choisit par défaut la
Voyons maintenant comment les propriétés décrites dans la section
précédente peuvent nous aider à résoudre les collisions.
+
@subheading la propriété padding
@cindex décalage (padding)
@code{outside-staff-priority}, cet objet sera déplacé, ainsi que tous
les autres objets du groupe.
+
@subheading right-padding
@cindex right-padding, propriété
@noindent
+
@subheading la propriété staff-padding
@cindex alignement d'objets sur une ligne de base
<a\2>
@end lilypond
+
@subheading la propriété staff-position
@cindex collision d'objets à l'intérieur d'une portée
@code{MultiMeasureRest}@tie{}; nous avons donc besoin de la déplacer,
disons, de quatre demi-intervalles vers le bas, ce qui donne @code{-8}.
-
@cindex MultiMeasureRest, exemple de dérogation
@cindex staff-position, exemple d'utilisation de la propriété
car la ligne supplémentaire au-dessus du silence est insérée
automatiquement.
+
@subheading la propriété extra-offset
@cindex positionnement des objets
second bloc de croches de la première voix mais qu'il ne s'applique
à aucune mesure de la deuxième voix.
+
@subheading la propriété force-hshift
Maintenant, nous sommes prêts à appliquer les dernières corrections à
le do avec liaison, le ré blanche qui se fond avec le ré croche, et le
fa dièse noire pointée qui se fond lui aussi avec la croche de même
hauteur. Tout le reste se réduit à une seule voix. Le plus simple est
-donc de créer temporairement ces quatre voix au moment opportun.
-Si vous avez oublié comment faire, reportez-vous à
-@ref{J'entends des Voix}. Commençons par saisir les notes comme
-appartenant à deux variables, mettons en place l'ossature des
-portées dans un bloc @code{\Score} et voyons ce que LilyPond propose par
-défaut@tie{}:
+donc de créer temporairement ces trois voix supplémentaires au moment
+opportun. Si vous avez oublié comment faire, reportez-vous à
+@ref{J'entends des Voix} et @ref{Instanciation explicite des voix}.
+Nous opterons ici pour une déclaration explicite des voix du passage
+polyphonique, puisque LilyPond est alors plus performant en matière
+d'évitement des collisions.
+
+Commençons par saisir les notes comme appartenant à deux variables,
+mettons en place l'ossature des portées dans un bloc @code{\Score} et
+voyons ce que LilyPond propose par défaut@tie{}:
@c line-width ensures no break
@lilypond[quote,verbatim,ragged-right,line-width=6\in]
@cindex objets, invisibles
@cindex liaison de tenue avec changement de voix
+
@subheading Liaison entre plusieurs voix
Voici un exemple qui montre comment créer une liaison de
>>
@end lilypond
+
@subheading Rendu MIDI d'un point d'orgue
@cindex stencil, utilisation de la propriété
@tab Réglages affectant l'apparence des frets, couleurs, altérations,
barres de mesure, etc.
@item @file{scm/parser-clef.scm}
- @tab Définition des clefs prises en charge
+ @tab Définition des clefs prises en charge
@item @file{scm/script.scm}
- @tab Réglages par défaut des articulations
+ @tab Réglages par défaut des articulations
@end multitable
-
@node Retouches avancées avec Scheme
@subsection Retouches avancées avec Scheme
@translationof Advanced tweaks with Scheme