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}.
82 @funindex \textLengthOn
84 @funindex \textLengthOff
85 @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
102 Dans ce manuel : @ref{Formatting text}.
104 Référence du programme : @rinternals{TextScript}.
107 @node Text and line spanners
108 @unnumberedsubsubsec Text and line spanners
110 Certaines indications d'interprétation comme @i{rallentando},
111 @i{accelerando} ou @i{trilles}, s'incrivent textuellement et se
112 prolongent sur plusieurs mesures à l'aide d'une ligne pleine, pointillée
115 Les routines chargées de matérialiser un @emph{glissando} sont tout à
116 fait adaptées à une gestion précise, à la fois du placement du texte, et
117 du calcul de l'envergure de sa ligne d'extension. La routine
118 @code{ly:line-interface::print} est plus particulièrement en charge de
119 déterminer les points d'ancrage de la ligne et de la dessiner selon le
122 Voici un exemple qui illustre les différents styles de ligne
123 disponibles, ainsi que la manière de les personnaliser.
125 @lilypond[relative=2,ragged-right,verbatim,fragment]
127 \once \override Glissando #'style = #'dashed-line
129 \override Glissando #'style = #'dotted-line
131 \override Glissando #'style = #'zigzag
133 \override Glissando #'style = #'trill
137 L'information qui va déterminer les extrémités est calculée à la
138 volée pour chaque objet graphique. Il est tout à fait possible de les
141 @lilypond[relative=2,ragged-right,verbatim,fragment]
143 \once \override Glissando #'(bound-details right Y) = #-2
147 L'objet @code{Glissando}, comme tous ceux qui utilisent la routine
148 @code{ly:line-interface::print}, comporte une liste
149 d'associations. Dans le code ci-dessus, la valeur de @code{Y} est
150 fixée, dans la liste d'associations, à @code{-2} pour l'ancrage à
151 droite. Vous pouvez naturellement ajuster l'extrémité gauche en
152 remplaçant @code{right} (pour @code{droite}) par @code{left}.
154 Si @code{Y} n'est pas fixé, sa valeur sera calculée en fonction de la
155 hauteur du point de référence droite de la ligne.
157 Lorsque survient un saut de ligne, la liste des ancrages est
158 augmentée d'une liste complémentaire contenant @code{left-broken}
159 (brisure à gauche) et @code{right-broken} (brisure à droite), comme
160 dans l'exemple suivant :
162 @lilypond[relative=2,ragged-right,verbatim,fragment]
163 \override Glissando #'breakable = ##T
164 \override Glissando #'(bound-details right-broken Y) = #-3
169 Vous disposez des propriétés suivantes :
173 Fixe l'ordonnée (coordonnée-Y) de l'extrémité, mesurée en taille de
174 portée. Il s'agit par défaut du centre de l'objet de rattachement ;
175 pour un glissando, ce sera le milieu de la tête de note.
177 Pour des marques horizontales, telles du texte ou le trait d'un
178 trille, cette valeur est figée à 0.
181 Détermine l'endroit où la ligne commence et finit, relativement à
182 l'objet de rattachement. Autrement dit, une valeur de @code{-1} (ou
183 @code{LEFT} pour gauche) fera commencer ou finir la ligne du côté
184 gauche de la tête de note de référence.
187 Coordonnée absolue du point final. Dans la mesure où elle est calculée
188 à la volée, il n'y a pas vraiment de raison de l'outrepasser.
191 Sous-propriété contenant les éventuels symboles présents avant ou
192 après la ligne. Destinée à un usage interne, nous vous recommendons
193 d'utiliser plutôt @code{text}.
196 Marqueur qui sera analysé pour alimenter @code{stencil}. On y trouve
197 habituellement les @i{cresc.} ou @i{tr} des extenseurs horizontaux.
199 @lilypond[quote,ragged-right,fragment,relative=2,verbatim]
200 \override TextSpanner #'(bound-details left text)
201 = \markup { \small \bold Slower }
202 c2\startTextSpan b c a\stopTextSpan
205 @item stencil-align-dir-y
207 Lorsqu'ils ne sont pas définis, le tracé est tout simplement
208 positionné conformément aux sous-propriétés @code{X} et @code{Y}. En
209 fixant soit @code{stencil-align-dir-y}, soit @code{stencil-offset},
210 vous pouvez décaler le coin du marqueur par rapport à l'extrémité de
213 @lilypond[relative=1,fragment,verbatim]
214 \override TextSpanner #'(bound-details left stencil-align-dir-y) = #DOWN
215 \override TextSpanner #'(bound-details right stencil-align-dir-y) = #UP
217 \override TextSpanner #'(bound-details left text) = #"gggg"
218 \override TextSpanner #'(bound-details right text) = #"hhhh"
219 c4^\startTextSpan c c c \stopTextSpan
223 Assigner à cette sous-propriété la valeur @code{vrai} (@code{#t})
224 produira une terminaison en pointe de flèche.
227 Cette sous-propriété contrôle l'espace entre les extrémités de la
228 ligne, telles que définies, et la réalité. Sans ce léger décalage, le
229 début et la fin d'un glissando seraient en plein milieu des têtes de note.
235 Référence du programme : @rinternals{TextSpanner},
236 @rinternals{Glissando}, @rinternals{VoiceFollower},
237 @rinternals{TrillSpanner}, @rinternals{line-spanner-interface}.
239 Exemples : @rlsr{Expressive marks}.
243 @unnumberedsubsubsec Text spanners
245 @cindex Prolongateurs de texte
247 Certaines indications d'interprétation comme @i{rallentando} ou
248 @i{accelerando} s'incrivent en toutes lettres et se prolongent sur
249 plusieurs mesures grâce à une ligne pointillée. Les commandes
250 @code{\startTextSpan} et @code{\stopTextSpan}, respectivement
251 attachées à la première et à la dernière note qu'elles concernent,
252 déterminent l'envergure de ces prolongateurs, ou extenseurs.
254 La chaîne à imprimer, ainsi que son style, sont définis par des
255 propriétés, comme ici :
257 @lilypond[quote,ragged-right,fragment,relative=1,verbatim]
260 \override TextSpanner #'(bound-details left text) =
261 \markup { \upright "rall" }
262 c2\startTextSpan b c\stopTextSpan a
265 \override TextSpanner #'(bound-details left text) =
266 \markup { \italic "rit" }
267 c2\startTextSpan b c\stopTextSpan a
272 @funindex textSpannerUp
273 @code{\textSpannerUp},
274 @funindex textSpannerDown
275 @code{\textSpannerDown},
276 @funindex textSpannerNeutral
277 @code{\textSpannerNeutral}.
283 Pour obtenir une ligne pleine, utilisez
286 \override TextSpanner #'style = #'line
291 Référence du programme : @rinternals{TextSpanner}.
295 @unnumberedsubsubsec Text marks
297 @cindex coda sur une barre de mesure
298 @cindex segno sur une barre de mesure
299 @cindex point d'orgue sur une barre de mesure
300 @cindex barres de mesure, symboles au dessus de
303 La commande @code{\mark} est tout d'abord conçue pour les
304 @ref{Rehearsal marks}. Elle peut néanmoins servir à insérer des
305 signes de coda ou de segno, ou bien un point d'orgue, au dessus d'une
306 barre de mesure. Couplez-la alors à la commande @code{\markup} pour
307 avoir accès au symbole approprié (ils sont répertoriés dans
308 @ref{The Feta font}).
311 @lilypond[fragment,quote,ragged-right,verbatim,relative=2]
312 c1 \mark \markup { \musicglyph #"scripts.ufermata" }
317 Le résultat de @code{\mark} n'apparaîtra que sur la portée supérieure
318 d'un système. Si vous introduisez la commande @code{\mark} au moment
319 d'une barre de mesure, la marque se placera au dessus de la barre. Si
320 vous y faites appel au milieu d'une mesure, cette marque sera
321 positionnée entre les notes. Si elle intervient en début de ligne,
322 elle sera placée juste avant la première note de cette portée. Enfin,
323 une marque qui tomberait sur un saut de ligne sera imprimée au début
324 de la ligne suivante.
325 @c IMO this is a bug; hopefully it'll be fixed soon, so I can
326 @c delete this sentence. -gp
327 Au cas où il n'y aurait pas de ligne à suivre, la marque ne sera pas imprimée.
332 Pour imprimer une marque à la fin de la portée en cours, procédez
336 \override Score.RehearsalMark
337 #'break-visibility = #begin-of-line-invisible
340 @code{\mark} est souvent bien utile pour porter une indication à la
341 fin d'une mesure. Pensez alors à modifier la propriété
342 @code{#'self-alignment}.
344 @lilypond[fragment,quote,ragged-right,verbatim,relative=2]
345 \override Score.RehearsalMark
346 #'break-visibility = #begin-of-line-invisible
348 \once \override Score.RehearsalMark #'self-alignment-X = #right
349 \mark "D.S. al Fine "
352 Les indications textuelles peuvent s'aligner par rapport à d'autres
353 objets que des barres de mesure, tels que l'armure, la clé ou le chiffre de
356 @lilypond[fragment,quote,ragged-right,verbatim,relative=2]
361 \override Score.RehearsalMark #'break-align-symbols = #'(key-signature)
365 \override Score.RehearsalMark #'break-align-symbols = #'(clef)
369 \override Score.RehearsalMark #'break-align-symbols = #'(time-signature)
378 Les symboles pris en charge par @code{break-align-symbols} sont :
379 @code{ambitus}, @code{breathing-sign}, @code{clef}, @code{custos},
380 @code{staff-bar}, @code{left-edge}, @code{key-cancellation},
381 @code{key-signature}, et @code{time-signature}.
383 Par défaut, les indications textuelles sont alignées avec le milieu
384 des objets de notation. Bien entendu, vous pouvez modifier les
385 propriétés @code{break-align-anchor-alignment} ou
386 @code{break-align-anchor} des objets en question pour obtenir un autre
390 @lilypond[fragment,quote,ragged-right,verbatim]
392 \override Score.RehearsalMark #'break-align-symbols = #'(key-signature)
396 % La marque sera alignée sur le côté gauche de l'armure
397 \once \override Staff.KeySignature #'break-align-anchor-alignment = #LEFT
402 % La marque sera alignée sur le côté droit de l'armure
403 \once \override Staff.KeySignature #'break-align-anchor-alignment = #RIGHT
408 % La marque sera alignée sur le côté gauche de l'armure,
409 % puis décalée vers la droite de 2 unités.
410 \once \override Staff.KeySignature #'break-align-anchor = #2
416 Bien que ces indications textuelles ne soient habituellement imprimées
417 qu'au niveau de la portée supérieure, vous pouvez forcer leur
418 affectation à chacune des portées :
420 @lilypond[quote,ragged-right,verbatim,relative=2]
423 \remove "Mark_engraver"
427 \consists "Mark_engraver"
429 { c''1 \mark "foo" c'' }
431 \consists "Mark_engraver"
433 { c'1 \mark "foo" c' }
440 Référence du programme : @rinternals{RehearsalMark}.
443 @node Formatting text
444 @subsection Formatting text
447 * Text markup introduction::
449 * Page wrapping text::
452 @node Text markup introduction
453 @unnumberedsubsubsec Text markup introduction
456 @cindex commentaire textuel
457 @cindex étiquette textuelle
460 La commande @code{\markup} permet d'ajouter du texte. Vous pouvez y
461 inclure des commandes, précédées d'un antislash @code{\} ; les
462 caractères @code{\} et @code{#} doivent être encadrés de guillemets
463 informatiques @code{"}.
465 @lilypond[quote,verbatim,fragment,relative=1]
467 c1_\markup { hi there }
468 c1^\markup { hi \bold there, is \italic {anyone home?} }
469 c1_\markup { "\special {weird} #characters" }
473 Pour une liste des différentes commandes disponibles, consultez
474 @ref{Text markup commands}.
477 @code{\markup} est avant tout conçu pour gérer les
478 @rinternals{TextScript}s, mais rien ne s'oppose à son utilisation
479 pour traiter du texte avec LilyPond.
481 @lilypond[quote,verbatim]
482 \header{ title = \markup{ \bold { foo \italic { bar! } } } }
485 \override Score.RehearsalMark
486 #'break-visibility = #begin-of-line-invisible
487 \override Score.RehearsalMark #'self-alignment-X = #right
489 \set Staff.instrumentName = \markup{ \column{ Alto solo } }
490 c2^\markup{ don't be \flat }
491 \override TextSpanner #'(bound-details left text) = \markup{\italic rit }
493 a2\mark \markup{ \large \bold Fine }
497 \addlyrics { bar, foo \markup{ \italic bar! } }
501 La commande @code{\markup} peut intervenir à tout moment, y compris en
502 dehors d'un bloc @code{\score}. Voir à ce sujet
503 @ref{Multiple scores in a book}.
505 @lilypond[quote,ragged-right,verbatim]
506 \markup{ Here is some text. }
509 @cindex changer de police
511 Le @emph{markup} de l'exemple précédent montre comment utiliser les
512 commandes de changement de police. Les commandes @code{\bold} et
513 @code{\italic} n'affectent que le premier mot qui les suit ; encadrez
514 les par des accolades si vous désirez que ces commandent s'appliquent
518 \markup @{ \bold @{ c'est moi @} @}
522 Une bonne habitude à prendre consiste à utiliser des accolades même
523 pour un seul mot, comme ici :
525 \markup @{ qui \italic @{ est @} là ? @}
528 En mode @emph{markup}, vous pouvez composer des expressions comme
529 en mathématiques, des documents XML ou bien les expressions musicales.
530 Vous pouvez empiler ces expressions grâce à la commande
531 @code{\column}, ou les centrer par rapport à leur milieu avec
532 @code{\center-column}.
534 @lilypond[quote,verbatim,fragment,relative=1]
535 c1^\markup { \column { a bbbb \line { c d } } }
536 c1^\markup { \center-column { a bbbb c } }
537 c1^\markup { \line { a b c } }
540 Des listes non précédées de commande ne sont pas isolées. Ainsi,
542 \center-column @{ @{ a b @} @{ c d @} @}
547 est la même expression que
550 \center-column @{ a b c d @}
555 L'utilisation des @code{"} ou de la commande @code{\line} permet de
556 différencier les listes de mots.
558 @lilypond[quote,verbatim,fragment,relative=1]
560 c4^\markup{ \center-column { on three lines } }
561 c4^\markup{ \center-column { "all one line" } }
562 c4^\markup{ \center-column { { on three lines } } }
563 c4^\markup{ \center-column { \line { on one line } } }
566 Vous pouvez stocker les étiquettes textuelles en tant que variables,
567 et attacher ces identificateurs à des notes, comme
569 allegro = \markup @{ \bold \large @{ Allegro @} @}
570 @{ a^\allegro b c d @}
573 Certains objets possèdent leurs propres procédures d'alignement, qui
574 annuleront toute spécification d'alignement que vous pourriez affecter
575 à un argument de type @emph{markup} que vous leur auriez fourni. Par
576 exemple, les @rinternals{RehearsalMark} sont centrées
577 horizontalement ; de fait, utiliser
578 @code{\mark \markup @{ \left-align .. @}} sera sans effet.
580 Par ailleurs, le placement vertical n'est effectué qu'après la
581 création de l'objet @emph{étiquette textuelle}. Si donc vous souhaitez
582 déplacer une étiquette, il vous faudra utiliser la propriété
583 @code{#'padding} ou créer un @qq{point d'ancrage} à l'intérieur même
584 de l'étiquette (généralement avec @code{\hspace #0}).
586 @lilypond[quote,verbatim,fragment,relative=1]
588 c'4^\markup{ \raise #5 "not raised" }
589 \once \override TextScript #'padding = #3
590 c'4^\markup{ raised }
591 c'4^\markup{ \hspace #0 \raise #1.5 raised }
594 Certaines situations particulières, telles que les indications de
595 nuance, possèdent des propriétés prédéfinies quant à leur police.
596 Nous vous conseillons, en pareil cas, de réinitialiser ces propriétés
597 en utilisant @code{normal-text}. Pour plus d'informations, consultez
598 @ref{Text markup commands}.
602 Dans ce manuel : @ref{Text markup commands}.
604 Référence du programme : @rinternals{TextScript}.
606 Fichiers d'initialisation : @file{scm/@/new@/-markup@/.scm}.
611 Le crénage ou la génération de ligatures ne sont accessibles que lors
612 d'un retraitement par @TeX{}. Dans ce cas, LilyPond n'en tient pas
613 compte, et l'espacement de tels textes sera trop large.
615 Les erreurs de syntaxe sont peu loquaces.
619 @unnumberedsubsubsec Nested scores
621 Rien ne s'oppose à ce qu'une étiquette ne comporte de la musique. Il
622 suffit que l'expression en question contienne un bloc @code{\score} et
623 un bloc @code{\layout}.
625 @lilypond[quote,verbatim,ragged-right]
629 \relative { c4 d e f }
637 @node Page wrapping text
638 @unnumberedsubsubsec Page wrapping text
639 Alors que @code{\markup} s'utilise pour traiter un bloc de texte
640 insécable, @code{\markuplines} permet, employé en tête de partition,
641 d'obtenir un bloc de lignes réparties différemment et au cas où sur
647 Un long texte constitué de lignes justifiées.
651 Un autre grand paragraphe justifié.
658 @code{\markuplines} prend en argument une liste de lignes de texte,
659 qui peut elle-même consister en une suite de commandes générant à leur
660 tour des lignes de texte, comme ici :
664 \line { ... } % une ligne alignée à gauche
665 \fill-line { \line { ... } } % une ligne centrée
666 \wordwrap-lines { ... } % une liste de lignes alignées à gauche
667 \justified-lines { ... } % une liste de lignes justifiées
671 Les différentes commandes permettant de générer des listes de lignes
672 se trouve dans @ref{Text markup list commands}.
676 Dans ce manuel : @ref{Text markup list commands},
677 @ref{New markup list command definition}.
681 @funindex \markuplines
689 @cindex sélection de polices
690 @cindex grossissement des polices
691 @funindex font-interface
693 C'est en jouant sur les propriétés des objets décrites ci-après que
694 vous pourrez sélectionner une police parmi les familles de fontes
695 préconfigurées. LilyPond utilise par défaut la police musicale feta.
696 Pour le texte, les polices sont sélectionnées par Pango/Fontconfig.
697 C'est New Century Schoolbook qui sert de police sérif par défaut, et
698 celles définies lors de l'installation de Pango pour ce qui est du
699 sans-serif et du @q{typewriter}.
703 @item @code{font-encoding}
704 symbolise le tracé des glyphes. N'utilisez cette propriété que pour
705 traiter des éléments non textuels, comme :
708 @code{fetaBraces} pour les accolades de partition pianistique,
709 @code{fetaMusic} pour de la musique (y compris musique ancienne),
710 @code{fetaDynamic} pour les nuances et @code{fetaNumber} pour les
713 @item @code{font-family}
714 symbolise les différentes familles de police : @code{roman} (Computer
715 Modern), @code{sans}-serif et @code{typewriter} (espacement fixe).
717 @item @code{font-shape}
718 symbolise le style des caractères. En pratique, chaque famille de
719 police dispose de @code{italic}, @code{caps} (petites capitales) ou
720 @code{upright} (droit).
722 @item @code{font-series}
723 symbolise le niveau de gras des caractères. Chaque style dispose, pour
724 chaque famille, de @code{medium} et @code{bold} (gras).
728 Les variantes ci-dessus mentionnées font référence à une feuille de
729 style prédéfinie. Vous pouvez cependant faire appel à une autre
730 police, en utilisant la propriété @code{font-name} :
732 @lilypond[fragment,verbatim]
734 \override Staff.TimeSignature #'font-name = #"Charter"
735 \override Staff.TimeSignature #'font-size = #2
738 \override #'(font-name . "Vera Bold")
739 { This text is in Vera Bold }
745 Vous pouvez utiliser n'importe quelle police, du moment qu'elle est
746 accessible par Pango/Fontconfig. Pour obtenir la liste de toutes
747 les polices disponibles sur votre machine, lancez
749 lilypond -dshow-available-fonts blabla
751 (quel qu'il soit, le dernier argument est obligatoire).
754 La propriété @code{font-size} permet de régler la taille de la police.
755 La taille effective que vous obtiendrez dépend de
756 @code{text-font-size} tel que défini dans le bloc @code{\paper}.
758 @cindex taille de police
759 @cindex police, augmenter la taille
762 Vous pouvez aussi changer la police par défaut au niveau du document.
763 Il suffit alors de faire appel à @code{make-pango-font-tree} au sein
764 du bloc @code{paper}. Vous définirez alors la police à utiliser pour
765 du texte respectivement en roman, sans serif et monospace, comme ici :
767 @cindex polices, définir
776 (make-pango-font-tree "Times New Roman"
783 c'^\markup { roman: foo \sans bla \typewriter bar }
787 @c we don't do Helvetica / Courier, since GS incorrectly loads
792 Exemples : @rlsr{Text}.