@c -*- coding: utf-8; mode: texinfo; documentlanguage: fr -*- @ignore Translation of GIT committish: ee20a00bbe6704553bb1f761899a727fc150ab46 When revising a translation, copy the HEAD committish of the version that you are working on. For details, see the Contributors' Guide, node Updating translation committishes.. @end ignore @c \version "2.13.36" @c Translators: Jean-Charles Malahieude @c Translation checkers: Valentin Villenave, John Mandereau @node Texte @section Texte @translationof Text @lilypondfile[quote]{text-headword.ly} Nous allons voir ici comment insérer du texte dans une partition, ainsi que différentes manières de le mettre en forme. @noindent Certains éléments de texte ne sont pas abordés ici mais dans des chapitres qui leur sont dédiés. C'est le cas de la @ref{Musique vocale} et des @ref{Titres et entêtes}. @menu * Ajout de texte:: * Mise en forme du texte:: * Fontes:: @end menu @node Ajout de texte @subsection Ajout de texte @translationof Writing text Cette partie constitue une introduction aux différentes manières d'ajouter du texte à une partition. @cindex Texte, autres langues @warning{Pour écrire des accents et autres caractères spéciaux, il suffit de les insérer directement dans votre fichier LilyPond. Ce fichier devra être sauvegardé avec l'encodage UTF-8. Pour plus d'informations, voir @ref{Codage du texte}.} @menu * Commentaires textuels:: * Indication textuelle avec extension:: * Indications textuelles:: * Texte indépendant:: @end menu @node Commentaires textuels @unnumberedsubsubsec Commentaires textuels @translationof Text scripts @cindex Étiquette de texte @cindex blocs de texte @cindex ajout de texte Vous pouvez ajouter à une partition des indications sous forme texuelle, comme dans l'exemple suivant. Ces indications se placeront manuellement au-dessus ou au-dessous de la portée selon la syntaxe utilisée -- cf. @ref{Direction et positionnement}. @lilypond[quote,verbatim,relative=2] a8^"pizz." g f e a4-"scherz." f @end lilypond Cette syntaxe est en fait un raccourci. Des constructions plus élaborées d'annotation peuvent être obtenues en ayant recours à un bloc @code{\markup} et selon les préceptes énoncés dans @ref{Mise en forme du texte}. @lilypond[quote,verbatim,relative=2] a8^\markup { \italic pizz. } g f e a4_\markup { \tiny scherz. \bold molto } f @end lilypond Par défaut, ces indications n'affectent en rien l'espacement des notes. Leur longueur peut néanmoins être prise en considération@tie{}: dans l'exemple qui suit, le premier commentaire n'influe pas sur l'espacement, à l'inverse du second. @lilypond[quote,verbatim,relative=2] a8^"pizz." g f e \textLengthOn a4_"scherzando" f @end lilypond En plus d'indications textuelles, les notes peuvent se voir attacher des articulations, comme indiqué au chapitre @ref{Articulations et ornements}. Pour de plus amples détails sur la manière de combiner indications textuelles et articulations, reportez-vous au chapitre @rlearning{Positionnement des objets}. @funindex \textLengthOn @funindex textLengthOn @funindex \textLengthOff @funindex textLengthOff @predefined @code{\textLengthOn}, @code{\textLengthOff}. @endpredefined @seealso Manuel d'initiation : @rlearning{Positionnement des objets}. Manuel de notation : @ref{Mise en forme du texte}, @ref{Direction et positionnement}. Morceaux choisis : @rlsrnamed{Text,Texte}. Référence des propriétés internes : @rinternals{TextScript}. @cindex texte hors marges @cindex marges, texte qui dépasse @cindex texte, maintien dans les marges @cindex texte, maintien dans les marges @knownissues S'assurer que tous les éléments textuels et les paroles respectent les marges du document requiert des calculs relativement lourds@tie{}; c'est la raison pour laquelle LilyPond, par défaut, ne s'en préoccupe pas. Vous pouvez cependant l'y forcer en définissant @example \override Score.PaperColumn #'keep-inside-line = ##t @end example @node Indication textuelle avec extension @unnumberedsubsubsec Indication textuelle avec extension @translationof Text spanners @cindex texte et extenseur @cindex prolongation de texte @cindex extenseur Certaines indications d'interprétation comme @i{rallentando}, @i{accelerando} ou @i{trilles}, s'inscrivent textuellement et se prolongent sur plusieurs notes à l'aide d'une ligne pleine, pointillée ou ondulée. Ces objets, que l'on appelle @qq{extenseurs}, se dessinent entre deux notes à l'aide de la syntaxe suivante@tie{}: @lilypond[verbatim,quote,relative=2] \override TextSpanner #'(bound-details left text) = "rit." b1\startTextSpan e,\stopTextSpan @end lilypond @cindex texte, mise en forme des prolongations @cindex texte, mise en forme des extenseurs @cindex extenseur, mise en forme @noindent Le texte à imprimer est spécifié en tant que propriété de l'objet @code{TextSpanner}. Il apparaîtra par défaut en italique@tie{}; cependant, rien ne s'oppose à un autre graphisme dès lors que vous faites appel à un bloc @code{\markup} -- voir @ref{Mise en forme du texte}. @lilypond[quote,relative=2,verbatim] \override TextSpanner #'(bound-details left text) = \markup { \upright "rit." } b1\startTextSpan c e,\stopTextSpan @end lilypond Le style de ligne se définit lui aussi comme une propriété de l'objet. Les détails concernant la syntaxe à utiliser sont expliqués au chapitre @ref{Styles de ligne}. Les extenseurs sont rattachés au contexte @code{Dynamics} -- cf. @rinternals{Dynamics}. @funindex \textSpannerUp @funindex textSpannerUp @funindex \textSpannerDown @funindex textSpannerDown @funindex \textSpannerNeutral @funindex textSpannerNeutral @predefined @code{\textSpannerUp}, @code{\textSpannerDown}, @code{\textSpannerNeutral}. @endpredefined @knownissues LilyPond ne peut traiter qu'un seul extenseur à la fois par voix. @snippets @lilypondfile[verbatim,lilyquote,texidoc,doctitle] {dynamics-text-spanner-postfix.ly} @lilypondfile[verbatim,lilyquote,texidoc,doctitle] {dynamics-custom-text-spanner-postfix.ly} @seealso Manuel de notation : @ref{Styles de ligne}, @ref{Nuances}. Morceaux choisis : @rlsrnamed{Text,Texte}, @rlsrnamed{Expressive marks,Signes d'interprétation}. Référence des propriétés internes : @rinternals{TextSpanner}, @rinternals{Dynamics}. @node Indications textuelles @unnumberedsubsubsec Indications textuelles @translationof Text marks @cindex indication textuelle @cindex coda sur une barre de mesure @cindex segno sur une barre de mesure @cindex point d'orgue sur une barre de mesure @cindex barres de mesure, symboles au dessus de @funindex \mark @funindex mark @funindex \markup @funindex markup La commande @code{\mark} est tout d'abord conçue pour les @ref{Indications de repère}. @c \mark needs to be placed on a separate line (it's not @c attached to an object like \markup is). -vv @lilypond[verbatim,quote,relative=2] c4 \mark "Allegro" c c c @end lilypond Cette syntaxe rend possible l'adjonction de n'importe quel texte à une barre de mesure. Ce texte peut être mis en forme de différentes manières dès lors qu'est utilisé un bloc @code{\markup}, comme indiqué au chapitre @ref{Mise en forme du texte}. @lilypond[quote,verbatim,relative=1] 1 \mark \markup { \italic { colla parte } } 2 1 @end lilypond @noindent Elle peut aussi servir à insérer des signes de @emph{coda} ou de @emph{segno}, ou bien un point d'orgue, au dessus d'une barre de mesure. Couplez-la alors à la commande @code{\markup} pour avoir accès au symbole approprié, selon les indications contenues au chapitre @ref{Notation musicale dans du texte formaté}. @lilypond[quote,verbatim,relative=2] 2 \mark \markup { \musicglyph #"scripts.ufermata" } 1 @end lilypond @noindent Le résultat de @code{\mark} n'apparaîtra que sur la portée supérieure d'un système. Si vous introduisez la commande @code{\mark} au moment d'une barre de mesure, la marque se placera au dessus de la barre. Si vous y faites appel au milieu d'une mesure, cette marque sera positionnée entre les notes. Si elle intervient en début de ligne, elle sera placée juste avant la première note de cette portée. Enfin, une marque qui tomberait sur un saut de ligne sera imprimée au début de la ligne suivante. @lilypond[quote,verbatim,relative=2] \mark "Allegro" c1 c \mark "assai" \break c c @end lilypond @snippets @lilypondfile[verbatim,lilyquote,ragged-right,texidoc,doctitle] {printing-marks-at-the-end-of-a-line.ly} @lilypondfile[verbatim,lilyquote,ragged-right,texidoc,doctitle] {aligning-marks-with-various-notation-objects.ly} @lilypondfile[verbatim,lilyquote,ragged-right,texidoc,doctitle] {printing-marks-on-every-staff.ly} @seealso Manuel de notation : @ref{Indications de repère}, @ref{Mise en forme du texte}, @ref{Notation musicale dans du texte formaté}, @ref{La fonte Feta}. Morceaux choisis: @rlsrnamed{Text,Texte}. Référence des propriétés internes : @rinternals{MarkEvent}, @rinternals{Mark_engraver}, @rinternals{RehearsalMark}. @node Texte indépendant @unnumberedsubsubsec Texte indépendant @translationof Separate text @cindex texte indépendant @cindex texte isolé @cindex texte en préambule @cindex top-level text @cindex text, top-level @cindex text, standalone @funindex \markup @funindex markup Un bloc @code{\markup} peut exister en lui-même, indépendamment de tout bloc @code{\score}, et venir en préambule par exemple -- voir le chapitre @ref{Structure de fichier} à ce propos. @lilypond[verbatim,quote] \markup { Tomorrow, and tomorrow, and tomorrow... } @end lilypond @noindent De cette manière, vous pouvez insérer du texte en dehors de la musique. Ceci devient particulièrement utile lorsque le fichier source contient plusieurs morceaux. Pour plus d'informations à ce propos, reportez-vous au chapitre @ref{Plusieurs partitions dans un même ouvrage}. @lilypond[quote,verbatim] \score { c'1 } \markup { Tomorrow, and tomorrow, and tomorrow... } \score { c'1 } @end lilypond Les blocs de textes peuvent s'étendre sur plusieurs pages, ce qui permet de générer des ouvrages complets uniquement grâce à LilyPond. Cette fonctionnalité, ainsi que la syntaxe appropriée, est abordée plus en détail au chapitre @ref{Texte avec sauts de page}. @funindex \markup @funindex markup @funindex \markuplines @funindex markuplines @predefined @code{\markup}, @code{\markuplines}. @endpredefined @snippets @lilypondfile[verbatim,lilyquote,ragged-right,texidoc,doctitle] {stand-alone-two-column-markup.ly} @seealso Manuel de notation : @ref{Mise en forme du texte}, @ref{Structure de fichier}, @ref{Plusieurs partitions dans un même ouvrage}, @ref{Texte avec sauts de page}. Morceaux choisis : @rlsrnamed{Text,Texte}. Référence des propriétés internes : @rinternals{TextScript}. @node Mise en forme du texte @subsection Mise en forme du texte @translationof Formatting text Nous allons voir dans les lignes qui suivent la manière de mettre en forme du texte à l'aide de la syntaxe propre au mode @code{\markup}. @menu * Introduction au formatage de texte:: * Sélection de la fonte et de la taille:: * Alignement du texte:: * Éléments graphiques dans du texte formaté:: * Notation musicale dans du texte formaté:: * Texte avec sauts de page:: @end menu @node Introduction au formatage de texte @unnumberedsubsubsec Introduction au formatage de texte @translationof Text markup introduction @cindex étiquette @cindex commentaire textuel @cindex étiquette textuelle @cindex texte ajouté @funindex \markup @funindex markup La commande @code{\markup} permet d'ajouter du texte et dispose de sa propre syntaxe que nous appellerons le @qq{mode @emph{markup}}. @cindex markup, expressions @cindex expressions markup @cindex markup, syntaxe @cindex syntaxe du mode markup La syntaxe du mode @emph{markup} n'est pas différente de celle des autres modes de LilyPond@tie{}: une expression @code{\markup} est bornée par des accolades @code{@{@tie{}@dots{}@tie{}@}}. Un mot unique sera considéré comme une expression minimale, et n'aura donc pas besoin d'être mis entre accolades. Contrairement aux indications simples, du type "entre guillemets", les blocs @code{\markup} peuvent contenir des expressions imbriquées ou d'autres commandes @emph{markup}, dès lors qu'elles sont précédées du caractère @code{\}. Ces commandes n'affecteront que la première expression qui les suit. @lilypond[quote,verbatim,relative=2] a1-\markup intenso a2^\markup { poco \italic più forte } c e1 d2_\markup { \italic "string. assai" } e b1^\markup { \bold { molto \italic agitato } } c @end lilypond @cindex caractères spéciaux en mode markup @cindex mode markup et caractères spéciaux @cindex caractères réservés, impression @cindex impression de caractères réservés @cindex impression de caractères spéciaux @cindex guillemets en mode markup @cindex mode markup et guillemets Un bloc @code{\markup} peut contenir du texte entre guillemets. De telles chaines seront considérées comme des expressions textuelles minimales@tie{}; à ce titre, toute commande de type @emph{markup} ou tout caractère spécial -- tel un @code{\} ou un @code{#} -- sera imprimé littéralement et sans influer sur le formatage du texte. Il est de ce fait possible d'imprimer des guillemets informatiques @code{"} dès lors qu'ils sont précédés d'une oblique inverse. @c KEEP LY @lilypond[quote,verbatim,relative=2] a1^"\italic markup..." a_\markup { \italic "... imprime des lettres en \"italique\" !" } a a @end lilypond Une liste de mots, pour pouvoir être traitée en tant qu'expression distincte, doit être bornée par des @code{"} ou précédée d'une commande. La manière de définir les expressions @emph{markup} aura une influence sur la manière dont elles seront empilées, centrées ou alignées. Dans l'exemple qui suit, la deuxième expression @code{\markup} est traitée tout comme la première@tie{}: @lilypond[quote,verbatim,relative=2] c1^\markup { \center-column { a bbb c } } c1^\markup { \center-column { a { bbb c } } } c1^\markup { \center-column { a \line { bbb c } } } c1^\markup { \center-column { a "bbb c" } } @end lilypond Vous pouvez stocker les étiquettes textuelles en tant que variables, et attacher ces identificateurs à des notes, comme ici@tie{}: @lilypond[quote,verbatim] allegro = \markup { \bold \large Allegro } { d''8.^\allegro d'16 d'4 r2 } @end lilypond @noindent Pour une liste des différentes commandes spécifiques au mode @code{\markup}, consultez l'annexe @ref{Text markup commands} (en anglais). @seealso Manuel de notation : @ref{Text markup commands}. Morceaux choisis : @rlsrnamed{Text,Texte}. Fichiers d'initialisation : @file{scm/markup.scm}. @knownissues Les erreurs de syntaxe en mode @emph{markup} sont peu loquaces. @node Sélection de la fonte et de la taille @unnumberedsubsubsec Sélection de la fonte et de la taille @translationof Selecting font and font size @cindex fonte, changement @cindex changement de fonte @cindex italique @cindex gras @cindex souligné @funindex \italic @funindex italic @funindex \bold @funindex bold @funindex \underline @funindex underline Le mode @emph{markup} autorise des changements élémentaires de la fonte@tie{}: @lilypond[quote,verbatim,relative=2] d1^\markup { \bold { Più mosso } \italic { non troppo \underline Vivo } } r2 r4 r8 d,_\markup { \italic quasi \smallCaps Tromba } f1 d2 r @end lilypond @cindex caratères, taille @cindex texte, taille @funindex \fontsize @funindex fontsize @funindex \smaller @funindex smaller @funindex \larger @funindex larger @funindex \magnify @funindex magnify La taille des caractères se modifie de différentes manières@tie{}: @itemize @item à partir de l'une des tailles standard prédéfinies, @item en étant définie en valeur absolue, @item en adoptant une valeur relative à celle précédemment définie. @end itemize @noindent Voici une illustration de ces trois différentes méthodes@tie{}: @lilypond[quote,verbatim,relative=1] f1_\markup { \tiny espressivo \large e \normalsize intenso } a^\markup { \fontsize #5 Sinfonia \fontsize #2 da \fontsize #3 camera } bes^\markup { (con \larger grande \smaller emozione \magnify #0.6 { e sentimento } ) } d c2 r8 c bes a g1 @end lilypond @cindex indice @cindex exposant @funindex \super @funindex super @funindex \sub @funindex sub Vous pouvez imprimer du texte en indice ou en exposant. Celui-ci sera dans un taille plus petite, mais rien ne s'oppose à ce que vous lui affectiez un taille normale@tie{}: @lilypond[quote,verbatim] \markup { \column { \line { 1 \super st movement } \line { 1 \normal-size-super st movement \sub { (part two) } } } } @end lilypond @cindex fontes, familles Le mode @emph{markup} vous permet de sélectionner d'autres familles de fontes. Par défaut, LilyPond utilise une police avec empattement, du type roman, et tout changement doit être explicite. Dans la dernière ligne de l'exemple qui suit, vous noterez qu'il n'y a aucune différence entre les premier et deuxième mots. @lilypond[quote,verbatim] \markup { \column { \line { Act \number 1 } \line { \sans { Scene I. } } \line { \typewriter { Verona. An open place. } } \line { Enter \roman Valentine and Proteus. } } } @end lilypond @noindent Certaines familles de police spécifiques aux nombres ou aux nuances par exemple, ne disposent pas de tous les caractères, comme nous l'avons vu dans les chapitres @ref{Personnalisation des indications de nuance} et @ref{Indications de reprise manuelles}. @c \concat is actually documented in Align (it is not @c a font-switching command). But we need it here. -vv Lorsqu'un changement survient au milieu d'un mot, il se peut qu'un espacement supplémentaire apparaisse. Il suffit en pareil cas de concaténer les différents éléments@tie{}: @lilypond[quote,verbatim] \markup { \column { \line { \concat { 1 \super st } movement } \line { \concat { \dynamic p , } \italic { con dolce espressione } } } } @end lilypond Une liste des différentes commandes permettant de changer de fonte ou d'utiliser des fontes personnalisées est disponible à l'annexe @ref{Font}. Pour savoir comment personnaliser des fontes, reportez-vous au chapitre @ref{Fontes}. @funindex \teeny @funindex teeny @funindex \tiny @funindex tiny @funindex \small @funindex small @funindex \normalsize @funindex normalsize @funindex \large @funindex large @funindex \huge @funindex huge @funindex \smaller @funindex smaller @funindex \larger @funindex larger @predefined @code{\teeny}, @code{\tiny}, @code{\small}, @code{\normalsize}, @code{\large}, @code{\huge}, @code{\smaller}, @code{\larger}. @endpredefined @seealso Manuel de notation : @ref{Font}, @ref{Personnalisation des indications de nuance}, @ref{Indications de reprise manuelles}, @ref{Fontes}. Morceaux choisis : @rlsrnamed{Text,Texte}. Référence des propriétés internes : @rinternals{TextScript}. Fichiers d'initialisation : @file{scm/define-markup-commands.scm}. @node Alignement du texte @unnumberedsubsubsec Alignement du texte @translationof Text alignment @cindex texte, alignement @cindex alignement du texte @cindex alignement des markups @cindex markups, alignement Cette partie traite de la manière de positionner du texte en mode @emph{markup}. On déplace l'intégralité d'un objet @emph{markup} en utilisant la syntaxe décrite au chapitre @rlearning{Déplacement d'objets}. @c Padding commands should be mentioned on this page, but @c most of these require \box to be more clearly illustrated. -vv @cindex texte, alignement horizontal @cindex alignement horizontal du texte @funindex \left-align @funindex left-align @funindex \center-align @funindex center-align @funindex \right-align @funindex right-align Les objets de type @emph{markup} peuvent s'aligner de différentes manières. Une indication textuelle est par défaut alignée sur son extrémité gauche. Dans l'exemple qui suit, il n'y a aucune différence entre les deux premiers @emph{markups}. @lilypond[quote,verbatim,relative=2] d1-\markup { poco } f d-\markup { \left-align poco } f d-\markup { \center-align { poco } } f d-\markup { \right-align poco } @end lilypond @funindex \halign @funindex halign L'alignement horizontal peut être ajusté à l'aide d'une valeur numérique@tie{}: @lilypond[quote,verbatim,relative=2] a1-\markup { \halign #-1 poco } e' a,-\markup { \halign #0 poco } e' a,-\markup { \halign #0.5 poco } e' a,-\markup { \halign #2 poco } @end lilypond @noindent Certains objets possèdent leurs propres procédures d'alignement, qui annuleront toute spécification d'alignement que vous pourriez affecter à un argument de type @emph{markup} que vous leur auriez fourni. La solution consiste alors à déplacer l'intégralité de ces objets @emph{markup}, comme indiqué par exemple au chapitre @ref{Indications textuelles}. @cindex texte, alignement vertical @cindex alignement vertical du texte @funindex \raise @funindex raise @funindex \lower @funindex lower @funindex \null @funindex null @c QUERY Should the function of ``\null'' be clarified? rp L'alignement vertical est quant à lui un peu plus compliqué. Comme nous l'avons vu ci-avant, les objets @emph{markup} peuvent être déplacés dans leur intégralité. Il est néanmois possible de déplacer certains éléments spécifiques au sein d'un bloc @emph{markup}. En pareil cas, l'élément à déplacer doit être précédé d'un @qq{point d'ancrage} -- un autre élément du @emph{markup} ou un objet invisible. L'exemple qui suit illustre ces deux possibilités. Vous noterez par ailleurs que le dernier @emph{markup}, dépourvu de point d'ancrage, n'est de ce fait pas déplacé. @lilypond[quote,verbatim,relative=1] d2^\markup { Acte I \raise #2 { Scène 1 } } a' g_\markup { \null \lower #4 \bold { Très modéré } } a d,^\markup { \raise #4 \italic { Une forêt. } } a'4 a g2 a @end lilypond @funindex \general-align @funindex general-align @funindex \translate @funindex translate @funindex \translate-scaled @funindex translate-scaled Certaines commandes permettent de régler l'alignement des objets textuels en mode @emph{markup}, tant au niveau horizontal que vertical. Tout objet soumis à ces commandes doit être précédé d'un point d'ancrage. @lilypond[quote,verbatim,relative=1] d2^\markup { Acte I \translate #'(-1 . 2) "Scène 1" } a' g_\markup { \null \general-align #Y #3.2 \bold "Très modéré" } a d,^\markup { \null \translate-scaled #'(-1 . 2) \teeny "Une forêt." } a'4 a g2 a @end lilypond @cindex multi-ligne, markup @cindex markup multi-ligne @cindex multi-ligne, texte @cindex texte multi-ligne @cindex texte en colonnes @cindex colonnes de texte @funindex \column @funindex column @funindex \center-column @funindex center-column Un objet de type @emph{markup} peut contenir plusieurs lignes de texte. Dans l'exemple suivant, chaque élément ou expression ira se placer sur sa propre ligne, tantôt alignée à gauche, tantôt centrée. @lilypond[quote,verbatim] \markup { \column { a "b c" \line { d e f } } \hspace #10 \center-column { a "b c" \line { d e f } } } @end lilypond @cindex centrage du texte sur la page @cindex texte, centrage sur la page @cindex markup, centrage sur la page @funindex \fill-line @funindex fill-line Pareillement, une liste d'éléments ou d'expressions sera répartie sur une ligne entière, voire même centrée sur toute la page s'il n'y a qu'un seul élément. De telles expressions peuvent à leur tour contenir du texte multi-ligne ou une autre expression @emph{markup}. @lilypond[quote,verbatim] \markup { \fill-line { \line { William S. Gilbert } \center-column { \huge \smallCaps "The Mikado" or \smallCaps "The Town of Titipu" } \line { Sir Arthur Sullivan } } } \markup { \fill-line { 1885 } } @end lilypond @cindex plusieurs lignes de texte @cindex justifié, texte @cindex texte justifié @cindex texte sur plusieurs lignes @cindex markup, texte wordwrapped @cindex markup, texte justifié @funindex \wordwrap @funindex wordwrap @funindex \justify @funindex justify Les indications textuelles, lorsqu'elles sont relativement longues, peuvent se répartir sur plusieurs lignes en fonction de la largeur de ligne. Le texte sera alors soit aligné à gauche, soit justifié, comme le montre l'exemple suivant@tie{}: @lilypond[quote,verbatim] \markup { \column { \line \smallCaps { La vida breve } \line \bold { Acto I } \wordwrap \italic { (La escena representa el corral de una casa de gitanos en el Albaicín de Granada. Al fondo una puerta por la que se ve el negro interior de una Fragua, iluminado por los rojos resplandores del fuego.) } \hspace #0 \line \bold { Acto II } \override #'(line-width . 50) \justify \italic { (Calle de Granada. Fachada de la casa de Carmela y su hermano Manuel con grandes ventanas abiertas a través de las que se ve el patio donde se celebra una alegre fiesta) } } } @end lilypond @cindex commandes d'alignement du texte @cindex markup, commandes d'alignement du texte @cindex alignement du texte, commandes Une liste des différentes commandes permettant d'aligner du texte en mode @emph{markup} est disponible à l'annexe @ref{Align}. @seealso Manuel d'initiation : @rlearning{Déplacement d'objets}. Manuel de notation : @ref{Align}, @ref{Indications textuelles}. Morceaux choisis : @rlsrnamed{Text,Texte}. Référence des propriétés internes : @rinternals{TextScript}. Fichiers d'initialisation : @file{scm/define-markup-commands.scm}. @node Éléments graphiques dans du texte formaté @unnumberedsubsubsec Éléments graphiques dans du texte formaté @translationof Graphic notation inside markup @cindex graphisme, tracé @cindex tracé d'objets graphiques @cindex graphiques, tracé d'objets @cindex embedding graphic objects @cindex objets graphiques, tracé Vous pouvez, grâce aux mode @emph{markup}, ajouter divers objets graphiques à votre partition. @cindex décoration du texte @cindex encadrement du texte @cindex texte, encadrement @cindex texte, décoration @cindex markup, ornementation du texte @cindex markup, encadrement du texte @funindex \box @funindex box @funindex \circle @funindex circle @funindex \rounded-box @funindex rounded-box @funindex \bracket @funindex bracket @funindex \hbracket @funindex hbracket Certaines commandes de @emph{markup} permettent d'ornementer des éléments textuels avec des graphismes, à l'instar de l'exemple suivant@tie{}: @lilypond[quote,verbatim] \markup \fill-line { \center-column { \circle Jack \box "in the box" \null \line { Erik Satie \hspace #3 \bracket "1866 - 1925" } \null \rounded-box \bold Prelude } } @end lilypond @cindex espacement autour du texte @cindex texte et rembourrage @cindex markup, rembourrage du texte @funindex \pad-markup @funindex pad-markup @funindex \pad-x @funindex pad-x @funindex \pad-to-box @funindex pad-to-box @funindex \pad-around @funindex pad-around Certaines directives peuvent nécessiter d'accroître l'espacement autour du texte -- voir l'annexe @ref{Align} pour une liste des différentes commandes particulières au mode @emph{markup} ainsi que leur description. @lilypond[quote,verbatim] \markup \fill-line { \center-column { \box "Charles Ives (1874 - 1954)" \null \box \pad-markup #2 "THE UNANSWERED QUESTION" \box \pad-x #8 "A Cosmic Landscape" \null } } \markup \column { \line { \hspace #10 \box \pad-to-box #'(-5 . 20) #'(0 . 5) \bold "Largo to Presto" } \pad-around #3 "String quartet keeps very even time, Flute quartet keeps very uneven time." } @end lilypond @cindex graphisme dans la notation @cindex symboles non musicaux @cindex non musicaux, symboles @cindex notation et graphisme @funindex \combine @funindex combine @funindex \draw-circle @funindex draw-circle @funindex \filled-box @funindex filled-box @funindex \triangle @funindex triangle @funindex \draw-line @funindex draw-line @funindex \arrow-head @funindex arrow-head Vous pouvez imprimer certains graphismes ou symboles sans qu'il n'y ait de texte. Ces objets peuvent même se combiner, à l'instar de n'importe quelle expression @emph{markup}. @lilypond[quote,verbatim] \markup { \combine \draw-circle #4 #0.4 ##f \filled-box #'(-4 . 4) #'(-0.5 . 0.5) #1 \hspace #5 \center-column { \triangle ##t \combine \draw-line #'(0 . 4) \arrow-head #Y #DOWN ##f } } @end lilypond @cindex intégration de graphiques @cindex images, intégration @cindex graphiques, intégration @cindex postscript @funindex \epsfile @funindex epsfile @funindex \postscript @funindex postscript Des fonctionnalités graphiques avancées vous permettent même d'inclure dans une partition un fichier image converti au format PostScript encapsulé (extension @code{eps}), ou bien de tracer un graphique directement dans le fichier source à partir d'instructions PostScript pures. Nous vous conseillons, en pareil cas, de toujours spécifier les dimensions du dessin, comme dans ce qui suit@tie{}: @lilypond[quote,verbatim,relative=1] c1^\markup { \combine \epsfile #X #10 #"./context-example.eps" \with-dimensions #'(0 . 6) #'(0 . 10) \postscript #" -2 3 translate 2.7 2 scale newpath 2 -1 moveto 4 -2 4 1 1 arct 4 2 3 3 1 arct 0 4 0 3 1 arct 0 0 1 -1 1 arct closepath stroke" } c @end lilypond L'annexe @ref{Graphic} répertorie les différentes commandes en matière de graphisme. @seealso Manuel de notation : @ref{Graphic}, @ref{Annotations éditoriales}. Morceaux choisis : @rlsrnamed{Text,Texte}. Référence des propriétés internes : @rinternals{TextScript}. Fichiers d'initialisation : @file{scm/define-markup-commands.scm}, @file{scm/stencil.scm}. @node Notation musicale dans du texte formaté @unnumberedsubsubsec Notation musicale dans du texte formaté @translationof Music notation inside markup @cindex notation dans un markup @cindex musique dans un markup @cindex markup, inclusion de musique Divers éléments de notation peuvent orner une partition, au moyen d'un objet @emph{markup}. Notes et altérations sont données à l'aide d'instructions @emph{markup}@tie{}: @lilypond[quote,verbatim,relative=2] a2 a^\markup { \note #"4" #1 = \note-by-number #1 #1 #1.5 } b1_\markup { \natural \semiflat \flat \sesquiflat \doubleflat } \glissando a1_\markup { \natural \semisharp \sharp \sesquisharp \doublesharp } \glissando b @end lilypond Le mode @emph{markup} permet d'accéder à d'autres objets de notation@tie{}: @lilypond[quote,verbatim,relative=1] g1 bes ees-\markup { \finger 4 \tied-lyric #"~" \finger 1 } fis_\markup { \dynamic rf } bes^\markup { \beam #8 #0.1 #0.5 } cis d-\markup { \markalphabet #8 \markletter #8 } @end lilypond En règle générale, tout symbole musical peut être inclus dans un @emph{markup}, comme le montre l'exemple qui suit. Ces différents symboles sont répertoriés dans l'annexe @ref{La fonte Feta}. @lilypond[quote,verbatim,relative=2] c2 c'^\markup { \musicglyph #"eight" } c,4 c,8._\markup { \musicglyph #"clefs.G_change" } c16 c2^\markup { \musicglyph #"timesig.neomensural94" } @end lilypond Le sous-chapitre @ref{Tout savoir sur les fontes} contient d'autres informations sur l'impression de glyphes non alphabétiques, tels que des crochets ou accolades. Le mode @emph{markup} supporte aussi les diagrammes spécifiques à certains instruments@tie{}: @lilypond[quote,verbatim,relative=2] c1^\markup { \fret-diagram-terse #"x;x;o;2;3;2;" } c^\markup { \harp-pedal #"^-v|--ov^" } c c^\markup { \combine \musicglyph #"accordion.discant" \combine \raise #0.5 \musicglyph #"accordion.dot" \raise #1.5 \musicglyph #"accordion.dot" } @end lilypond @c The accordion diagram is actually taken from a snippet. @noindent La documentation sur ces diagrammes se trouvent à l'annexe @ref{Instrument Specific Markup}. @cindex partition incluse dans un markup @cindex markup, inclusion de partition Rien ne s'oppose à ce qu'une étiquette ne comporte une partition. Il suffit que l'expression en question contienne un bloc @code{\score} incluant un bloc @code{\layout}. @lilypond[quote,verbatim,ragged-right] \relative { c4 d^\markup { \score { \relative { c4 d e f } \layout { } } } e f } @end lilypond Les différentes commandes @emph{markup} relatives à la notation musicale sont répertoriées à l'annexe @ref{Music}. @seealso Manuel de notation : @ref{Music}, @ref{La fonte Feta}, @ref{Tout savoir sur les fontes}. Morceaux choisis : @rlsrnamed{Text,Texte}. Référence des propriétés internes : @rinternals{TextScript}. Fichiers d'initialisation : @file{scm/define-markup-commands.scm}, @file{scm/fret-diagrams.scm}, @file{scm/harp-pedals.scm}. @node Texte avec sauts de page @unnumberedsubsubsec Texte avec sauts de page @translationof Page wrapping text @cindex multi-page, markup @cindex markup multi-page @cindex markup, texte multi-page @cindex plusieurs pages de texte @funindex \markuplines @funindex markuplines @funindex \justified-lines @funindex justified-lines @funindex \wordwrap-lines @funindex wordwrap-lines Alors que @code{\markup} s'utilise pour traiter un bloc de texte insécable, @code{\markuplines} permet, employé en tête de partition, d'obtenir un bloc de lignes réparties différemment et, le cas échéant, sur plusieurs pages. @c KEEP LY @lilypond[quote,verbatim] \markuplines { \justified-lines { Un long texte constitué de lignes justifiées. ... } \wordwrap-lines { Un autre grand paragraphe. ... } ... } @end lilypond Cette syntaxe prend en charge une liste de @emph{markups}@tie{}; il peut s'agir @itemize @item d'une suite de commandes générant à leur tour des lignes de texte, @item d'une liste de lignes de texte, @item d'une liste d'étiquettes. @end itemize Les différentes commandes permettant de générer des listes de lignes se trouve dans l'annexe @ref{Text markup list commands}. @seealso Manuel de notation : @ref{Text markup list commands}, Morceaux choisis : @rlsrnamed{Text,Texte}. @c en attendant redécoupage et création de "extending" -jcm @c Extension : @c @rextend{New markup list command definition}. Référence des propriétés internes : @rinternals{TextScript}. Fichiers d'initialisation : @file{scm/define-markup-commands.scm}. @funindex \markuplines @funindex markuplines @predefined @code{\markuplines}. @endpredefined @node Fontes @subsection Fontes @translationof Fonts Ce chapitre est consacré aux fontes et polices de caractère, à leur gestion. Vous y apprendrez aussi comment changer de fonte en cours de partition. @menu * Tout savoir sur les fontes:: * Attribution d'une fonte en particulier:: * Choix des fontes par défaut:: @end menu @node Tout savoir sur les fontes @unnumberedsubsubsec Tout savoir sur les fontes @translationof Fonts explained @cindex Pango @cindex fontes, généralités @cindex accolades, taille @cindex fontes et markup @cindex markup et fontes @funindex font-interface La gestion des fontes est assurée par plusieurs bibliothèques@tie{}: FontConfig se charge de répertorier les différentes fontes installées sur votre système@tie{}; quant à Pango, elle se charge plus particulièrement de leur rendu. Les fontes musicales peuvent se décrire comme un jeu de glyphes spécifiques regroupés dans plusieurs familles. L'exemple qui suit montre la syntaxe à utiliser pour accéder, en mode @emph{markup}, aux différentes fontes @code{feta} non textuelles de LilyPond. @lilypond[quote,verbatim,relative=2] a1^\markup { \vcenter { \override #'(font-encoding . fetaBraces) \lookup #"brace120" \override #'(font-encoding . fetaNumber) \column { 1 3 } \override #'(font-encoding . fetaDynamic) sf \override #'(font-encoding . fetaMusic) \lookup #"noteheads.s0petrucci" } } @end lilypond @noindent Tous ces glyphes, à l'exception des accolades qui sont regroupées dans @code{fetaBraces}, sont accessibles avec la syntaxe indiquée dans @ref{Notation musicale dans du texte formaté}. Une remarque s'impose au sujet des glyphes contenus dans @code{fetaBraces}@tie{}: chacun d'eux est formé du mot @emph{brace} auquel est accolé un numéro d'ordre. Lorsque vous désirez imprimer une accolade, vous devez la @qq{chercher} par son numéro d'ordre -- d'où la fonction @code{\lookup} de l'exemple ci-dessus --, tout en sachant qu'il est compris entre @code{0} (la plus petite) et @code{575} (la plus grande). Vous serez souvent amené à procéder par tatonnement pour arriver au résultat optimal. Par ailleurs, @code{fetaBraces} ne comporte que des accolades ouvrantes. Pour obtenir une accolade fermante, il suffit d'appliquer une rotation au glyphe sélectionné, comme indiqué au chapitre @ref{Rotation des objets}. Vous disposez de trois familles de fontes textuelles@tie{}: @emph{roman} pour la police sérif ou avec empattement -- fixée par défaut à New Century Schoolbook --, une police sans empattement (@emph{sans} sérif) et une à chasse fixe (ou monospace) -- les deux dernières étant déterminées par l'installation de Pango. Chaque famille dispose en principe de différents styles et niveau de gras. L'exemple qui suit illustre la manière de changer la famille, le style, la graisse ou la taille. Notez bien que l'argument fourni à @code{font-size} correspond à la correction à apporter à la taille par défaut. @lilypond[quote,verbatim,relative=2] \override Score.RehearsalMark #'font-family = #'typewriter \mark \markup "Ouverture" \override Voice.TextScript #'font-shape = #'italic \override Voice.TextScript #'font-series = #'bold d2.^\markup "Allegro" \override Voice.TextScript #'font-size = #-3 c4^smaller @end lilypond @noindent Cette syntaxe s'applique aussi en mode @emph{markup}, bien que celui-ci dispose d'une syntaxe allégée comme nous l'avons vu dans @ref{Sélection de la fonte et de la taille}@tie{}: @lilypond[quote,verbatim] \markup { \column { \line { \override #'(font-shape . italic) \override #'(font-size . 4) Idomeneo, } \line { \override #'(font-family . typewriter) { \override #'(font-series . bold) re di } \override #'(font-family . sans) Creta } } } @end lilypond En plus de pouvoir jongler entre les différentes fontes prédéfinies, LilyPond vous permet d'en utiliser d'autres, ce qui fait l'objet des deux prochaines parties@tie{}: @ref{Attribution d'une fonte en particulier} et @ref{Choix des fontes par défaut}. @seealso Manuel de notation : @ref{La fonte Feta}, @ref{Notation musicale dans du texte formaté}, @ref{Sélection de la fonte et de la taille}, @ref{Font}. @node Attribution d'une fonte en particulier @unnumberedsubsubsec Attribution d'une fonte en particulier @translationof Single entry fonts Vous pouvez utiliser n'importe quelle police installée sur votre système, du moment où elle est accessible par Fontconfig, en respectant la syntaxe suivante@tie{}: @lilypond[quote,verbatim,relative=2] \override Staff.TimeSignature #'font-name = #"Bitstream Charter" \override Staff.TimeSignature #'font-size = #2 \time 3/4 a1_\markup { \override #'(font-name . "Vera Bold") { Vera Bold } } @end lilypond @cindex fontes disponibles @cindex disponibilité des fontes @funindex show-available-fonts Pour obtenir la liste de toutes les polices disponibles sur votre machine, lancez @example lilypond -dshow-available-fonts toto @end example @noindent (quel qu'il soit, le dernier argument est obligatoire). @seealso Manuel de notation : @ref{Tout savoir sur les fontes}, @ref{Choix des fontes par défaut}. Morceaux choisis : @rlsrnamed{Text,Texte}. @c A source file gets never installed... @c Fichiers d'initialisation : @c @file{lily/font-config-scheme.cc}. @node Choix des fontes par défaut @unnumberedsubsubsec Choix des fontes par défaut @translationof Entire document fonts Vous pouvez tout à fait préférer un autre jeu de polices par défaut que celui de LilyPond. Il vous faudra alors spécifier les différentes familles, en respectant l'ordre @emph{roman}, @emph{sans empattement} et @emph{monospace}, comme dans l'exemple suivant. Pour plus d'explications sur les fontes, relisez @ref{Tout savoir sur les fontes}. @cindex polices, choix par défaut @cindex fontes, choix par défaut @funindex make-pango-font-tree @lilypond[verbatim,quote] \paper { myStaffSize = #20 #(define fonts (make-pango-font-tree "Times New Roman" "Nimbus Sans" "Luxi Mono" (/ myStaffSize 20))) } \relative c'{ c1-\markup { roman, \sans sans, \typewriter typewriter. } } @end lilypond @c we don't do Helvetica / Courier, since GS incorrectly loads @c Apple TTF fonts @seealso Manuel de notation : @ref{Tout savoir sur les fontes}, @ref{Attribution d'une fonte en particulier}, @ref{Sélection de la fonte et de la taille}, @ref{Font}.