11.3. Installation et configuration de polices de caractères

L'installation de polices supplémentaires sous SUSE LINUX est très simple. Il suffit de copier les polices dans un répertoire qui se trouve dans le chemin désignant les polices pour X11 (voir Section 11.3.2, « Polices X11 de base ») et qui doit être un sous-répertoire des répertoires configurés dans le fichier /etc/fonts/fonts.conf (voir Section 11.3.1, « Xft »).

Vous pouvez copier manuellement (en tant que root) les fichiers de police dans un répertoire répondant à ces critères, par exemple /usr/X11R6/lib/X11/fonts/truetype. Vous pouvez aussi utiliser le programme d'installation de police de KDE du centre de contrôle KDE. Le résultat est identique.

Naturellement, vous pouvez tout aussi bien créer des liens symboliques plutôt que de copier effectivement les polices. Par exemple, lorsque vous disposez, sur une partition Windows, de polices sous licence que vous souhaitez utiliser. Appelez ensuite la commande SuSEconfig  --module fonts.

SuSEconfig --module fonts appelle le script /usr/sbin/fonts-config qui prend en charge la configuration des polices. Pour plus de détails sur ce script et ses effets, vous pouvez lire la page de manuel correspondante (man fonts-config).

Le type de police à installer n'a ici aucune importance, la procédure d'installation reste identique pour les polices Bitmap, les polices TrueType et OpenType et les polices (PostScript) Type 1. Tous ces types de police peuvent être installés dans un répertoire quelconque. Les polices codées en CID représentent la seule exception. Pour ce cas, reportez-vous à Section 11.3.3, « Polices codées en CID ».

X.Org contient deux systèmes de police totalement différents, d'une part le déjà ancien Système de polices X11 de base, d'autre part le tout nouveau système Xft et fontconfig. Dans ce qui suit, vous trouverez une courte présentation des deux systèmes.

11.3.1. Xft

Dès le début de la conception de Xft, il a été apporté le plus grand soin à la prise en charge des polices vectorielles, en particulier le lissage. Contrairement à la gestion effectuée par le système de polices X11 de base, lorsque l'on utilise Xft, c'est le programme utilisant les polices qui effectue lui-même le rendu, et non le serveur X. Ainsi, le programme en question accède aux fichiers de polices lui-même, et contrôle les moindres détails de rendu des caractères. D'une part, cela permet une représentation correcte de caractères dans de nombreuses langues, d'autre part, l'accès direct aux fichiers de polices est particulièrement intéressant pour inclure (en anglais to embed) les polices à l'impression et ainsi obtenir un résultat sur papier équivalent à ce qu'on observe sur l'écran.

Par défaut, sous SUSE LINUX, les deux environnements de bureau KDE et GNOME, Mozilla et de nombreuses autres applications utilisent déjà Xft. Xft est ainsi d'ores et déjà utilisé par un nombre d'applications bien plus important que l'ancien système de polices X11 de base.

Xft utilise la bibliothèque fontconfig pour trouver les polices ainsi que pour influer sur l'art et la manière dont elles sont rendues. Le comportement de fontconfig est dirigé par le fichier de configuration /etc/fonts/fonts.conf, qui s'étend à l'ensemble du système, et par le fichier de configuration ~/.fonts.conf qui est spécifique à l'utilisateur. Chacun de ces fichiers de configuration fontconfig doit commencer par

<?xml version="1.0"?>
<!DOCTYPE fontconfig SYSTEM "fonts.dtd">
<fontconfig>

et finir par

</fontconfig>

Pour indiquer les répertoires dans lesquels aller chercher les polices, vous pouvez saisir des lignes telles que :

<dir>/usr/local/share/fonts/</dir>

Ceci est toutefois rarement nécessaire. Le répertoire ~/.fonts, propre à l'utilisateur, est déjà renseigné par défaut dans /etc/fonts/fonts.conf. Lorsqu'un utilisateur souhaite installer des polices pour son usage personnel, il lui suffit donc de les copier dans le répertoire ~/.fonts.

Vous pouvez également introduire des règles pour modifier l'apparence des polices, par exemple

<match target="font">
 <edit name="antialias" mode="assign">
  <bool>false</bool>
 </edit>
</match>

pour désactiver le lissage pour l'ensemble des polices, ou bien

<match target="font">
 <test name="family">
  <string>Luxi Mono</string>
  <string>Luxi Sans</string>
 </test>
 <edit name="antialias" mode="assign">
 <bool>false</bool>
 </edit>
