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

@ignore
   Translation of GIT committish: a5cf37bc53f57635bf984ecc2d1c5a067573b87c

   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::
* Marque de section::
* 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 guillemets informatiques (optionnels pour un mot
unique). Le mode @emph{markup}, ou étiquette, accepte quant à lui une
mise en forme fine du texte et des enrichissements 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 @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 de texte indépendant, saisi en dehors de tout bloc
@code{\score} -- dans ce cas précis les commandes @code{\markup} ou
@code{\markuplist}  sont obligatoires et ne sauraient être remplacées
par du simple texte borné par des guillemets informatiques ; voir
@ref{Texte indépendant} ;

@item
dans toute définition au 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'est 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ées 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"
      \textMark "textMark"
      \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 :
@rlsrnamed{Text, Texte}.
@endmorerefs


@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}.
@endmorerefs

@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 » (@emph{spanners}
en anglais), 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}.
@endmorerefs

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

Les textes aux extrémites d'un bandeau peuvent être amenés à se
chevaucher.

@lilypond[verbatim,quote]
{
  \once \override TextSpanner.bound-details.left.text = "The text is"
  \once \override TextSpanner.bound-details.right.text = "too long"
  c'2\startTextSpan d'2\stopTextSpan
}
@end lilypond

Un moyen de contournement est disponible à la rubrique
@ref{Espacement horizontal}.


@node Marque de section
@unnumberedsubsubsec Marque de section
@translationof Section labels

@cindex section, marque
@cindex texte, sur barre de mesure

@funindex \sectionLabel

La commande @code{\sectionLabel} indique le début d'un passage nommé.
Elle est tout à fait appropriée dans le cadre d'une division en sections
créées par @code{\section} et peut s'utiliser de manière indépendante.

@lilypond[verbatim,quote]
\fixed c' {
  \sectionLabel "Verse"
  c2 g
  \section
  \sectionLabel "Chorus"
  g2 c
  \bar "|."
}
@end lilypond

@morerefs
Manuel de notation :
@ref{Division en sections},
@ref{Indications de repère},
@ref{Mise en forme du texte}.

Morceaux choisis :
@rlsrnamed{Text, Texte}.

Référence des propriétés internes :
@rinternals{SectionLabel},
@rinternals{SectionLabelEvent}.
@endmorerefs


@node Indications textuelles
@unnumberedsubsubsec Indications textuelles
@translationof Text marks

@cindex indication textuelle
@cindex repère textuel
@cindex texte, sur barre de mesure
@cindex barre de mesure, symbole au dessus
@cindex texte, entre des notes
@cindex texte, en début de ligne
@cindex texte, en fin de partition

@funindex \textMark
@funindex \textEndMark
@funindex \markup

Les indications textuelles sont des objets qui, contrairement aux
scripts (voir @ref{Commentaires textuels}), ne s'impriment pas en regard
des notes, mais entre elles, et souvent alignées sur une barre de mesure.

@funindex \mark

@warning{Les versions précédentes de LilyPond utilisaient l'instruction
@code{@bs{}mark} pour les indications textuelles, bien quelle ait été
initialement conçue pour les repères de répétition (voir
@ref{Indications de repère}). Les commandes @code{@bs{}textMark} et
@code{@bs{}textEndMark} sont plus appropriées en matière d'indications
textuelles de par leurs réglages par défaut et la capacité qu'elles
offrent de présenter plusieurs indications en un même endroit. Il est
donc préférable d'utiliser @code{@bs{}textMark} et
@code{@bs{}textEndMark} en lieu et place de @code{@bs{}mark "Texte"} ou
@code{@bs{}mark @bs{}markup @dots{}}. Pour la conversion de code utilisant
@code{@bs{}mark}, les dérogations portées à @code{RehearsalMark}
devraient être modifiées en @code{TextMark}.}

Avant d'insérer une indication textuelle, il peut être judicieux de
chercher une commande qui serait plus appropriée. Lorsque le texte
identifie une section, utilisez @code{\sectionLabel} (voir
@ref{Marque de section}). Pour un saut ou un renvoi arbitraire, il vaut
mieux utiliser @code{\jump} (voir
@ref{Indications de reprise manuelles}). Ces instructions disposent de
mises en forme par défaut différentes et créent d'autres objets qui
peuvent être personnalisés indépendamment des indications textuelles
génériques à l'aide de feuilles de style.

