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 * Partitions emboîtées::
456 * Texte avec sauts de page::
459 @node Introduction au formatage de texte
460 @unnumberedsubsubsec Introduction au formatage de texte
461 @translationof Text markup introduction
464 @cindex commentaire textuel
465 @cindex étiquette textuelle
468 La commande @code{\markup} permet d'ajouter du texte. Vous pouvez y
469 inclure des commandes, précédées d'un antislash @code{\} ; les
470 caractères @code{\} et @code{#} doivent être encadrés de guillemets
471 informatiques @code{"}.
473 @lilypond[quote,verbatim,fragment,relative=1]
475 c1_\markup { hi there }
476 c1^\markup { hi \bold there, is \italic {anyone home?} }
477 c1_\markup { "\special {weird} #characters" }
481 Pour une liste des différentes commandes disponibles, consultez
482 @ref{Text markup commands}.
485 @code{\markup} est avant tout conçu pour gérer les
486 @rinternals{TextScript}s, mais rien ne s'oppose à son utilisation
487 pour traiter du texte avec LilyPond.
489 @lilypond[quote,verbatim]
490 \header{ title = \markup{ \bold { foo \italic { bar! } } } }
493 \override Score.RehearsalMark
494 #'break-visibility = #begin-of-line-invisible
495 \override Score.RehearsalMark #'self-alignment-X = #right
497 \set Staff.instrumentName = \markup{ \column{ Alto solo } }
498 c2^\markup{ don't be \flat }
499 \override TextSpanner #'(bound-details left text) = \markup{\italic rit }
501 a2\mark \markup{ \large \bold Fine }
505 \addlyrics { bar, foo \markup{ \italic bar! } }
509 La commande @code{\markup} peut intervenir à tout moment, y compris en
510 dehors d'un bloc @code{\score}. Voir à ce sujet
511 @ref{Plusieurs partitions dans un même ouvrage}.
513 @lilypond[quote,ragged-right,verbatim]
514 \markup{ Here is some text. }
517 @cindex changer de police
519 Le @emph{markup} de l'exemple précédent montre comment utiliser les
520 commandes de changement de police. Les commandes @code{\bold} et
521 @code{\italic} n'affectent que le premier mot qui les suit ; encadrez
522 les par des accolades si vous désirez que ces commandent s'appliquent
526 \markup @{ \bold @{ c'est moi @} @}
530 Une bonne habitude à prendre consiste à utiliser des accolades même
531 pour un seul mot, comme ici :
533 \markup @{ qui \italic @{ est @} là ? @}
536 En mode @emph{markup}, vous pouvez composer des expressions comme
537 en mathématiques, des documents XML ou bien les expressions musicales.
538 Vous pouvez empiler ces expressions grâce à la commande
539 @code{\column}, ou les centrer par rapport à leur milieu avec
540 @code{\center-column}.
542 @lilypond[quote,verbatim,fragment,relative=1]
543 c1^\markup { \column { a bbbb \line { c d } } }
544 c1^\markup { \center-column { a bbbb c } }
545 c1^\markup { \line { a b c } }
548 Des listes non précédées de commande ne sont pas isolées. Ainsi,
550 \center-column @{ @{ a b @} @{ c d @} @}
555 est la même expression que
558 \center-column @{ a b c d @}
563 L'utilisation des @code{"} ou de la commande @code{\line} permet de
564 différencier les listes de mots.
566 @lilypond[quote,verbatim,fragment,relative=1]
568 c4^\markup{ \center-column { on three lines } }
569 c4^\markup{ \center-column { "all one line" } }
570 c4^\markup{ \center-column { { on three lines } } }
571 c4^\markup{ \center-column { \line { on one line } } }
574 Vous pouvez stocker les étiquettes textuelles en tant que variables,
575 et attacher ces identificateurs à des notes, comme
577 allegro = \markup @{ \bold \large @{ Allegro @} @}
578 @{ a^\allegro b c d @}
581 Certains objets possèdent leurs propres procédures d'alignement, qui
582 annuleront toute spécification d'alignement que vous pourriez affecter
583 à un argument de type @emph{markup} que vous leur auriez fourni. Par
584 exemple, les @rinternals{RehearsalMark} sont centrées
585 horizontalement ; de fait, utiliser
586 @code{\mark \markup @{ \left-align .. @}} sera sans effet.
588 Par ailleurs, le placement vertical n'est effectué qu'après la
589 création de l'objet @emph{étiquette textuelle}. Si donc vous souhaitez
590 déplacer une étiquette, il vous faudra utiliser la propriété
591 @code{#'padding} ou créer un @qq{point d'ancrage} à l'intérieur même
592 de l'étiquette (généralement avec @code{\hspace #0}).
594 @lilypond[quote,verbatim,fragment,relative=1]
596 c'4^\markup{ \raise #5 "not raised" }
597 \once \override TextScript #'padding = #3
598 c'4^\markup{ raised }
599 c'4^\markup{ \hspace #0 \raise #1.5 raised }
602 Certaines situations particulières, telles que les indications de
603 nuance, possèdent des propriétés prédéfinies quant à leur police.
604 Nous vous conseillons, en pareil cas, de réinitialiser ces propriétés
605 en utilisant @code{normal-text}. Pour plus d'informations, consultez
606 @ref{Text markup commands}.
610 Dans ce manuel : @ref{Text markup commands}.
612 Référence du programme : @rinternals{TextScript}.
614 Fichiers d'initialisation : @file{scm/@/new@/-markup@/.scm}.
619 Le crénage ou la génération de ligatures ne sont accessibles que lors
620 d'un retraitement par @TeX{}. Dans ce cas, LilyPond n'en tient pas
621 compte, et l'espacement de tels textes sera trop large.
623 Les erreurs de syntaxe sont peu loquaces.
626 @node Partitions emboîtées
627 @unnumberedsubsubsec Partitions emboîtées
628 @translationof Nested scores
630 Rien ne s'oppose à ce qu'une étiquette ne comporte de la musique. Il
631 suffit que l'expression en question contienne un bloc @code{\score} et
632 un bloc @code{\layout}.
634 @lilypond[quote,verbatim,ragged-right]
638 \relative { c4 d e f }
646 @node Texte avec sauts de page
647 @unnumberedsubsubsec Texte avec sauts de page
648 @translationof Page wrapping text
649 Alors que @code{\markup} s'utilise pour traiter un bloc de texte
650 insécable, @code{\markuplines} permet, employé en tête de partition,
651 d'obtenir un bloc de lignes réparties différemment et au cas où sur
657 Un long texte constitué de lignes justifiées.
661 Un autre grand paragraphe justifié.
668 @code{\markuplines} prend en argument une liste de lignes de texte,
669 qui peut elle-même consister en une suite de commandes générant à leur
670 tour des lignes de texte, comme ici :
674 \line { ... } % une ligne alignée à gauche
675 \fill-line { \line { ... } } % une ligne centrée
676 \wordwrap-lines { ... } % une liste de lignes alignées à gauche
677 \justified-lines { ... } % une liste de lignes justifiées
681 Les différentes commandes permettant de générer des listes de lignes
682 se trouve dans @ref{Text markup list commands}.
686 Dans ce manuel : @ref{Text markup list commands},
687 @ref{Définition d'une nouvelle commande de liste de marqueurs}.
691 @funindex \markuplines
700 @cindex sélection de polices
701 @cindex grossissement des polices
702 @funindex font-interface
704 C'est en jouant sur les propriétés des objets décrites ci-après que
705 vous pourrez sélectionner une police parmi les familles de fontes
706 préconfigurées. LilyPond utilise par défaut la police musicale feta.
707 Pour le texte, les polices sont sélectionnées par Pango/Fontconfig.
708 C'est New Century Schoolbook qui sert de police sérif par défaut, et
709 celles définies lors de l'installation de Pango pour ce qui est du
710 sans-serif et du @q{typewriter}.
714 @item @code{font-encoding}
715 symbolise le tracé des glyphes. N'utilisez cette propriété que pour
716 traiter des éléments non textuels, comme :
719 @code{fetaBraces} pour les accolades de partition pianistique,
720 @code{fetaMusic} pour de la musique (y compris musique ancienne),
721 @code{fetaDynamic} pour les nuances et @code{fetaNumber} pour les
724 @item @code{font-family}
725 symbolise les différentes familles de police : @code{roman} (Computer
726 Modern), @code{sans}-serif et @code{typewriter} (espacement fixe).
728 @item @code{font-shape}
729 symbolise le style des caractères. En pratique, chaque famille de
730 police dispose de @code{italic}, @code{caps} (petites capitales) ou
731 @code{upright} (droit).
733 @item @code{font-series}
734 symbolise le niveau de gras des caractères. Chaque style dispose, pour
735 chaque famille, de @code{medium} et @code{bold} (gras).
739 Les variantes ci-dessus mentionnées font référence à une feuille de
740 style prédéfinie. Vous pouvez cependant faire appel à une autre
741 police, en utilisant la propriété @code{font-name} :
743 @lilypond[fragment,verbatim]
745 \override Staff.TimeSignature #'font-name = #"Charter"
746 \override Staff.TimeSignature #'font-size = #2
749 \override #'(font-name . "Vera Bold")
750 { This text is in Vera Bold }
756 Vous pouvez utiliser n'importe quelle police, du moment qu'elle est
757 accessible par Pango/Fontconfig. Pour obtenir la liste de toutes
758 les polices disponibles sur votre machine, lancez
760 lilypond -dshow-available-fonts blabla
762 (quel qu'il soit, le dernier argument est obligatoire).
765 La propriété @code{font-size} permet de régler la taille de la police.
766 La taille effective que vous obtiendrez dépend de
767 @code{text-font-size} tel que défini dans le bloc @code{\paper}.
769 @cindex taille de police
770 @cindex police, augmenter la taille
773 Vous pouvez aussi changer la police par défaut au niveau du document.
774 Il suffit alors de faire appel à @code{make-pango-font-tree} au sein
775 du bloc @code{paper}. Vous définirez alors la police à utiliser pour
776 du texte respectivement en roman, sans serif et monospace, comme ici :
778 @cindex polices, définir
787 (make-pango-font-tree "Times New Roman"
794 c'^\markup { roman: foo \sans bla \typewriter bar }
798 @c we don't do Helvetica / Courier, since GS incorrectly loads
803 Exemples : @rlsr{Text}.