</match>

lorsque vous ne souhaitez le désactiver que pour des polices bien définies.

La plupart des applications utilisent par défaut les noms de police sans-serif (ou son équivalent monospace), serif ou monospace. Ce ne sont pas des polices réelles mais simplement des redirections qui pointent vers les polices appropriées en fonction de la langue configurée.

Chaque utilisateur peut ainsi intégrer à son fichier ~/.fonts.conf des règles simples pour faire pointer ces redirections vers ses polices favorites :

<alias>
 <family>sans-serif</family>
 <prefer>
  <family>FreeSans</family>
 </prefer>
</alias>
<alias>
 <family>serif</family>
 <prefer>
  <family>FreeSerif</family>
 </prefer>
</alias>
<alias>
 <family>monospace</family>
 <prefer>
  <family>FreeMono</family>
 </prefer>
</alias>

Comme la plupart des applications utilisent par défaut ce système de redirection, ces règles peuvent s'appliquer à la quasi-totalité du système. Ainsi, vous pouvez utiliser presque partout vos polices préférées sans avoir à modifier individuellement la configuration de chaque programme.

Pour obtenir une liste des polices installées et disponibles, vous pouvez utiliser la commande fc-list. fc-list "" renvoie par exemple la liste de toutes les polices. Si vous souhaitez connaître les polices vectorielles (:outline=true) disposant de tous les caractères hébraïques (:lang=he) disponibles dans le système, et que vous voulez obtenir, pour chacune de ces polices, le nom (family), le style (style), la graisse (weight) et le nom du fichier contenant cette police, vous pouvez utiliser par exemple la commande suivante :

    fc-list ":lang=he:outline=true" family style weight file

Le résultat d'une telle commande pourrait avoir l'allure suivante :

    
/usr/X11R6/lib/X11/fonts/truetype/FreeSansBold.ttf: FreeSans:style=Bold:weight=200
/usr/X11R6/lib/X11/fonts/truetype/FreeMonoBoldOblique.ttf: FreeMono:style=BoldOblique:weight=200
/usr/X11R6/lib/X11/fonts/truetype/FreeSerif.ttf: FreeSerif:style=Medium:weight=80
/usr/X11R6/lib/X11/fonts/truetype/FreeSerifBoldItalic.ttf: FreeSerif:style=BoldItalic:weight=200
/usr/X11R6/lib/X11/fonts/truetype/FreeSansOblique.ttf: FreeSans:style=Oblique:weight=80
/usr/X11R6/lib/X11/fonts/truetype/FreeSerifItalic.ttf: FreeSerif:style=Italic:weight=80
/usr/X11R6/lib/X11/fonts/truetype/FreeMonoOblique.ttf: FreeMono:style=Oblique:weight=80
/usr/X11R6/lib/X11/fonts/truetype/FreeMono.ttf: FreeMono:style=Medium:weight=80
/usr/X11R6/lib/X11/fonts/truetype/FreeSans.ttf: FreeSans:style=Medium:weight=80
/usr/X11R6/lib/X11/fonts/truetype/FreeSerifBold.ttf: FreeSerif:style=Bold:weight=200
/usr/X11R6/lib/X11/fonts/truetype/FreeSansBoldOblique.ttf: FreeSans:style=BoldOblique:weight=200
/usr/X11R6/lib/X11/fonts/truetype/FreeMonoBold.ttf: FreeMono:style=Bold:weight=200

Les paramètres essentiels pouvant être utilisés avec fc-list sont :

Tableau 11.3. Paramètres possibles pour fc-list

Paramètre

Signification et valeurs possibles

family

Nom de la famille de police, par exemple FreeSans

foundry

Société ayant produit la police, par exemple urw

style

Style de la police, par exemple Medium, Regular, Bold, Italic, Heavy.

lang

Langues prises en charge par la police ; par exemple fr pour le français, ja pour le japonais, zh-TW pour le chinois traditionnel ou zh-CN pour le chinois simplifié.

weight

Graisse de la police, par exemple 80 pour une police maigre, 200 pour une police grasse.

slant

Degré de cursivité, principalement 0 pour une fonte non cursive, 100 pour une fonte italique.

file

Nom du fichier contenant la police

outline

true s'il s'agit d'une police « outline », false sinon.

scalable

true s'il s'agit d'une police vectorielle, false sinon.