Une indication textuelle se saisit à l'aide de @code{\textMark} ou
@code{\textEndMark}. La commande @code{\textMark} affiche une marque
alignée sur sa gauche.

@lilypond[verbatim,quote]
\fixed c'' {
  \textMark "Fl. 1 solo"
  c4 e g2
  \textMark "A due"
  e4 g c'2
}
@end lilypond

Lorsqu'intervient un saut de ligne à l'endroit où est placé
@code{\textMark}, l'indication apparaîtra sur le système suivant.

@lilypond[verbatim,quote,ragged-right]
\fixed c'' {
  \textMark "Fl. 1 solo"
  c4 e g2
  \break
  \textMark "A due"
  e4 g c'2
}
@end lilypond

Contrairement à @code{\textMark}, @code{\textEndMark} crée une marque
alignée sur sa droite. Si elle se présente lors d'un saut de ligne,
l'indication apparaîtra en fin du système précédent.

@lilypond[verbatim,quote,ragged-right]
\fixed c' {
  \repeat volta 2 {
    c4 e8 f g2
    e4 f8 g c'2
    \textEndMark "ad lib"
  }
  \break
  c'4 8 8 4 8 8
  c'1
}
@end lilypond

Le texte peut être mis en forme de différentes manières dès lors qu'est
utilisé un bloc @code{\markup}, comme indiqué à la rubrique
@ref{Mise en forme du texte}.

@lilypond[quote,verbatim]
\relative {
  <c' e>1
  \textMark \markup { \italic { colla parte } }
  <d f>2 <e g>
  <c f aes>1
}
@end lilypond

@funindex \markLengthOn
@funindex \markLengthOff

Les commandes @code{\markLengthOn} et @code{\markLengthOff} -- voir
@ref{Indication métronomique} --  sont opérationnelles dans le cadre des
indications textuelles.

@lilypond[verbatim,quote]
{
  \mark \default
  c'2 2
  \textEndMark "longue indication textuelle"
  \markLengthOn
  2 2
  \mark \default
  2 2
  \textEndMark "longue indication textuelle"
}
@end lilypond

@cindex indication textuelle, sous la portée

Les indications textuelles peuvent se présenter en dessous de la portée.

@lilypond[verbatim,quote]
\fixed c' {
  c4 g c'8 b c4 e' c' c2
  c4 g c'8 b c4 e' c' g2
  e'4 c' c'8 b c'4
  g4 c' c2~ c1
  \tweak direction #DOWN
    \tweak font-size #-1
      \textEndMark "Composed on November 13th, 2020"
}
@end lilypond

@cindex indication textuelle, empilement vertical

Plusieurs indications peuvent intervenir en un même moment. L'ordre dans
lequel elles s'empileront peut se gérer à l'aide de la propriété
@code{outside-staff-priority} (voir
@ref{Résolution des collisions verticales}). Une autre façon de procéder
pourrait consister à utiliser une seule indication sous la forme
@code{\markup \column @{ @dots{} @} }.

@lilypond[verbatim,quote]
\fixed c' {
  \repeat volta 2 {
    c4 g c'8 b c4 e' c' c2
    \textEndMark "ad lib."
    \tweak outside-staff-priority 1200
      \tweak font-size -1
        \textEndMark "2a volta a due"
  }
}
@end lilypond

@cindex indication textuelle, alignement

L'alignement d'une indication textuelle peut se modifier.

@lilypond[verbatim,quote]
{
  c'8 8 8 8 8 8 8 8
  \textMark \markup \column {
    \line { Indication alignée sur sa gauche }
    \line { (par défaut pour \concat { \typewriter "\\textMark" ) } }
  }
  d'8 8 8 8 8 8 8 8
}

{
  c'8 8 8 8 8 8 8 8
  \tweak self-alignment-X #CENTER
    \textMark "Indication centrée"
  d'8 8 8 8 8 8 8 8
}

{
  c'8 8 8 8 8 8 8 8
  \tweak self-alignment-X #RIGHT
    \textMark \markup \right-column {
      \line { Indication alignée sur sa droite }
      \line { (par défaut pour \concat { \typewriter "\\textEndMark" ) } }
    }
  d'8 8 8 8 8 8 8 8
}
@end lilypond

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

