@c -*- coding: utf-8; mode: texinfo; documentlanguage: fr -*-
+
@ignore
- Translation of GIT committish: 057106293b07b74b00553fe4dc3dfac5c1f3b682
+ Translation of GIT committish: f199e875f7a7beb0afd17eae2038819baab767ff
When revising a translation, copy the HEAD committish of the
version that you are working on. For details, see the Contributors'
Guide, node Updating translation committishes..
@end ignore
-@c \version "2.14.0"
+@c \version "2.16.0"
@c Translators: Valentin Villenave, Nicolas Klutchnikoff, Damien Heurtebise
@c Translation checkers: Jean-Charles Malahieude, John Mandereau
@menu
* Retouches élémentaires::
-* Le manuel des références internes::
+* Le manuel de référence des propriétés internes::
* Apparence des objets::
* Positionnement des objets::
* Collisions d'objets::
* 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
anglais) les différents moyens dont dispose l'utilisateur pour
intervenir sur l'interprétation du fichier d'entrée et pour modifier
l'apparence du fichier de sortie. Certaines retouches sont très
-simples à mettre en œuvre@tie{}; d'autres sont plus complexes. Mais
+simples à mettre en œuvre ; d'autres sont plus complexes. Mais
à elles toutes, elles permettent d'obtenir tout ce qu'on veut en matière
de musique imprimée.
Dans ce chapitre, nous traitons des concepts de base nécessaires
pour comprendre l'art de la retouche. Puis nous présentons de
nombreuses commandes déjà prêtes, qu'il suffit de recopier pour
-obtenir un résultat identique dans vos partitions@tie{}; nous en
-profitons pour expliquer comment ces commandes ont été construites, si
-bien que vous pouvez apprendre par la même occasion à développer
-vos propres retouches.
+obtenir un résultat identique dans vos partitions ; nous en profitons
+pour expliquer comment ces commandes ont été construites, si bien que
+vous pouvez apprendre par la même occasion à développer vos propres
+retouches.
Avant de vous lancer dans ce chapitre, il peut être utile de revoir la
section @ref{Contextes et graveurs}, dans la mesure où les contextes,
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
Le terme @qq{Objet} est un terme générique qui fait référence à
une multitude de structures internes mises en place par LilyPond
durant la compilation d'un fichier d'entrée. Ainsi, quand une
-commande du type @code{\new Staff} apparaît, un nouvel objet
-du type @code{Staff} est créé. Cet objet @code{Staff} contient
-alors toutes les propriétés associées à cette portée, par exemple son
-nom et son armure, ainsi que le détail des graveurs qui ont été
-désignés pour fonctionner dans ce contexte de portée.
-Certains objets peuvent contenir les propriétés de tous les autres
-contextes, comme les objets @code{Voice}, les objets @code{Score},
-les objets @code{Lyrics}@tie{}; d'autres se rapportent à tous les
-éléments de notation, comme les barres de mesure, les liaisons, les
-nuances, etc. Chaque objet dispose de son propre échantillon de valeurs
-pour le réglage des propriétés.
+commande du type @code{\new Staff} apparaît, un nouvel objet du type
+@code{Staff} est créé. Cet objet @code{Staff} contient alors toutes les
+propriétés associées à cette portée, par exemple son nom et son armure,
+ainsi que le détail des graveurs qui ont été désignés pour fonctionner
+dans ce contexte de portée. Certains objets peuvent contenir les
+propriétés de tous les autres contextes, comme les objets @code{Voice},
+les objets @code{Score}, les objets @code{Lyrics} ; d'autres se
+rapportent à tous les éléments de notation, comme les barres de mesure,
+les liaisons, les nuances, etc. Chaque objet dispose de son propre
+échantillon de valeurs pour le réglage des propriétés.
Certains types d'objet portent des noms spécifiques. Les objets qui se
rapportent à des éléments de notation sur le fichier de sortie, comme
les notes, les hampes, les liaisons de phrasé ou de prolongation, les
-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
-tant que tels, ils reçoivent des propriétés qui leur sont associées,
-comme leur position, leur taille, leur couleur, etc.
+doigtés, les clefs, etc. sont appelés @qq{Objets de rendu} ; ils sont
+aussi connus sous le nom d'@qq{Objets graphiques} (en anglais :
+@emph{Graphical objects} ou @emph{Grobs} pour faire 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.
Certains objets de rendu, comme les liaisons de phrasé, les soufflets
de crescendo, les marques d'octaviation et beaucoup d'autres
Il reste à expliquer ce que sont les @qq{interfaces}. De nombreux
objets, qui peuvent être très différents les uns des autres, ont pour
point commun de devoir être compilés simultanément. Par exemple, tous
-les @emph{grobs} ont une couleur, une taille, une position, etc., et
+les @emph{grobs} ont une couleur, une taille, une position, etc. et
toutes ces propriétés sont compilées simultanément durant
l'interprétation du fichier d'entrée par LilyPond. Pour alléger ces
opérations internes, ces actions et propriétés communes sont regroupées
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
@cindex conventions de nommage des objets
@cindex conventions de nommage des propriétés
-@cindex objets, conventions de nommage des
-@cindex propriétés, conventions de nommage des
+@cindex objets, conventions de nommage
+@cindex propriétés, conventions de nommage
Nous avons eu un aperçu, dans @ref{Contextes et graveurs}, de
la façon de nommer les objets. Voici maintenant une liste de
@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
types d'objet sont modifiées par des commandes différentes, si bien
-qu'il est bon de savoir reconnaître le type d'un objet en fonction du
-nom de ses propriétés.
+qu'il est bon de savoir reconnaître le type d'un objet ou d'une
+propriété en fonction de son nom.
+
@node Méthodes de retouche
@subsection Méthodes de retouche
@cindex retouches, méthodologie
@cindex méthodes de retouche
+
@strong{La commande \override}
@cindex override, commande
quel contexte, et quelle doit être sa nouvelle valeur. Voyons de quoi
il retourne.
-La syntaxe générale de cette commande est@tie{}:
+La syntaxe générale de cette commande est :
@example
\override @var{Contexte}.@var{ObjetDeRendu} #'@var{propriété-rendu} = #@var{valeur}
Le contexte @var{Contexte} peut être omis (c'est généralement
le cas) quand il n'y a pas d'ambiguïté et qu'il s'agit d'un contexte
-de très bas niveau, comme @code{Voice}, @code{ChordNames}
-ou @code{Lyrics}. Dans les exemples qui suivent, le contexte sera
-très souvent omis. Nous verrons plus tard dans quelles
-circonstances il doit impérativement être indiqué.
+de très bas niveau, comme @code{Voice}, @code{ChordNames} ou
+@code{Lyrics}. Dans les exemples qui suivent, le contexte sera très
+souvent omis. Nous verrons plus tard dans quelles circonstances il doit
+impérativement être indiqué.
Les sections ci-dessous traitent largement des propriétés et de leurs
-valeurs mais, pour illustrer la mise en forme et l'utilisation de ces
-commandes, nous nous limiterons à n'employer que quelques propriétés et
-valeurs simples, facilement compréhensibles.
+valeurs -- voir @ref{Types de propriétés} -- mais, pour illustrer la
+mise en forme et l'utilisation de ces commandes, nous nous limiterons à
+n'employer que quelques propriétés et valeurs simples, facilement
+compréhensibles.
Nous ne parlerons dans l'immédiat ni du @code{#'}, qui précède
toujours la propriété, ni du @code{#}, qui précède toujours la
pour faire des retouches, et pratiquement tout le reste de ce
chapitre aura pour but montrer, à travers des exemples, comment
l'utiliser. L'exemple ci-dessous change la couleur des têtes de
-notes@tie{}:
+notes :
@cindex couleur,exemple d'utilisation de la propriété
@cindex NoteHead, exemple de dérogation
g4 a b c |
@end lilypond
+
@strong{La commande \revert}
@cindex revert, commande
valeur jusqu'à ce qu'elle soit à nouveau modifiée ou qu'elle rencontre
la commande @code{\revert}. La commande @code{\revert} obéit à
la syntaxe ci-dessous et ramène la valeur de la propriété à sa valeur
-d'origine. Attention@tie{}: dans le cas où plusieurs @code{\override}
+d'origine. Attention : dans le cas où plusieurs @code{\override}
ont été employés, il ne s'agit pas de la valeur précédente mais bien de
la valeur par défaut.
Tout comme pour la commande @code{\override}, la mention du
@var{Contexte} est souvent facultative. Elle sera omise dans de
nombreux exemples ci-dessous. Voici un exemple qui ramène la
-couleur des deux dernières notes à leur valeur par défaut@tie{}:
+couleur des deux dernières notes à leur valeur par défaut :
@cindex couleur,exemple d'utilisation de la propriété
@cindex NoteHead, exemple de dérogation
b4 c |
@end lilypond
+
@strong{Le préfixe \once}
@funindex \once
toutes les deux le préfixe @code{\once}. Celui-ci a pour fonction de
n'appliquer la commande @code{\override} ou @code{\set} qu'à
l'instant musical en cours, avant que la propriété ne reprenne
-sa valeur par défaut. Toujours à partir du même exemple, il est
-possible de ne changer la couleur que d'une seule note@tie{}:
+sa valeur antérieure -- qui n'est pas forcément la valeur par défaut
+lorsqu'un autre @code{\override} est toujours effectif. Toujours à
+partir du même exemple, il est possible de ne changer la couleur que
+d'une seule note :
@cindex couleur,exemple d'utilisation de la propriété
@cindex NoteHead, exemple de dérogation
@lilypond[quote,fragment,ragged-right,verbatim,relative=1]
c4 d
-\once \override NoteHead #'color = #red
+\override NoteHead #'color = #red
e4 f |
\once \override NoteHead #'color = #green
-g4 a b c |
+g4 a
+\revert NoteHead #'color
+b c |
@end lilypond
@strong{La commande \overrideProperty}
Il existe une autre forme de commande @code{\override},
@code{\overrideProperty}, qui est parfois utile. Nous la mentionnons
-ici par souci d'exhaustivité@tie{}; pour le détail, voir
-@rextendnamed{Difficult tweaks,Retouches complexes}.
+ici par souci d'exhaustivité ; pour le détail, voir
+@rextend{Retouches complexes}.
@c Maybe explain in a later iteration -td
+
@strong{La commande \tweak}
@cindex tweak, commande
surviennent simultanément dans la musique, comme par exemple les
notes d'un accord. La commande @code{\override} modifierait toutes
les notes de l'accord, tandis que @code{\tweak} permet de ne modifier
-que l'élément suivant dans la chaîne de saisie.
+que l'élément immédiatement suivant dans la chaîne de saisie.
Voici un exemple. Supposons que nous voulions changer la taille de
la tête de note du milieu (le mi) dans un accord de do majeur. Voyons
-d'abord ce que donnerait @code{\once \override}@tie{}:
+d'abord ce que donnerait @code{\once \override} :
@cindex font-size, exemple d'utilisation de la propriété
@cindex NoteHead, exemple de dérogation
<c e g>4
@end lilypond
-Nous voyons que @code{\override} modifie @emph{toutes} les têtes
+Nous voyons que @code{\override} modifie @strong{toutes} les têtes
de notes de l'accord, car toutes les notes de l'accord surviennent au
-même @emph{instant musical} et que la fonction de @code{\once}
+même @strong{instant musical} et que la fonction de @code{\once}
est de faire porter la modification sur tous les objets du type spécifié
qui surviennent au même instant musical, comme le fait la commande
@code{\override} elle-même.
La commande @code{\tweak} opère différemment. Elle agit
-sur l'élément immédiatement suivant dans la chaîne de saisie. Elle ne
-fonctionne toutefois que sur des objets créés directement à partir de
-la chaîne de saisie, c'est-à-dire essentiellement des têtes de notes et
-des articulations@tie{}; des objets comme les hampes ou les
-altérations accidentelles sont créés ultérieurement et ne peuvent
-être retouchés de cette manière. En outre, quand la retouche porte
-sur une tête de note, celle-ci @emph{doit} appartenir à un accord,
-c'est-à-dire être comprise à l'intérieur de chevrons gauche/droite.
-Pour retoucher une note isolée, il faut donc placer la commande
-@code{\tweak} avec la note à l'intérieur des chevrons gauche/droite.
+sur l'élément immédiatement suivant dans la chaîne de saisie. Dans sa
+forme la plus simple, elle ne fonctionne que sur les objets créés
+directement à partir de l'élément suivant dans la chaîne de saisie,
+c'est-à-dire essentiellement des têtes de notes et des articulations.
Pour reprendre notre exemple, la taille de la note du milieu d'un
-accord peut être modifiée de cette manière@tie{}:
+accord peut être modifiée de cette manière :
@cindex font-size, exemple d'utilisation de la propriété
@cindex @code{\tweak}, exemple
Vous noterez que la syntaxe de @code{\tweak} est différente de
celle de la commande @code{\override}. Ni le contexte,
-ni l'objet n'ont besoin d'être spécifiés@tie{}; au contraire, cela
+ni l'objet n'ont besoin d'être spécifiés ; au contraire, cela
produirait une erreur si on le faisait. Tous deux sont sous-entendus
-par l'élément suivant dans la chaîne de saisie. La syntaxe générale
-de la commande @code{\tweak} est donc, tout simplement@tie{}:
+par l'élément suivant dans la chaîne de saisie. Il n'est pareillement
+pas nécessaire d'insérer un signe égal. La syntaxe générale
+de la commande @code{\tweak} est donc, tout simplement :
@example
-\tweak #'@var{propriété-de-rendu} = #@var{valeur}
+\tweak #'@var{propriété-de-rendu} #@var{valeur}
@end example
La commande @code{\tweak} est aussi utilisée quand on veut, dans
-une série d'articulations, n'en modifier qu'une seule. Ainsi@tie{}:
+une série d'articulations, n'en modifier qu'une seule. Ainsi :
@cindex couleur, exemple d'utilisation de la propriété
@cindex @code{\tweak}, exemple
@end lilypond
@noindent
-Attention@tie{}: la commande @code{\tweak} doit être précédée d'une
-marque d'articulation, comme si elle-même était une articulation.
+Attention : la commande @code{\tweak} doit être précédée d'une
+marque d'articulation, comme si elle-même était une articulation. Dans
+la cas de multiples positionnements forcés (@code{^} ou @code{_}), celui
+le plus à gauche aura préséance puisqu'il sera appliqué en dernier.
+
+@cindex @code{\tweak} et altération
+@cindex @code{\tweak} et objet de rendu spécifique
+
+Les objets tels que hampes et altérations seront créés postérieurement à
+l'événement qui survient. L'utilisation de la commande @code{\tweak}
+sur de tels objets indirectement créés peut se faire en nommant
+explicitement l'objet de rendu, si tant est que LilyPond puisse remonter
+jusqu'à l'événement originel :
+
+@lilypond[quote,fragment,ragged-right,verbatim,relative=2]
+<\tweak Accidental #'color #red cis4
+ \tweak Accidental #'color #green es
+ g>
+@end lilypond
+
+Cette forme développée de la commande @code{\tweak} correspond à :
+@example
+\tweak @var{objet-de-rendu} #'@var{propriété-de-rendu} @var{valeur}
+@end example
@cindex nolets imbriqués
@cindex triolets imbriqués
musical, c'est encore la commande @code{\tweak} qui est utilisée pour
changer l'apparence de l'un d'entre eux. Dans l'exemple suivant, le
long crochet de nolet et le premier des trois crochets courts commencent
-au même instant musical@tie{}; une commande @code{\override}
-s'appliquerait donc à la fois aux deux. En revanche, @code{\tweak}
-permet de les dissocier. La première commande @code{\tweak} indique que
-le long crochet doit être placé au-dessus des notes, et la seconde
-indique que le coefficient de nolet doit être imprimé en rouge sur le
-premier crochet de triolet court.
+au même instant musical ; une commande @code{\override} s'appliquerait
+donc à la fois aux deux. En revanche, @code{\tweak} permet de les
+dissocier. La première commande @code{\tweak} indique que le long
+crochet doit être placé au-dessus des notes, et la seconde indique que
+le coefficient de nolet doit être imprimé en rouge sur le premier
+crochet de triolet court.
@cindex @code{\tweak}, exemple
@cindex direction, exemple d'utilisation de la propriété
Si les nolets imbriqués ne commencent pas au même moment,
leur apparence peut alors être modifiée de la façon habituelle,
-avec la commande @code{\override}@tie{}:
+avec la commande @code{\override} :
@cindex texte, exemple d'utilisation de la propriété
@cindex tuplet-number, exemple de fonction
@ruser{La commande d'affinage (@emph{tweak})}.
-@node Le manuel des références internes
-@section Le manuel des références internes
+@node Le manuel de référence des propriétés internes
+@section Le manuel de référence des propriétés internes
@translationof The Internals Reference manual
@cindex Références internes
* 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
Imaginons que votre partition contienne une liaison trop fine à votre
goût et que vous vouliez la rendre plus épaisse. Comment vous y
-prendre@tie{}? Vous êtes convaincu, avec tout ce qui a été dit sur la
+prendre ? 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
-modifier@tie{}? C'est là qu'intervient la Référence des propriétés
+@code{\override}. Mais existe-t-il une propriété épaisseur qui
+s'applique à une liaison et, dans l'affirmative, comment faire pour la
+modifier ? 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}.
Avant de nous plonger dans la Référence des propriétés
internes, un mot d'avertissement. Il s'agit d'un document de
@strong{références}, de sorte qu'il ne contient pas ou peu
-d'explications@tie{}: son but est de présenter les informations de
+d'explications : son but est de présenter les informations de
façon précise et concise. Cela peut paraître décourageant
-à première vue. Pas d'inquiétude@tie{}! Les conseils et les
+à première vue. Pas d'inquiétude ! Les conseils et les
explications fournis ici vous permettent de retrouver par vous-même les
informations dans la Référence des propriétés internes. Il
suffit d'un peu de pratique.
@cindex Références internes, exemple d'utilisation
@cindex @code{\addlyrics} -- exemple
-Prenons un exemple concret tiré d'un morceau de musique connu@tie{}:
+Prenons un exemple concret tiré d'un morceau de musique connu :
@c Mozart, Die Zauberflöte Nr.7 Duett
@end lilypond
Admettons que nous voulions rendre les traits de liaison plus épais.
-Est-ce possible@tie{}? Une liaison est assurément un objet de rendu, si
+Est-ce possible ? Une liaison est assurément un objet de rendu, si
bien que la question est @qq{Existe-t-il une propriété attachée aux
-liaisons et qui en contrôle l'épaisseur@tie{}?} Pour y répondre, nous
+liaisons et qui en contrôle l'épaisseur ?} Pour y répondre, nous
consultons la Référence des propriétés internes (ou RPI pour faire
court).
plus simple est de consulter la RPI.
La page de la RPI sur les liaisons commence par préciser que les objets
-Liaison sont créés par le graveur Slur_engraver. Vient ensuite la liste
-des réglages standard. Attention@tie{}: ceux-ci @strong{ne suivent pas}
-l'ordre alphabétique. Il faut donc les parcourir en entier pour trouver
-la propriété susceptible de contrôler l'épaisseur des traits de liaison.
+« Liaison » sont créés par le graveur Slur_engraver. Vient ensuite la
+liste des réglages standard ; vous y trouverez la propriété susceptible
++de contrôler l'épaisseur des traits de liaison.
@example
@code{thickness} (nombre)
@end example
Voilà qui semble approprié pour changer l'épaisseur (@emph{thickness} en
-anglais). On apprend que la valeur de @code{thickness}
-est un simple nombre (@emph{number}), qu'elle est par défaut définie
-à 1,2 et que l'unité de mesure est fixée par une autre propriété
-appelée @code{line-thickness}.
+anglais). On apprend que la valeur de @code{thickness} est un simple
+nombre (@emph{number}), qu'elle est par défaut définie à 1,2 et que
+l'unité de mesure est fixée par une autre propriété appelée
+@code{line-thickness}.
Comme il a été indiqué, on ne trouve que peu, voire pas du tout
d'explication dans la RPI, mais nous en savons assez pour essayer
remplacer les valeurs que nous avons trouvées en guise de noms, en
laissant de côté le contexte. Commençons par une valeur très élevée
dans un premier temps, pour nous assurer que la commande fonctionne.
-Nous obtenons@tie{}:
+Nous obtenons :
@example
\override Slur #'thickness = #5.0
N'oublions pas le @code{#'} qui doit précéder le nom de la propriété et
le @code{#} qui doit précéder la nouvelle valeur.
-La dernière question est@tie{}: @qq{Où placer cette commande@tie{}?}
+La dernière question est : @qq{Où placer cette commande ?}
Tant qu'on n'est pas sûr de soi, la meilleure réponse est @qq{À
l'intérieur de l'expression musicale, avant la première liaison et
-proche d'elle.} Essayons@tie{}:
+proche d'elle.} Essayons :
@cindex Slur, exemple de dérogation
@cindex thickness, exemple d'utilisation de la propriété
@noindent
et nous constatons que le trait de liaison est beaucoup plus épais.
-Telle est la façon normale de construire les commandes
+Telle est la façon normale de construire des commandes
@code{\override}. Comme nous aurons l'occasion de le voir
par la suite, le problème est parfois plus complexe. Dans
l'immédiat, nous en savons assez pour construire nos propres
commandes -- mais il faut encore s'exercer. Les exemples
suivants sont là dans cette intention.
+
@subheading Détermination du contexte adéquat
+@c VO Finding the context
@cindex contexte, détermination du
@cindex contexte, identification correcte du
-Tout d'abord, de quoi avions-nous besoin pour préciser le
-contexte@tie{}? À quoi devait-il ressembler@tie{}? Gageons que les
-liaisons appartiennent au contexte Voix, dans la mesure où
-elles sont étroitement liées à une ligne mélodique, mais
-comment en être sûr@tie{}? Pour répondre à cette question,
-revenons en haut de la page de la RPI consacrée aux liaisons@tie{};
-il est écrit@tie{}: @qq{Les objets Liaison sont créés par le graveur
-Slur_engraver}. Ainsi les liaisons seront créées dans n'importe
-quel contexte où se trouve le @code{Slur_engraver}. Suivons
-le lien vers la page @code{Slur_engraver}. Tout en bas, on
-lit que le @code{Slur_engraver} est un élément appartenant
-à cinq contextes Voix, dont le contexte de voix
-standard, @code{Voice}. Notre hypothèse était donc juste.
-Et parce que @code{Voice} est un contexte de très bas
+Tout d'abord, de quoi avions-nous besoin pour préciser le contexte ? À
+quoi devait-il ressembler ? Gageons que les liaisons appartiennent au
+contexte Voix, dans la mesure où elles sont étroitement liées à une
+ligne mélodique, mais comment en être sûr ? Pour répondre à cette
+question, revenons en haut de la page de la RPI consacrée aux liaisons ;
+il est écrit : @qq{Les objets Liaison sont créés par le graveur
+Slur_engraver}. Ainsi les liaisons seront créées dans n'importe quel
+contexte où se trouve le @code{Slur_engraver}. Suivons le lien vers la
+page @code{Slur_engraver}. Tout en bas, on lit que le
+@code{Slur_engraver} est un élément appartenant à sept contextes Voix,
+dont le contexte de voix standard, @code{Voice}. Notre hypothèse était
+donc juste. Et parce que @code{Voice} est un contexte de très bas
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
+
+@subheading Redéfinition pour une seule occurrence
+@c VO Overriding once only
@cindex dérogation pour une seule fois
@cindex usage unique, dérogation à
@funindex once
Dans le dernier exemple ci-dessus, @emph{toutes} les liaisons étaient
-plus épaisses. Et si on veut épaissir uniquement la première
-liaison@tie{}? On recourt alors à la commande @code{\once}. Placée
-juste avant la commande @code{\override}, elle lui indique de ne changer
-que la liaison commençant avec la note @strong{juste après}. Si la note
-juste après n'ouvre pas une liaison, la commande sera sans aucun effet
--- elle ne reste pas en mémoire jusqu'à la prochaine liaison, elle est
-purement et simplement ignorée. Il faut donc que la commande introduite
-par @code{\once} soit insérée comme suit@tie{}:
-
+plus épaisses. Et si on veut épaissir uniquement la première liaison ?
+On recourt alors à la commande @code{\once}. Placée juste avant la
+commande @code{\override}, elle lui indique de ne changer que la liaison
+commençant avec la note @strong{juste après}. Si la note juste après
+n'ouvre pas une liaison, la commande sera sans aucun effet -- elle ne
+reste pas en mémoire jusqu'à la prochaine liaison, elle est purement et
+simplement ignorée. Il faut donc que la commande introduite par
+@code{\once} soit insérée comme suit :
@cindex Slur, exemple de dérogation
@cindex thickness, exemple d'utilisation de la propriété
@subheading Rétablissement
+@c VO Reverting
@cindex revert
@cindex rétablissement
@funindex revert
Et si l'on voulait que les deux premières liaisons soient plus
-épaisses@tie{}? On pourrait bien sûr utiliser deux commandes, chacune
-précédée de @code{\once}, et placées juste avant la note par laquelle
-débute la liaison@tie{}:
+épaisses ? On pourrait bien sûr utiliser deux commandes, chacune
+précédée de @code{\once} et placée juste avant la note par laquelle
+débute la liaison :
-
-@cindex Slur, exemple de dérogation
+@cindex liaison, exemple de dérogation
@cindex thickness, exemple d'utilisation de la propriété
-@cindex Liaison, exemple de dérogation
-@cindex Épaisseur, exemple d'utilisation de la propriété
+@cindex épaisseur, exemple d'utilisation
@lilypond[quote,verbatim,relative=2]
{
@noindent
mais on peut aussi, au lieu de la commande @code{\once}, utiliser après
la seconde liaison la commande @code{\revert}, qui ramène la propriété
-@code{thickness} à sa valeur par défaut@tie{}:
+@code{thickness} à sa valeur par défaut :
@cindex Slur, exemple de dérogation
@cindex thickness, exemple d'utilisation de la propriété
-@cindex Liaison, exemple de dérogation
-@cindex Ã\89paisseur, exemple d'utilisation de la propriété
+@cindex liaison, exemple de dérogation
+@cindex épaisseur, exemple d'utilisation
@lilypond[quote,verbatim,relative=2]
{
Ici s'achève notre introduction à la RPI et aux retouches
simples. Vous trouverez d'autres exemples dans les prochaines
-sections de ce chapitre@tie{}; ils vous permettront, d'une part,
+sections de ce chapitre ; ils vous permettront, d'une part,
d'apprendre à connaître un peu mieux la RPI et, d'autre part, de
vous entraîner un peu plus à y chercher les informations. Ces
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
Supposons maintenant que nous voulions imprimer des paroles en italique.
Quelle formulation de la commande @code{\override} allons-nous
-utiliser@tie{}? Nous consultons en premier lieu, comme précédemment, la
+utiliser ? Nous consultons en premier lieu, comme précédemment, la
page de la RPI qui contient la liste @qq{Tous les objets de rendu}, et
recherchons un objet qui contrôle les paroles. Nous trouvons
@code{LyricText}, qui semble approprié. Nous cliquons dessus et nous
Vous remarquerez que @code{font-series} et @code{font-size} figurent
aussi dans la liste. La question qui ne manque pas de se poser
-est@tie{}: @qq{Comment se fait-il que les propriétés @code{font-series}
+est : @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} ?} 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
noms de propriété, comme @code{thickness} ou @code{font-shape},
d'autres sont des valeurs à attribuer aux propriétés, comme
@code{italic}. À ne pas confondre avec les chaînes de caractères
-libres, qui se présentent comme @code{"un texte libre"}@tie{}; pour plus
+libres, qui se présentent comme @code{"un texte libre"} ; pour plus
de détails sur les symboles et les chaînes de caractères, voir le
-@rextendnamed{Scheme tutorial,Tutoriel Scheme}.
+@rextend{Tutoriel Scheme}.
Ainsi, la commande @code{\override} pour mettre les paroles en italique
-est@tie{}:
+est :
@example
\override LyricText #'font-shape = #'italic
@noindent
et doit être placée juste devant et tout près des paroles à modifier,
-comme ceci@tie{}:
+comme ceci :
@cindex font-shape, exemple d'utilisation de la propriété
@cindex italic, exemple
@noindent
et voilà les paroles en italiques.
+
@subheading Spécification du contexte en mode lyrique
+@c VO Specifying the context in lyric mode
@cindex contexte, spécification en mode lyrique
@cindex mode lyrique, spécification de contexte en
Lorsqu'il s'agit de paroles et qu'on cherche à préciser le contexte
sur le modèle de ce qui a été fait précédemment, la commande échoue.
-Car une syllabe saisie en mode Paroles (lyricmode) se termine
+Car une syllabe saisie en mode Paroles (@code{lyricmode}) se termine
obligatoirement par une espace, un saut de ligne ou un nombre. Tout
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
-correcte est donc@tie{}:
+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 :
@example
\override Lyrics . LyricText #'font-shape = #'italic
@seealso
Manuel d'extension :
-@rextendnamed{Scheme tutorial,Tutoriel Scheme}.
+@rextend{Tutoriel Scheme}.
@node Types de propriétés
@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{}:
+Nous avons vu jusqu'à maintenant deux types de propriétés :
@code{nombre} et @code{symbole}. Pour pouvoir fonctionner, la valeur
associée à une propriété doit correspondre au type attendu et suivre les
règles liées à ce type. Le type de propriété est toujours donné entre
@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
@tab Une direction valide ou son équivalent numérique (valeur décimale
- comprise entre -1 et 1 seulement)
+ comprise entre -1 et 1 seulement)
@tab @code{LEFT}, @code{CENTER}, @code{UP}, @code{1}, @code{-1}
@item Entier (@emph{Integer} en anglais)
@tab Un nombre entier positif
@tab @code{3}, @code{1}
@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)}
+ parenthèses et précédées par une apostrophe
+ @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." @}}
@tab @code{'(2 . 3.5)}, @code{'(0.1 . -3.2)}
@item Symbole
@tab L'un des symboles autorisés pour cette propriété, précédé par une
-apostrophe
+ apostrophe
@tab @code{'italic}, @code{'inside}
@item Inconnu (@emph{Unknown} en anglais)
@tab Un processus, ou @code{#f} pour empêcher toute action
@tab @code{bend::print}, @code{ly:text-interface::print}, @code{#f}
@item Vecteur
@tab Une liste de trois éléments encadrés par des parenthèses et
-précédés par apostrophe-hash, @code{'#}
+ précédés par apostrophe-hash, @code{'#}
@tab @code{'#(#t #t #f)}
@end multitable
-
@seealso
Manuel d'extension :
-@rextendnamed{Scheme tutorial,Tutoriel Scheme}.
+@rextend{Tutoriel Scheme}.
@node Apparence des objets
@translationof Appearance of objects
Il est temps de mettre en pratique les notions apprises précédemment
-pour modifier l'allure de la partition@tie{}; les exemples qui suivent
+pour modifier l'allure de la partition ; les exemples qui suivent
montrent l'utilisation des différentes méthodes de retouche.
@menu
par exemple, un exercice dans lequel il faudrait rétablir les barres de
mesure dans un morceau de musique. En temps normal, les barres de
mesure s'insèrent automatiquement. Comment faire pour les effacer de la
-partition@tie{}?
+partition ?
Avant de nous y attaquer, souvenons-nous que les propriétés d'objets
sont parfois groupées dans ce qu'on appelle des @emph{interfaces} --
alors leurs propriétés de telle ou telle interface, d'autres objets de
telle ou telle autre interface. La liste des interfaces qui contiennent
les propriétés liées à un objet graphique (@emph{grob}) figure dans la
-RPI, en bas de la page de description du @emph{grob}@tie{}; pour voir
+RPI, en bas de la page de description du @emph{grob} ; pour voir
ces propriétés, il faut aller voir ces interfaces.
Nous avons vu, dans @ref{Propriétés des objets de rendu}, comment
d'imprimer les barres de mesure. En cliquant sur @emph{Backend} puis
sur @emph{Tous les objets de rendu}, nous trouvons un objet appelé
@code{BarLine}. Parmi ses propriétés, deux d'entre elles déterminent
-son aspect visuel@tie{}: @code{break-visibility} et @code{stencil}.
+son aspect visuel : @code{break-visibility} et @code{stencil}.
L'objet @code{BarLine} est également lié à plusieurs interfaces, dont la
@code{grob-interface} où figurent les propriétés @code{transparent} et
@code{color}. Toutes peuvent modifier l'aspect visuel des barres de
mesure -- et de beaucoup d'autres objets, bien sûr. Examinons chacune
d'elles tour à tour.
+
@subheading stencil
+@c VO stencil
@cindex stencil, propriété
le type de symbole (glyphe) à imprimer. Comme pour de nombreuses
autres propriétés, on peut lui indiquer de ne rien imprimer en lui
attribuant la valeur @code{#f}. Essayons en laissant de côté, une fois
-encore, le contexte concerné (@code{Voice} en l'occurrence)@tie{}:
+encore, le contexte concerné (@code{Voice} en l'occurrence) :
@cindex BarLine, exemple de dérogation
@cindex stencil, exemple d'utilisation de la propriété
}
@end lilypond
-Les barres de mesure sont encore là@tie{}! Pourquoi@tie{}? Retournons
+Les barres de mesure sont encore là ! Pourquoi ? Retournons
à la RPI et regardons de nouveau la page qui traite des propriétés de
-BarLine. En haut de la page, il est précisé que @qq{Les objets BarLine
-sont créés par le graveur Bar_engraver}. Allons à la page de
+@code{BarLine}. En haut de la page, il est précisé que @qq{Les objets
+BarLine sont créés par le graveur Bar_engraver}. Allons à la page de
@code{Bar_engraver}. Tout en bas se trouve la liste des contextes dans
lesquels fonctionne ce graveur. Tous sont du type @code{Staff}, de
sorte que, si la commande @code{\override} n'a pas fonctionné comme
prévu, c'est parce que @code{Barline} n'appartient pas au contexte par
défaut, @code{Voice}. Si le contexte spécifié est erroné, la commande
ne fonctionne pas. Cela n'entraîne pas de message d'erreur, et rien
-n'apparaît dans le fichier log. Essayons de corriger en mentionnant le
-bon contexte@tie{}:
+n'apparaît dans le fichier @emph{log}. Essayons de corriger en
+mentionnant le bon contexte :
@cindex BarLine, exemple de dérogation
@cindex stencil, exemple d'utilisation de la propriété
Cette fois, les barres de mesure ont disparu.
Vous remarquerez que l'affectation de la valeur @code{#f} à la propriété
-@code{stencil} déclechera une erreur dès lors que l'objet en question se
+@code{stencil} déclenchera 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{}:
+zéro :
@lilypond[quote,verbatim,relative=2]
{
}
@end lilypond
+
@subheading visibilité des barres (break-visibility)
+@c VO break-visibility
@cindex break-visibility, propriété
La RPI mentionne, à la page sur @code{BarLine}, que la propriété
@code{break-visibility} attend comme argument un vecteur de trois
-boléens. Ceux-ci indiquent respectivement si les barres de mesure
+booléens. Ceux-ci indiquent respectivement si les barres de mesure
doivent être imprimées ou non à la fin de la ligne, à l'intérieur de la
ligne et au début de la ligne. Dans notre cas, nous voulons que toutes
les barres soient supprimées, si bien que la valeur dont nous avons
-besoin est @code{'#(#f@tie{}#f@tie{}#f)}. Essayons, sans oublier
-d'ajouter le contexte @code{Staff}. Vous remarquerez que, en plus de
-cette valeur, nous ajoutons @code{#'#} devant la parenthèse ouvrante.
-Le @code{'#} est nécessaire car il fait partie intégrante de la valeur
-contenant un vecteur, et le premier @code{#} est là, comme toujours avec
-la commande @code{\override}, pour introduire la valeur elle-même.
+besoin est @code{'#(#f #f #f)}. Essayons, sans oublier d'ajouter le
+contexte @code{Staff}. Vous remarquerez que, en plus de cette valeur,
+nous ajoutons @code{#'#} devant la parenthèse ouvrante. Le @code{'#}
+est nécessaire car il fait partie intégrante de la valeur contenant un
+vecteur, et le premier @code{#} est là, comme toujours avec la commande
+@code{\override}, pour introduire la valeur elle-même.
@cindex BarLine, exemple de dérogation
@cindex break-visibility exemple d'utilisation de la propriété
Comme on peut le constater, cette solution-là aussi supprime les barres
de mesure.
+
@subheading transparence
+@c VO transparent
@cindex transparent, propriété
@cindex transparence
La RPI mentionne, à la page sur @code{grob-interface}, que la propriété
-@code{transparent} attend comme argument un boléen. Il faudrait donc
+@code{transparent} attend comme argument un booléen. Il faudrait donc
mettre @code{#t} pour rendre l'objet transparent. Dans cet exemple,
essayons de rendre transparente la métrique (@emph{time signature} en
anglais) plutôt que les barres de mesure. Pour cela, il nous faut
géré par le graveur @code{Time_signature_engraver} qui, comme vous
pouvez le constater, appartient au contexte @code{Staff} et peut se
rattacher à la @code{grob-interface}. Dans ces conditions, la commande
-pour rendre la métrique transparente est@tie{}:
+pour rendre la métrique transparente est :
@cindex TimeSignature, exemple de dérogation
@cindex transparent, exemple d'utilisation de la propriété
place du chiffrage. Ce peut être souhaitable dans le cadre d'un
exercice, afin que les élèves aient la place pour compléter, mais dans
d'autres circonstances, ce peut être gênant. Pour y remédier,
-attribuons plutôt au stencil des métriques la valeur @code{#f}@tie{}:
+attribuons plutôt au stencil des métriques la valeur @code{#f} :
@cindex TimeSignature, exemple de dérogation
@cindex stencil, exemple d'utilisation de la propriété
@end lilypond
@noindent
-La différence est flagrante@tie{}: le fait d'attribuer au stencil la
+La différence est flagrante : le fait d'attribuer au stencil la
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
+@c VO color
@cindex color, propriété
La @code{grob-interface} indique que la valeur de la propriété
@code{color} est une liste, sans plus d'explication. En fait, cette
-liste est une liste de valeurs en unités internes@tie{}; pour éviter
+liste est une liste de valeurs en unités internes ; pour éviter
d'avoir à chercher ce qu'il faut y mettre, il existe différents moyens
d'indiquer la couleur. Le premier moyen consiste à utiliser l'une des
couleurs @emph{normales} de la première @ruser{Liste des couleurs}.
-Pour mettre les barres de mesure en blanc, on écrit@tie{}:
+Pour mettre les barres de mesure en blanc, on écrit :
@cindex BarLine, exemple de dérogation
@cindex color, exemple d'utilisation de la propriété
@noindent
et nous constatons que les barres de mesure sont une fois de plus
-invisibles. Attention@tie{}: aucune apostrophe ne précède @code{white}
+invisibles. Attention : aucune apostrophe ne précède @code{white}
-- il ne s'agit pas d'un symbole mais d'une @strong{fonction}. Quand on
l'invoque, elle fournit une liste de valeurs internes requises pour
changer la couleur en blanc. Les autres couleurs aussi, dans la
@ruser{Liste des couleurs}, dite noms de couleurs X11. Ceux-ci doivent
obligatoirement être précédés d'une autre fonction, qui convertit les
noms de couleurs X11 en une liste de valeurs internes, @code{x11-color},
-comme ceci@tie{}:
+comme ceci :
@cindex BarLine, exemple de dérogation
@cindex color, exemple d'utilisation de la propriété
@noindent
Vous noterez que, dans ce cas, la fonction @code{x11-color} admet un
-symbole comme argument@tie{}; il faut donc placer une apostrophe devant
+symbole comme argument ; il faut donc placer une apostrophe devant
le symbole et insérer les deux à l'intérieur de parenthèses.
@cindex rgb, couleur
Il existe une troisième fonction, écrite pour convertir les valeurs RVB
en couleurs internes -- la fonction @code{rgb-color}. Elle comporte
trois arguments, donnant respectivement l'intensité du rouge, du vert et
-du bleu. Ces arguments prennent des valeurs comprises entre 0 et 1.
+du bleu. Ces arguments prennent des valeurs comprises entre 0 et 1.
Ainsi, pour choisir la couleur rouge, la valeur serait
-@code{(rgb-color 1 0 0)}@tie{}; pour le blanc, ce serait
-@code{(rgb-color 1 1 1)}@tie{}:
+@code{(rgb-color 1 0 0)} ; pour le blanc, ce serait
+@code{(rgb-color 1 1 1)} :
@cindex BarLine, exemple de dérogation
@cindex color, exemple d'utilisation de la propriété
Enfin, il existe une échelle de gris parmi les possibilités de couleurs
X11. Elle va du noir (@code{'grey0}) au blanc (@code{'grey100}), avec
-un pas de 1. Essayons de l'utiliser en attribuant à tous les objets de
-notre exemple différentes nuances de gris@tie{}:
+un pas de 1. Essayons de l'utiliser en attribuant à tous les objets de
+notre exemple différentes nuances de gris :
@cindex StaffSymbol, exemple de dérogation
@cindex TimeSignature, exemple de dérogation
sur ce point empêcherait la commande de fonctionner. Souvenez-vous que
le contexte est celui dans lequel est placé le graveur approprié. Pour
chaque graveur, on peut trouver son contexte par défaut en partant de
-l'objet lui-même, puis en cherchant le graveur qui le produit@tie{}; la
+l'objet lui-même, puis en cherchant le graveur qui le produit ; la
page du graveur dans la RPI nous indique alors le contexte dans lequel
le graveur se trouve normalement.
Normalement, les ossias ne comportent ni clef ni indication de mesure,
et elles sont imprimées légèrement plus petit que la portée principale.
Nous avons déjà appris à enlever la clef et la métrique -- il suffit de
-régler le stencil de chacun sur @code{#f}, comme ceci@tie{}:
+régler le stencil de chacun sur @code{#f}, comme ceci :
@cindex alignAboveContext, exemple d'utilisation de la propriété
@cindex @code{\with}, exemple
Mais alors, quelle différence y a-t-il à modifier le contexte de portée
au moyen de @code{\with} ou à modifier les stencils de la clef et de la
-métrique avec @code{\override}@tie{}? La principale différence est que
+métrique avec @code{\override} ? La principale différence est que
les changements opérés dans une clause @code{\with} sont réalisés au
moment où le contexte est créé et restent par la suite les valeurs
@strong{par défaut} aussi longtemps que ce contexte existe, tandis que
modification par la clause @code{\with}. Il se produirait même une
erreur si le contexte était précisé.
-Remplaçons donc l'exemple ci-dessus par celui-ci@tie{}:
+Remplaçons donc l'exemple ci-dessus par celui-ci :
@cindex alignAboveContext, exemple d'utilisation de la propriété
@cindex @code{\with}, exemple
Si l'on revient à l'exemple d'ossia, commençons par changer la taille de
police. Nous pouvons employer deux méthodes. Soit nous changeons la
taille de police de chaque type d'objet avec des commandes comme
-celle-ci pour les têtes de notes (@code{NoteHead})@tie{}:
+celle-ci pour les têtes de notes (@code{NoteHead}) :
@example
\override NoteHead #'font-size = #-2
Chacune de ces méthodes réduira la taille de police de deux points par
rapport à sa valeur précédente, sachant que chaque point réduit ou
-augmente la taille d'environ 12@tie{}%.
+augmente la taille d'environ 12 %.
Essayons sur l'exemple d'ossia :
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
Les propriétés d'épaisseur (@code{thickness}), quant à elles, sont
généralement mesurées en unités d'une propriété interne appelée
@qq{épaisseur de ligne} (@code{line-thickness}). Par exemple, les
-lignes de crescendo/decrescendo présentent par défaut une épaisseur de
-1@tie{}unité de @code{line-thickness}, alors que l'épaisseur d'une hampe
-est de 1,3. Toutefois, certaines propriétés d'épaisseur sont
-différentes@tie{}: par exemple, l'épaisseur des ligature --
+lignes de (de)crescendo présentent par défaut une épaisseur d'une
+unité de @code{line-thickness}, alors que l'épaisseur d'une hampe
+est de 1,3. Toutefois, certaines propriétés d'épaisseur sont
+différentes : par exemple, l'épaisseur des ligature --
@code{beam-thickness} -- se mesure en espaces de portée.
Dans ces conditions, comment ajuster les longueurs à la taille des
-polices de caractères@tie{}? La solution consiste à utiliser une
+polices de caractères ? La solution consiste à utiliser une
fonction spéciale appelée @code{magstep} -- pseudo facteur de zoom --,
créée précisément dans ce but. Elle comporte un argument, le changement
-de taille de police (#-2 dans l'exemple précédent), à partir duquel elle
-applique un facteur de mise à l'échelle qui réduit, ou augmente, les
-objets en question. Voici comment elle s'utilise@tie{}:
+de taille de police (@code{#-2} dans l'exemple précédent), à partir
+duquel elle applique un facteur de mise à l'échelle qui réduit, ou
+augmente, les objets en question. Voici comment elle s'utilise :
@cindex alignAboveContext, exemple d'utilisation de la propriété
@cindex @code{\with}, exemple
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
(@emph{outside-staff objects} en anglais).
Les objets de la portée sont ceux qui sont placés sur la portée
--- les têtes de notes et les hampes, les altérations, etc. Leur
+-- les têtes de notes et les hampes, les altérations, etc. Leur
position est généralement déterminée par la musique elle-même -- ils
sont placés verticalement sur des lignes spécifiques ou sont liés à
d'autres objets placés de cette manière. Normalement, les collisions
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é
@code{outside-staff-priority} pour déterminer l'ordre selon lequel
-placer ces objets, de la manière suivante@tie{}:
+placer ces objets, de la manière suivante :
D'abord, LilyPond dresse la liste de tous les objets extérieurs à la
portée. Puis ceux-ci sont classés suivant leur
à 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é,
@translationof Within-staff objects
Nous avons vu que les commandes @code{\voiceXXX} jouent sur la
-direction des liaisons, des doigtés et sur toute autre chose liée à
+direction des liaisons, des doigtés et sur tout autre élément lié à
l'orientation des hampes. Ces commandes sont essentielles dans
la musique polyphonique pour distinguer des lignes mélodiques
entremêlées. Mais il arrive qu'on ait besoin de modifier ce
plus courantes, d'avoir à encoder les retouches.
Certains objets comme les traits des liaisons se recourbent tantôt
-vers le haut, tantôt vers le bas@tie{}; d'autres encore, comme les
-hampes et les crochets, peuvent se décaler vers la gauche ou vers la
-droite selon qu'ils pointent vers le haut ou vers le bas. Ce
-comportement est géré automatiquement dès lors que @code{direction} est
-activé.
+vers le haut, tantôt vers le bas ; d'autres encore, comme les hampes et
+les crochets, peuvent se décaler vers la gauche ou vers la droite selon
+qu'ils pointent vers le haut ou vers le bas. Ce comportement est géré
+automatiquement dès lors que @code{direction} est activé.
@cindex down
@cindex up
L'exemple ci-dessous montre dans la première mesure le comportement par
défaut des hampes -- celles des notes les plus hautes pointant vers le
-bas et celles des notes les plus basses pointant vers le haut@tie{};
+bas et celles des notes les plus basses pointant vers le haut ;
viennent ensuite quatre notes avec les hampes forcées vers le bas, puis
quatre autres avec les hampes forcées vers le haut, et pour finir quatre
notes de nouveau avec le comportement par défaut.
que l'on peut utiliser à la place. La valeur @code{0} peut aussi être
utilisée dans certains cas. Elle est interprétée comme un @code{UP}
pour les hampes, et comme un @qq{centré} pour d'autres objets. Il
-existe une direction, @code{CENTER}, qui correspond à la valeur
-@code{0}.
+existe une direction, @code{CENTER}, qui correspond à la
+valeur @code{0}.
Quoi qu'il en soit, ces retouches manuelles sont rarement utilisées car
il existe des équivalents sous forme de commandes prédéfinies. Voici un
@item @code{\phrasingSlurDown}
@tab @code{\phrasingSlurUp}
@tab @code{\phrasingSlurNeutral}
- @tab Attention@tie{}: à distinguer des commandes de liaison ci-dessous
+ @tab Attention : à distinguer des commandes de liaison ci-dessous
@item @code{\slurDown}
@tab @code{\slurUp}
@tab @code{\slurNeutral}
@item @code{\textSpannerDown}
@tab @code{\textSpannerUp}
@tab @code{\textSpannerNeutral}
- @tab Le texte saisi en tant qu'extension est au-dessous/au-dessus de la portée
+ @tab Le texte saisi en tant qu'extension est au-dessous/au-dessus de
+ la portée
@item @code{\tieDown}
@tab @code{\tieUp}
@tab @code{\tieNeutral}
@tab Les nolets sont au-dessous/au-dessus des notes
@end multitable
-Attention : ces commandes prédéfinies @strong{ne doivent pas} être
+Attention : ces commandes prédéfinies @strong{ne doivent pas} être
précédées de @code{\once}. Pour limiter l'effet à une seule note, il
-faut soit utiliser la commande équivalente @code{\once \override}, soit
+faut soit utiliser la commande équivalente @code{\once \override}, soit
utiliser la commande prédéfinie, suivie, après la note à modifier, de la
commande @code{\xxxNeutral} correspondante.
-@subheading Doigtés
+
+@unnumberedsubsubsec Doigtés
+@c VO Fingering
@cindex doigtés, positionnement
@cindex doigtés, accords
Tout d'abord, voici l'effet de @code{direction} sur le doigté lié à une
note simple. La première mesure montre le comportement par défaut, et
les deux suivantes montrent l'effet lorsqu'on indique @code{DOWN} et
-@code{UP}@tie{}:
+@code{UP} :
@cindex doigtés, exemple de dérogation
@cindex direction, exemple d'utilisation de la propriété
Le fait d'intervenir sur la propriété @code{direction} n'est sûrement
pas la façon la plus simple de placer manuellement les doigtés au-dessus
-ou en dessous des notes@tie{}; mieux vaut utiliser @code{_} ou @code{^}
+ou en dessous des notes ; mieux vaut utiliser @code{_} ou @code{^}
devant le chiffre de doigté plutôt que @code{-}. Voici ce que donne
-l'exemple précédent avec cette méthode@tie{}:
+l'exemple précédent avec cette méthode :
@cindex doigtés, exemple
La propriété @code{direction} ne fonctionne pas pour les accords alors
que les préfixes de direction, @code{_} et @code{^}, fonctionnent. Par
défaut, le doigté est placé automatiquement à la fois au-dessus et
-au-dessous des notes d'un accord, comme ceci@tie{}:
+au-dessous des notes d'un accord, comme ceci :
@cindex doigtés, exemple
@noindent
mais il est possible de forcer manuellement vers le haut ou vers le bas
-le placement de tous ou certains chiffres de doigté, comme ceci@tie{}:
+le placement de tous ou certains chiffres de doigté, comme ceci :
@cindex doigtés, exemple
On peut aller encore plus loin dans le positionnement des doigtés pour
chacune des notes d'un accord grâce à la commande
-@code{\set@tie{}fingeringOrientations}. La syntaxe de cette commande
-est@tie{}:
+@code{\set fingeringOrientations}. La syntaxe de cette commande est :
@example
@code{\set fingeringOrientations = #'([up] [left/right] [down])}
Si les indications de doigtés paraissent un peu serrées, on peut
toujours réduire la taille de police (@code{font-size}). La valeur
par défaut donnée dans la RPI à la page de l'objet
-@code{Fingering} étant @code{-5}, essayons @code{-7}@tie{}:
+@code{Fingering} étant @code{-5}, essayons @code{-7} :
@lilypond[quote,fragment,ragged-right,verbatim,relative=1]
\override Fingering #'font-size = #-7
@node Objets hors de la portée
@subsection Objets hors de la portée
-@translationof Outside staff objects
+@translationof Outside-staff objects
Les objets extérieurs à la portée sont placés automatiquement de façon à
éviter les collisions. Les objets avec la plus petite valeur de la
propriété @code{outside-staff-priority} sont placés au plus près de la
portée, tandis que les autres sont écartés autant qu'il faut pour éviter
les collisions. La @code{outside-staff-priority} est définie dans la
-@code{grob-interface}@tie{}; elle est donc une propriété commune à tous
+@code{grob-interface} ; elle est donc une propriété commune à tous
les objets de rendu. Par défaut, elle est réglée sur @code{#f} pour
tous les objets de la portée, et porte une valeur numérique appropriée à
chacun des objets extérieurs à la portée, à mesure qu'ils sont créés.
Le tableau suivant montre la valeur numérique par défaut pour
-quelques-uns des objets extérieurs à la portée les plus courants qui
-sont placés, par défaut, dans les contextes @code{Staff} ou
-@code{Voice}.
+quelques-uns des objets extérieurs à la portée les plus courant.
@cindex spanners
@cindex bandeaux
+@cindex extenseurs
Vous noterez au passage certaines particularités quant au nom des
objets. En effet, des objets à extension sont automatiquement créés
instants musicaux différents. C'est la raison pour laquelle modifier le
@code{outside-staff-priority} du @emph{grob} sous-jacent n'aura aucun
effet. C'est par exemple le cas lorsque vous modifiez l'alignement d'un
-objet @code{Hairpin} à l'aide de @code{outside-staff-priority}@tie{};
-puique le soufflet est associé à un objet @code{DynamicLineSpanner},
+objet @code{Hairpin} à l'aide de @code{outside-staff-priority} ;
+puisque le soufflet est associé à un objet @code{DynamicLineSpanner},
c'est sur celui-ci que doit porter l'effet de
@code{outside-staff-priority}. L'instruction dérogatoire se place au
début du bandeau qui constitue une ligne de base susceptible de contenir
@headitem Objet de rendu
@tab Priorité
@tab Contrôle la position de :
-@item @code{MultiMeasureRestText}
- @tab @code{450}
- @tab Texte sur les silences qui couvrent des mesures entières
+@item @code{RehearsalMark}
+ @tab @code{1500}
+ @tab Repère
+@item @code{MetronomeMark}
+ @tab @code{1000}
+ @tab Indication métronomique
+@item @code{VoltaBracketSpanner}
+ @tab @code{600}
+ @tab Bandeau de répétition
@item @code{TextScript}
@tab @code{450}
@tab Texte des @emph{markup} (ou étiquettes)
+@item @code{MultiMeasureRestText}
+ @tab @code{450}
+ @tab Texte sur les silences qui couvrent des mesures entières
@item @code{OttavaBracket}
@tab @code{400}
@tab Indication d'octaviation
@item @code{DynamicLineSpanner}
@tab @code{250}
@tab Toutes les marques de nuances
-@item @code{VoltaBracketSpanner}
+@item @code{BarNumber}
@tab @code{100}
- @tab Bandeau de répétition
+ @tab Numéro de mesure
@item @code{TrillSpanner}
@tab @code{50}
@tab Bandeau de trille
Spanners} en anglais) -- texte avec des longues lignes au-dessus d'un
passage musical. L'extension s'étend depuis la commande
@code{\startTextSpan} jusqu'à la commande @code{\stopTextSpan} et le
-format de texte est défini par la commande @code{\override TextSpanner}.
+format de texte est défini par la commande @code{\override TextSpanner}.
Pour de plus amples détails, voir
@ruser{Indication textuelle avec extension}.
@cindex modification du positionnement des marques de repère
@cindex marques de repère, modification du positionnement
-Vous aurez remarqué que les numéros de mesure, l'indication métronomique
-et les marques de répétition n'apparaissent pas. Par défaut, ils sont
-créés dans le contexte @code{Score} et leur
-@code{outside-staff-priority} est ignorée face aux objets qui sont créés
-dans le contexte @code{Staff}. Si vous voulez faire apparaître les
-numéros de mesure, l'indication métronomique ou les marques de
-répétition conformément à la valeur de leur
-@code{outside-staff-priority}, il vous faudra retirer respectivement le
-@code{Bar_number_engraver}, le @code{Metronome_mark_engraver} ou le
-@code{Mark_engraver} du contexte @code{Score} et les placer en tête du
-contexte @code{Staff}. Après quoi ces marques porteront les valeurs de
-@code{outside-staff-priority} par défaut suivantes@tie{}:
-
-@multitable @columnfractions .3 .3
-@headitem Objet de rendu @tab Priorité
-@item @code{RehearsalMark} @tab @code{1500}
-@item @code{MetronomeMark} @tab @code{1000}
-@item @code{BarNumber} @tab @code{ 100}
-@end multitable
-
Si les valeurs de @code{outside-staff-priority} par défaut ne donnent
pas les résultats escomptés, il suffit de modifier la priorité
de l'un de ces objets. Supposons que vous vouliez placer l'indication
d'octaviation sous le bandeau de texte, dans l'exemple précédent. Tout
ce que nous devons faire, c'est regarder la priorité de
-@code{OttavaBracket} dans la RPI ou dans le tableau plus haut, et la
-ramener à une valeur plus basse que celle de @code{TextSpanner}, en
-gardant à l'esprit que @code{OttavaBracket} est créé dans le contexte
-@code{Staff}@tie{}:
+@code{OttavaBracket} dans la Référence des propriétés internes ou dans
+le tableau plus haut, et la ramener à une valeur plus basse que celle de
+@code{TextSpanner}, en gardant à l'esprit que @code{OttavaBracket} est
+créé dans le contexte @code{Staff} :
@cindex TextSpanner, exemple de dérogation
@cindex bound-details, exemple d'utilisation de la propriété
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
résultat ne soit pas toujours formidable. Imaginons que nous voulions
placer @qq{Text3} au-dessus de @qq{Text4} dans l'exemple de la section
@ref{Comportement automatique}, plus haut. Il nous suffit pour cela de
-regarder dans la RPI ou dans le tableau plus haut la priorité de
-@code{TextScript}, et d'augmenter la priorité de @qq{Text3} jusqu'à une
-valeur très haute@tie{}:
+regarder dans la Référence des propriétés internes ou dans le tableau
+plus haut la priorité de @code{TextScript}, et d'augmenter la priorité
+de @qq{Text3} jusqu'à une valeur très haute :
@cindex TextScript, exemple de dérogation
@cindex outside-staff-priority, exemple d'utilisation de la propriété
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
@emph{markup} (ou d'étiquette) n'est pas pris en compte, dans la mesure
où ce qui est concerné n'entre pas dans la musique. La commande
@code{\textLengthOn} inverse ce comportement, faisant en sorte que les
-notes soient espacées autant qu'il le faut pour s'adapter au
-texte@tie{}:
+notes soient espacées autant qu'il le faut pour s'adapter au texte :
@lilypond[quote,fragment,ragged-right,verbatim,relative=2]
\textLengthOn % Cause notes to space out to accommodate text
@subheading Nuances
+@c VO Dynamics
-@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
-peut les placer au-dessus avec la commande @code{dynamicUp}. Elles se
+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
la portée comme les liaisons de phrasé ou les numéros de mesure. Cela
-peut donner d'assez bons résultats, comme le montre cet exemple@tie{}:
+peut donner d'assez bons résultats, comme le montre cet exemple :
@lilypond[quote,fragment,ragged-right,verbatim,relative=1]
\clef "bass"
De toute façon, si les notes et les nuances qui leur sont liées sont
trop proches, le positionnement automatique évitera les collisions en
déplaçant davantage les nuances suivantes, mais le résultat peut ne
-pas être très satisfaisant, comme le montre cet exemple
-artificiel@tie{}:
+pas être très satisfaisant, comme le montre cet exemple artificiel :
@lilypond[quote,fragment,ragged-right,verbatim,relative=2]
\dynamicUp
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
+@c VO Grob sizing
@cindex grob, dimensionnement
@cindex dimensionnement des grobs
horizontalement. Pour remédier à cela, on a ajouté l'infini à
l'extension gauche et moins l'infini à l'extension droite, en
attribuant à @code{extra-spacing-width} la valeur
-@code{'(+inf.0@tie{}.@tie{}-inf.0)}. Pour être sûr que les objets ne se
+@code{'(+inf.0 . -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
-indications de nuances est@tie{}:
+valeur de @code{extra-spacing-width} en @code{'(0 . 0)}, afin que
+leur vraie largeur se manifeste. La commande pour y parvenir avec des
+indications de nuances est :
@example
\override DynamicText #'extra-spacing-width = #'(0 . 0)
@end example
@noindent
-Voyons si ça marche sur notre exemple précédent@tie{}:
+Voyons si ça marche sur notre exemple précédent :
@cindex DynamicText, exemple de dérogation
@cindex extra-spacing-width, exemple d'utilisation de la propriété
premier problème est simple à résoudre. Au lieu d'attribuer
à @code{extra-spacing-width} la valeur zéro, nous pourrions
mettre un peu plus. L'unité est la distance entre deux lignes
-de portée, donc en écartant le bord gauche d'une demi-unité
-et le bord droit d'une demi-unité, on obtient@tie{}:
+de portée, donc en écartant le bord gauche d'une demie unité
+et le bord droit d'une demie unité, on obtient :
@cindex DynamicText, exemple de dérogation
@cindex extra-spacing-width, exemple d'utilisation de la propriété
C'est mieux mais nous voulons peut-être aligner les indications de
nuance sur une même ligne plutôt que de les voir monter et
descendre avec les notes. La propriété qui gère cela est
-@code{staff-padding}@tie{}; la section suivante lui est consacrée.
+@code{staff-padding} ; la section suivante lui est consacrée.
@node Collisions d'objets
* Exemple concret::
@end menu
+
@node Déplacement d'objets
@subsection Déplacement d'objets
@translationof Moving objects
d'espace autour d'eux.
Il y a trois façons de résoudre les problèmes de chevauchement. Il est
-préférable de les aborder dans l'ordre suivant@tie{}:
+préférable de les aborder dans l'ordre suivant :
@enumerate
@item
@item
Les @strong{propriétés d'objet}, auxquelles LilyPond a recours pour
positionner les objets, sont modifiables avec @code{\override}. Il y a
-deux avantages à changer ces propriétés@tie{}: (a) d'autres objets
+deux avantages à changer ces propriétés : (a) d'autres objets
pourront être déplacés automatiquement si nécessaire pour faire de la
-place, et (b) la même retouche peut s'appliquer à toutes les occurrences
-du même type d'objet. Ces propriétés sont@tie{}:
+place, et (b) la même retouche peut s'appliquer à toutes les occurrences
+du même type d'objet. Ces propriétés sont :
@itemize
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}
@code{padding} détermine l'espace à laisser libre entre celui-ci et le
coin le plus proche de l'objet à côté duquel il est placé. Vous
remarquerez que c'est la valeur @code{padding} de l'objet @strong{à
-placer} qui compte@tie{}; la valeur @code{padding} de l'objet déjà placé
+placer} qui compte ; la valeur @code{padding} de l'objet déjà placé
est ignorée. Les espaces libres déterminés par @code{padding}
s'appliquent à tous les objets associés à la
@code{side-position-interface}.
joue sur le positionnement des altérations.
La propriété @code{staff-padding} est très proche de la propriété
-@code{padding}@tie{}: @code{padding} contrôle l'espace minimum entre un
+@code{padding} : @code{padding} contrôle l'espace minimum entre un
objet qui accepte la @code{side-position-interface} et l'objet le plus
-proche (généralement une note ou une ligne de portée)@tie{};
+proche (généralement une note ou une ligne de portée) ;
@code{staff-padding} ne s'applique qu'aux objets qui sont toujours
-placés en-dehors de la portée -- il contrôle l'espace minimum à insérer
-entre l'objet et la portée. Attention@tie{}: par défaut,
+placés au-dehors de la portée -- il contrôle l'espace minimum à insérer
+entre l'objet et la portée. Attention : par défaut,
@code{staff-padding} concerne les objets positionnés par rapport
à la portée et n'a aucun effet sur les objets qui sont positionnés par
-rapport à une note@tie{}; il est toutefois possible de le régler pour
+rapport à une note ; il est toutefois possible de le régler pour
fonctionner avec ces derniers.
Pour trouver quelle propriété @code{padding} employer pour l'objet que
vous cherchez à repositionner, il vous faut consulter les propriétés de
l'objet dans la RPI. Prenez garde que les propriétés @code{padding} ne
-sont pas forcément traitées dans l'objet en question@tie{}; il faut
+sont pas forcément traitées dans l'objet en question ; 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}
ajouté au bord gauche et le second au bord droit. Des nombres
négatifs déplacent le coin vers la gauche, des nombres positifs
vers la droite, si bien que pour élargir un objet, le premier nombre
-doit être négatif et le second positif. Attention@tie{}: tous les
+doit être négatif et le second positif. Attention : tous les
objets n'acceptent pas forcément les deux nombres. Par exemple, l'objet
@code{Accidental} ne retient que le premier nombre (coin gauche).
@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
que, le jour où la musique est modifiée, il faut de nouveau rechercher
les valeurs de repositionnement. Les propriétés à utiliser pour ce type
-de repositionnement manuel sont@tie{}:
+de repositionnement manuel sont :
@table @code
@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
@multitable @columnfractions .5 .5
-@headitem Type d'objet @tab Nom d'objet
-@item Articulations @tab @code{Script}
-@item Barres de ligature @tab @code{Beam}
-@item Doigté @tab @code{Fingering}
-@item Liaisons de phrasé @tab @code{Slur}
-@item Liaisons de prolongation @tab @code{Tie}
-@item Nolets @tab @code{TupletBracket}
-@item Nuances (verticalement) @tab @code{DynamicLineSpanner}
-@item Nuances (horizontalement) @tab @code{DynamicText}
-@item Reprises / marques de texte @tab @code{RehearsalMark}
-@item Texte, p.ex. @code{^"texte"} @tab @code{TextScript}
+@headitem Type d'objet @tab Nom d'objet
+@item Articulations @tab @code{Script}
+@item Barres de ligature @tab @code{Beam}
+@item Doigté @tab @code{Fingering}
+@item Liaisons de phrasé @tab @code{Slur}
+@item Liaisons de prolongation @tab @code{Tie}
+@item Nolets @tab @code{TupletBracket}
+@item Nuances (verticalement) @tab @code{DynamicLineSpanner}
+@item Nuances (horizontalement) @tab @code{DynamicText}
+@item Reprises / marques de texte @tab @code{RehearsalMark}
+@item Texte, par ex. @code{^"texte"} @tab @code{TextScript}
@end multitable
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
+@c VO padding property
@cindex décalage (padding)
@cindex résolution des chevauchements de notation
@code{outside-staff-priority}, cet objet sera déplacé, ainsi que tous
les autres objets du groupe.
-@subheading right-padding
+
+@subheading la propriété right-padding
+@c VO right-padding
@cindex right-padding, propriété
certaines altérations ou certains glyphes utilisés en musique
microtonale. Le stencil de l'altération devra alors être construit sous
la forme d'un @code{markup} qui contiendra le ou les symboles requis,
-comme ceci@tie{}:
+comme ceci :
@cindex Accidental, exemple de dérogation
@cindex text, exemple d'utilisation de la propriété
@noindent
+
@subheading la propriété staff-padding
+@c VO staff-padding property
@cindex alignement d'objets sur une ligne de base
@cindex objets, alignement sur une ligne de base
notamment celles qui sont créées comme des bandeaux en longueur (en
anglais @emph{Spanners}). Tel est donc le moyen d'aligner les
indications de nuance, comme dans cet exemple repris de la section
-précédente@tie{}:
+précédente :
@cindex DynamicText, exemple de dérogation
@cindex extra-spacing-width, exemple d'utilisation de la propriété
@subheading la propriété self-alignment-X
+@c VO self-alignment-X property
L'exemple suivant montre comment résoudre une collision entre une
indication de corde et une hampe, en alignant le coin droit sur le point
-de référence de la note parente@tie{}:
+de référence de la note parente :
@cindex StringNumber, exemple de dérogation
@cindex self-alignment-X, exemple d'utilisation de la propriété
<a\2>
@end lilypond
+
@subheading la propriété staff-position
+@c VO staff-position property
@cindex collision d'objets à l'intérieur d'une portée
repérer ces risques de collision dans la mesure où, normalement, toutes
les collisions entre notes ou entre notes et silences se produisent sur
des notes et silences simultanés. Voici un exemple de collision de ce
-type@tie{}:
+type :
@lilypond[quote,verbatim,fragment,ragged-right, relative=1]
<< { c4 c c c } \\ { R1 } >>
Ici, la meilleure solution consiste à déplacer le symbole de pause vers
le bas -- puisque cette pause appartient à la voix deux. Par défaut,
dans la @code{\voiceTwo} (c'est-à-dire dans la seconde voix d'une
-construction @code{<<@{@dots{}@}@tie{}\\@tie{}@{@dots{}@}>>}), la
-propriété @code{staff-position} est réglée sur @code{-4} pour les
-@code{MultiMeasureRest}@tie{}; nous avons donc besoin de la déplacer,
-disons, de quatre demi-intervalles vers le bas, ce qui donne @code{-8}.
-
+construction @code{<<@{@dots{}@} \\ @{@dots{}@}>>}), la propriété
+@code{staff-position} est réglée sur @code{-4} pour les
+@code{MultiMeasureRest} ; 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
+@c VO extra-offset property
@cindex positionnement des objets
@cindex positionnement des grobs
verticalement.
Dans l'exemple suivant, la seconde indication de doigté est déplacée
-légèrement vers la gauche et de 1,8 intervalle de lignes vers le
-bas@tie{}:
+légèrement vers la gauche et de 1,8 intervalle de lignes vers le bas :
@cindex Fingering, exemple de dérogation
@cindex extra-offset, exemple d'utilisation de la propriété
@subheading la propriété positions
+@c VO positions property
@cindex contrôle des nolets, liaisons, phrasés et ligatures
@cindex gestion manuelle des nolets, liaisons, phrasés et ligatures
@noindent
Nous pourrions tout simplement déplacer la liaison de phrasé au-dessus
-des notes, et ce serait la meilleure solution@tie{}:
+des notes, et ce serait la meilleure solution :
@lilypond[quote,verbatim,fragment,ragged-right,relative=1]
r4
\acciaccatura e8\( d8 c~ c d c d\)
@end lilypond
-Voici un autre exemple, tiré du début de la partie de main gauche
-du Prélude de Chopin, Op. 28, No 2. Comme nous pouvons le
-constater, les barres de ligature chevauchent les notes les plus
-hautes@tie{}:
+Voici un autre exemple. Comme nous pouvons le constater, les barres de
+ligature chevauchent les liaisons de tenue :
@lilypond[quote,verbatim,fragment,ragged-right]
{
- \clef "bass"
- << { b,8 ais, b, g, } \\ { e,8 g e, g } >>
- << { b,8 ais, b, g, } \\ { e,8 g e, g } >>
+ \time 4/2
+ <<
+ { c'1 ~ c'2. e'8 f' }
+ \\
+ { e''8 e'' e'' e'' e'' e'' e'' e'' f''2 g'' }
+ >>
+ <<
+ { c'1 ~ c'2. e'8 f' }
+ \\
+ { e''8 e'' e'' e'' e'' e'' e'' e'' f''2 g'' }
+ >>
}
@end lilypond
@noindent
On peut y remédier en déplaçant manuellement vers le haut les deux
-extrémités des ligatures de croches, non plus à 2 intervalles au-dessus
-de la ligne médiane mais, disons, à 3@tie{}:
+extrémités des ligatures de croches, non plus à 1,81 intervalle
+au-dessous de la ligne médiane mais, disons, à 1 :
@cindex Beam, exemple de dérogation
@cindex positions, exemple d'utilisation de la propriété
@lilypond[quote,verbatim,fragment,ragged-right]
{
- \clef "bass"
+ \time 4/2
<<
- \override Beam #'positions = #'(3 . 3)
- { b,8 ais, b, g, }
- \\
- { e,8 g e, g }
+ { c'1 ~ c'2. e'8 f' }
+ \\
+ {
+ \override Beam #'positions = #'(-1 . -1)
+ e''8 e'' e'' e'' e'' e'' e'' e'' f''2 g''
+ }
+ >>
+ <<
+ { c'1 ~ c'2. e'8 f' }
+ \\
+ { e''8 e'' e'' e'' e'' e'' e'' e'' f''2 g'' }
>>
- << { b,8 ais, b, g, } \\ { e,8 g e, g } >>
}
@end lilypond
@noindent
Vous remarquerez que la retouche continue de s'appliquer au
second bloc de croches de la première voix mais qu'il ne s'applique
-à aucune barre de la deuxième voix.
+à aucune mesure de la deuxième voix.
+
@subheading la propriété force-hshift
+@c VO force-hshift property
-Maintenant, nous sommes prêts à appliquer les dernières corrections à
+Maintenant, nous sommes prêts à appliquer les dernières corrections à
l'exemple de Chopin présenté à la fin de @ref{J'entends des Voix}, que
-nous avions laissé dans cet état@tie{}:
+nous avions laissé dans cet état :
@lilypond[quote,verbatim,fragment,ragged-right]
\new Staff \relative c'' {
<<
{ c2 aes4. bes8 }
\\
- { aes2 f4 fes }
+ { <ees, c>2 des }
\\
- {
- \voiceFour
- <ees c>2 des
- }
+ \\
+ { aes'2 f4 fes }
>> |
<c ees aes c>1 |
}
@end lilypond
@noindent
-Les deux plus basses notes du premier accord (c'est-à-dire celles de la
-troisième voix) ne devraient pas être décalées de l'empilement des deux
-plus hautes notes. Pour y remédier, nous réglons le @code{force-hshift}
--- qui est une propriété de @code{NoteColumn} -- de ces notes sur zéro.
-Ensuite, la note la plus basse du second accord serait mieux à droite
-des notes plus hautes. Pour cela, nous réglons le @code{force-hshift}
-de cette note sur 0,5 -- c'est-à-dire la moitié de la largeur d'une tête
-de note vers la droite de la colonne des notes plus hautes.
+La note intermédiaire du premier accord, le la bémol à la quatrième
+voix, doit rester dans le même empilement que la note haute. Pour y
+remédier, nous réglons le @code{force-hshift} -- qui est une propriété
+de @code{NoteColumn} -- de cette note sur zéro.
+
+Quant au second accord, il serait préférable que le fa s'aligne avec le
+la et que la note la plus basse se positionne un peu plus sur la droite
+pour éviter que les hampes se chevauchent. Pour cela, nous réglons le
+@code{force-hshift} au niveau du @code{NoteColumn} du ré bémol de telle
+sorte qu'il se déplace de la moitié d'un espace de portée vers la
+droite.
Et voici le résultat final :
<<
{ c2 aes4. bes8 }
\\
- { aes2 f4 fes }
- \\
{
- \voiceFour
- \once \override NoteColumn #'force-hshift = #0
- <ees c>2
+ <ees, c>2
\once \override NoteColumn #'force-hshift = #0.5
des2
}
+ \\
+ \\
+ {
+ \override NoteColumn #'force-hshift = #0
+ aes'2 f4 fes
+ }
>> |
<c ees aes c>1 |
}
exemple a été choisi en raison des problèmes inhabituels de notation
qu'il soulevait et pour vous apprendre à les résoudre grâce au Manuel de
notation. Il n'est pas représentatif d'une opération normale de
-gravure@tie{}; que ces difficultés ne vous découragent donc pas@tie{}!
-Des difficultés comme celles-ci ne sont, heureusement, pas
-courantes@tie{}!
+gravure ; que ces difficultés ne vous découragent donc pas ! Des
+difficultés comme celles-ci ne sont, heureusement, pas courantes !
-Cet exemple est tiré de la Première Ballade de Chopin, Op. 23, mesures
-6 à 9@tie{}; cela correspond à la transition entre le Lento d'ouverture
+Cet exemple est tiré de la Première Ballade de Chopin, Op. 23, mesures
+6 à 9 ; cela correspond à la transition entre le Lento d'ouverture
et le Moderato. Voici, pour commencer, ce à quoi nous voulons que la
-partition ressemble@tie{}; pour limiter les complications, nous n'avons
+partition ressemble ; pour limiter les complications, nous n'avons
pas fait apparaître les indications de nuance, de doigté ni de pédale.
c,8~
% Reposition the c2 to the right of the merged note
\once \override NoteColumn #'force-hshift = #1.0
- % Move the c2 out of the main note column so the merge will work
+ % Move the c2 out of the main note column
+ % so the merge will work
\shiftOnn
c2
}
% Stem on the d2 must be down to permit merging
\stemDown
% Stem on the d2 should be invisible
- \once \override Stem #'transparent = ##t
+ \tweak Stem #'transparent ##t
+ \tweak Flag #'transparent ##t
d2
}
\new Voice {
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 :
@c line-width ensures no break
@lilypond[quote,verbatim,ragged-right,line-width=6\in]
pouvons corriger la ligature des croches en la créant manuellement et
nous pouvons facilement ajouter les limites droite et gauche de la
liaison de phrasé, puisque tout cela a déjà été traité dans le tutoriel.
-Voici le résultat@tie{}:
+Voici le résultat :
@c line-width ensures no break
@lilypond[quote,verbatim,ragged-right,line-width=6\in]
La première mesure est maintenant correcte. La seconde contient un
arpège et doit se terminer par une double barre. Comment faire, puisque
-cela n'a pas été traité dans le Manuel d'initiation@tie{}? C'est alors
+cela n'a pas été traité dans le Manuel d'initiation ? C'est alors
qu'il faut nous reporter au Manuel de notation. Quand on cherche
@qq{arpège} et @qq{barre de mesure} dans l'index, on voit aisément qu'il
faut ajouter @code{\arpeggio} à un accord pour produire un arpège et
-qu'une double barre est le résultat de la commande
-@code{\bar@tie{}"||"}. Rien de plus facile@tie{}! Nous devons ensuite
-corriger la collision entre la liaison et l'indication de mesure. Le
-mieux est de déplacer la liaison vers le haut. La méthode pour déplacer
-les objets a déjà été présentée dans @ref{Déplacement d'objets}, et l'on
-sait que, pour des objets positionnés par rapport à la portée, il nous
-faut modifier leur propriété @code{staff-position}, exprimée en
-demi-intervalles de lignes par rapport à la ligne médiane de la portée.
-Voici donc la retouche à insérer juste devant la première note
-liée@tie{}; elle est censée déplacer la liaison vers le haut de 3,5
-demi-intervalles de lignes au-dessus de la ligne médiane@tie{}:
+qu'une double barre est le résultat de la commande @code{\bar "||"}.
+Rien de plus facile ! Nous devons ensuite corriger la collision entre
+la liaison et l'indication de mesure. Le mieux est de déplacer la
+liaison vers le haut. La méthode pour déplacer les objets a déjà été
+présentée dans @ref{Déplacement d'objets}, et l'on sait que, pour des
+objets positionnés par rapport à la portée, il nous faut modifier leur
+propriété @code{staff-position}, exprimée en demi-intervalles de lignes
+par rapport à la ligne médiane de la portée. Voici donc la retouche à
+insérer juste devant la première note liée ; elle est censée déplacer la
+liaison vers le haut de 3,5 demi-intervalles de lignes au-dessus de la
+ligne médiane :
@code{\once \override Tie #'staff-position = #3.5}
-Cela s'adjoint à la deuxième mesure, pour donner@tie{}:
+Cela s'adjoint à la deuxième mesure, pour donner :
@c line-width ensures no break
@lilypond[quote,verbatim,ragged-right,line-width=6\in]
Venons-en à la troisième mesure et au début de la section Moderato.
Dans le Tutoriel, il est indiqué comment insérer du texte en gras à
-l'aide de la commande @code{\markup}@tie{}; pas de problème, du coup,
+l'aide de la commande @code{\markup} ; pas de problème, du coup,
pour ajouter @qq{Moderato} en gras. Mais comment faire pour fusionner
-les notes de différentes voix@tie{}? C'est là que le Manuel de notation
+les notes de différentes voix ? C'est là que le Manuel de notation
peut nous venir en aide. Une recherche sur @qq{fusionnement de notes}
dans l'index nous renvoie au chapitre @ruser{Résolution des collisions},
et plus précisément aux commandes permettant de fusionner des notes en
fonction de leur type et selon qu'elles sont pointées ou non. Dans
notre exemple, pour la durée de la polyphonie de la troisième mesure,
-nous avons besoin de fusionner deux types de notes@tie{}; grâce aux
+nous avons besoin de fusionner deux types de notes ; grâce aux
informations trouvées dans le Manuel de notation, nous ajoutons
@example
@end lilypond
Ces retouches ont permis de fusionner les deux fa dièse mais pas les
-deux ré. Pourquoi@tie{}? La réponse se trouve dans la même section du
-Manuel de notation@tie{}: les notes à fusionner doivent avoir des hampes
+deux ré. Pourquoi ? La réponse se trouve dans la même section du
+Manuel de notation : les notes à fusionner doivent avoir des hampes
dans des directions opposées et deux notes ne peuvent pas être
fusionnées s'il y a une troisième note dans la même colonne. Ici, les
deux ré ont leur hampe orientée vers le haut et il y a une troisième
note, do. Nous savons changer l'orientation de la hampe avec
@code{\stemDown} et le Manuel de notation nous indique également comment
déplacer le do -- en produisant un décalage grâce à l'une des commandes
-@code{\shift}. Mais laquelle@tie{}? Le do appartient à la deuxième
-voix et n'est pas décalé@tie{}; les deux ré appartiennent respectivement
+@code{\shift}. Mais laquelle ? Le do appartient à la deuxième
+voix et n'est pas décalé ; les deux ré appartiennent respectivement
à la première et à la troisième voix, et l'un n'est pas décalé tandis
que l'autre l'est. Il nous faut donc décaler largement le do avec la
commande @code{\shiftOnn} pour éviter une interférence avec les deux ré.
-Voici ce que donnent ces modifications@tie{}:
+Voici ce que donnent ces modifications :
@cindex Tie, exemple de dérogation
@cindex staff-position, exemple d'utilisation de la propriété
{ c,8 d fis bes a } % continuation of main voice
\new Voice {
\voiceTwo
- % Move the c2 out of the main note column so the merge will work
+ % Move the c2 out of the main note column
+ % so the merge will work
c,8~ \shiftOnn c2
}
\new Voice {
}
@end lilypond
-Pas loin@tie{}! Il ne reste plus que deux problèmes@tie{}: les ré une
+Pas loin ! Il ne reste plus que deux problèmes : les ré une
fois fusionnés ne devraient plus avoir de hampe vers le bas, et le do
serait mieux à la droite des ré. Nous savons remédier à ces deux
-problèmes grâce aux retouches précédentes@tie{}: nous allons rendre la
+problèmes grâce aux retouches précédentes : nous allons rendre la
hampe transparente et déplacer le do avec la propriété
-@code{force-hshift}. Et voici le résultat final@tie{}:
+@code{force-hshift}. Et voici le résultat final :
@cindex NoteColumn, exemple de dérogation
@cindex force-hshift, exemple d'utilisation de la propriété
c,8~
% Reposition the c2 to the right of the merged note
\once \override NoteColumn #'force-hshift = #1.0
- % Move the c2 out of the main note column so the merge will work
+ % Move the c2 out of the main note column
+ % so the merge will work
\shiftOnn
c2
}
% Stem on the d2 must be down to permit merging
\stemDown
% Stem on the d2 should be invisible
- \once \override Stem #'transparent = ##t
+ \tweak Stem #'transparent ##t
+ \tweak Flag #'transparent ##t
d2
}
\new Voice {
* Utilisation de variables dans les retouches::
* Feuilles de style::
* Autres sources de documentation::
-* Options ralentissant le traitement::
* Retouches avancées avec Scheme::
@end menu
+
@node Autres utilisations des retouches
@subsection Autres utilisations des retouches
@translationof Other uses for tweaks
@cindex objets, invisibles
@cindex liaison de tenue avec changement de voix
+
@subheading Liaison entre plusieurs voix
+@c VO Tying notes across voices
Voici un exemple qui montre comment créer une liaison de
prolongation entre des notes appartenant à des voix différentes. En
@end lilypond
@noindent
-et à rendre transparente la première hampe de cette voix@tie{};
+et à rendre transparente la première hampe de cette voix ;
on a alors l'impression que la liaison couvre les deux voix.
@cindex Stem, exemple de dérogation
@lilypond[quote,fragment,relative=2,verbatim]
<<
{
- \once \override Stem #'transparent = ##t
+ \tweak Stem #'transparent ##t
+ \tweak Flag #'transparent ##t
b8~ b\noBeam
}
\\
Pour être sûr que la hampe que nous avons rendue transparente
n'empiète pas trop sur le trait de liaison, nous pouvons l'allonger en
-réglant la longueur (@code{length}) sur @code{8},
+réglant la longueur (@code{length}) sur @code{8},
@lilypond[quote,fragment,relative=2,verbatim]
<<
{
- \once \override Stem #'transparent = ##t
- \once \override Stem #'length = #8
+ \tweak Stem #'transparent ##t
+ \tweak Flag #'transparent ##t
+ \tweak Stem #'length #8
b8~ b8\noBeam
}
\\
>>
@end lilypond
+
@subheading Rendu MIDI d'un point d'orgue
+@c VO Simulating a fermata in MIDI
@cindex stencil, utilisation de la propriété
@cindex point d'orgue, rendu en MIDI
qu'elle influence l'espacement entre les deux systèmes ou la position
des annotations voisines sur la portée. Le fait d'attribuer à la
propriété @code{stencil} la valeur @code{#f} est donc la bonne solution.
-Nous montrons ci-dessous le résultat des deux méthodes@tie{}:
+Nous montrons ci-dessous le résultat des deux méthodes :
@cindex MetronomeMark, exemple de dérogation
@cindex transparent, exemple d'utilisation de la propriété
contrairement à la seconde (avec le stencil désactivé) qui la laisse à
sa place.
-
@seealso
Glossaire musicologique :
@rglosnamed{system,système}.
@code{\bold}, qui ne fonctionnent dans les paroles que si elles sont
enchâssées dans un @code{\markup} -- ce qui les rend pénibles à saisir
-- pouvons-nous employer les commandes @code{\override} et
-@code{\revert}@tie{}?
+@code{\revert} ?
@example
@code{\override Lyrics . LyricText #'font-shape = #'italic}
les variables des noms plus courts pour simplifier la frappe. Par
ailleurs, le fait de recourir à une variable ne nous expose plus à
l'oubli des espaces entourant les points lorsqu'explicités au beau
-milieu d'un bloc @code{\lyriqcmode}@tie{}!
+milieu d'un bloc @code{\lyricmode} !
@cindex LyricText, exemple de dérogation
@cindex font-shape, exemple d'utilisation de la propriété
La sortie que produit LilyPond peut être largement modifiée -- voir
@ref{Retouche de partition} pour plus de détails. Mais que faire si
vous avez beaucoup de fichiers auxquels vous souhaitez appliquer vos
-retouches@tie{}? Ou si vous souhaitez simplement séparer les retouches
-de la musique elle-même@tie{}? Rien de plus facile.
+retouches ? Ou si vous souhaitez simplement séparer les retouches
+de la musique elle-même ? Rien de plus facile.
Prenons un exemple. Ne vous inquiétez pas si vous ne comprenez pas
les parties avec tous les @code{#()}. Celles-ci sont expliquées dans
}
@end lilypond
-Il y a quelques problèmes de chevauchement@tie{}; nous allons arranger
-cela en utilisant les techniques de @ref{Déplacement d'objets}. On peut
-aussi faire quelque chose pour les définitions de @code{mpdolce}
+On peut faire quelque chose pour les définitions de @code{mpdolce}
et @code{inst}. Elles produisent le résultat que nous désirons,
mais nous pourrions aussi vouloir les utiliser dans une autre pièce.
Il suffirait de les copier et coller au début de chaque
fichier, mais c'est fastidieux. De plus, cela laisse les définitions
dans nos fichiers de musique, et je trouve personnellement tous ces
-@code{#()} assez laids. Stockons-les dans un autre fichier@tie{}:
+@code{#()} assez laids. Stockons-les dans un autre fichier :
@example
%%% enregistrez ceci dans un fichier nommé "definitions.ily"
mpdolce =
#(make-dynamic-script
- (markup #:hspace 0
- #:translate '(5 . 0)
- #:line (#:dynamic "mp"
- #:text #:italic "dolce")))
+ #@{ \markup @{ \hspace #0
+ \translate #'(5 . 0)
+ \line @{ \dynamic "mp"
+ \text \italic "dolce" @} @}
+ #@})
inst =
#(define-music-function
(parser location string)
(string?)
- (make-music
- 'TextScriptEvent
- 'direction UP
- 'text (markup #:bold (#:box string))))
+ #@{ ^\markup \bold \box #string #@})
@end example
Nous rappellerons ce fichier par une simple commande @code{\include} au
début de notre fichier de musique. Lui attribuer l'extension
@code{.ily} nous permet de distinguer aisément qu'il s'agit d'un fichier
-voué à être inclus dans un fichier maître@tie{}; il n'est pas destiné à
+voué à être inclus dans un fichier maître ; il n'est pas destiné à
être compilé isolément.@*
Maintenant, modifions notre musique (enregistrez ce fichier
sous @file{musique.ly}).
@lilypond[quote,ragged-right]
mpdolce =
#(make-dynamic-script
- (markup #:hspace 0
- #:translate '(5 . 0)
- #:line (#:dynamic "mp"
- #:text #:italic "dolce")))
+ #{ \markup { \hspace #0
+ \translate #'(5 . 0)
+ \line { \dynamic "mp"
+ \text \italic "dolce" } }
+ #})
inst =
#(define-music-function
(parser location string)
(string?)
- (make-music
- 'TextScriptEvent
- 'direction UP
- 'text (markup #:bold (#:box string))))
+ #{ ^\markup \bold \box #string #})
\relative c'' {
\tempo 4=50
@qq{4/4}.
Cependant, ne changez pas le fichier @file{musique.ly}. Remplacez le
-fichier @file{definitions.ily} par ceci@tie{}:
+fichier @file{definitions.ily} par ceci :
@example
%%% definitions.ily
mpdolce =
#(make-dynamic-script
- (markup #:hspace 0
- #:translate '(5 . 0)
- #:line (#:dynamic "mp"
- #:text #:italic "dolce")))
+ #@{ \markup @{ \hspace #0
+ \translate #'(5 . 0)
+ \line @{ \dynamic "mp"
+ \text \italic "dolce" @} @}
+ #@})
inst =
#(define-music-function
(parser location string)
(string?)
- (make-music
- 'TextScriptEvent
- 'direction UP
- 'text (markup #:bold (#:box string))))
+ #@{ ^\markup \bold \box #string #@})
\layout@{
\context @{
@lilypond[quote,ragged-right]
mpdolce =
#(make-dynamic-script
- (markup #:hspace 0
- #:translate '(5 . 0)
- #:line (#:dynamic "mp"
- #:text #:italic "dolce")))
+ #{ \markup { \hspace #0
+ \translate #'(5 . 0)
+ \line { \dynamic "mp"
+ \text \italic "dolce" } }
+ #})
inst =
#(define-music-function
(parser location string)
(string?)
- (make-music
- 'TextScriptEvent
- 'direction UP
- 'text (markup #:bold (#:box string))))
+ #{ ^\markup \bold \box #string #})
\layout{
\context {
}
@end lilypond
-C'est encore mieux@tie{}! Mais supposons maintenant que je veuille
+C'est encore mieux ! Mais supposons maintenant que je veuille
publier cette pièce. Mon professeur de composition n'aime pas les
chiffrages de mesure en @qq{C}, mais moi je les aime bien. Copions
l'actuel @file{definitions.ily} dans le fichier
aussi augmenter la taille globale de police.
@example
-%%% definitions.ily
+%%% web-publish.ily
mpdolce =
#(make-dynamic-script
- (markup #:hspace 0
- #:translate '(5 . 0)
- #:line (#:dynamic "mp"
- #:text #:italic "dolce")))
+ #@{ \markup @{ \hspace #0
+ \translate #'(5 . 0)
+ \line @{ \dynamic "mp"
+ \text \italic "dolce" @} @}
+ #@})
inst =
#(define-music-function
(parser location string)
(string?)
- (make-music
- 'TextScriptEvent
- 'direction UP
- 'text (markup #:bold (#:box string))))
+ #@{ ^\markup \bold \box #string #@})
#(set-global-staff-size 23)
@lilypond[quote,ragged-right]
mpdolce =
#(make-dynamic-script
- (markup #:hspace 0
- #:translate '(5 . 0)
- #:line (#:dynamic "mp"
- #:text #:italic "dolce")))
+ #{ \markup { \hspace #0
+ \translate #'(5 . 0)
+ \line { \dynamic "mp"
+ \text \italic "dolce" } }
+ #})
inst =
#(define-music-function
(parser location string)
(string?)
- (make-music
- 'TextScriptEvent
- 'direction UP
- 'text (markup #:bold (#:box string))))
+ #{ ^\markup \bold \box #string #})
#(set-global-staff-size 23)
@end lilypond
Il ne nous reste plus qu'à remplacer
-@code{\include@tie{}"definitions.ily"} par
-@code{\include@tie{}"publication-web.ily"} dans notre fichier de
+@code{\include "definitions.ily"} par
+@code{\include "publication-web.ily"} dans notre fichier de
musique.
Il est possible, bien sûr, de rendre cela encore plus pratique. Nous
Cette approche peut être utile même si vous ne produisez qu'un seul
jeu de partitions. J'utilise personnellement une demi-douzaine de
fichiers de @qq{feuille de style} pour mes projets. Je commence
-chaque fichier de musique par @code{\include@tie{}"../global.ily"} qui
-contient@tie{}:
+chaque fichier de musique par @code{\include "../global.ily"} qui
+contient :
@example
%%% global.ily
sur LilyPond. Cependant vous pouvez en découvrir encore plus en
consultant les fichiers internes de LilyPond. Pour cela, il vous faut
d'abord connaître le répertoire @emph{ad hoc} sur votre système.
-L'emplacement du répertoire dépend (a) du fait que, pour vous procurer
-LilyPond, vous avez téléchargé un paquet précompilé sur lilypond.org, ou
+L'emplacement du répertoire dépend (a) du fait que, pour vous procurer
+LilyPond, vous avez téléchargé un paquet précompilé sur lilypond.org ou
vous l'avez installé grâce à votre gestionnaire de paquetages
-(c'est-à-dire distribué avec Linux ou installé avec fink ou cygwin), ou
-encore vous l'avez compilé directement à partir des sources@tie{}; et
-(b) du système d'exploitation sur lequel il tourne.
+(c'est-à-dire distribué avec GNU/Linux ou installé avec fink ou cygwin), ou
+encore vous l'avez compilé directement à partir des sources ; et
+(b) du système d'exploitation sur lequel il tourne.
+
@strong{Téléchargé depuis lilypond.org}
@itemize @bullet
-@item Linux
+@item GNU/Linux
+@example
@file{@var{INSTALLDIR}/lilypond/usr/@/share/lilypond/current/}
+@end example
@item MacOS X
+@example
@file{@var{INSTALLDIR}/LilyPond.app/Contents/@/Resources/share/lilypond/current/}
-Pour accéder à ce dossier, deux possibilités@tie{}: soit, dans un
-Terminal, taper @code{cd} suivi du chemin complet ci-dessus@tie{}; soit
+@end example
+
+Pour accéder à ce dossier, deux possibilités : soit, dans un
+Terminal, taper @code{cd} suivi du chemin complet ci-dessus ; soit
Control-cliquer (ou clic droit) sur l'application LilyPond
et sélectionner @qq{Afficher le contenu du paquet}.
@item Windows
Dans l'Explorateur Windows, voir
+@example
@file{@var{INSTALLDIR}/LilyPond/usr/@/share/lilypond/current/}
+@end example
@end itemize
+
@strong{Installé par un gestionnaire de paquetages ou compilé d'après
les sources}
@code{@var{PREFIX}/share/lilypond/@var{X.Y.Z}/}, où
@var{PREFIX} est déterminé par votre gestionnaire de paquetages ou par
-le script @code{configure}, et @var{X.Y.Z} est le numéro de version de
-LilyPond.
+le script @code{configure}, et @var{X.Y.Z} représente le numéro de
+version de LilyPond.
@smallspace
Dans ce répertoire, deux sous-répertoires sont particulièrement
-intéressants@tie{}:
+intéressants :
@itemize
@item @code{ly/} -- contient les fichiers en format LilyPond
@code{\slurDotted}. Vous pouvez constater que ce n'est rien d'autre
que des définitions de variables composées d'un ou plusieurs groupes
de commandes @code{\override}. Par exemple, @code{\tieDotted}
-est défini comme@tie{}:
+est défini comme :
@example
tieDotted = @{
peuvent être facilement redéfinies, comme n'importe quelle autre
variable, en tête de votre fichier d'entrée.
-Voici les fichiers les plus utiles dans le répertoire @file{ly/}@tie{}:
+Voici les fichiers les plus utiles dans le répertoire @file{ly/} :
@multitable @columnfractions .4 .6
@headitem Nom de fichier
@tab Contenu
@item @file{ly/engraver-init.ly}
- @tab Définitions des Contextes de graveurs
+ @tab Définition des contextes de graveurs
@item @file{ly/paper-defaults-init.ly}
@tab Réglages papier par défaut
@item @file{ly/performer-init.ly}
- @tab Définitions des Contextes d'interprétation
+ @tab Définition des contextes d'interprétation
@item @file{ly/property-init.ly}
- @tab Définitions de toutes les commandes prédéfinies courantes
+ @tab Définition de toutes les commandes prédéfinies courantes
@item @file{ly/spanner-init.ly}
- @tab Définitions des commandes prédéfinies pour les bandeaux
+ @tab Définition des commandes prédéfinies pour les bandeaux
@end multitable
Les autres réglages (comme les définitions de commandes @emph{markup})
souhaiteraient comprendre le fonctionnement de ces fichiers de
configuration doivent être avertis que des connaissances techniques
substantielles et beaucoup de temps sont nécessaires (voir le
-@rextendnamed{Scheme tutorial,Tutoriel Scheme}).
+@rextend{Tutoriel Scheme}).
Si c'est votre cas, les fichiers Scheme les plus utiles à connaître
-sont@tie{}:
+sont :
@multitable @columnfractions .4 .6
@headitem Nom de fichier
@tab Contenu
@item @file{scm/auto-beam.scm}
- @tab Régles par défaut des ligatures subalternes
+ @tab Règles par défaut des ligatures subalternes
@item @file{scm/define-grobs.scm}
@tab Réglages par défaut des propriétés de @emph{grobs}
@item @file{scm/define-markup-commands.scm}
@tab Réglages par défaut pour les sorties MIDI
@item @file{scm/output-lib.scm}
@tab Réglages affectant l'apparence des frets, couleurs, altérations,
- barres de mesure, etc.
+ 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 Options ralentissant le traitement
-@subsection Options ralentissant le traitement
-@translationof Avoiding tweaks with slower processing
-
-LilyPond peut effectuer des vérifications supplémentaires lors du
-traitement des fichiers@tie{}; cependant, le rendu nécessitera alors
-plus de temps. En contrepartie, il y aura moins d'ajustements manuels à
-réaliser. Si une indication textuelle ou des paroles débordent dans la
-marge, ces vérifications auront pour effet de resserrer la ligne
-suffisamment pour faire tenir le texte entre les marges.
-
-Pour pouvoir fonctionner en toutes circonstances, ces vérifications
-doivent être activées@tie{}; il faut pour cela placer les retouches dans
-un @code{\context} à l'intérieur d'un bloc @code{\layout}, plutôt que
-directement dans le fragment musical, comme ceci@tie{}:
-
-@example
-\score @{
- @{ @dots{}notes@dots{} @}
- \layout @{
- \context @{
- \Score
- % Pour s'assurer que les indications textuelles et paroles
- % seront à l'intérieur des marges de la page.
- \override PaperColumn #'keep-inside-line = ##t
- \override NonMusicalPaperColumn #'keep-inside-line = ##t
- @}
- @}
-@}
-@end example
-
-
@node Retouches avancées avec Scheme
@subsection Retouches avancées avec Scheme
@translationof Advanced tweaks with Scheme
intégré directement dans le processus interne de LilyPond. Bien sûr,
il faut pour cela connaître un minimum de programmation en langage
Scheme. Pour des explications complètes là-dessus, consultez le
-@rextendnamed{Scheme tutorial,Tutoriel Scheme}.
+@rextend{Tutoriel Scheme}.
En guise d'illustration -- et ce n'est qu'une possibilité parmi tant
d'autres -- nous allons attribuer à une propriété non pas une valeur
procédure. Dans cet exemple, nous colorons les têtes de notes en
fonction de leur position sur la portée.
-
-@cindex x11-color, exemple d'utilisaation de la fonction
+@cindex x11-color, exemple d'utilisation de la fonction
@cindex NoteHead, exemple de dérogation
@cindex color, détermination de la propriété par une procédure Scheme
}
@end lilypond
-Vous trouverez dans @rextendnamed{Callback functions,les fonctions
-callback} d'autres exemples d'utilisation de ces interfaces
-programmables.
-
+Vous trouverez dans @rextend{Fonctions de rappel} d'autres exemples
+d'utilisation de ces interfaces programmables.