[ << Notation musicale générale ] | [Racine][Table des matières][Index] | [ Notation spécialisée >> ] |
[ < Texte avec sauts de page ] | [Plus haut: Texte ] | [ Tout savoir sur les fontes > ] |
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 | ||
Attribution d’une fonte en particulier | ||
Choix des fontes par défaut |
[ << Notation musicale générale ] | [Racine][Table des matières][Index] | [ Notation spécialisée >> ] |
[ < Fontes ] | [Plus haut: Fontes ] | [ Attribution d'une fonte en particulier > ] |
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 disponibles ; quant à Pango, elle se charge plus particulièrement de leur rendu.
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 :
#(ly:font-config-add-font "chemin/au/fichier-fonte.otf") #(ly:font-config-add-directory "chemin/au/dossier/")
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 Attribution d’une fonte en particulier
et Choix des fontes par défaut. Dès lors que la liste affichée est
exhaustive, l’instruction #(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.
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" } }
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
:
Famille | Fonte par défaut |
---|---|
roman | serif |
sans | sans-serif |
typewriter | monospace |
serif
, sans-serif
et monospace
sont des
generic-family
au titre des spécifications SVG et CSS.
Pour les autres moteurs :
Famille | Fonte par défaut (alias) | Listes de définition des alias |
---|---|---|
roman | LilyPond Serif | C059, Century SchoolBook URW, Century Schoolbook L, TeX Gyre Schola, DejaVu Serif, ..., serif |
sans | LilyPond Sans Serif | Nimbus Sans, Nimbus Sans L, TeX Gyre Heros, DejaVu Sans, ..., sans-serif |
typewriter | LilyPond Monospace | Nimbus Mono PS, Nimbus Mono, Nimbus Mono L, TeX Gyre Cursor, DejaVu Sans Mono, ..., monospace |
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 (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 ZWNJ.
\paper { #(add-text-replacements! `(("Nr." . ,(format #f "N~ar." (ly:wide-char->utf-8 #x200C))))) }
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
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) (font-size . 4)) Idomeneo, } \line { \override #'(font-family . typewriter) { \override #'(font-series . bold) re di } \override #'(font-family . sans) Creta } } }
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.
% 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 εφπρθ } }
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.
[ << Notation musicale générale ] | [Racine][Table des matières][Index] | [ Notation spécialisée >> ] |
[ < Tout savoir sur les fontes ] | [Plus haut: Fontes ] | [ Choix des fontes par défaut > ] |
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 } }
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
Voir aussi
Manuel de notation : Choix des fontes par défaut, Tout savoir sur les fontes.
Morceaux choisis : Texte.
[ << Notation musicale générale ] | [Racine][Table des matières][Index] | [ Notation spécialisée >> ] |
[ < Attribution d'une fonte en particulier ] | [Plus haut: Fontes ] | [ Notation spécialisée > ] |
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. } }
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" ; inutile si taille de portée par défaut #:factor (/ staff-height pt 20) )) }
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" ; inutile si taille de portée par défaut #:factor (/ staff-height pt 20) )) }
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.
[ << Notation musicale générale ] | [Racine][Table des matières][Index] | [ Notation spécialisée >> ] |
[ < Attribution d'une fonte en particulier ] | [Plus haut: Fontes ] | [ Notation spécialisée > ] |