@snippets

@c Also in 'Rehearsal marks'.
@cindex indication textuelle, 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{Indication métronomique},
@ref{La fonte Emmentaler},
@ref{Marque de section},
@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{Text_mark_engraver},
@rinternals{TextMark},
@rinternals{TextMarkEvent}.
@endmorerefs


@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} ou @code{\markuplist} 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 à l'aide
de la commande @code{\markuplist}. Ceci 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{Introduction au formatage de texte}.

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

Morceaux choisis :
@rlsrnamed{Text,Texte}.

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


@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 @emph{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é::
@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
@cindex @emph{markup}

@funindex \markup

Un bloc @code{\markup} ou @code{\markuplist} 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}

En mode @emph{markup}, les mots s'écrivent tels quels. Un mot isolé ne
requiert pas de guillemets.

@lilypond[verbatim,quote]
\markup intenso
@end lilypond

Une suite de mots peut se regrouper en les bornant par des guillemets
informatiques @code{"}.
@c repeat double quote for pairing "

@lilypond[verbatim,quote]
\markup "molto intenso"
@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

Au delà du simple fait de grouper des mots, les guillemets informatiques
permettent d'imprimer littéralement des caractères spéciaux -- tels
qu'un @samp{\} ou un @samp{#} -- 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

La mise en forme s'obtient à l'aide de commandes dédiées dont le nom est
précédé d'une oblique inverse. Elles prennent un certain nombre
d'arguments spécifiques à la commande. Une liste exhaustive des
commandes spécifiques au mode @emph{markup} est fournie dans l'annexe
@ref{Commandes pour markup} (en anglais).

@lilypond[verbatim,quote]
\markup \italic "string. assai"
\markup \with-color "red" intenso
@end lilypond

Les commandes de @emph{markup} peuvent être imbriquées. Un bloc
@emph{markup} sera clôturé dès lors que toutes les commandes qu'il
contient auront reçu leurs arguments.

@lilypond[verbatim,quote]
\markup \with-color "red" \italic intenso
@end lilypond

@cindex @emph{markup}, liste
@cindex liste de @emph{markups}

Plusieurs expressions @emph{markup} peuvent se regrouper par des
accolades pour former une @dfn{liste de @emph{markups}}. En l'absence de
formatage particulier, les éléments d'une liste de @emph{markups} sont
affichés en enfilade.

@lilypond[verbatim,quote]
\markup { molto \italic intenso }
@end lilypond

Certaines commandes n'attendent pas un simple @emph{markup}, mais une
liste de @emph{markups}, ce qui permet des présentations plus
élaborées qu'une simple enfilade.

@lilypond[verbatim,quote]
\markup \center-column {
  \bold "Des Simplicius Simplicissimus Jugend"
  "Karl Amadeus Hartmann"
}
@end lilypond

De plus, certaines commandes ne renvoient pas un @emph{markup}, mais
une liste de @emph{markups}. Leur résultat peut alors s'utiliser là où
on attendait une liste de @emph{markup}. Une liste de ces commandes est
fournie à l'annexe @ref{Commandes pour liste de markups} (en anglais).

@lilypond[verbatim,quote]
\markup \string-lines
    "Twinkle, twinkle, little star,
     How I wonder what you are!"
@end lilypond

@lilypond[verbatim,quote]
\markup \center-column \string-lines
    "Twinkle, twinkle, little star,
     How I wonder what you are!"
@end lilypond

Les éléments d'une liste composite de @emph{markups} sont tout bonnement
traités comme des éléments de la liste principale.

@lilypond[verbatim,quote]
\markup \center-column {
  \bold "Des Simplicius Simplicissimus Jugend"
  { Karl Amadeus \smallCaps Hartmann }
}
@end lilypond

Plusieurs éléments d'une liste de @emph{markups} seront mis en rang sur
une même ligne s'ils sont regroupés à l'aide de la commande @code{\line}.

@lilypond[verbatim,quote]
\markup \center-column {
  \bold "Des Simplicius Simplicissimus Jugend"
  \line { Karl Amadeus \smallCaps Hartmann }
}
@end lilypond

Le comportement des commandes prenant en argument des @emph{markups}
mais s'appliquent à des listes de @emph{markups} constitue une
fonctionnalité spéciale. Lorsque leur dernier argument est une liste et
non un @emph{markup}, chacun des éléments de cette liste se voit
appliquer le traitement de la commande.

@lilypond[verbatim,quote]
\markup \box { Karl Amadeus \smallCaps Hartmann }
@end lilypond

Dans ce cas, le résultat est par contre une liste de @emph{markup} qui
peut donc être passée à une commande attendant une liste de
@emph{markups} ou une commande attendant un @emph{markup}, avec à
nouveau le comportement que nous venons de voir.

@lilypond[verbatim,quote]
\markup \center-column \box { Karl Amadeus \smallCaps Hartmann }
\markup \rotate #30 \box { Karl Amadeus \smallCaps Hartmann }
@end lilypond

L'application de la commande @code{\line} à une liste de @emph{markups}
permet qu'lle soit traitee comme un argument @emph{markup} unique.

@lilypond[verbatim,quote]
\markup \box { Karl Amadeus \smallCaps Hartmann }
\markup \box \line { Karl Amadeus \smallCaps Hartmann }
@end lilypond

@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

Lorsque l'intégralité du contenu d'une expression @code{\markup}
est une liste de @emph{markups}, elle est implicitement reproduite
avec la commande @code{\line}. Ses éléments sont donc empilés
horizontalement et groupés dans un seul bloc de texte insécable.
La commande @code{\markuplist} agit différemment : elle attend une
liste de @emph{markups} et affiche individuellement les éléments
@emph{markups} sur la page, les empilant verticalement, autorisant
par ailleurs les sauts de page. L'exemple ci-dessous illustre
cette différence.

@lilypond[quote,verbatim]
\markup \box \wordwrap {
  Lorem ipsum dolor sit amet, consectetur
  adipisicing elit, sed do eiusmod tempor incididunt
  ut labore et dolore magna aliqua.  Ut enim ad minim
  veniam, quis nostrud exercitation ullamco laboris
  nisi ut aliquip ex ea commodo consequat.
}

\markuplist \box \wordwrap-lines {
  Lorem ipsum dolor sit amet, consectetur
  adipisicing elit, sed do eiusmod tempor incididunt
  ut labore et dolore magna aliqua.  Ut enim ad minim
  veniam, quis nostrud exercitation ullamco laboris
  nisi ut aliquip ex ea commodo consequat.
}
@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

@funindex \etc

La syntaxe de la commande @code{\etc} permet de définir des raccourcis
personnalisés utilisables dans le cadre des commandes @code{\markup}.

@lilypond[quote,verbatim]
\markup reddish = \markup \with-color "tomato" \etc

\markup { molto \reddish intenso }
@end lilypond

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 liste de markups},
@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/define-markup-commands.scm},
@file{scm/markup.scm}.

