1.8.3 Fontes

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.


Tout savoir sur les fontes

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

Les fontes musicales peuvent se décrire comme un jeu de glyphes spécifiques regroupés dans plusieurs familles. L’exemple qui suit montre la syntaxe à utiliser pour accéder, en mode markup, aux différents glyphes Feta non textuels de LilyPond.

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

[image of music]

Tous ces glyphes, à l’exception des accolades qui sont regroupées dans fetaBraces, sont accessibles avec la syntaxe indiquée dans Notation musicale dans du texte formaté.

Une remarque s’impose au sujet des glyphes contenus dans fetaBraces : chacun d’eux est formé du mot 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 \lookup de l’exemple ci-dessus –, tout en sachant qu’il est compris entre 0 (la plus petite) et 575 (la plus grande). Vous serez souvent amené à procéder par tâtonnement pour arriver au résultat optimal. Par ailleurs, 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 Rotation des objets.

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

Pour le moteur svg :

FamilleFonte par défaut
romanserif
sanssans-serif
typewritermonospace

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

Pour les autres moteurs :

FamilleFonte par défaut (alias)Listes de définition des alias
romanLilyPond SerifTeX Gyre Schola, C059, Century SchoolBook URW, Century Schoolbook L, DejaVu Serif, ..., serif
sansLilyPond Sans SerifTeX Gyre Heros, Nimbus Sans, Nimbus Sans L, DejaVu Sans, ..., sans-serif
typewriterLilyPond MonospaceTeX Gyre Cursor, Nimbus Mono PS, Nimbus Mono, Nimbus Mono L, DejaVu Sans Mono, ..., monospace

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 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 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 à font-size correspond à la correction à apporter à la taille par défaut.

 
\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

[image of music]

Cette syntaxe s’applique aussi en mode markup, bien que celui-ci dispose d’une syntaxe allégée comme nous l’avons vu dans Sélection de la fonte et de la taille :

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

[image of music]

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 fonctions. Dans le cas où la fonctionnalité demandée n’est pas disponible dans la fonte choisie, cette fonctionnalité est tout bonnement ignorée.

 
% Vraies petites capitales
\markup { Style normal : Hello HELLO }
\markup { \caps { Petites capitales : Hello } }
\markup { \override #'(font-features . ("smcp"))
          { Vraies petites capitales : Hello } }

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

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

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

[image of music]

Une liste exhaustive des fonctionnalités des fontes OpenType est disponible à l’adresse https://www.microsoft.com/typography/otspec/featurelist.htm

Les différents types de fonctionnalité des fontes OpenType sont recensées dans le message 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 : Attribution d’une fonte en particulier et Choix des fontes par défaut.

Voir aussi

Manuel de notation : La fonte Emmentaler, Notation musicale dans du texte formaté, Rotation des objets, Sélection de la fonte et de la taille, Fonte.


Attribution d’une fonte en particulier

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 :

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

[image of music]

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.

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

lilypond -dshow-available-fonts toto

(quel qu’il soit, le dernier argument est obligatoire).

Voir aussi

Manuel de notation : Choix des fontes par défaut, Tout savoir sur les fontes.

Morceaux choisis : Texte.


Choix des fontes par défaut

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 roman, sans empattement et monospace, comme dans l’exemple suivant ; ces fontes seront automatiquement mises à l’échelle de la taille globale des portées. Tout comme indiqué dans 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 Tout savoir sur les fontes.

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

[image of music]

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

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 make-pango-font-tree. De même qu’avec make-pango-font-tree, il est possible de fournir une liste de fontes séparées par une virgule pour les catégories roman, sans et typewriter. Dès lors que la taille de portée reste à sa valeur par défaut de 20 pt, l’instruction #:factor (/ staff-height pt 20) n’est pas nécessaire.

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

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 Changement des fontes musicales.

\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"
     #:factor (/ staff-height pt 20) ; inutile si taille de portée par défaut
    ))
}

En tout état de cause, tout appel à 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 à set-global-fonts affecte les fontes du bloc \book qui le suit ; chaque bloc \book consécutif peut donc disposer de son propre jeu de fontes grâce à un simple appel à set-global-fonts, comme ici :

\paper {
  #(define fonts
    (set-global-fonts
     …
    ))
}
\book {
  …
}

\paper {
  #(define fonts
    (set-global-fonts
     …
    ))
}
\book {
  …
}

Voir aussi

Manuel de notation : Attribution d’une fonte en particulier, Fonte, Changement des fontes musicales, Sélection de la fonte et de la taille, Tout savoir sur les fontes.


Autres langues : English, català, deutsch, español, italiano, 日本語.
About automatic language selection.

LilyPond — Manuel de notation v2.19.84 (branche de développement).