Polices de caractère

Sommaire

1 - Définitions

1.1 - Police de caractères et fontes, famille de polices

Extrait de wikipedia : https://fr.wikipedia.org/wiki/Police_d'écriture

Garamond est une police de caractères ;
le Garamond romain gras 12 points est une fonte.
serif :    des familles de police à empattement ;
sans-serif : des familles de polices sans empattement ;
cursive : des familles de polices simulant l’écriture à la main ;
fantasy : des familles de polices dont les glyphes sont exotiques et plus décoratives qu’utilisables pour du long texte. Peuvent convenir pour des titres ;
monospace : des familles de polices à chasse fixe, comme sur des machines à écrire ou des terminaux d’ordinateur

1.2 - Polices bitmat et polices outline (contour) :

Extrait de wikipedia : https://en.wikipedia.org/wiki/Computer_font

1.3 - Opentype (extension otf) et truetype (extension ttf)

Extrait de wikipedia : https://en.wikipedia.org/wiki/OpenType

Extrait de wikipedia : https://en.wikipedia.org/wiki/TrueType

2 - Installation

2.1 - Principe

2.1.1 - Installation à partir des dépôts

Les paquets contenant des fontes sont dans la section "fonts". Pour obtenir une liste des paquets de fontes "contour" à l'exclusion des fontes bitmap :

$ aptitude search ~sfonts |grep -v xfonts

Les paquets installent les fichiers des fontes dans le répertoire /usr/share/fonts/opentype/nom_police ou /usr/share/fonts/truetype/nom_police. Les fontes installées dans /usr/share sont utilisables par tous les utilisateurs.

2.1.2 - Installation manuelle

Lorsque l'on dispose du fichier, l'installation peut s'effectuer par copie dans les répertoires /usr/share/fonts/truetype/nom_police ou /usr/share/fonts/opentype/nom_police ou dans les répertoire personnels ~/.fonts/opentype/nom_police/ ou ~/.fonts/truetype/nom_police.

Notes :

2.2 - Exemples d'installation à partir des dépôts

2.2.1 Polices sans-serif, serif et mono

L'installation des polices libres freefont, liberation, droid, dejavu permet de recouvrir un grand nombre de cas d'alphabets et de fontes courantes ou compatibles avec les polices standards sur d'autres systèmes d'exploitation :

Extrait de aptitude show ....

# apt install fonts-freefont-tff fonts-liberation fonts-droid fonts-dejavu

2.2.2 Polices cursive et fantasy

Les polices lobster two et purisa peuvent être utilisées comme fontes cursive et fantasy. Pour les installer :

# apt install fonts-lobstertwo fonts-tlwg-purisa

3 - Propriétés et affichage

3.1 - Propriétés