Morceaux choisis :
@rlsrnamed{Text, Texte}.

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

@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 une 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}.
@endmorerefs

@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 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 comme 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 texte, largeur de ligne
@cindex @emph{markup}, largeur de ligne

@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}.
@endmorerefs


@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}.
@endmorerefs


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

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}.
@endmorerefs

@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 Fontes
@subsection Fontes
@translationof Fonts

@cindex Pango
@cindex FontConfig

La gestion des fontes dans LilyPond est assurée par plusieurs
bibliothèques : @uref{https://fontconfig.or, @emph{FontConfig}} se
charge de répertorier les différentes fontes disponibles ; quant à
@uref{https://pango.org, @emph{Pango}}, elle se charge plus
particulièrement de leur rendu.

Ce chapitre indique comment accéder aux fontes et polices de caractère
dans LilyPond. Vous y apprendrez aussi comment changer de fonte en cours
de partition.

@menu
* Localisation des fontes::
* Familles de fontes::
* Fonctionnalités des fontes::
* Attribution d'une fonte en particulier::
* Choix des fontes par défaut::
* Fontes musicales::
@end menu


@node Localisation des fontes
@unnumberedsubsubsec Localisation des fontes
@translationof Finding fonts

@cindex fonte, généralités
@cindex fonte, localisation
@cindex fonte, fichiers externes

En sus de celles déjà installées sur le système, d'autres fontes peuvent
s'ajouter au répertoire de FontConfig, 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}")
#(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.

L'instruction @code{#(ly:font-config-display-fonts)} permettra de
vérifier que la fonte requise est bien détectée par FontConfig. Elle
affiche en console la liste exhaustive des fontes du système ainsi que
le nom exact qu'il faudra transmettre à LilyPond ; ce nom peut être
différent du nom du fichier.

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}.


@node Familles de fontes
@unnumberedsubsubsec Familles de fontes
@translationof Font families


Vous disposez de trois familles de fontes@footnote{Dans sa forme la plus
simple, une @emph{famille de fonte} contient habituellement les styles
de police romain, italique, gras et gras italique.} 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}). En fonction du moteur de rendu utilisé, ces familles
seront mappées selon des alias différents.

