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
17 @lilypondfile[quote]{text-headword.ly}
19 Nous allons voir ici comment insérer dans une partition du texte, avec
20 différentes possibilité de formatage.
22 @cindex Texte, autres langues
23 Pour écrire des accents et autres caractères spéciaux, il suffit de
24 les insérer directement dans votre fichier LilyPond. Ce fichier devra
25 être sauvegardé avec l'encodage UTF-8. Pour plus d'informations, voir
36 @subsection Writing text
40 * Text and line spanners::
46 @unnumberedsubsubsec Text scripts
48 @c I'm not fond of this "étiquette" wording of yours Jean-Charles;
49 @c j'utiliserais simplement l'expression "bloc \markup" afin
50 @c d'éviter toute confusion avec les \tags (qui méritent davantage
51 @c le titre d'étiquette, stricto sensu) -vv
53 @cindex Étiquette de texte
54 @cindex blocs de texte
55 @cindex ajout de texte
57 Vous pouvez placer arbitrairement des chaînes de caractères, ou
58 @ref{Formatting text} en langage LilyPond, au dessus ou au dessous des
59 notes en employant la syntaxe @code{c^"text"}. Par défaut, ces
60 indications n'affecteront en rien l'espacement des notes, sauf à
61 utiliser la commande @code{\textLengthOn}.
63 @lilypond[quote,fragment,ragged-right,verbatim,relative=1]
64 c4^"longtext" \textLengthOn c4_"longlongtext" c4
68 Pour revenir à l'espacement par défaut, utilisez @code{\textLengthOff}.
70 Des constructions plus élaborées d'étiquette peuvent être obtenues en
71 ayant recours à la commande @emph{markup} :
73 @lilypond[fragment,ragged-right,verbatim,quote]
74 c'4^\markup { bla \bold bla }
77 La commande @code{\markup} est décrite plus en détails dans la section
78 @ref{Formatting text}.
83 @funindex \textLengthOn
85 @funindex \textLengthOff
86 @code{\textLengthOff}.
91 S'assurer que tous les éléments textuels et les paroles respectent
92 les marges du document requiert des calculs relativement lourds ; c'est
93 la raison pour laquelle LilyPond, par défaut, ne s'en préoccupe pas.
94 Vous pouvez cependant l'y forcer en définissant
97 \override Score.PaperColumn #'keep-inside-line = ##t
103 Dans ce manuel : @ref{Formatting text}.
105 Référence du programme : @rinternals{TextScript}.
108 @node Text and line spanners
109 @unnumberedsubsubsec Text and line spanners
111 Certaines indications d'interprétation comme @i{rallentando},
112 @i{accelerando} ou @i{trilles}, s'incrivent textuellement et se
113 prolongent sur plusieurs mesures à l'aide d'une ligne pleine, pointillée
116 Les routines chargées de matérialiser un @emph{glissando} sont tout à
117 fait adaptées à une gestion précise, à la fois du placement du texte, et
118 du calcul de l'envergure de sa ligne d'extension. La routine
119 @code{ly:line-interface::print} est plus particulièrement en charge de
120 déterminer les points d'ancrage de la ligne et de la dessiner selon le
123 Voici un exemple qui illustre les différents styles de ligne
124 disponibles, ainsi que la manière de les personnaliser.
126 @lilypond[relative=2,ragged-right,verbatim,fragment]
128 \once \override Glissando #'style = #'dashed-line
130 \override Glissando #'style = #'dotted-line
132 \override Glissando #'style = #'zigzag
134 \override Glissando #'style = #'trill
138 L'information qui va déterminer les extrémités est calculée à la
139 volée pour chaque objet graphique. Il est tout à fait possible de les
142 @lilypond[relative=2,ragged-right,verbatim,fragment]
144 \once \override Glissando #'bound-details #'right #'Y = #-2
148 L'objet @code{Glissando}, comme tous ceux qui utilisent la routine
149 @code{ly:line-interface::print}, comporte une liste
150 d'associations. Dans le code ci-dessus, la valeur de @code{Y} est
151 fixée, dans la liste d'associations, à @code{-2} pour l'ancrage à
152 droite. Vous pouvez naturellement ajuster l'extrémité gauche en
153 remplaçant @code{right} (pour @code{droite}) par @code{left}.
155 Si @code{Y} n'est pas fixé, sa valeur sera calculée en fonction de la
156 hauteur du point de référence droite de la ligne.
158 Lorsque survient un saut de ligne, la liste des ancrages est
159 augmentée d'une liste complémentaire contenant @code{left-broken}
160 (brisure à gauche) et @code{right-broken} (brisure à droite), comme
161 dans l'exemple suivant :
163 @lilypond[relative=2,ragged-right,verbatim,fragment]
164 \override Glissando #'breakable = ##T
165 \override Glissando #'bound-details #'right-broken #'Y = #-3
170 Vous disposez des propriétés suivantes :
174 Fixe l'ordonnée (coordonnée-Y) de l'extrémité, mesurée en taille de
175 portée. Il s'agit par défaut du centre de l'objet de rattachement ;
176 pour un glissando, ce sera le milieu de la tête de note.
178 Pour des marques horizontales, telles du texte ou le trait d'un
179 trille, cette valeur est figée à 0.
182 Détermine l'endroit où la ligne commence et finit, relativement à
183 l'objet de rattachement. Autrement dit, une valeur de @code{-1} (ou
184 @code{LEFT} pour gauche) fera commencer ou finir la ligne du côté
185 gauche de la tête de note de référence.
188 Coordonnée absolue du point final. Dans la mesure où elle est calculée
189 à la volée, il n'y a pas vraiment de raison de l'outrepasser.
192 Sous-propriété contenant les éventuels symboles présents avant ou
193 après la ligne. Destinée à un usage interne, nous vous recommendons
194 d'utiliser plutôt @code{text}.
197 Marqueur qui sera analysé pour alimenter @code{stencil}. On y trouve
198 habituellement les @i{cresc.} ou @i{tr} des extenseurs horizontaux.
200 @lilypond[quote,ragged-right,fragment,relative=2,verbatim]
201 \override TextSpanner #'bound-details #'left #'text
202 = \markup { \small \bold Slower }
203 c2\startTextSpan b c a\stopTextSpan
206 @item stencil-align-dir-y
208 Lorsqu'ils ne sont pas définis, le tracé est tout simplement
209 positionné conformément aux sous-propriétés @code{X} et @code{Y}. En
210 fixant soit @code{stencil-align-dir-y}, soit @code{stencil-offset},
211 vous pouvez décaler le coin du marqueur par rapport à l'extrémité de
214 @lilypond[relative=1,fragment,verbatim]
215 \override TextSpanner #'bound-details #'left #'stencil-align-dir-y = #DOWN
216 \override TextSpanner #'bound-details #'right #'stencil-align-dir-y = #UP
218 \override TextSpanner #'bound-details #'left #'text = #"gggg"
219 \override TextSpanner #'bound-details #'right #'text = #"hhhh"
220 c4^\startTextSpan c c c \stopTextSpan
224 Assigner à cette sous-propriété la valeur @code{vrai} (@code{#t})
225 produira une terminaison en pointe de flèche.
228 Cette sous-propriété contrôle l'espace entre les extrémités de la
229 ligne, telles que définies, et la réalité. Sans ce léger décalage, le
230 début et la fin d'un glissando seraient en plein milieu des têtes de note.
236 Référence du programme : @rinternals{TextSpanner},
237 @rinternals{Glissando}, @rinternals{VoiceFollower},
238 @rinternals{TrillSpanner}, @rinternals{line-spanner-interface}.
240 Exemples : @rlsr{Expressive marks}.
244 @unnumberedsubsubsec Text spanners
246 @cindex Prolongateurs de texte
248 Certaines indications d'interprétation comme @i{rallentando} ou
249 @i{accelerando} s'incrivent en toutes lettres et se prolongent sur
250 plusieurs mesures grâce à une ligne pointillée. Les commandes
251 @code{\startTextSpan} et @code{\stopTextSpan}, respectivement
252 attachées à la première et à la dernière note qu'elles concernent,
253 déterminent l'envergure de ces prolongateurs, ou extenseurs.
255 La chaîne à imprimer, ainsi que son style, sont définis par des
256 propriétés, comme ici :
258 @lilypond[quote,ragged-right,fragment,relative=1,verbatim]
261 \override TextSpanner #'bound-details #'left #'text =
262 \markup { \upright "rall" }
263 c2\startTextSpan b c\stopTextSpan a
266 \override TextSpanner #'bound-details #'left #'text =
267 \markup { \italic "rit" }
268 c2\startTextSpan b c\stopTextSpan a
273 @funindex textSpannerUp
274 @code{\textSpannerUp},
275 @funindex textSpannerDown
276 @code{\textSpannerDown},
277 @funindex textSpannerNeutral
278 @code{\textSpannerNeutral}.
283 Pour obtenir une ligne pleine, utilisez
286 \override TextSpanner #'style = #'line
292 Référence du programme : @rinternals{TextSpanner}.
296 @unnumberedsubsubsec Text marks
298 @cindex coda sur une barre de mesure
299 @cindex segno sur une barre de mesure
300 @cindex point d'orgue sur une barre de mesure
301 @cindex barres de mesure, symboles au dessus de
304 La commande @code{\mark} est tout d'abord conçue pour les
305 @ref{Rehearsal marks}. Elle peut néanmoins servir à insérer des
306 signes de coda ou de segno, ou bien un point d'orgue, au dessus d'une
307 barre de mesure. Couplez-la alors à la commande @code{\markup} pour
308 avoir accès au symbole approprié (ils sont répertoriés dans
309 @ref{The Feta font}).
312 @lilypond[fragment,quote,ragged-right,verbatim,relative=2]
313 c1 \mark \markup { \musicglyph #"scripts.ufermata" }
318 Le résultat de @code{\mark} n'apparaîtra que sur la portée supérieure
319 d'un système. Si vous introduisez la commande @code{\mark} au moment
320 d'une barre de mesure, la marque se placera au dessus de la barre. Si
321 vous y faites appel au milieu d'une mesure, cette marque sera
322 positionnée entre les notes. Si elle intervient en début de ligne,
323 elle sera placée juste avant la première note de cette portée. Enfin,
324 une marque qui tomberait sur un saut de ligne sera imprimée au début
325 de la ligne suivante.
326 @c IMO this is a bug; hopefully it'll be fixed soon, so I can
327 @c delete this sentence. -gp
328 Au cas où il n'y aurait pas de ligne à suivre, la marque ne sera pas imprimée.
333 Pour imprimer une marque à la fin de la portée en cours, procédez
337 \override Score.RehearsalMark
338 #'break-visibility = #begin-of-line-invisible
341 @code{\mark} est souvent bien utile pour porter une indication à la
342 fin d'une mesure. Pensez alors à modifier la propriété
343 @code{#'self-alignment}.
345 @lilypond[fragment,quote,ragged-right,verbatim,relative=2]
346 \override Score.RehearsalMark
347 #'break-visibility = #begin-of-line-invisible
349 \once \override Score.RehearsalMark #'self-alignment-X = #right
350 \mark "D.S. al Fine "
353 Les indications textuelles peuvent s'aligner par rapport à d'autres
354 objets que des barres de mesure, tels que l'armure, la clé ou le chiffre de
357 @lilypond[fragment,quote,ragged-right,verbatim,relative=2]
362 \override Score.RehearsalMark #'break-align-symbols = #'(key-signature)
366 \override Score.RehearsalMark #'break-align-symbols = #'(clef)
370 \override Score.RehearsalMark #'break-align-symbols = #'(time-signature)
379 Les symboles pris en charge par @code{break-align-symbols} sont :
380 @code{ambitus}, @code{breathing-sign}, @code{clef}, @code{custos},
381 @code{staff-bar}, @code{left-edge}, @code{key-cancellation},
382 @code{key-signature}, et @code{time-signature}.
384 Par défaut, les indications textuelles sont alignées avec le milieu
385 des objets de notation. Bien entendu, vous pouvez modifier les
386 propriétés @code{break-align-anchor-alignment} ou
387 @code{break-align-anchor} des objets en question pour obtenir un autre
391 @lilypond[fragment,quote,ragged-right,verbatim]
393 \override Score.RehearsalMark #'break-align-symbols = #'(key-signature)
397 % La marque sera alignée sur le côté gauche de l'armure
398 \once \override Staff.KeySignature #'break-align-anchor-alignment = #LEFT
403 % La marque sera alignée sur le côté droit de l'armure
404 \once \override Staff.KeySignature #'break-align-anchor-alignment = #RIGHT
409 % La marque sera alignée sur le côté gauche de l'armure,
410 % puis décalée vers la droite de 2 unités.
411 \once \override Staff.KeySignature #'break-align-anchor = #2
417 Bien que ces indications textuelles ne soient habituellement imprimées
418 qu'au niveau de la portée supérieure, vous pouvez forcer leur
419 affectation à chacune des portées :
421 @lilypond[quote,ragged-right,verbatim,relative=2]
424 \remove "Mark_engraver"
428 \consists "Mark_engraver"
430 { c''1 \mark "foo" c'' }
432 \consists "Mark_engraver"
434 { c'1 \mark "foo" c' }
442 Référence du programme : @rinternals{RehearsalMark}.
445 @node Formatting text
446 @subsection Formatting text
449 * Text markup introduction::
451 * Page wrapping text::
454 @node Text markup introduction
455 @unnumberedsubsubsec Text markup introduction
458 @cindex commentaire textuel
459 @cindex étiquette textuelle
462 La commande @code{\markup} permet d'ajouter du texte. Vous pouvez y
463 inclure des commandes, précédées d'un antislash @code{\} ; les
464 caractères @code{\} et @code{#} doivent être encadrés de guillemets
465 informatiques @code{"}.
467 @lilypond[quote,verbatim,fragment,relative=1]
469 c1_\markup { hi there }
470 c1^\markup { hi \bold there, is \italic {anyone home?} }
471 c1_\markup { "\special {weird} #characters" }
475 Pour une liste des différentes commandes disponibles, consultez
476 @ref{Text markup commands}.
479 @code{\markup} est avant tout conçu pour gérer les
480 @rinternals{TextScript}s, mais rien ne s'oppose à son utilisation
481 pour traiter du texte avec LilyPond.
483 @lilypond[quote,verbatim]
484 \header{ title = \markup{ \bold { foo \italic { bar! } } } }
487 \override Score.RehearsalMark
488 #'break-visibility = #begin-of-line-invisible
489 \override Score.RehearsalMark #'self-alignment-X = #right
491 \set Staff.instrumentName = \markup{ \column{ Alto solo } }
492 c2^\markup{ don't be \flat }
493 \override TextSpanner #'bound-details #'left #'text = \markup{\italic rit }
495 a2\mark \markup{ \large \bold Fine }
499 \addlyrics { bar, foo \markup{ \italic bar! } }
503 La commande @code{\markup} peut intervenir à tout moment, y compris en
504 dehors d'un bloc @code{\score}. Voir à ce sujet
505 @ref{Multiple scores in a book}.
507 @lilypond[quote,ragged-right,verbatim]
508 \markup{ Here is some text. }
511 @cindex changer de police
513 Le @emph{markup} de l'exemple précédent montre comment utiliser les
514 commandes de changement de police. Les commandes @code{\bold} et
515 @code{\italic} n'affectent que le premier mot qui les suit ; encadrez
516 les par des accolades si vous désirez que ces commandent s'appliquent
520 \markup @{ \bold @{ c'est moi @} @}
524 Une bonne habitude à prendre consiste à utiliser des accolades même
525 pour un seul mot, comme ici :
527 \markup @{ qui \italic @{ est @} là ? @}
530 En mode @emph{markup}, vous pouvez composer des expressions comme
531 en mathématiques, des documents XML ou bien les expressions musicales.
532 Vous pouvez empiler ces expressions grâce à la commande
533 @code{\column}, ou les centrer par rapport à leur milieu avec
534 @code{\center-column}.
536 @lilypond[quote,verbatim,fragment,relative=1]
537 c1^\markup { \column { a bbbb \line { c d } } }
538 c1^\markup { \center-column { a bbbb c } }
539 c1^\markup { \line { a b c } }
542 Des listes non précédées de commande ne sont pas isolées. Ainsi,
544 \center-column @{ @{ a b @} @{ c d @} @}
549 est la même expression que
552 \center-column @{ a b c d @}
557 L'utilisation des @code{"} ou de la commande @code{\line} permet de
558 différencier les listes de mots.
560 @lilypond[quote,verbatim,fragment,relative=1]
562 c4^\markup{ \center-column { on three lines } }
563 c4^\markup{ \center-column { "all one line" } }
564 c4^\markup{ \center-column { { on three lines } } }
565 c4^\markup{ \center-column { \line { on one line } } }
568 Vous pouvez stocker les étiquettes textuelles en tant que variables,
569 et attacher ces identificateurs à des notes, comme
571 allegro = \markup @{ \bold \large @{ Allegro @} @}
572 @{ a^\allegro b c d @}
575 Certains objets possèdent leurs propres procédures d'alignement, qui
576 annuleront toute spécification d'alignement que vous pourriez affecter
577 à un argument de type @emph{markup} que vous leur auriez fourni. Par
578 exemple, les @rinternals{RehearsalMark} sont centrées
579 horizontalement ; de fait, utiliser
580 @code{\mark \markup @{ \left-align .. @}} sera sans effet.
582 Par ailleurs, le placement vertical n'est effectué qu'après la
583 création de l'objet @emph{étiquette textuelle}. Si donc vous souhaitez
584 déplacer une étiquette, il vous faudra utiliser la propriété
585 @code{#'padding} ou créer un @qq{point d'ancrage} à l'intérieur même
586 de l'étiquette (généralement avec @code{\hspace #0}).
588 @lilypond[quote,verbatim,fragment,relative=1]
590 c'4^\markup{ \raise #5 "not raised" }
591 \once \override TextScript #'padding = #3
592 c'4^\markup{ raised }
593 c'4^\markup{ \hspace #0 \raise #1.5 raised }
596 Certaines situations particulières, telles que les indications de
597 nuance, possèdent des propriétés prédéfinies quant à leur police.
598 Nous vous conseillons, en pareil cas, de réinitialiser ces propriétés
599 en utilisant @code{normal-text}. Pour plus d'informations, consultez
600 @ref{Text markup commands}.
605 Dans ce manuel : @ref{Text markup commands}.
607 Référence du programme : @rinternals{TextScript}.
609 Fichiers d'initialisation : @file{scm/@/new@/-markup@/.scm}.
614 Le crénage ou la génération de ligatures ne sont accessibles que lors
615 d'un retraitement par @TeX{}. Dans ce cas, LilyPond n'en tient pas
616 compte, et l'espacement de tels textes sera trop large.
618 Les erreurs de syntaxe sont peu loquaces.
622 @unnumberedsubsubsec Nested scores
624 Rien ne s'oppose à ce qu'une étiquette ne comporte de la musique. Il
625 suffit que l'expression en question contienne un bloc @code{\score} et
626 un bloc @code{\layout}.
628 @lilypond[quote,verbatim,ragged-right]
632 \relative { c4 d e f }
640 @node Page wrapping text
641 @unnumberedsubsubsec Page wrapping text
642 Alors que @code{\markup} s'utilise pour traiter un bloc de texte
643 insécable, @code{\markuplines} permet, employé en tête de partition,
644 d'obtenir un bloc de lignes réparties différemment et au cas où sur
650 Un long texte constitué de lignes justifiées.
654 Un autre grand paragraphe justifié.
661 @code{\markuplines} prend en argument une liste de lignes de texte,
662 qui peut elle-même consister en une suite de commandes générant à leur
663 tour des lignes de texte, comme ici :
667 \line { ... } % une ligne alignée à gauche
668 \fill-line { \line { ... } } % une ligne centrée
669 \wordwrap-lines { ... } % une liste de lignes alignées à gauche
670 \justified-lines { ... } % une liste de lignes justifiées
674 Les différentes commandes permettant de générer des listes de lignes
675 se trouve dans @ref{Text markup list commands}.
679 Dans ce manuel : @ref{Text markup list commands},
680 @ref{New markup list command definition}.
684 @funindex \markuplines
691 @cindex sélection de polices
692 @cindex grossissement des polices
693 @funindex font-interface
695 C'est en jouant sur les propriétés des objets décrites ci-après que
696 vous pourrez sélectionner une police parmi les familles de fontes
697 préconfigurées. LilyPond utilise par défaut la police musicale feta.
698 Pour le texte, les polices sont sélectionnées par Pango/Fontconfig.
699 C'est New Century Schoolbook qui sert de police sérif par défaut, et
700 celles définies lors de l'installation de Pango pour ce qui est du
701 sans-serif et du @q{typewriter}.
705 @item @code{font-encoding}
706 symbolise le tracé des glyphes. N'utilisez cette propriété que pour
707 traiter des éléments non textuels, comme :
710 @code{fetaBraces} pour les accolades de partition pianistique,
711 @code{fetaMusic} pour de la musique (y compris musique ancienne),
712 @code{fetaDynamic} pour les nuances et @code{fetaNumber} pour les
715 @item @code{font-family}
716 symbolise les différentes familles de police : @code{roman} (Computer
717 Modern), @code{sans}-serif et @code{typewriter} (espacement fixe).
719 @item @code{font-shape}
720 symbolise le style des caractères. En pratique, chaque famille de
721 police dispose de @code{italic}, @code{caps} (petites capitales) ou
722 @code{upright} (droit).
724 @item @code{font-series}
725 symbolise le niveau de gras des caractères. Chaque style dispose, pour
726 chaque famille, de @code{medium} et @code{bold} (gras).
730 Les variantes ci-dessus mentionnées font référence à une feuille de
731 style prédéfinie. Vous pouvez cependant faire appel à une autre
732 police, en utilisant la propriété @code{font-name} :
734 @lilypond[fragment,verbatim]
736 \override Staff.TimeSignature #'font-name = #"Charter"
737 \override Staff.TimeSignature #'font-size = #2
740 \override #'(font-name . "Vera Bold")
741 { This text is in Vera Bold }
747 Vous pouvez utiliser n'importe quelle police, du moment qu'elle est
748 accessible par Pango/Fontconfig. Pour obtenir la liste de toutes
749 les polices disponibles sur votre machine, lancez
751 lilypond -dshow-available-fonts blabla
753 (quel qu'il soit, le dernier argument est obligatoire).
756 La propriété @code{font-size} permet de régler la taille de la police.
757 La taille effective que vous obtiendrez dépend de
758 @code{text-font-size} tel que défini dans le bloc @code{\paper}.
760 @cindex taille de police
761 @cindex police, augmenter la taille
764 Vous pouvez aussi changer la police par défaut au niveau du document.
765 Il suffit alors de faire appel à @code{make-pango-font-tree} au sein
766 du bloc @code{paper}. Vous définirez alors la police à utiliser pour
767 du texte respectivement en roman, sans serif et monospace, comme ici :
769 @cindex polices, définir
778 (make-pango-font-tree "Times New Roman"
785 c'^\markup { roman: foo \sans bla \typewriter bar }
789 @c we don't do Helvetica / Courier, since GS incorrectly loads
796 Exemples : @rlsr{Text}.