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
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}.
284 Pour obtenir une ligne pleine, utilisez
287 \override TextSpanner #'style = #'line
293 Référence du programme : @rinternals{TextSpanner}.
297 @unnumberedsubsubsec Text marks
299 @cindex coda sur une barre de mesure
300 @cindex segno sur une barre de mesure
301 @cindex point d'orgue sur une barre de mesure
302 @cindex barres de mesure, symboles au dessus de
305 La commande @code{\mark} est tout d'abord conçue pour les
306 @ref{Rehearsal marks}. Elle peut néanmoins servir à insérer des
307 signes de coda ou de segno, ou bien un point d'orgue, au dessus d'une
308 barre de mesure. Couplez-la alors à la commande @code{\markup} pour
309 avoir accès au symbole approprié (ils sont répertoriés dans
310 @ref{The Feta font}).
313 @lilypond[fragment,quote,ragged-right,verbatim,relative=2]
314 c1 \mark \markup { \musicglyph #"scripts.ufermata" }
319 Le résultat de @code{\mark} n'apparaîtra que sur la portée supérieure
320 d'un système. Si vous introduisez la commande @code{\mark} au moment
321 d'une barre de mesure, la marque se placera au dessus de la barre. Si
322 vous y faites appel au milieu d'une mesure, cette marque sera
323 positionnée entre les notes. Si elle intervient en début de ligne,
324 elle sera placée juste avant la première note de cette portée. Enfin,
325 une marque qui tomberait sur un saut de ligne sera imprimée au début
326 de la ligne suivante.
327 @c IMO this is a bug; hopefully it'll be fixed soon, so I can
328 @c delete this sentence. -gp
329 Au cas où il n'y aurait pas de ligne à suivre, la marque ne sera pas imprimée.
334 Pour imprimer une marque à la fin de la portée en cours, procédez
338 \override Score.RehearsalMark
339 #'break-visibility = #begin-of-line-invisible
342 @code{\mark} est souvent bien utile pour porter une indication à la
343 fin d'une mesure. Pensez alors à modifier la propriété
344 @code{#'self-alignment}.
346 @lilypond[fragment,quote,ragged-right,verbatim,relative=2]
347 \override Score.RehearsalMark
348 #'break-visibility = #begin-of-line-invisible
350 \once \override Score.RehearsalMark #'self-alignment-X = #right
351 \mark "D.S. al Fine "
354 Les indications textuelles peuvent s'aligner par rapport à d'autres
355 objets que des barres de mesure, tels que l'armure, la clé ou le chiffre de
358 @lilypond[fragment,quote,ragged-right,verbatim,relative=2]
363 \override Score.RehearsalMark #'break-align-symbols = #'(key-signature)
367 \override Score.RehearsalMark #'break-align-symbols = #'(clef)
371 \override Score.RehearsalMark #'break-align-symbols = #'(time-signature)
380 Les symboles pris en charge par @code{break-align-symbols} sont :
381 @code{ambitus}, @code{breathing-sign}, @code{clef}, @code{custos},
382 @code{staff-bar}, @code{left-edge}, @code{key-cancellation},
383 @code{key-signature}, et @code{time-signature}.
385 Par défaut, les indications textuelles sont alignées avec le milieu
386 des objets de notation. Bien entendu, vous pouvez modifier les
387 propriétés @code{break-align-anchor-alignment} ou
388 @code{break-align-anchor} des objets en question pour obtenir un autre
392 @lilypond[fragment,quote,ragged-right,verbatim]
394 \override Score.RehearsalMark #'break-align-symbols = #'(key-signature)
398 % La marque sera alignée sur le côté gauche de l'armure
399 \once \override Staff.KeySignature #'break-align-anchor-alignment = #LEFT
404 % La marque sera alignée sur le côté droit de l'armure
405 \once \override Staff.KeySignature #'break-align-anchor-alignment = #RIGHT
410 % La marque sera alignée sur le côté gauche de l'armure,
411 % puis décalée vers la droite de 2 unités.
412 \once \override Staff.KeySignature #'break-align-anchor = #2
418 Bien que ces indications textuelles ne soient habituellement imprimées
419 qu'au niveau de la portée supérieure, vous pouvez forcer leur
420 affectation à chacune des portées :
422 @lilypond[quote,ragged-right,verbatim,relative=2]
425 \remove "Mark_engraver"
429 \consists "Mark_engraver"
431 { c''1 \mark "foo" c'' }
433 \consists "Mark_engraver"
435 { c'1 \mark "foo" c' }
443 Référence du programme : @rinternals{RehearsalMark}.
446 @node Formatting text
447 @subsection Formatting text
450 * Text markup introduction::
452 * Page wrapping text::
455 @node Text markup introduction
456 @unnumberedsubsubsec Text markup introduction
459 @cindex commentaire textuel
460 @cindex étiquette textuelle
463 La commande @code{\markup} permet d'ajouter du texte. Vous pouvez y
464 inclure des commandes, précédées d'un antislash @code{\} ; les
465 caractères @code{\} et @code{#} doivent être encadrés de guillemets
466 informatiques @code{"}.
468 @lilypond[quote,verbatim,fragment,relative=1]
470 c1_\markup { hi there }
471 c1^\markup { hi \bold there, is \italic {anyone home?} }
472 c1_\markup { "\special {weird} #characters" }
476 Pour une liste des différentes commandes disponibles, consultez
477 @ref{Text markup commands}.
480 @code{\markup} est avant tout conçu pour gérer les
481 @rinternals{TextScript}s, mais rien ne s'oppose à son utilisation
482 pour traiter du texte avec LilyPond.
484 @lilypond[quote,verbatim]
485 \header{ title = \markup{ \bold { foo \italic { bar! } } } }
488 \override Score.RehearsalMark
489 #'break-visibility = #begin-of-line-invisible
490 \override Score.RehearsalMark #'self-alignment-X = #right
492 \set Staff.instrumentName = \markup{ \column{ Alto solo } }
493 c2^\markup{ don't be \flat }
494 \override TextSpanner #'(bound-details left text) = \markup{\italic rit }
496 a2\mark \markup{ \large \bold Fine }
500 \addlyrics { bar, foo \markup{ \italic bar! } }
504 La commande @code{\markup} peut intervenir à tout moment, y compris en
505 dehors d'un bloc @code{\score}. Voir à ce sujet
506 @ref{Multiple scores in a book}.
508 @lilypond[quote,ragged-right,verbatim]
509 \markup{ Here is some text. }
512 @cindex changer de police
514 Le @emph{markup} de l'exemple précédent montre comment utiliser les
515 commandes de changement de police. Les commandes @code{\bold} et
516 @code{\italic} n'affectent que le premier mot qui les suit ; encadrez
517 les par des accolades si vous désirez que ces commandent s'appliquent
521 \markup @{ \bold @{ c'est moi @} @}
525 Une bonne habitude à prendre consiste à utiliser des accolades même
526 pour un seul mot, comme ici :
528 \markup @{ qui \italic @{ est @} là ? @}
531 En mode @emph{markup}, vous pouvez composer des expressions comme
532 en mathématiques, des documents XML ou bien les expressions musicales.
533 Vous pouvez empiler ces expressions grâce à la commande
534 @code{\column}, ou les centrer par rapport à leur milieu avec
535 @code{\center-column}.
537 @lilypond[quote,verbatim,fragment,relative=1]
538 c1^\markup { \column { a bbbb \line { c d } } }
539 c1^\markup { \center-column { a bbbb c } }
540 c1^\markup { \line { a b c } }
543 Des listes non précédées de commande ne sont pas isolées. Ainsi,
545 \center-column @{ @{ a b @} @{ c d @} @}
550 est la même expression que
553 \center-column @{ a b c d @}
558 L'utilisation des @code{"} ou de la commande @code{\line} permet de
559 différencier les listes de mots.
561 @lilypond[quote,verbatim,fragment,relative=1]
563 c4^\markup{ \center-column { on three lines } }
564 c4^\markup{ \center-column { "all one line" } }
565 c4^\markup{ \center-column { { on three lines } } }
566 c4^\markup{ \center-column { \line { on one line } } }
569 Vous pouvez stocker les étiquettes textuelles en tant que variables,
570 et attacher ces identificateurs à des notes, comme
572 allegro = \markup @{ \bold \large @{ Allegro @} @}
573 @{ a^\allegro b c d @}
576 Certains objets possèdent leurs propres procédures d'alignement, qui
577 annuleront toute spécification d'alignement que vous pourriez affecter
578 à un argument de type @emph{markup} que vous leur auriez fourni. Par
579 exemple, les @rinternals{RehearsalMark} sont centrées
580 horizontalement ; de fait, utiliser
581 @code{\mark \markup @{ \left-align .. @}} sera sans effet.
583 Par ailleurs, le placement vertical n'est effectué qu'après la
584 création de l'objet @emph{étiquette textuelle}. Si donc vous souhaitez
585 déplacer une étiquette, il vous faudra utiliser la propriété
586 @code{#'padding} ou créer un @qq{point d'ancrage} à l'intérieur même
587 de l'étiquette (généralement avec @code{\hspace #0}).
589 @lilypond[quote,verbatim,fragment,relative=1]
591 c'4^\markup{ \raise #5 "not raised" }
592 \once \override TextScript #'padding = #3
593 c'4^\markup{ raised }
594 c'4^\markup{ \hspace #0 \raise #1.5 raised }
597 Certaines situations particulières, telles que les indications de
598 nuance, possèdent des propriétés prédéfinies quant à leur police.
599 Nous vous conseillons, en pareil cas, de réinitialiser ces propriétés
600 en utilisant @code{normal-text}. Pour plus d'informations, consultez
601 @ref{Text markup commands}.
606 Dans ce manuel : @ref{Text markup commands}.
608 Référence du programme : @rinternals{TextScript}.
610 Fichiers d'initialisation : @file{scm/@/new@/-markup@/.scm}.
615 Le crénage ou la génération de ligatures ne sont accessibles que lors
616 d'un retraitement par @TeX{}. Dans ce cas, LilyPond n'en tient pas
617 compte, et l'espacement de tels textes sera trop large.
619 Les erreurs de syntaxe sont peu loquaces.
623 @unnumberedsubsubsec Nested scores
625 Rien ne s'oppose à ce qu'une étiquette ne comporte de la musique. Il
626 suffit que l'expression en question contienne un bloc @code{\score} et
627 un bloc @code{\layout}.
629 @lilypond[quote,verbatim,ragged-right]
633 \relative { c4 d e f }
641 @node Page wrapping text
642 @unnumberedsubsubsec Page wrapping text
643 Alors que @code{\markup} s'utilise pour traiter un bloc de texte
644 insécable, @code{\markuplines} permet, employé en tête de partition,
645 d'obtenir un bloc de lignes réparties différemment et au cas où sur
651 Un long texte constitué de lignes justifiées.
655 Un autre grand paragraphe justifié.
662 @code{\markuplines} prend en argument une liste de lignes de texte,
663 qui peut elle-même consister en une suite de commandes générant à leur
664 tour des lignes de texte, comme ici :
668 \line { ... } % une ligne alignée à gauche
669 \fill-line { \line { ... } } % une ligne centrée
670 \wordwrap-lines { ... } % une liste de lignes alignées à gauche
671 \justified-lines { ... } % une liste de lignes justifiées
675 Les différentes commandes permettant de générer des listes de lignes
676 se trouve dans @ref{Text markup list commands}.
680 Dans ce manuel : @ref{Text markup list commands},
681 @ref{New markup list command definition}.
685 @funindex \markuplines
693 @cindex sélection de polices
694 @cindex grossissement des polices
695 @funindex font-interface
697 C'est en jouant sur les propriétés des objets décrites ci-après que
698 vous pourrez sélectionner une police parmi les familles de fontes
699 préconfigurées. LilyPond utilise par défaut la police musicale feta.
700 Pour le texte, les polices sont sélectionnées par Pango/Fontconfig.
701 C'est New Century Schoolbook qui sert de police sérif par défaut, et
702 celles définies lors de l'installation de Pango pour ce qui est du
703 sans-serif et du @q{typewriter}.
707 @item @code{font-encoding}
708 symbolise le tracé des glyphes. N'utilisez cette propriété que pour
709 traiter des éléments non textuels, comme :
712 @code{fetaBraces} pour les accolades de partition pianistique,
713 @code{fetaMusic} pour de la musique (y compris musique ancienne),
714 @code{fetaDynamic} pour les nuances et @code{fetaNumber} pour les
717 @item @code{font-family}
718 symbolise les différentes familles de police : @code{roman} (Computer
719 Modern), @code{sans}-serif et @code{typewriter} (espacement fixe).
721 @item @code{font-shape}
722 symbolise le style des caractères. En pratique, chaque famille de
723 police dispose de @code{italic}, @code{caps} (petites capitales) ou
724 @code{upright} (droit).
726 @item @code{font-series}
727 symbolise le niveau de gras des caractères. Chaque style dispose, pour
728 chaque famille, de @code{medium} et @code{bold} (gras).
732 Les variantes ci-dessus mentionnées font référence à une feuille de
733 style prédéfinie. Vous pouvez cependant faire appel à une autre
734 police, en utilisant la propriété @code{font-name} :
736 @lilypond[fragment,verbatim]
738 \override Staff.TimeSignature #'font-name = #"Charter"
739 \override Staff.TimeSignature #'font-size = #2
742 \override #'(font-name . "Vera Bold")
743 { This text is in Vera Bold }
749 Vous pouvez utiliser n'importe quelle police, du moment qu'elle est
750 accessible par Pango/Fontconfig. Pour obtenir la liste de toutes
751 les polices disponibles sur votre machine, lancez
753 lilypond -dshow-available-fonts blabla
755 (quel qu'il soit, le dernier argument est obligatoire).
758 La propriété @code{font-size} permet de régler la taille de la police.
759 La taille effective que vous obtiendrez dépend de
760 @code{text-font-size} tel que défini dans le bloc @code{\paper}.
762 @cindex taille de police
763 @cindex police, augmenter la taille
766 Vous pouvez aussi changer la police par défaut au niveau du document.
767 Il suffit alors de faire appel à @code{make-pango-font-tree} au sein
768 du bloc @code{paper}. Vous définirez alors la police à utiliser pour
769 du texte respectivement en roman, sans serif et monospace, comme ici :
771 @cindex polices, définir
780 (make-pango-font-tree "Times New Roman"
787 c'^\markup { roman: foo \sans bla \typewriter bar }
791 @c we don't do Helvetica / Courier, since GS incorrectly loads
798 Exemples : @rlsr{Text}.