Pour le moteur @code{svg} :

@indentedBlock
@multitable {@b{Famille générique}} {@b{ Famille de fonte SVG}}
@headitem Famille générique @tab Famille de fonte SVG
@item @emph{roman} @tab serif
@item @emph{sans} @tab sans-serif
@item @emph{typewriter} @tab monospace
@end multitable
@endIndentedBlock

@noindent
« serif », « sans-serif » et « monospace » sont des
« generic-family » au titre des spécifications SVG et CSS.

Pour les autres moteurs :

@indentedBlock
@multitable @columnfractions .17 .30 .45
@headitem Famille générique
          @tab Fonte par défaut (alias)
                     @tab Listes de définition des alias
@item @emph{roman}
@tab LilyPond Serif
@tab C059,
     Century SchoolBook URW,
     Century Schoolbook L,
     TeX Gyre Schola,
     DejaVu Serif,
     @dots{},
     serif
@item @emph{sans}
@tab LilyPond Sans Serif
@tab Nimbus Sans,
     Nimbus Sans L,
     TeX Gyre Heros,
     DejaVu Sans,
     @dots{},
     sans-serif
@item @emph{typewriter}
@tab LilyPond Monospace
@tab Nimbus Mono PS,
     Nimbus Mono,
     Nimbus Mono L,
     TeX Gyre Cursor,
     DejaVu Sans Mono,
     @dots{},
     monospace
@end multitable
@endIndentedBlock

@noindent
Lorsqu'un caractère est absent de la première fonte listée, il sera
remplacé par celui de la fonte suivante.

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

« LilyPond Serif », « LilyPond Sans Serif » et « LilyPond Monospace »
sont des alias de fonte définis dans le fichier de configuration de
FontConfig spécifique à LilyPond @file{00-lilypond-fonts.conf} qui se
trouve normalement dans le répertoire
@file{/usr/local/share/lilypond/@version{}/fonts}.

Chaque famille dispose en principe de différents styles et niveaux de
graisse. 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.TextMark.font-family = #'typewriter
\textMark "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


@node Fonctionnalités des fontes
@unnumberedsubsubsec Fonctionnalités des fontes
@translationof Font features

@cindex OpenType, fonctionnalités
@cindex fonctionnalités OpenType

Le recours aux fontes OpenType permet d'utiliser certaines
fonctionnalités de ces fontes.@footnote{La sélection de scripts ou de
langages des fontes OpenType n'est à ce jour par prise en charge.}
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 », autrement dit le style romain de la famille.

@lilypond[quote,verbatim]
\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 } }

\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 } }

\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 : εφπρθ } }

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

