@c -*- coding: utf-8; mode: texinfo; documentlanguage: fr -*-

@ignore
   Translation of GIT committish: 8c163f2f197eeb545c19c72505e53aec7c713e09

   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.21.0"

@c Translators: Jean-Charles Malahieude
@c Translation checkers: Valentin Villenave, John Mandereau


@node Texte
@section Texte
@translationof Text

@lilypondfile[quote]{snippets/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.

@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
* Vue d'ensemble des objets textuels::
* Commentaires textuels::
* Indication textuelle avec extension::
* Indications textuelles::
* Texte indépendant::
@end menu


@node Vue d'ensemble des objets textuels
@unnumberedsubsubsec Vue d'ensemble des objets textuels
@translationof Text objects overview

@funindex \markup
@cindex objet texte
@cindex texte, objet
@cindex @emph{markup}, objet
@cindex objet @emph{markup}

Les objets textuels se saisissent soit comme de simples chaînes de
caractères entre quillemets informatique, soit dans un bloc
@code{\markup} qui acceptte une mise en forme fine du texte et des
réhaussements graphiques comme indiqué dans
@ref{Mise en forme du texte}.

En tant que tels, les blocs @emph{markup} peuvent s'utiliser :
@itemize
@item
dans tout objet @code{TextScript} attaché à des notes par
@code{-}, @code{^} ou@tie{}@code{_} ; voir
see @ref{Commentaires textuels} ;

@item
en tant que bandeau (@emph{spanner}) lorsqu'une indication se prolongge
sur plusieurs temps ou mesures ; voir
@ref{Indication textuelle avec extension} ;

@item
dans toute marque affichée au-dessus de la partition, tels les objets
@code{RehearsalMark} ou @code{MetronomeMark} introduits respectivement
par les mots-clé @code{\mark} ou @code{\tempo} ; voir
@ref{Indications textuelles} ;

@item
en tant que bloc @emph{markup} indépendant, saisi en dehors de tout bloc
@code{\score} -- dans ce cas précis la commande
@code{\markup@tie{}@{...@}} est obligatoire et ne saurait être remplacée
par du simple texte borné par des guillemets informatiques ; voir
@ref{Texte indépendant} ;

@item
dans toute définition qu sein d'un bloc @code{\header} (par ex.
@code{title}, @code{subtitle}, @code{composer}), ou dans des éléments
spécifiques au bloc @code{\paper} tel que @code{evenHeaderMarkup} pour
les numéros de page. Ceci est abordé dans
@ref{Titres et entêtes}.
@end itemize

De nombreux autres objets basés sur du texte peuvent se saisir sous
forme de bloc @emph{markup} même si ce n'esp pas leur usage premier.
@itemize
@item
Les doigtés peuvent se remplacer par des blocs de @emph{markup} dès lors
qu'ils sont introduits par la commande @code{\finger} ; voir
@ref{Doigtés}.