bitmap

true s'il s'agit d'une police bitmap, false sinon.

pixelsize

Taille de la police en pixels. Cette option utilisée avec fc-list n'a de sens que pour les polices bitmap.

11.3.2. Polices X11 de base

Actuellement, le système de polices X11 de base prend en charge non seulement les polices bitmap, mais aussi les polices vectorielles telles que les polices Type1, les polices TrueType et OpenType ou encore les polices codées en CID. Les polices unicode sont également déjà prises en charge depuis longtemps. À l'origine, le système de polices X11 de base a été développé en 1987 pour X11R1 afin de gérer les polices bitmap monochromes. On constate que, jusqu'à aujourd'hui, toutes les extensions mentionnées ci-dessus ont été introduites ultérieurement dans le système.

Ainsi, par exemple, les polices vectorielles ne sont prises en charge que sans lissage et sans rendu à précision subpixel et le chargement de polices vectorielles de grande taille, gérant les caractères pour plusieurs langues, peut être particulièrement long. L'utilisation de polices Unicode peut aussi s'avérer lent et utiliser plus de mémoire.

Le système de polices X11 de base possède quelques faiblesses de fond. On peut raisonnablement dire qu'il a vieilli et qu'il n'est plus sensé de chercher à développer des extensions. Pour des raisons de compatibilité ascendante, il reste disponible, mais il est conseillé d'utiliser, dès que possible, le système Xft et fontconfig, bien plus moderne.

Pour son fonctionnement, le serveur X doit savoir quelles polices sont disponibles et où elles se trouvent dans le système. Ceci est géré par la variable FontPath qui contient le chemin d'accès de tous les répertoires de fontes du système valides. Dans chacun de ces répertoires, un fichier nommé fonts.dir répertorie les fontes disponibles dans ce répertoire. FontPath est générée par le serveur X au démarrage et recherche un fichier fonts.dir valide dans chacune des entrées FontPath dans le fichier de configuration /etc/X11/xorg.conf. Ces entrées se trouvent dans la section Files. Affichez FontPath avec xset q. Ce chemin peut également être changé pendant le fonctionnement à l'aide de xset. Pour ajouter un chemin supplémentaire, utilisez xset +fp <path>. Pour supprimer un chemin non souhaité, utilisez xset -fp <path>.

Lorsque le serveur X est déjà lancé, des polices qui viennent d'être installées dans des répertoires déjà montés peuvent être mises à disposition à l'aide de la commande xset fp rehash. Cette commande est également exécutée par SuSEconfig --module fonts. Comme la commande xset nécessite un accès au serveur X en cours d'exécution, ceci ne peut fonctionner que si SuSEconfig  --module fonts est lancée à partir d'un interpréteur de commandes ayant un accès au serveur X qui s'exécute. Le plus simple pour parvenir à ce résultat est d'utiliser la commande sux et de saisir le mot de passe de root dans un terminal pour prendre la main en tant qu'utilisateur root : sux transmet à l'interpréteur root les droits de l'utilisateur ayant lancé le serveur X. Pour tester si les polices ont été installées correctement et sont disponibles dans le système de polices X11 de base, vous pouvez utiliser la commande xlsfonts qui dresse la liste de toutes les polices disponibles.

SUSE LINUX utilise par défaut l'encodage UTF-8 local, en conséquence, il vous est conseillé d'utiliser en règle générale les polices Unicode (noms de police reconnaissables à leur terminaison en iso10646-1 dans la liste affichée par xlsfonts). Vous pouvez ainsi obtenir la liste de toutes les polices Unicode disponibles à l'aide de la commande xlsfonts | grep iso10646-1. La quasi-totalité des polices Unicode disponibles sous SUSE LINUX contiennent, au moins, tous les caractères nécessaires pour les langues européennes (précédents encodages : iso-8859-*).

11.3.3. Polices codées en CID

Contrairement aux autres types de polices, les polices codées en CID ne peuvent pas être installées dans un répertoire quelconque. Elles doivent toujours être installées dans le répertoire /usr/share/ghostscript/Resource/CIDFont. Cela n'a pas d'importance pour Xft et fontconfig, en revanche Ghostscript et le système de polices X11 de base l'exigent.

[Tip]Astuce

Des informations complémentaires concernant les polices sous X11 sont disponibles à l'adresse http://www.xfree86.org/current/fonts.html.


SUSE LINUX Guide de l'administrateur 9.2