Une liste exhaustive des fonctionnalités des fontes OpenType est
disponible à l'adresse
@uref{https://www.microsoft.com/typography/otspec/featurelist.htm}, et
les différents types de fonctionnalités des fontes OpenType
sont recensés dans le message
@uref{https://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}.
@endmorerefs


@node Attribution d'une fonte en particulier
@unnumberedsubsubsec Attribution d'une fonte en particulier
@translationof Single entry fonts

La plupart des fontes installées sur le système et reconnues par
FontConfig peuvent s'utiliser dans une partition, à l'exception des
polices bitmap -- qui ne sont pas supportées de par leur conception --
et les OpenType Variation Fonts (non prises en charge à ce jour).

LilyPond appelle la fonction @code{pango_font_description_from_string}
de la bibliothèque Pango pour accéder aux fontes ; elle utilise la forme
syntaxique suivante pour le nom des fontes.@footnote{La donnée est issue
des références de la version 1.46.1 de Pango ; la syntaxe prise en
charge par LilyPond est en fait un sous-ensemble de ce que Pango
procure.}

@example
[@var{family-list}] [@var{style-options}]
@end example

@noindent
où @var{family-list} est une liste, dont le séparateur est la virgule, des
familles éventuellement terminée par une virgule, et @var{style-options}
une liste, dont le séparateur est l'espace, de mots dont chacun désigne
un style, une variante, une graisse, une chasse, ou une orientation.

Les termes suivants sont considérés comme des styles : @code{Normal}
(par défaut), @code{Roman}, @code{Oblique}, @code{Italic}.

Les termes suivants sont considérés comme des variantes :
@code{Small-Caps}.  Il n'y a pas de variante par défaut.

Les termes suivants sont considérés comme des graisses : @code{Thin},
@code{Ultra-Light}, @code{Extra-Light}, @code{Light}, @code{Semi-Light},
@code{Demi-Light}, @code{Book}, @code{Regular} (the default),
@code{Medium}, @code{Semi-Bold}, @code{Demi-Bold}, @code{Bold},
@code{Ultra-Bold}, @code{Extra-Bold}, @code{Heavy}, @code{Black},
@code{Ultra-Black}, @code{Extra-Black}.

Les termes suivants sont considérés comme des valeurs de chasse :
@code{Ultra-Condensed}, @code{Extra-Condensed}, @code{Condensed},
@code{Semi-Condensed}, @code{Semi-Expanded}, @code{Expanded},
@code{Extra-Expanded}, @code{Ultra-Expanded}. Il n'y a pas d'étirement
par défaut.

Les termes suivants sont considérés comme des valeurs d'orientation :
@code{Not-Rotated}, @code{South}, @code{Upside-Down}, @code{North},
@code{Rotated-Left}, @code{East}, @code{Rotated-Right}, @code{West}. Il
n'y a pas d'orientation par défaut.

Partant du principe que la syntaxe est correcte, déterminer le nom d'une
police n'échoue jamais. Si aucune famille de fonte n'est reconnue (ou
aucune famille n'a été donnée), FontConfig renvoie une fonte par défaut
dépendant du système. Si aucune option de style n'est reconnue (ou
aucune option de style n'a été spécifiée), seront utilisées les valeurs
par défaut.

Dans l'exemple qui suit, la fonte de la métrique est déterminée à
« Bitstream Charter ». Dans la mesure où aucun style n'est spécifié,
FontConfig utilisera les valeurs par défaut comme vu ci-dessus. Pour la
chaîne de @emph{markup} sont demandées les familles « Bitstream Vera
Sans » et « sans-serif », ce qui indique à FontConfig de rechercher en
premier « Bitstream Vera Sans » et, si elle n'est pas disponible, de se
reporter sur une famille « sans-serif » générique comme indiqué dans
@ref{Familles de fontes}. Le style du @emph{markup} est défini à
« Oblique Bold » ; FontConfig tentera donc de trouver une fonte qui soit
à la fois penchée et grasse. Si elle échoue, elle tentera de trouver
soit une fonte penchée, soit une fonte grasse. Si elle échoue à nouveau,
elle essaiera une fonte répondant aux options de style par défaut.

Notez bien que FontConfig vérifie aussi la présence du glyphe
requis dans la fonte demandée. Dans le cas où il y serait absent,
sera essayée une autre fonte, toujours selon le même algorithme,
jusqu'à ce qu'elle trouve le glyphe en question. Dans
l'éventualité où FontConfig ne trouve nulle part le glyphe
approprié, sera affiché un symbole de glyphe absent --
habituellement un rectangle ou un simple espace blanc.

@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

@warning{Dès lors que l'une des options stylistiques mentionnées
ci-dessus fait partie du nom de la (famille) fonte, il est @b{impératif}
de faire suivre ce nom d'une virgule même si aucun style n'est défini.
L'exemple typique est « Times New Roman » : spécifier @code{"Times New
Roman"} fera rechercher à FontConfig une police « Times New » de style
roman, et c'est seulement si est libellé @code{"Times New Roman,"} que
cette police sera réellement accédée.}

@cindex fontes disponibles
@cindex disponibilité des fontes
@funindex show-available-fonts

Lancer @command{lilypond} en ligne de commande 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{Localisation des fontes},
@ref{Familles de fontes}.

Morceaux choisis :
@rlsrnamed{Text,Texte}.

@c A source file gets never installed...
@c Fichiers d'initialisation :
@c @file{lily/font-config-scheme.cc}.
@endmorerefs


@node Choix des fontes par défaut
@unnumberedsubsubsec Choix des fontes par défaut
@translationof Entire document fonts

On peut tout à fait modifier le jeu de polices par défaut de LilyPond
grâce à un appel de la fonction @code{make-pango-font-tree}. Il vous
faudra alors spécifier les différentes familles, en respectant l'ordre
@emph{roman}, @emph{sans empattement} et @emph{monospace}, ainsi qu'un
facteur d'échelle. 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.@footnote{Ce qui a pour conséquence que, contrairement au
cas d'une fonte particulière, aucune virgule terminale n'est
nécessaire.}

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

Dans l'exemple suivant, les fontes seront mises à l'échelle de la taille
globale des portées.

@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 "Linux Libertine O"
                          "Nimbus Sans, Nimbus Sans L"
                          "DejaVu Sans Mono"
                          (/ staff-height pt 20)))
}

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

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} n'est pas
nécessaire.