@item
Les syllabes des paroles peuvent être formatées avec une commande
@code{\markup} ; voir
@ref{Vue d'ensemble de la musique vocale}.

@item
Les noms des accords sont en fait définis sous forme de blocs de
@emph{markup} et peuvent donc être redéfinis de la même manière pour
adapter les modificateurs d'accord ou les exceptions ; voir
@ref{Gravure des accords}.

@item
Les nuances se saisissent de la manière la plus simple. Il est néanmoins
possible de définir sa
@rusernamed{Personnalisation des indications de nuance, propre
indication} sous forme d'objet @emph{markup}. Certaines nuances, comme
un crescendo, sont affichés sous forme de bandeau et peuvent être
redéfinies au travers de certaines propriétés telle que
@code{crescendoText} ; voir @ref{Nuances}.

@item
Des objets moins courants sont constitués de blocs @emph{markup}, tels
les indications en @ref{Info-bulle}.
@end itemize

Il est en fait possible d'utiliser @code{\markup} pour personnaliser
l'apparence de pratiquement n'importe quel objet graphique (@emph{grob})
en appliquant une dérogation soit à sa propriété @code{text} s'il en
dispose ou de sa propriété @code{stencil}. Une partie de la logique qui
rend ceci possible est expliquée dans
@ressay{Flexibilité architecturale}.

L'exemple qui suit illustre l'ubiquité des blocs @emph{markup} non
seulement comme les objets ci-dessus présentés, mais aussi en remplaçant
des objets musicaux par des objets textuels de différentes manières.

@lilypond[quote, verbatim,line-width=4\in]
\header { title = \markup "Header" }

dyn =
#(make-dynamic-script #{ \markup \text "DynamicText" #})

\markup \box "Top-level markup"

\score {
  <<
    \new ChordNames
    \with {
      majorSevenSymbol = \markup "majorSevenSymbol"
    }
    \chordmode { c1:maj7 }
    \new Staff {
      \tempo \markup "MetronomeMark"
      \mark \markup \smaller "RehearsalMark"
      \once \override TupletNumber.text =
        \markup "TupletNumber"
      \tuplet 3/2 {
        \once \override NoteHead.stencil =
          #ly:text-interface::print
        \once \override NoteHead.text =
          \markup \lower #0.5 "NoteHead"
        c''8^\markup \italic "TextScript"
        a'\finger \markup \text "Fingering"
        \once \override Rest.stencil =
          #(lambda (grob)
             (grob-interpret-markup grob #{
               \markup  "Rest"
               #}))
        r
      }
    }
    \new Lyrics \lyricmode {
      \markup \smallCaps "LyricText" 1
    }
    \new Dynamics { s1\dyn }
  >>
}
@end lilypond

@morerefs
Manuel de notation :
@ref{Commentaires textuels},
@ref{Doigtés},
@ref{Gravure des accords},
@ref{Indication textuelle avec extension},
@ref{Indications textuelles},
@ref{Info-bulle},
@ref{Mise en forme du texte},
@ref{Nuances},
@ref{Personnalisation des indications de nuance},
@ref{Texte indépendant},
@ref{Vue d'ensemble de la musique vocale}.

Essai sur la gravure musicale automatisée :
@ressay{Flexibilité architecturale}.

Morceaux choisis :
@rlsr{Text}.


@node Commentaires textuels
@unnumberedsubsubsec Commentaires textuels
@translationof Text scripts

@cindex étiquette de texte
@cindex bloc de texte
@cindex ajout de texte

Vous pouvez ajouter à une partition des indications sous forme textuelle,
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 { a'8^"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 {
  a'8^\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 :
dans l'exemple qui suit, le premier commentaire n'influe pas sur
l'espacement, à l'inverse du second.

@lilypond[quote,verbatim]
\relative {
  a'8^"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 \textLengthOff

@predefined
@code{\textLengthOn},
@code{\textLengthOff}.
@endpredefined

@morerefs
Manuel d'initiation :
@rlearning{Positionnement des objets}.

Manuel de notation :
@ref{Articulations et ornements},
@ref{Direction et positionnement},
@ref{Mise en forme du texte}.

Morceaux choisis :
@rlsrnamed{Text,Texte}.

Référence des propriétés internes :
@rinternals{TextScript}.

@cindex texte hors marges
@cindex marge, texte qui dépasse
@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 ;
vous pouvez toutefois vous en affranchir en ajoutant

@example
\override Score.PaperColumn.keep-inside-line = ##f
@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 @emph{rallentando},
@emph{accelerando} ou @emph{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 « extenseurs », se dessinent
entre deux notes à l'aide de la syntaxe suivante :

@lilypond[verbatim,quote]
\relative {
  \override TextSpanner.bound-details.left.text = "rit."
  b'1\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 ;
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,verbatim]
\relative {
  \override TextSpanner.bound-details.left.text =
    \markup { \upright "rit." }
  b'1\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}.

@funindex \textSpannerUp
@funindex \textSpannerDown
@funindex \textSpannerNeutral

@predefined
@code{\textSpannerUp},
@code{\textSpannerDown},
@code{\textSpannerNeutral}.
@endpredefined

@snippets

@cindex nuance, extension, personnalisation
@cindex extenseur, nuance, personnalisation
@lilypondfile[verbatim,quote,texidoc,doctitle]
{snippets/dynamics-text-spanner-postfix.ly}

@lilypondfile[verbatim,quote,texidoc,doctitle]
{snippets/dynamics-custom-text-spanner-postfix.ly}

@morerefs
Manuel de notation :
@ref{Mise en forme du texte},
@ref{Nuances},
@ref{Styles de ligne}.

Morceaux choisis :
@rlsrnamed{Text,Texte},
@rlsrnamed{Expressive marks,Signes d'interprétation}.

Référence des propriétés internes :
@rinternals{TextSpanner}.

@knownissues
LilyPond ne peut traiter qu'un seul extenseur à la fois par voix.


@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 barre de mesure, symbole au dessus

@funindex \mark
@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 {
  \mark "Verse"
  c'2 g'
  \bar "||"
  \mark "Chorus"
  g2 c,
  \bar "|."
}
@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 {
  <c' e>1
  \mark \markup { \italic { colla parte } }
  <d f>2 <e g>
  <c f aes>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 {
  <bes' f>2 <aes d>
  \mark \markup { \musicglyph "scripts.ufermata" }
  <e g>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,ragged-right]
\relative c'' {
  \mark "Allegro"
  c1 c
  \mark "assai" \break
  c  c
}
@end lilypond

@funindex \markLengthOn
@funindex \markLengthOff

@predefined
@code{\markLengthOn},
@code{\markLengthOff}.
@endpredefined

@snippets

@cindex fin de ligne, repère, positionnement
@cindex repère, positionnement en fin de ligne
@lilypondfile[verbatim,quote,ragged-right,texidoc,doctitle]
{snippets/printing-marks-at-the-end-of-a-line.ly}

@cindex repère, sur toutes les portées
@funindex Mark_engraver
@funindex Staff_collecting_engraver
@lilypondfile[verbatim,quote,ragged-right,texidoc,doctitle]
{snippets/printing-marks-on-every-staff.ly}

@morerefs
Manuel de notation :
@ref{Indications de repère},
@ref{La fonte Emmentaler},
@ref{Mise en forme du texte},
@ref{Notation musicale dans du texte formaté}.

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, texte
@cindex texte, top-level
@cindex indépendant, texte

@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 \markuplist

@predefined
@code{\markup},
@code{\markuplist}.
@endpredefined

@snippets

@cindex texte en colonnes
@cindex colonnes, texte
@lilypondfile[verbatim,quote,ragged-right,texidoc,doctitle]
{snippets/stand-alone-two-column-markup.ly}

@morerefs
Manuel de notation :
@ref{Mise en forme du texte},
@ref{Plusieurs partitions dans un même ouvrage},
@ref{Structure de fichier},
@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é
@cindex annotation

@funindex \markup

La commande @code{\markup} permet d'ajouter du texte et dispose de sa
propre syntaxe que nous appellerons le « mode @emph{markup} ». De tels
blocs peuvent s'utiliser partout, comme indiqué dans
@ref{Vue d'ensemble des objets textuels}.

@cindex @emph{markup}, expression
@cindex expression @emph{markup}
@cindex @emph{markup}, syntaxe
@cindex syntaxe du mode @emph{markup}

La syntaxe du mode @emph{markup} n'est pas différente de celle des
autres modes de LilyPond : une expression @code{\markup} est bornée
par des accolades @code{@{ @dots{} @}}.  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 {
  a'1-\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ère réservé, impression
@cindex impression de caractère réservé
@cindex impression de caractères spéciaux
@cindex guillemets en mode @emph{markup}
@cindex mode @emph{markup} et guillemets

Un bloc @code{\markup} peut contenir du texte entre guillemets.  De
telles chaînes seront considérées comme des expressions textuelles
minimales ; à 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 repeat double quote for pairing "

@c KEEP LY
@lilypond[quote,verbatim]
\relative {
  a'1^"\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 :
@c repeat double quote for pairing "

@lilypond[quote,verbatim]
\relative c'' {
  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 :

@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{Commandes pour markup} (en
anglais).@*
Le fonctionnement interne de ces commandes et la façon d'en implémenter
de nouveaux est abordée dans @rextend{Fonctions pour markups}.

@morerefs
Manuel de notation :
@ref{Commandes pour markup},
@ref{Vue d'ensemble des objets textuels}.

Manuel d'extension des fonctionnalités :
@rextend{Fonctions pour markups}

Fichiers d'initialisation :
@file{scm/markup.scm}.

Morceaux choisis :
@rlsrnamed{Text,Texte}.

@knownissues
Les messages d'erreur de syntaxe en mode @emph{markup} sont peu
explicites.


@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 \bold
@funindex \underline

Le mode @emph{markup} autorise des changements élémentaires de la
fonte :

@lilypond[quote,verbatim]
\relative {
  d''1^\markup {
    \bold { Più mosso }
    \italic { non troppo \underline Vivo }
  }
  r2 r4 r8
  d,_\markup { \italic quasi \smallCaps Tromba }
  f1 d2 r
}
@end lilypond

@cindex caractère, taille
@cindex texte, taille

@funindex \abs-fontsize
@funindex \fontsize
@funindex \smaller
@funindex \larger
@funindex \magnify

La taille des caractères se modifie, relativement à la taille globale
des portées, de différentes manières.

Vous pouvez adopter l'une des tailles prédéfinies, comme ici :

@lilypond[quote,verbatim]
\relative b' {
  b1_\markup { \huge Sinfonia }
  b1^\markup { \teeny da }
  b1-\markup { \normalsize camera }
}
@end lilypond

Vous pouvez la modifier relativement à sa valeur précédente :

@lilypond[quote,verbatim]
\relative b' {
  b1_\markup { \larger Sinfonia }
  b1^\markup { \smaller da }
  b1-\markup { \magnify #0.6  camera }
}
@end lilypond

Vous pouvez l'augmenter ou la diminuer par rapport à la taille globale
de portée :

@lilypond[quote,verbatim]
\relative b' {
  b1_\markup { \fontsize #-2 Sinfonia }
  b1^\markup { \fontsize #1 da }
  b1-\markup { \fontsize #3 camera }
}
@end lilypond

Vous pouvez lui attribuer une valeur arbitraire quelle que soit la
taille de portée globale :

@lilypond[quote,verbatim]
\relative b' {
  b1_\markup { \abs-fontsize #20 Sinfonia }
  b1^\markup { \abs-fontsize #8 da }
  b1-\markup { \abs-fontsize #14 camera }
}
@end lilypond

Lorsque le texte comporte des espaces, mieux vaut le borner par des
guillemets informatiques ; s'en suivra une meilleure adéquation entre la
taille des espaces et celle des autres caractères :

@lilypond[quote,verbatim]
\markup \fontsize #6 \bold { Sinfonia da camera }
\markup \fontsize #6 \bold { "Sinfonia da camera" }
@end lilypond

@cindex indice
@cindex exposant

@funindex \super
@funindex \sub
@funindex \normal-size-super

Vous pouvez imprimer du texte en indice ou en exposant.  Celui-ci sera
dans une taille plus petite, mais rien ne s'oppose à ce que vous lui
affectiez un taille normale :

@lilypond[quote,verbatim]
\markup {
  \column {
    \line { 1 \super st movement }
    \line { 1 \normal-size-super st movement
      \sub { (part two) }  }
  }
}
@end lilypond

@cindex fonte, famille

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 :

@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 \tiny
@funindex \small
@funindex \normalsize
@funindex \large
@funindex \huge
@funindex \smaller
@funindex \larger

@predefined
@code{\teeny},
@code{\tiny},
@code{\small},
@code{\normalsize},
@code{\large},
@code{\huge},
@code{\smaller},
@code{\larger}.
@endpredefined

@morerefs
Manuel de notation :
@rusernamed{Font,Fonte},
@ref{Fontes},
@ref{Indications de reprise manuelles},
@ref{Personnalisation des indications de nuance}.

Fichiers d'initialisation :
@file{scm/define-markup-commands.scm}.

Morceaux choisis :
@rlsrnamed{Text,Texte}.

Référence des propriétés internes :
@rinternals{TextScript}.

@knownissues
Le recours aux commandes @code{\teeny}, @code{\tiny}, @code{\small},
@code{\normalsize}, @code{\large} et @code{\huge} produiront des
espacements nettement moins réguliers que si vous utilisez
@code{\fontsize}.


@node Alignement du texte
@unnumberedsubsubsec Alignement du texte
@translationof Text alignment

@cindex texte, alignement
@cindex alignement du texte
@cindex alignement des @emph{markups}
@cindex @emph{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}.

@cindex texte, alignement horizontal
@cindex alignement horizontal du texte

@funindex \left-align
@funindex \center-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}. Cet exemple indique aussi
différentes syntaxes permettant pour les commandes d'alignement.

@lilypond[quote,verbatim]
\relative {
  d''1-\markup { poco }
  f
  d-\markup { \left-align poco }
  f
  d-\markup { \center-align { poco } }
  f
  d-\markup \right-align { poco }
}
@end lilypond

@funindex \halign

L'alignement horizontal peut être ajusté à l'aide d'une valeur
numérique :

@lilypond[quote,verbatim]
\relative {
  a'1-\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

@cindex décalage horizontal dans un @emph{markup}
@cindex @emph{markup} et décalage horizontal
@funindex \hspace

Enfin, les mots et tout autre objet peuvent se déplacer en les faisant
précéder d'un décalage. Un décalage négatif est possible, ce qui aura
pour effet de déplacer les objets qui le suivent dans la direction
opposée. Bien que le décalage soit normalement invisible, des commandes
spécifiques permettent de le mettre en évidence dans l'exemple
ci-dessous :

@lilypond[quote,verbatim]
\relative {
  d''1-\markup { poco }
  f
  d-\markup { \with-color #darkred \box \hspace #4 poco }
  f
  d-\markup { \with-color #darkred \box \hspace #-4 poco }
  f
  d-\markup { \with-color #darkred \box \hspace #10 poco }
}
@end lilypond

@noindent
Certains objets possèdent leurs propres procédures d'alignement, qui
annuleront toute spécification d'alignement que vous pourriez leur
affecter.  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 \lower
@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éanmoins 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 « 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 {
  d'2^\markup {
    Acte I
    \raise #2 { Scène 1 }
  }
  a'
  g_\markup {
    \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 \translate
@funindex \translate-scaled

Certaines commandes permettent de régler l'alignement des objets
textuels en mode @emph{markup}, tant au niveau horizontal que vertical.

@lilypond[quote,verbatim]
\relative {
  d'2^\markup {
    Acte I
    \translate #'(-1 . 2) "Scène 1"
  }
  a'
  g_\markup {
    \general-align #Y #3.2 \bold "Très modéré"
  }
  a
  d,^\markup \translate-scaled #'(-1 . 2) \teeny {
   "Une forêt."
  }
  a'4 a g2 a
}
@end lilypond

@cindex décalage vertical dans un @emph{markup}
@cindex @emph{markup} et décalage vertical
@funindex \vspace

Ici aussi, un décalage (positif ou négatif) constitue un moyen efficace
de positionner verticalement des objets empilés dans un @emph{markup} :

@lilypond[quote,verbatim]
\relative {
  d'2^\markup {
    Acte I
    \column {
      \with-color #darkred \box \vspace #-1
      "Scène 1"
    }
  }
  a'
  g_\markup \column {
    \with-color #darkred \box \vspace #1
    "Très modéré"
  }
  a
  d,^\markup \column {
   "Une forêt."
    \with-color #darkred \box \vspace #2
  }
  a'4 a g2 a
}
@end lilypond

@cindex multiligne, @emph{markup}
@cindex @emph{markup} multiligne
@cindex multiligne, texte
@cindex texte multiligne
@cindex texte en colonnes
@cindex colonnes de texte

@funindex \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 @emph{markup}, centrage sur la page

@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 multiligne 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 text, line width
@cindex markup text, line width

@funindex line-width

Les éléments peuvent se répartir sur une largeur spécifiée par une
dérogation à la propriété @code{line-width}. Celle-ci est réglé par
défaut à @code{#f}, autrement dit l'entièreté de la ligne :

@lilypond[quote,verbatim]
\markup {
  \column {
    \fill-line { left center right }
    \null
    \override #'(line-width . 30)
    \fill-line { left center right }
  }
}
@end lilypond

@cindex plusieurs lignes de texte
@cindex justifié, texte
@cindex texte justifié
@cindex texte sur plusieurs lignes
@cindex @emph{markup}, texte au kilomètre
@cindex @emph{markup}, texte justifié

@funindex \wordwrap
@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 :

@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 @emph{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}.

@morerefs
Manuel d'initiation :
@rlearning{Déplacement d'objets}.

Manuel de notation :
@rusernamed{Align,Alignement},
@ref{Indications textuelles}.

Fichiers d'initialisation :
@file{scm/define-markup-commands.scm}.

Morceaux choisis :
@rlsrnamed{Text,Texte}.

Référence des propriétés internes :
@rinternals{TextScript}.


@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'objet graphique
@cindex graphique, tracé d'objet
@cindex intégration d'objet graphique
@cindex objet graphique, tracé

Vous pouvez, grâce au 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 @emph{markup}, ornementation du texte
@cindex @emph{markup}, encadrement du texte

@funindex \box
@funindex \circle
@funindex \rounded-box
@c `@funindex \bracket' is auto-generated, too
@funindex \bracket
@funindex \hbracket

Certaines commandes de @emph{markup} permettent d'ornementer des
éléments textuels avec des graphismes, à l'instar de l'exemple
suivant :

@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 @emph{markup}, rembourrage du texte

@funindex \pad-markup
@funindex \pad-x
@funindex \pad-to-box
@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,line-width=14\cm]
\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"
  }
  \box \pad-around #3 "String quartet keeps very even time."
}
@end lilypond

@cindex graphisme dans la notation
@cindex symbole non musical
@cindex non musical, symbole
@cindex notation et graphisme

@funindex \combine
@funindex \draw-circle
@funindex \filled-box
@funindex \triangle
@funindex \draw-line
@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 graphique
@cindex image, intégration
@cindex graphique, intégration
@cindex postscript

@funindex \epsfile
@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 :

@lilypond[quote,verbatim,fragment]
c'1^\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.

@morerefs
Manuel de notation :
@rusernamed{Align,Alignement},
@ref{Annotations éditoriales},
@ref{Dimensions},
@rusernamed{Graphic,Graphique}.

Fichiers d'initialisation :
@file{scm/define-markup-commands.scm},
@file{scm/stencil.scm}.

Morceaux choisis :
@rlsrnamed{Text,Texte}.

Référence des propriétés internes :
@rinternals{TextScript}.


@node Notation musicale dans du texte formaté
@unnumberedsubsubsec Notation musicale dans du texte formaté
@translationof Music notation inside markup

@cindex notation dans un @emph{markup}
@cindex musique dans un @emph{markup}
@cindex @emph{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} :

@lilypond[quote,verbatim,fragment]
a'2 a'^\markup {
  \note {4} #1
  =
  \note-by-number #1 #1 #1.5
}
b'1_\markup {
  \natural \semiflat \flat
  \sesquiflat \doubleflat
}
\glissando
a'1_\markup {
  \natural \semisharp \sharp
  \sesquisharp \doublesharp
}
\glissando b'
@end lilypond

Le mode @emph{markup} permet d'accéder à d'autres objets de
notation :

@lilypond[quote,verbatim]
\relative {
  g1 bes
  ees\finger \markup \tied-lyric "4~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 Emmentaler}.

@lilypond[quote,verbatim]
\relative {
  c''2
  c'^\markup { \musicglyph "eight" }
  c,4
  c,8._\markup { \musicglyph "clefs.G_change" }
  c16
  c2^\markup { \musicglyph "timesig.neomensural94" }
}
@end lilypond

La rubrique @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 :

@lilypond[quote,verbatim]
\relative {
  c''1^\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 trouve à l'annexe
@ref{Instrument Specific Markup}.

@cindex partition incluse dans un @emph{markup}
@cindex @emph{markup}, inclusion de partition

Rien ne s'oppose à ce qu'une étiquette ne comporte une partition.

@lilypond[quote,verbatim]
\relative {
  c'4 d^\markup {
    \score {
      \relative { c'4 d e f }
      \layout { }
    }
  }
  e f |
  c d e f
}
@end lilypond

Les différentes commandes @emph{markup} relatives à la notation musicale
sont répertoriées à l'annexe @ref{Music}.

@morerefs
Manuel de notation :
@ref{La fonte Emmentaler},
@rusernamed{Music,Musique},
@ref{Tout savoir sur les fontes}.

Fichiers d'initialisation :
@file{scm/define-markup-commands.scm},
@file{scm/fret-diagrams.scm},
@file{scm/harp-pedals.scm}.

Morceaux choisis :
@rlsrnamed{Text,Texte}.

Référence des propriétés internes :
@rinternals{TextScript}.

@knownissues
L'espacement vertical d'un @code{\score} contenu dans un objet
@emph{markup} se contrôle par la propriété @code{baseline-skip}. Tout
réglage au sein d'un bloc @code{\paper} est ignoré.


@node Texte avec sauts de page
@unnumberedsubsubsec Texte avec sauts de page
@translationof Page wrapping text

@cindex multipage, @emph{markup}
@cindex @emph{markup}  multipage
@cindex @emph{markup}, texte multipage
@cindex plusieurs pages de texte

@funindex \markuplist
@funindex \justified-lines
@funindex \wordwrap-lines

Alors que @code{\markup} s'utilise pour traiter un bloc de texte
insécable, @code{\markuplist} 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]
\markuplist {
  \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} ; 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{Commandes pour liste de markups} (en
anglais).

@predefined
@code{\markuplist}.
@endpredefined

@morerefs
Manuel de notation :
@ref{Commandes pour liste de markups}.

Manuel d'extension :
@rextend{Définition d'une nouvelle commande de liste de markups}.

Fichiers d'initialisation :
@file{scm/define-markup-commands.scm}.

Morceaux choisis :
@rlsrnamed{Text,Texte}.

Référence des propriétés internes :
@rinternals{TextScript}.


@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 fonte, généralités
@cindex accolade, taille
@cindex fonte et @emph{markup}
@cindex @emph{markup} et fonte

@funindex font-interface

La gestion des fontes est assurée par plusieurs bibliothèques :
FontConfig se charge de répertorier les différentes fontes disponibles ;
quant à Pango, elle se charge plus particulièrement de leur rendu.

@cindex fontes, fichiers externes

En sus de celles déjà installées sur le système, d'autres fontes peuvent
s'ajouter au répertoire de FonConfig, ce qui les rendra donc disponibles
pour les partitions LilyPond, à l'aide des commandes suivantes :

@example
#(ly:font-config-add-font "@var{chemin/au/fichier-fonte.otf}")

#(ly:font-config-add-directory "@var{chemin/au/dossier/}")
@end example

@noindent
Le chemin fourni à ces deux commandes peut être absolu ou relatif, ce qui
permet de compiler une partition sur n'importe quel système dans la
mesure où les fichiers de fontes concernés sont transmis avec les
fichiers sources de la partition.

Une fois qu'elles ont été détectées, les fontes se sélectionnent selon
les méthodes indiquées dans @ref{Attribution d'une fonte en particulier}
et @ref{Choix des fontes par défaut}. Dès lors que la liste affichée est
exhaustive, l'instruction @code{#(ly:font-config-display-fonts)}
permettra de vérifier quelles fontes auront été détectées ainsi que leur
nom exact, celui-ci pouvant être différent du nom du fichier.

@cindex fontes musicales
@funindex font-encoding


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érents glyphes @code{Feta} non textuels de LilyPond.

@lilypond[quote,verbatim,fragment]
a'1^\markup {
  \vcenter {
    \override #'(font-encoding . fetaBraces)
    \lookup "brace120"
    \override #'(font-encoding . fetaText)
    \column { 1 3 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} : 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 « 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 tâtonnement 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é à
la rubrique @ref{Rotation des objets}.

Vous disposez de trois familles de fontes textuelles : @emph{roman} pour
la police sérif ou avec empattement, une police sans empattement
(@emph{sans} sérif) et une police à chasse fixe (monospace ou
@emph{typewriter}).

Pour le moteur @code{svg} :
@multitable @columnfractions .15 .30
@headitem Famille @tab Fonte par défaut
@item @emph{roman} @tab @code{serif}
@item @emph{sans} @tab @code{sans-serif}
@item @emph{typewriter} @tab @code{monospace}
@end multitable

@code{serif}, @code{sans-serif} et @code{monospace} sont des
@code{generic-family} au titre des spécifications SVG et CSS.

Pour les autres moteurs :
@multitable @columnfractions .15 .30 .55
@headitem Famille @tab Fonte par défaut (alias) @tab Listes de définition des alias
@item @emph{roman}
@tab @code{LilyPond Serif}
@tab
C059,
Century SchoolBook URW, Century Schoolbook L, TeX Gyre Schola,
DejaVu Serif,
..., serif
@item @emph{sans}
@tab @code{LilyPond Sans Serif}
@tab
Nimbus Sans,
Nimbus Sans L, TeX Gyre Heros,
DejaVu Sans,
..., sans-serif
@item @emph{typewriter}
@tab @code{LilyPond Monospace}
@tab
Nimbus Mono PS,
Nimbus Mono, Nimbus Mono L, TeX Gyre Cursor,
DejaVu Sans Mono,
..., monospace
@end multitable

Il est à noter que les fontes URW distribuées avec LilyPond (« C059 »,
« Nimbus Mono PS » et « Nimbus Sans ») disposent d'une particularité :
par défaut, et en complément des ligatures standard telles que « fl » ou
« ffi », elles substituent la chaîne « Nr. » par le caractère « Numero
Sign » (U+2116) dès lors que le  script « latn » est sélectionné. On
peut toutefois s'en préserver temporairement par l'insertion d'un
caractère de largeur nulle et non jointant (@emph{zero-width non-joiner}
ZWNJ, U+200C) entre les caractères « N » et « r ». Les lignes ci-dessous
auront pour conséquence que LilyPond insérera toujours un caractère
@emph{ZWNJ}.

@example
\paper @{
  #(add-text-replacements!
      `(("Nr." . ,(format #f "N~ar." (ly:wide-char->utf-8 #x200C)))))
@}
@end example

@code{LilyPond Serif}, @code{LilyPond Sans Serif} et @code{LilyPond
Monospace} sont des alias de fonte définis dans le fichier de
configuration de FontConfig spécifique à LilyPond
@code{00-lilypond-fonts.conf}.  Lorsqu'un caractère est absent de la
première fonte listée, il sera remplacé par celui de la fonte suivante.
Pour plus de détails sur les définitions des alias, consultez le fichier
@code{00-lilypond-fonts.conf} dans le répertoire d'installation.

Chaque famille dispose en principe de différents styles et niveaux 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,fragment]
\override Score.RehearsalMark.font-family = #'typewriter
\mark \markup "Ouverture"
\override Voice.TextScript.font-shape = #'italic
\override Voice.TextScript.font-series = #'bold
d''2.^\markup "Allegro"
\override Voice.TextScript.font-size = #-3
c''4^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} :

@lilypond[quote,verbatim]
\markup {
  \column {
    \line {
      \override #'((font-shape . italic) (font-size . 4))
      Idomeneo,
    }
    \line {
      \override #'(font-family . typewriter)
      {
        \override #'(font-series . bold)
        re
        di
      }
      \override #'(font-family . sans)
      Creta
    }
  }
}
@end lilypond

@noindent
Le recours aux fontes OpenType permet d'utiliser certaines
fonctionnalités de ces fontes. Toutefois, les fontes OpenType ne
disposent pas toutes de l'intégralité de ces fonctionnalités. Dans le
cas où la fonctionnalité demandée n'est pas disponible dans la fonte
choisie, cette fonctionnalité est tout bonnement ignorée. Les exemples
ci-dessous utilisent TeX Gyre Schola.

@lilypond[quote,verbatim]
% Vraies petites capitales
\markup { \override #'(font-name . "TeX Gyre Schola")
          Style normal : Hello HELLO }
\markup { \override #'(font-name . "TeX Gyre Schola")
          \caps { Petites capitales : Hello } }
\markup { \override #'(font-name . "TeX Gyre Schola")
          \override #'(font-features . ("smcp"))
          { Vraies petites capitales : Hello } }

% Styles numériques
\markup { \override #'(font-name . "TeX Gyre Schola")
          Style numérique normal : 0123456789 }
\markup { \override #'(font-name . "TeX Gyre Schola")
          \override #'(font-features . ("onum"))
          { Style numérique ancien : 0123456789 } }

% Alternatives stylistiques
\markup { \override #'(font-name . "TeX Gyre Schola")
          \override #'(font-features . ("salt 0"))
          { Alternative stylistique 0 : εφπρθ } }
\markup { \override #'(font-name . "TeX Gyre Schola")
          \override #'(font-features . ("salt 1"))
          { Alternative stylistique 1 : εφπρθ } }

% Fonctionnalités multiples
\markup { \override #'(font-name . "TeX Gyre Schola")
          \override #'(font-features . ("onum" "smcp" "salt 1"))
          { Fonctionnalités multiples : Hello 0123456789 εφπρθ } }
@end lilypond

@noindent
Une liste exhaustive des fonctionnalités des fontes OpenType est
disponible à l'adresse
@uref{https://www.microsoft.com/typography/otspec/featurelist.htm}

@noindent
Les différents types de fonctionnalité des fontes OpenType
sont recensées dans le message
@uref{http://lists.gnu.org/archive/html/lilypond-devel/2017-08/msg00004.html}

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 :
@ref{Attribution d'une fonte en particulier}
et @ref{Choix des fontes par défaut}.

@morerefs
Manuel de notation :
@ref{La fonte Emmentaler},
@ref{Notation musicale dans du texte formaté},
@ref{Rotation des objets},
@ref{Sélection de la fonte et de la taille},
@rusernamed{Font,Fonte}.


@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, dès lors qu'elle est accessible par Fontconfig et que vous
respectez la syntaxe suivante :

@lilypond[quote,verbatim,fragment]
\override Staff.TimeSignature.font-name = "Bitstream Charter"
\override Staff.TimeSignature.font-size = #2
\time 3/4

a'1_\markup {
  \override #'(font-name .
               "Bitstream Vera Sans,sans-serif, Oblique Bold")
    { Vera Oblique Bold }
}
@end lilypond

@cindex fontes disponibles
@cindex disponibilité des fontes

@var{font-name} peut se décrire sous la forme d'une liste de polices
séparées par une virgule, une espace et une liste de styles.  Dès lors
que la police présente dans la liste est installée et comporte le glyphe
requis, elle sera utilisée ; c'est la suivante dans la liste qui sera
utilisée dans le cas contraire.

@funindex show-available-fonts

LilyPond, lancé avec l'option suivante, affiche la liste de toutes
les polices disponibles sur votre machine :

@example
lilypond -dshow-available-fonts
@end example
@noindent

@morerefs
Manuel de notation :
@ref{Choix des fontes par défaut},
@ref{Tout savoir sur les fontes}.

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 ; ces fontes seront
automatiquement mises à l'échelle de la taille globale des portées.
Tout comme indiqué dans @ref{Attribution d'une fonte en particulier},
il peut s'agir d'une liste de polices séparées par une virgule, à ceci
près qu'il n'est pas possible de spécifier de style. 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  {
  #(define fonts
    (make-pango-font-tree "Times New Roman"
                          "Nimbus Sans,Nimbus Sans L"
                          "Luxi Mono"
                           (/ staff-height pt 20)))
}

\relative c'{
  c1-\markup {
    roman,
    \sans sans,
    \typewriter typewriter. }
}
@end lilypond

Note : @code{make-pango-font-tree} réinitialise les fontes musicales à
leur valeur par défaut, à savoir Emmentaler.

@c we don't do Helvetica / Courier, since GS incorrectly loads
@c Apple TTF fonts

La syntaxe suivante permet de substituer une fonte particulière tout en
laissant les autres à leur valeur par défaut. L'exemple ci-dessous
produit les mêmes effets que celui utilisant
@code{make-pango-font-tree}. De même qu'avec
@code{make-pango-font-tree}, il est possible de fournir une liste de
fontes séparées par une virgule pour les catégories @code{roman},
@code{sans} et @code{typewriter}. Dès lors que la taille de portée reste
à sa valeur par défaut de 20 pt, l'instruction
@code{#:factor (/ staff-height pt 20)} n'est pas nécessaire.

@funindex set-global-fonts

@example
\paper @{
  #(define fonts
    (set-global-fonts
     #:roman "Times New Roman"
     #:sans "Nimbus Sans,Nimbus Sans L"
     #:typewriter "Luxi Mono"
     ; inutile si taille de portée par défaut
     #:factor (/ staff-height pt 20)
    ))
@}
@end example

Il est aussi posible de substituer les fontes musicales. L'exemple
ci-dessous produit les mêmes effets que ceux qui précèdent dans la
mesure où les fontes musicales sont fixées à leur valeur par défaut.
Pour de plus amples informations, voir
@ref{Changement des fontes musicales}.

@example
\paper @{
  #(define fonts
    (set-global-fonts
     #:music "emmentaler"            ; défaut
     #:brace "emmentaler"            ; défaut
     #:roman "Times New Roman"
     #:sans "Nimbus Sans,Nimbus Sans L"
     #:typewriter "Luxi Mono"
     ; inutile si taille de portée par défaut
     #:factor (/ staff-height pt 20)
    ))
@}
@end example

En tout état de cause, tout appel à @code{set-global-fonts} réinitialise
aussi bien les fontes musicales que les fontes textuelles. Dès lors que
l'une de ces catégories n'est pas mentionnée sera utilisée la fonte par
défaut y afférente.@*
Par ailleurs, chaque appel à @code{set-global-fonts} affecte les fontes
du bloc @code{\book} qui le suit ; chaque bloc @code{\book} consécutif
peut donc disposer de son propre jeu de fontes grâce à un simple appel à
@code{set-global-fonts}, comme ici :

@example
\paper @{
  #(define fonts
    (set-global-fonts
     @dots{}
    ))
@}
\book @{
  @dots{}
@}

\paper @{
  #(define fonts
    (set-global-fonts
     @dots{}
    ))
@}
\book @{
  @dots{}
@}
@end example

@morerefs
Manuel de notation :
@ref{Attribution d'une fonte en particulier},
@rusernamed{Font,Fonte},
@ref{Changement des fontes musicales},
@ref{Sélection de la fonte et de la taille},
@ref{Tout savoir sur les fontes}.