Les propriétés de la fonte (famille et nom, styles et langues prise en compte, sont affichables avec la commande fc-query

$ fc-query /usr/share/fonts/opentype/lobster/lobster.otf
Pattern has 22 elts (size 32)
family: "Lobster Two"(s)
familylang: "en"(s)
style: "Bold Italic"(s)
stylelang: "en"(s)
fullname: "LobsterTwo-BoldItalic"(s)
fullnamelang: "en"(s)
slant: 100(i)(s)
weight: 200(i)(s)
width: 100(i)(s)
foundry: "unknown"(s)
file: "/usr/share/fonts/opentype/lobster/lobster.otf"(s)
index: 0(i)(s)
outline: True(s)
scalable: True(s)
charset:
0000: 00000000 ffffffff ffffffff 7fffffff 00000000 ffff7ffe ffffffff ffffffff
0001: c30233f0 000e0000 0c0f001e 7f030003 00040000 00000000 00000000 00000000
0002: 00000000 00000000 00000000 00000000 00000000 00000000 3d0000c0 00000000
0020: 77180000 06010047 00000000 00000000 00000000 00001000 00000000 00000000
0021: 00000000 00000004 00000000 00000000 00000000 00000000 00000000 00000000
0022: 00040000 00000000 00000000 00000000 00000000 00000000 00000000 00000000
00fb: 0000001f 00000000 00000000 00000000 00000000 00000000 00000000 00000000
(s)
lang: aa|ay|bi|br|ch|co|da|de|en|es|et|eu|fi|fj|fo|fr|fur|fy|gd|gl|gv|ho|hu|ia|id|ie|io|is|it|lb|mg|nb|nds|nl|nn|no|nr|nso|oc|om|pl|pt|rm|sma|smj|so|sq|ss|st|sv|sw|tl|tn|ts|uz|vo|vot|wa|xh|yap|zu|an|csb|fil|ht|jv|kj|kwm|li|ms|ng|pap-an|pap-aw|rn|rw|sc|sg|sn|su|za(s)
fontversion: 131072(i)(s)
capability: "otlayout:latn"(s)
fontformat: "CFF"(s)
decorative: False(s)
hash: "sha256:4605f4c5aac8d4bb55a28a63db6c1dd06394d4b6e0cb157f61603fb26021a617"(s)
postscriptname: "LobsterTwo-BoldItalic"(s)

3.2 - Affichage dans une page web

Sous réserve que les polices soient installées et utilisées par le navigateur, les paragraphes qui suivent utilisent les polices Liberation sans, liberation sérif et liberation mono, lobster et purisa :

Nunc vero inanes flatus quorundam vile esse quicquid extra urbis pomerium nascitur aestimant praeter orbos et caelibes, nec credi potest qua obsequiorum diversitate coluntur homines sine liberis Romae.

Nunc vero inanes flatus quorundam vile esse quicquid extra urbis pomerium nascitur aestimant praeter orbos et caelibes, nec credi potest qua obsequiorum diversitate coluntur homines sine liberis Romae.

Police liberation mono : Nunc vero inanes flatus quorundam vile esse quicquid extra urbis pomerium nascitur aestimant praeter orbos et caelibes, nec credi potest qua obsequiorum diversitate coluntur homines sine liberis Romae.

Police lobster : Nunc vero inanes flatus quorundam vile esse quicquid extra urbis pomerium nascitur aestimant praeter orbos et caelibes, nec credi potest qua obsequiorum diversitate coluntur homines sine liberis Romae.

Police purisa : Nunc vero inanes flatus quorundam vile esse quicquid extra urbis pomerium nascitur aestimant praeter orbos et caelibes, nec credi potest qua obsequiorum diversitate coluntur homines sine liberis Romae.

3.3 - Affichage direct dans X

$ xfd -fa "Purisa"
Fenêtre d'affichage de la police purisa

4 - Gestion

La gestion des polices est assurée par fontconfig. Ce paquet fournit les commandes fc-cache, fc-list, fc-match utilisées ci-dessous. A noter que la gestion des fontes étant assurée au niveau de chaque utilisateur, les commandes doivent être lancées au niveau de l'utilisateur concerné.

4.1 - Mise à jour du cache : fc-cache

Cette commande est à effectuer après l'installation manuelle d'une fonte. Elle scrute les différents emplacements possibles et mets à jour le cache pour l'utilisateur qui a lancé la commande :

$ fc-cache -fv
......
fc-cache: succeeded

4.2 - Recherche : fc-list

La commande pour rechercher parmi les polices répertoriées par le cache, est de la forme fc-list filtre affichage,

Exemples :

$ fc-list : file
/usr/share/fonts/truetype/liberation/LiberationSans-Bold.ttf:
/usr/share/fonts/truetype/tlwg/Kinnari-BoldItalic.ttf:
.....
$ fc-list : family
OpenSymbol
Droid Sans Mono
Droid Arabic Kufi
.......

Le nom de la police n'est pas nécessairement identique à celui qui est utilisé dans le nom de fichier - attention aux espaces, -, _ etc.... Dans l'exemple ci-dessous, le nom de la police est "Lobster two" alors que le nom de fichier fait référence à lobster!

$ fc-list : file |grep -i lobster
....
/usr/share/fonts/opentype/lobster/lobster.otf:
......
$ fc-list : family |grep Lobster
Lobster Two
$ fc-list :family="Lobster Two" style
:style=Regular
:style=Bold Italic
:style=Bold
:style=Italic
$ fc-list :family="Droid Arabic Kufi" lang
:lang=ar|az-ir|fa|ku-ir|ps-af|ps-pk|ug|ur|ku-iq|ota|pa-pk|sd|lah
    $ fc-list :lang="hi" family
FreeSerif
FreeSans

4.3 - Correspondances de polices : fc-match

La commande fc-match permet d'afficher la correspondance entre un nom de police et la police qui sera utilisée.

$ fc-match "liberation sans"
LiberationSans-Regular.ttf: "Liberation Sans" "Regular"
$ fc-match "freesans"
FreeSans.ttf: "FreeSans" "нормален"
$ fc-match "arial"
LiberationSans-Regular.ttf: "Liberation Sans" "Regular"
$ fc-match "times"
LiberationSerif-Regular.ttf: "Liberation Serif" "Regular"
$ fc-match "courier"
LiberationMono-Regular.ttf: "Liberation Mono" "Regular"
$ fc-match sans
LiberationSans-Regular.ttf: "Liberation Sans" "Regular"
$ fc-match serif
LiberationSerif-Regular.ttf: "Liberation Serif" "Regular"
$ fc-match mono
LiberationMono-Regular.ttf: "Liberation Mono" "Regular"
$ fc-match cursive
LobsterTwo-Regular.otf: "Lobster Two" "Regular"
$ fc-match fantasy
Purisa.ttf: "Purisa" "Medium"
$ fc-match inconnu
LiberationSans-Regular.ttf: "Liberation Sans" "Regular"

5 - Polices génériques

Le fichier fonts.conf permet de définir des alias pour les familles CSS. Créer sur le modèle ci-deesous un fichier ~/.config/fontconfig

$ nano ~/.config/fontconfig/fonts.conf
<?xml version="1.0"?>
<!DOCTYPE fontconfig SYSTEM "fonts.dtd">
<fontconfig> <!-- Fichier de configuration fonts.conf -->
<!--
Définition des alias pour les familles serif, sans-serif, monospace, cursive et fantasy :
-->
<alias>
<family>serif</family><prefer><family>Liberation Serif</family></prefer></alias>
<alias>
<family>sans-serif</family><prefer><family>Liberation Sans</family></prefer></alias>
<alias>
<family>monospace</family><prefer><family>Liberation Mono</family></prefer></alias>
<alias>
<family>cursive</family><prefer><family>Lobster two</family></prefer></alias>
<alias>
<family>fantasy</family><prefer><family>Purisa</family></prefer></alias>

</fontconfig>

Annexe 1 - Police système

L'onglet Polices du Menu Apparence de xfce4, permet de sélectionner la police système

Menu Apparence - Polices

Annexe 2 - Police du gestionnaire de session lightdm

La configuration des polices de l'écran de lightdm s'effectue à partir du fichier lightdm-gtk-greeter.conf :

$ cat /etc/lightdm/lightdm-gtk-greeter.conf
......
font-name = Liberation Sans 10
.....