@funindex set-global-fonts

@example
\paper @{
  #(define fonts
    (set-global-fonts
     #:roman "Linux Libertine O"
     #:sans "Nimbus Sans, Nimbus Sans L"
     #:typewriter "DejaVu Sans 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 "Linux Libertine O"
     #:sans "Nimbus Sans, Nimbus Sans L"
     #:typewriter "DejaVu Sans 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.@footnote{Pour
être plus précis, « emmentaler » (avec un « e » minuscule en argument à
@code{#:music} et @code{#:brace}) constitue un jeu de fontes -- et non
une famille de fonte au sens de FontConfig -- auquel LilyPond a accès et
gère directement. Au lieu de plusieurs styles, elle est toutefois
fournie dans différentes tailles -- @pxref{Fontes musicales} et
@ref{Changement des fontes musicales}. Les noms de fonte, pour
FontConfig, sont « Emmentaler-@var{taille} », où @var{taille} est un
nombre entre 11, 13, 14, 16, 18, 20, 23 et 26.

Pour ce qui est des accolades, le nom de la fonte pour FontConfig est
« Emmentaler-Brace ».} 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{Familles de fontes},
@ref{Localisation des fontes},
@ref{Sélection de la fonte et de la taille}.
@endmorerefs


@node Fontes musicales
@unnumberedsubsubsec Fontes musicales
@translationof Music fonts

@cindex musicale, fonte
@cindex notation, fonte
@funindex font-encoding
@funindex font-interface

En matière de fontes musicales, LilyPond ne recourt ni à FontConfig, ni à
Pango, mais les gère directement. Par voie de conséquence, l'interface
est différente. Cette section décrit la manière d'insérer des symboles
musicaux en mode @emph{markup}.

@cindex accolade, tailles
@cindex fonte non textuelle et @i{markup}
@cindex non texte, fonte, @i{markup}
@cindex @i{markup}, non texte, fonte

Les fontes de notation musicale sont des ensembles de glyphes
accessibles selon divers @emph{encodages}. La syntaxe suivante permet
d'accéder aux différents glyphes Emmentaler@footnote{Les fontes
Emmentaler de LilyPond disposent de trois jeux de glyphes : @emph{Feta}
pour la notation moderne, @emph{Parmesan} pour la notation ancienne, et
des accolades (@emph{braces} en anglais). Feta et Parmesan sont toutes
deux accesssibles avec l'encodage « fetamusic ».} directement en mode
@i{markup} :

@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
Néanmoins, tous ces glyphes, à l'exception des accolades de différente
taille, sont disponibles selon une syntaxe plus simple, indiquée dans
@ref{Notation musicale dans du texte formaté}.

Lorsque l'on accède aux accolades avec l'encodage « fetaBraces », la
taille de l'accolade est spécifiée par la partie numérique du nom de
glyphe, en unité arbitraire. Il s'agit d'un entier, de 0 à 575 inclus,
zéro procurant la plus petite accolade. La valeur optimale s'obtient par
tâtonnement. Ces glyphes sont tous des accolades gauche (ouvrantes) ;
une accolade droite (fermante) s'obtient par rotation
@pxref{Rotation des objets}.
