1 @c -*- coding: utf-8; mode: texinfo; -*-
3 Translation of GIT committish: bdf8540b74167817eab96ed3d13b35477217f9fe
5 When revising a translation, copy the HEAD committish of the
6 version that you are working on. See TRANSLATION for details.
11 @c Translators: Jean-Charles Malahieude
12 @c Translation checkers: Valentin Villenave, John Mandereau
18 @lilypondfile[quote]{text-headword.ly}
20 Nous allons voir ici comment insérer dans une partition du texte, avec
21 différentes possibilité de formatage.
23 @cindex Texte, autres langues
24 Pour écrire des accents et autres caractères spéciaux, il suffit de
25 les insérer directement dans votre fichier LilyPond. Ce fichier devra
26 être sauvegardé avec l'encodage UTF-8. Pour plus d'informations, voir
27 @ref{Codage du texte}.
31 * Mise en forme du texte::
37 @subsection Ajout de texte
38 @translationof Writing text
41 * Commentaires textuels::
42 * Indications textuelles et lignes d'extension::
43 * Extensions de texte::
44 * Indications textuelles::
47 @node Commentaires textuels
48 @unnumberedsubsubsec Commentaires textuels
49 @translationof Text scripts
51 @c I'm not fond of this "étiquette" wording of yours Jean-Charles;
52 @c j'utiliserais simplement l'expression "bloc \markup" afin
53 @c d'éviter toute confusion avec les \tags (qui méritent davantage
54 @c le titre d'étiquette, stricto sensu) -vv
56 @cindex Étiquette de texte
57 @cindex blocs de texte
58 @cindex ajout de texte
60 Vous pouvez placer arbitrairement des chaînes de caractères, ou
61 @ref{Mise en forme du texte} en langage LilyPond, au dessus ou au dessous des
62 notes en employant la syntaxe @code{c^"text"}. Par défaut, ces
63 indications n'affecteront en rien l'espacement des notes, sauf à
64 utiliser la commande @code{\textLengthOn}.
66 @lilypond[quote,fragment,ragged-right,verbatim,relative=1]
67 c4^"longtext" \textLengthOn c4_"longlongtext" c4
71 Pour revenir à l'espacement par défaut, utilisez @code{\textLengthOff}.
73 Des constructions plus élaborées d'étiquette peuvent être obtenues en
74 ayant recours à la commande @emph{markup} :
76 @lilypond[fragment,ragged-right,verbatim,quote]
77 c'4^\markup { bla \bold bla }
80 La commande @code{\markup} est décrite plus en détails dans la section
81 @ref{Mise en forme du texte}.
85 @funindex \textLengthOn
87 @funindex \textLengthOff
88 @code{\textLengthOff}.
94 S'assurer que tous les éléments textuels et les paroles respectent
95 les marges du document requiert des calculs relativement lourds ; c'est
96 la raison pour laquelle LilyPond, par défaut, ne s'en préoccupe pas.
97 Vous pouvez cependant l'y forcer en définissant
100 \override Score.PaperColumn #'keep-inside-line = ##t
105 Dans ce manuel : @ref{Mise en forme du texte}.
107 Référence du programme : @rinternals{TextScript}.
110 @node Indications textuelles et lignes d'extension
111 @unnumberedsubsubsec Indications textuelles et lignes d'extension
112 @translationof Text and line spanners
114 Certaines indications d'interprétation comme @i{rallentando},
115 @i{accelerando} ou @i{trilles}, s'incrivent textuellement et se
116 prolongent sur plusieurs mesures à l'aide d'une ligne pleine, pointillée
119 Les routines chargées de matérialiser un @emph{glissando} sont tout à
120 fait adaptées à une gestion précise, à la fois du placement du texte, et
121 du calcul de l'envergure de sa ligne d'extension. La routine
122 @code{ly:line-interface::print} est plus particulièrement en charge de
123 déterminer les points d'ancrage de la ligne et de la dessiner selon le
126 Voici un exemple qui illustre les différents styles de ligne
127 disponibles, ainsi que la manière de les personnaliser.
129 @lilypond[relative=2,ragged-right,verbatim,fragment]
131 \once \override Glissando #'style = #'dashed-line
133 \override Glissando #'style = #'dotted-line
135 \override Glissando #'style = #'zigzag
137 \override Glissando #'style = #'trill
141 L'information qui va déterminer les extrémités est calculée à la
142 volée pour chaque objet graphique. Il est tout à fait possible de les
145 @lilypond[relative=2,ragged-right,verbatim,fragment]
147 \once \override Glissando #'(bound-details right Y) = #-2
151 L'objet @code{Glissando}, comme tous ceux qui utilisent la routine
152 @code{ly:line-interface::print}, comporte une liste
153 d'associations. Dans le code ci-dessus, la valeur de @code{Y} est
154 fixée, dans la liste d'associations, à @code{-2} pour l'ancrage à
155 droite. Vous pouvez naturellement ajuster l'extrémité gauche en
156 remplaçant @code{right} (pour @code{droite}) par @code{left}.
158 Si @code{Y} n'est pas fixé, sa valeur sera calculée en fonction de la
159 hauteur du point de référence droite de la ligne.
161 Lorsque survient un saut de ligne, la liste des ancrages est
162 augmentée d'une liste complémentaire contenant @code{left-broken}
163 (brisure à gauche) et @code{right-broken} (brisure à droite), comme
164 dans l'exemple suivant :
166 @lilypond[relative=2,ragged-right,verbatim,fragment]
167 \override Glissando #'breakable = ##T
168 \override Glissando #'(bound-details right-broken Y) = #-3
173 Vous disposez des propriétés suivantes :
177 Fixe l'ordonnée (coordonnée-Y) de l'extrémité, mesurée en taille de
178 portée. Il s'agit par défaut du centre de l'objet de rattachement ;
179 pour un glissando, ce sera le milieu de la tête de note.
181 Pour des marques horizontales, telles du texte ou le trait d'un
182 trille, cette valeur est figée à 0.
185 Détermine l'endroit où la ligne commence et finit, relativement à
186 l'objet de rattachement. Autrement dit, une valeur de @code{-1} (ou
187 @code{LEFT} pour gauche) fera commencer ou finir la ligne du côté
188 gauche de la tête de note de référence.
191 Coordonnée absolue du point final. Dans la mesure où elle est calculée
192 à la volée, il n'y a pas vraiment de raison de l'outrepasser.
195 Sous-propriété contenant les éventuels symboles présents avant ou
196 après la ligne. Destinée à un usage interne, nous vous recommendons
197 d'utiliser plutôt @code{text}.
200 Marqueur qui sera analysé pour alimenter @code{stencil}. On y trouve
201 habituellement les @i{cresc.} ou @i{tr} des extenseurs horizontaux.
203 @lilypond[quote,ragged-right,fragment,relative=2,verbatim]
204 \override TextSpanner #'(bound-details left text)
205 = \markup { \small \bold Slower }
206 c2\startTextSpan b c a\stopTextSpan
209 @item stencil-align-dir-y
211 Lorsqu'ils ne sont pas définis, le tracé est tout simplement
212 positionné conformément aux sous-propriétés @code{X} et @code{Y}. En
213 fixant soit @code{stencil-align-dir-y}, soit @code{stencil-offset},
214 vous pouvez décaler le coin du marqueur par rapport à l'extrémité de
217 @lilypond[relative=1,fragment,verbatim]
218 \override TextSpanner #'(bound-details left stencil-align-dir-y) = #DOWN
219 \override TextSpanner #'(bound-details right stencil-align-dir-y) = #UP
221 \override TextSpanner #'(bound-details left text) = #"gggg"
222 \override TextSpanner #'(bound-details right text) = #"hhhh"
223 c4^\startTextSpan c c c \stopTextSpan
227 Assigner à cette sous-propriété la valeur @code{vrai} (@code{#t})
228 produira une terminaison en pointe de flèche.
231 Cette sous-propriété contrôle l'espace entre les extrémités de la
232 ligne, telles que définies, et la réalité. Sans ce léger décalage, le
233 début et la fin d'un glissando seraient en plein milieu des têtes de note.
239 Référence du programme : @rinternals{TextSpanner},
240 @rinternals{Glissando}, @rinternals{VoiceFollower},
241 @rinternals{TrillSpanner}, @rinternals{line-spanner-interface}.
243 Exemples : @rlsr{Expressive marks}.
246 @node Extensions de texte
247 @unnumberedsubsubsec Extensions de texte
248 @translationof Text spanners
250 @cindex Prolongateurs de texte
252 Certaines indications d'interprétation comme @i{rallentando} ou
253 @i{accelerando} s'incrivent en toutes lettres et se prolongent sur
254 plusieurs mesures grâce à une ligne pointillée. Les commandes
255 @code{\startTextSpan} et @code{\stopTextSpan}, respectivement
256 attachées à la première et à la dernière note qu'elles concernent,
257 déterminent l'envergure de ces prolongateurs, ou extenseurs.
259 La chaîne à imprimer, ainsi que son style, sont définis par des
260 propriétés, comme ici :
262 @lilypond[quote,ragged-right,fragment,relative=1,verbatim]
265 \override TextSpanner #'(bound-details left text) =
266 \markup { \upright "rall" }
267 c2\startTextSpan b c\stopTextSpan a
270 \override TextSpanner #'(bound-details left text) =
271 \markup { \italic "rit" }
272 c2\startTextSpan b c\stopTextSpan a
277 @funindex textSpannerUp
278 @code{\textSpannerUp},
279 @funindex textSpannerDown
280 @code{\textSpannerDown},
281 @funindex textSpannerNeutral
282 @code{\textSpannerNeutral}.
288 Pour obtenir une ligne pleine, utilisez
291 \override TextSpanner #'style = #'line
296 Référence du programme : @rinternals{TextSpanner}.
299 @node Indications textuelles
300 @unnumberedsubsubsec Indications textuelles
301 @translationof Text marks
303 @cindex coda sur une barre de mesure
304 @cindex segno sur une barre de mesure
305 @cindex point d'orgue sur une barre de mesure
306 @cindex barres de mesure, symboles au dessus de
309 La commande @code{\mark} est tout d'abord conçue pour les
310 @ref{Indications de repère}. Elle peut néanmoins servir à insérer des
311 signes de coda ou de segno, ou bien un point d'orgue, au dessus d'une
312 barre de mesure. Couplez-la alors à la commande @code{\markup} pour
313 avoir accès au symbole approprié (ils sont répertoriés dans
314 @ref{La fonte Feta}).
317 @lilypond[fragment,quote,ragged-right,verbatim,relative=2]
318 c1 \mark \markup { \musicglyph #"scripts.ufermata" }
323 Le résultat de @code{\mark} n'apparaîtra que sur la portée supérieure
324 d'un système. Si vous introduisez la commande @code{\mark} au moment
325 d'une barre de mesure, la marque se placera au dessus de la barre. Si
326 vous y faites appel au milieu d'une mesure, cette marque sera
327 positionnée entre les notes. Si elle intervient en début de ligne,
328 elle sera placée juste avant la première note de cette portée. Enfin,
329 une marque qui tomberait sur un saut de ligne sera imprimée au début
330 de la ligne suivante.
331 @c IMO this is a bug; hopefully it'll be fixed soon, so I can
332 @c delete this sentence. -gp
333 Au cas où il n'y aurait pas de ligne à suivre, la marque ne sera pas imprimée.
338 Pour imprimer une marque à la fin de la portée en cours, procédez
342 \override Score.RehearsalMark
343 #'break-visibility = #begin-of-line-invisible
346 @code{\mark} est souvent bien utile pour porter une indication à la
347 fin d'une mesure. Pensez alors à modifier la propriété
348 @code{#'self-alignment}.
350 @lilypond[fragment,quote,ragged-right,verbatim,relative=2]
351 \override Score.RehearsalMark
352 #'break-visibility = #begin-of-line-invisible
354 \once \override Score.RehearsalMark #'self-alignment-X = #right
355 \mark "D.S. al Fine "
358 Les indications textuelles peuvent s'aligner par rapport à d'autres
359 objets que des barres de mesure, tels que l'armure, la clé ou le chiffre de
362 @lilypond[fragment,quote,ragged-right,verbatim,relative=2]
367 \override Score.RehearsalMark #'break-align-symbols = #'(key-signature)
371 \override Score.RehearsalMark #'break-align-symbols = #'(clef)
375 \override Score.RehearsalMark #'break-align-symbols = #'(time-signature)
384 Les symboles pris en charge par @code{break-align-symbols} sont :
385 @code{ambitus}, @code{breathing-sign}, @code{clef}, @code{custos},
386 @code{staff-bar}, @code{left-edge}, @code{key-cancellation},
387 @code{key-signature}, et @code{time-signature}.
389 Par défaut, les indications textuelles sont alignées avec le milieu
390 des objets de notation. Bien entendu, vous pouvez modifier les
391 propriétés @code{break-align-anchor-alignment} ou
392 @code{break-align-anchor} des objets en question pour obtenir un autre
396 @lilypond[fragment,quote,ragged-right,verbatim]
398 \override Score.RehearsalMark #'break-align-symbols = #'(key-signature)
402 % La marque sera alignée sur le côté gauche de l'armure
403 \once \override Staff.KeySignature #'break-align-anchor-alignment = #LEFT
408 % La marque sera alignée sur le côté droit de l'armure
409 \once \override Staff.KeySignature #'break-align-anchor-alignment = #RIGHT
414 % La marque sera alignée sur le côté gauche de l'armure,
415 % puis décalée vers la droite de 2 unités.
416 \once \override Staff.KeySignature #'break-align-anchor = #2
422 Bien que ces indications textuelles ne soient habituellement imprimées
423 qu'au niveau de la portée supérieure, vous pouvez forcer leur
424 affectation à chacune des portées :
426 @lilypond[quote,ragged-right,verbatim,relative=2]
429 \remove "Mark_engraver"
433 \consists "Mark_engraver"
435 { c''1 \mark "foo" c'' }
437 \consists "Mark_engraver"
439 { c'1 \mark "foo" c' }
446 Référence du programme : @rinternals{RehearsalMark}.
449 @node Mise en forme du texte
450 @subsection Mise en forme du texte
451 @translationof Formatting text
454 * Introduction au formatage de texte::
455 * Sélection de la fonte et de la taille::
456 * Alignement du texte::
457 * Éléments graphiques dans du texte formaté::
458 * Notation musicale dans du texte formaté::
459 * Texte avec sauts de page::
462 @node Introduction au formatage de texte
463 @unnumberedsubsubsec Introduction au formatage de texte
464 @translationof Text markup introduction
467 @cindex commentaire textuel
468 @cindex étiquette textuelle
471 La commande @code{\markup} permet d'ajouter du texte. Vous pouvez y
472 inclure des commandes, précédées d'un antislash @code{\} ; les
473 caractères @code{\} et @code{#} doivent être encadrés de guillemets
474 informatiques @code{"}.
476 @lilypond[quote,verbatim,fragment,relative=1]
478 c1_\markup { hi there }
479 c1^\markup { hi \bold there, is \italic {anyone home?} }
480 c1_\markup { "\special {weird} #characters" }
484 Pour une liste des différentes commandes disponibles, consultez
485 @ref{Text markup commands}.
488 @code{\markup} est avant tout conçu pour gérer les
489 @rinternals{TextScript}s, mais rien ne s'oppose à son utilisation
490 pour traiter du texte avec LilyPond.
492 @lilypond[quote,verbatim]
493 \header{ title = \markup{ \bold { foo \italic { bar! } } } }
496 \override Score.RehearsalMark
497 #'break-visibility = #begin-of-line-invisible
498 \override Score.RehearsalMark #'self-alignment-X = #right
500 \set Staff.instrumentName = \markup{ \column{ Alto solo } }
501 c2^\markup{ don't be \flat }
502 \override TextSpanner #'(bound-details left text) = \markup{\italic rit }
504 a2\mark \markup{ \large \bold Fine }
508 \addlyrics { bar, foo \markup{ \italic bar! } }
512 La commande @code{\markup} peut intervenir à tout moment, y compris en
513 dehors d'un bloc @code{\score}. Voir à ce sujet
514 @ref{Plusieurs partitions dans un même ouvrage}.
516 @lilypond[quote,ragged-right,verbatim]
517 \markup{ Here is some text. }
520 @cindex changer de police
522 Le @emph{markup} de l'exemple précédent montre comment utiliser les
523 commandes de changement de police. Les commandes @code{\bold} et
524 @code{\italic} n'affectent que le premier mot qui les suit ; encadrez
525 les par des accolades si vous désirez que ces commandent s'appliquent
529 \markup @{ \bold @{ c'est moi @} @}
533 Une bonne habitude à prendre consiste à utiliser des accolades même
534 pour un seul mot, comme ici :
536 \markup @{ qui \italic @{ est @} là ? @}
539 En mode @emph{markup}, vous pouvez composer des expressions comme
540 en mathématiques, des documents XML ou bien les expressions musicales.
541 Vous pouvez empiler ces expressions grâce à la commande
542 @code{\column}, ou les centrer par rapport à leur milieu avec
543 @code{\center-column}.
545 @lilypond[quote,verbatim,fragment,relative=1]
546 c1^\markup { \column { a bbbb \line { c d } } }
547 c1^\markup { \center-column { a bbbb c } }
548 c1^\markup { \line { a b c } }
551 Des listes non précédées de commande ne sont pas isolées. Ainsi,
553 \center-column @{ @{ a b @} @{ c d @} @}
558 est la même expression que
561 \center-column @{ a b c d @}
566 L'utilisation des @code{"} ou de la commande @code{\line} permet de
567 différencier les listes de mots.
569 @lilypond[quote,verbatim,fragment,relative=1]
571 c4^\markup{ \center-column { on three lines } }
572 c4^\markup{ \center-column { "all one line" } }
573 c4^\markup{ \center-column { { on three lines } } }
574 c4^\markup{ \center-column { \line { on one line } } }
577 Vous pouvez stocker les étiquettes textuelles en tant que variables,
578 et attacher ces identificateurs à des notes, comme
580 allegro = \markup @{ \bold \large @{ Allegro @} @}
581 @{ a^\allegro b c d @}
584 Certains objets possèdent leurs propres procédures d'alignement, qui
585 annuleront toute spécification d'alignement que vous pourriez affecter
586 à un argument de type @emph{markup} que vous leur auriez fourni. Par
587 exemple, les @rinternals{RehearsalMark} sont centrées
588 horizontalement ; de fait, utiliser
589 @code{\mark \markup @{ \left-align .. @}} sera sans effet.
591 Par ailleurs, le placement vertical n'est effectué qu'après la
592 création de l'objet @emph{étiquette textuelle}. Si donc vous souhaitez
593 déplacer une étiquette, il vous faudra utiliser la propriété
594 @code{#'padding} ou créer un @qq{point d'ancrage} à l'intérieur même
595 de l'étiquette (généralement avec @code{\hspace #0}).
597 @lilypond[quote,verbatim,fragment,relative=1]
599 c'4^\markup{ \raise #5 "not raised" }
600 \once \override TextScript #'padding = #3
601 c'4^\markup{ raised }
602 c'4^\markup{ \hspace #0 \raise #1.5 raised }
605 Certaines situations particulières, telles que les indications de
606 nuance, possèdent des propriétés prédéfinies quant à leur police.
607 Nous vous conseillons, en pareil cas, de réinitialiser ces propriétés
608 en utilisant @code{normal-text}. Pour plus d'informations, consultez
609 @ref{Text markup commands}.
613 Dans ce manuel : @ref{Text markup commands}.
615 Référence du programme : @rinternals{TextScript}.
617 Fichiers d'initialisation : @file{scm/@/new@/-markup@/.scm}.
622 Le crénage ou la génération de ligatures ne sont accessibles que lors
623 d'un retraitement par @TeX{}. Dans ce cas, LilyPond n'en tient pas
624 compte, et l'espacement de tels textes sera trop large.
626 Les erreurs de syntaxe sont peu loquaces.
629 @node Sélection de la fonte et de la taille
630 @unnumberedsubsubsec Sélection de la fonte et de la taille
631 @translationof Selecting font and font size
635 @node Alignement du texte
636 @unnumberedsubsubsec Alignement du texte
637 @translationof Text alignment
642 @node Éléments graphiques dans du texte formaté
643 @unnumberedsubsubsec Éléments graphiques dans du texte formaté
644 @translationof Graphic notation inside markup
649 @node Notation musicale dans du texte formaté
650 @unnumberedsubsubsec Notation musicale dans du texte formaté
651 @translationof Music notation inside markup
656 Rien ne s'oppose à ce qu'une étiquette ne comporte de la musique. Il
657 suffit que l'expression en question contienne un bloc @code{\score} et
658 un bloc @code{\layout}.
660 @lilypond[quote,verbatim,ragged-right]
664 \relative { c4 d e f }
672 @node Texte avec sauts de page
673 @unnumberedsubsubsec Texte avec sauts de page
674 @translationof Page wrapping text
676 Alors que @code{\markup} s'utilise pour traiter un bloc de texte
677 insécable, @code{\markuplines} permet, employé en tête de partition,
678 d'obtenir un bloc de lignes réparties différemment et au cas où sur
684 Un long texte constitué de lignes justifiées.
688 Un autre grand paragraphe justifié.
695 @code{\markuplines} prend en argument une liste de lignes de texte,
696 qui peut elle-même consister en une suite de commandes générant à leur
697 tour des lignes de texte, comme ici :
701 \line { ... } % une ligne alignée à gauche
702 \fill-line { \line { ... } } % une ligne centrée
703 \wordwrap-lines { ... } % une liste de lignes alignées à gauche
704 \justified-lines { ... } % une liste de lignes justifiées
708 Les différentes commandes permettant de générer des listes de lignes
709 se trouve dans @ref{Text markup list commands}.
713 Dans ce manuel : @ref{Text markup list commands},
714 @ref{Définition d'une nouvelle commande de liste de marqueurs}.
718 @funindex \markuplines
727 @cindex sélection de polices
728 @cindex grossissement des polices
729 @funindex font-interface
731 C'est en jouant sur les propriétés des objets décrites ci-après que
732 vous pourrez sélectionner une police parmi les familles de fontes
733 préconfigurées. LilyPond utilise par défaut la police musicale feta.
734 Pour le texte, les polices sont sélectionnées par Pango/Fontconfig.
735 C'est New Century Schoolbook qui sert de police sérif par défaut, et
736 celles définies lors de l'installation de Pango pour ce qui est du
737 sans-serif et du @q{typewriter}.
741 @item @code{font-encoding}
742 symbolise le tracé des glyphes. N'utilisez cette propriété que pour
743 traiter des éléments non textuels, comme :
746 @code{fetaBraces} pour les accolades de partition pianistique,
747 @code{fetaMusic} pour de la musique (y compris musique ancienne),
748 @code{fetaDynamic} pour les nuances et @code{fetaNumber} pour les
751 @item @code{font-family}
752 symbolise les différentes familles de police : @code{roman} (Computer
753 Modern), @code{sans}-serif et @code{typewriter} (espacement fixe).
755 @item @code{font-shape}
756 symbolise le style des caractères. En pratique, chaque famille de
757 police dispose de @code{italic}, @code{caps} (petites capitales) ou
758 @code{upright} (droit).
760 @item @code{font-series}
761 symbolise le niveau de gras des caractères. Chaque style dispose, pour
762 chaque famille, de @code{medium} et @code{bold} (gras).
766 Les variantes ci-dessus mentionnées font référence à une feuille de
767 style prédéfinie. Vous pouvez cependant faire appel à une autre
768 police, en utilisant la propriété @code{font-name} :
770 @lilypond[fragment,verbatim]
772 \override Staff.TimeSignature #'font-name = #"Charter"
773 \override Staff.TimeSignature #'font-size = #2
776 \override #'(font-name . "Vera Bold")
777 { This text is in Vera Bold }
783 Vous pouvez utiliser n'importe quelle police, du moment qu'elle est
784 accessible par Pango/Fontconfig. Pour obtenir la liste de toutes
785 les polices disponibles sur votre machine, lancez
787 lilypond -dshow-available-fonts blabla
789 (quel qu'il soit, le dernier argument est obligatoire).
792 La propriété @code{font-size} permet de régler la taille de la police.
793 La taille effective que vous obtiendrez dépend de
794 @code{text-font-size} tel que défini dans le bloc @code{\paper}.
796 @cindex taille de police
797 @cindex police, augmenter la taille
800 Vous pouvez aussi changer la police par défaut au niveau du document.
801 Il suffit alors de faire appel à @code{make-pango-font-tree} au sein
802 du bloc @code{paper}. Vous définirez alors la police à utiliser pour
803 du texte respectivement en roman, sans serif et monospace, comme ici :
805 @cindex polices, définir
814 (make-pango-font-tree "Times New Roman"
821 c'^\markup { roman: foo \sans bla \typewriter bar }
825 @c we don't do Helvetica / Courier, since GS incorrectly loads
830 Exemples : @rlsr{Text}.