14.3. Installation et configuration de polices

L'installation de polices supplémentaires sous SUSE Linux est une opération très simple. Il suffit de copier les polices vers un répertoire situé sur le chemin des polices X11 (reportez-vous à la Section 14.3.1, « Polices X11 de base »). Pour que les polices puissent être appliquées, leur répertoire d'installation doit être un sous-répertoire des répertoires configurés dans le fichier /etc/fonts/fonts.conf (reportez-vous à la Section 14.3.2, « Xft »).

Vous pouvez copier les fichiers manuellement (en tant qu'utilisateur root) vers un répertoire approprié, comme /usr/X11R6/lib/X11/fonts/truetype. Vous pouvez aussi utiliser le programme d'installation de polices KDE, qui se trouve dans le centre de contrôle KDE. Le résultat est identique.

Bien entendu, au lieu de copier les polices proprement dites, vous pouvez créer des liens symboliques. Cela peut être utile, par exemple, si vous avez des polices sous licence dans une partition Windows montée et que vous souhaitez les utiliser. Vous devez exécuter ensuite la commande SuSEconfig --module fonts.

La commande SuSEconfig --module fonts exécute le script /usr/sbin/fonts-config, qui gère la configuration des polices. Pour plus de détails sur ce script et ses effets, reportez-vous à la page de manuel correspondante (man fonts-config).

La procédure est identique pour tous les types de polices : bitmaps, TrueType, OpenType ou Type1 (PostScript). Tous ces types de polices peuvent être installés le répertoire de votre choix. Seules les polices codées en CID exigent une procédure légèrement différente. Pour plus d'informations, reportez-vous à la Section 14.3.3, « Polices codées en CID ».

X.Org regroupe deux systèmes de polices complètement différents : l'ancien système de polices X11 de base et le tout nouveau système Xft et fontconfig. Les sections suivantes décrivent brièvement ces deux systèmes.

14.3.1. Polices X11 de base

Actuellement, le système de polices X11 de base prend en charge non seulement les polices bitmaps, mais aussi les polices vectorielles (Type1, TrueType et OpenType) et celles codées en CID. Ainsi, les polices vectorielles sont prises en charge uniquement sans lissage ni rendu au niveau des sous-pixels, et le chargement des polices vectorielles de grande taille avec des caractères correspondant à de nombreuses langues peut être très long. Les polices Unicode sont également prises en charge, mais leur utilisation peut être lente et nécessiter davantage de mémoire.

Le système de polices X11 de base présente quelques points faibles. Il a beaucoup vieilli et aucune extension n'est plus vraiment efficace. Bien qu'il doive être conservé pour des raisons de compatibilité avec les versions précédentes, il est conseillé d'utiliser le système Xft et fontconfig, bien plus moderne, si vous le pouvez.

Pour fonctionner, le serveur X doit connaître les polices disponibles et leur emplacement sur le système. Cela est géré par la variable FontPath, qui contient le chemin de tous les répertoires de polices valides du système. Dans chacun de ces répertoires, un fichier nommé fonts.dir répertorie les polices disponibles. La variable FontPath est générée par le serveur X au démarrage. Le système recherche un fichier fonts.dir valide dans chacune des entrées FontPath du fichier de configuration /etc/X11/xorg.conf. Ces entrées se trouvent sous la section Files. La commande xset q permet d'afficher le chemin FontPath réel. Vous pouvez aussi modifier ce chemin pendant l'exécution, avec xset. La commande xset +fp <chemin> permet d'ajouter un chemin. Pour supprimer un chemin inutile, utilisez xset -fp <chemin>.

Si le serveur X est déjà actif, les polices nouvellement installées dans des répertoires montés peuvent être rendues accessibles via la commande xset fp rehash. Cette commande est exécutée par SuSEconfig --module fonts. Comme la commande xset a besoin d'accéder au serveur X en cours d'exécution, cela ne fonctionne que si SuSEconfig --module fonts est lancée à partir d'un shell qui a accès au serveur X actif. La méthode la plus simple consiste à s'identifier comme utilisateur root en entrant la commande su et le mot de passe approprié. La commande su transmet au shell racine (root) les autorisations d'accès de l'utilisateur qui a démarré le serveur X. Pour vérifier si les polices ont été correctement installées et sont disponibles via le système de polices  X11 de base, utilisez la commande xlsfonts pour répertorier toutes les polices disponibles.

Par défaut, SUSE Linux utilise les paramètres régionaux UTF-8. Il est donc conseillé d'utiliser des polices Unicode (noms de police qui finissent par iso10646-1 dans la sortie de la commande xlsfonts). Pour dresser la liste de toutes les polices Unicode disponibles, utilisez xlsfonts | grep iso10646-1. Pratiquement toutes les polices Unicode disponibles dans SUSE Linux contiennent au moins tous les glyphes nécessaires pour les langues européennes (anciennement codés en iso-8859-*).

14.3.2. Xft

Dès le départ, les programmeurs qui ont développé Xft ont veillé à ce que le système prenne en charge les polices vectorielles, et en particulier le lissage. Avec Xft, contrairement aux polices X11 de base, l'application utilisant les polices assure le rendu, et non le serveur X. Ainsi, l'application concernée a accès aux fichiers de polices réels et peut contrôler le rendu des caractères (glyphes). Cela permet une représentation correcte des caractères dans de nombreuses langues. L'accès direct aux fichiers de polices est très utile pour incorporer des polices lors de l'impression afin de garantir un résultat fidèle à l'image à l'écran.

Dans SUSE Linux, les deux environnements de bureau KDE et GNOME, Mozilla, ainsi que nombreuses autres applications, utilisent déjà Xft par défaut. Xft est déjà utilisé par bien d'autres applications que l'ancien système de polices X11 de base.

Xft utilise la bibliothèque fontconfig pour rechercher les polices et influer sur leur rendu. Les propriétés de fontconfig sont contrôlées par le fichier de configuration globale (/etc/fonts/fonts.conf) et le fichier de configuration propre à l'utilisateur (~/.fonts.conf). Chacun des fichiers de configuration de fontconfig doit commencer par :


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

et se terminer par :

</fontconfig>

Pour ajouter des répertoires où rechercher des polices, ajoutez des lignes du type :

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

Toutefois, cela est généralement inutile. Par défaut, le répertoire propre à l'utilisateur (~/.fonts) est déjà entré dans /etc/fonts/fonts.conf. Ainsi, pour installer des polices supplémentaires, il suffit de les copier vers ~/.fonts.

Vous pouvez également introduire des règles qui influent sur l'aspect des polices. Par exemple, entrez :


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

afin de désactiver le lissage pour toutes les 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>

pour désactiver le lissage pour des polices spécifiques.

Par défaut, la plupart des applications utilisent les noms de polices sans-serif (ou l'équivalent : sans), serifou monospace. Il ne s'agit pas de polices réelles, mais simplement d'alias qui désignent une police appropriée, en fonction de la langue définie.

Les utilisateurs peuvent ajouter facilement des règles à leur fichier ~/.fonts.conf pour que ces alias pointent vers leurs 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 pratiquement toutes les applications utilisent ces alias par défaut, ces règles affectent la quasi-totalité du système. Vous pouvez donc facilement utiliser vos polices favorites presque partout, sans avoir à modifier le paramétrage des polices dans chaque application.

La commande fc-list permet de connaître les polices installées et disponibles. La commande fc-list, par exemple, renvoie la liste de toutes les polices. Pour connaître, parmi les polices vectorielles disponibles (:scalable=true), celles qui contiennent tous les caractères hébraïques (:lang=he), connaître leurs noms (family), leur style (style), leur graisse (weight) et le nom du fichier où elles sont stockées, entrez la commande suivante :

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

La sortie de cette commande peut se présenter de la manière suivante :

    

FreeSansBold.ttf: FreeSans:style=Bold:weight=200
FreeMonoBoldOblique.ttf: FreeMono:style=BoldOblique:weight=200
FreeSerif.ttf: FreeSerif:style=Medium:weight=80
FreeSerifBoldItalic.ttf: FreeSerif:style=BoldItalic:weight=200
FreeSansOblique.ttf: FreeSans:style=Oblique:weight=80
FreeSerifItalic.ttf: FreeSerif:style=Italic:weight=80
FreeMonoOblique.ttf: FreeMono:style=Oblique:weight=80
FreeMono.ttf: FreeMono:style=Medium:weight=80
FreeSans.ttf: FreeSans:style=Medium:weight=80
FreeSerifBold.ttf: FreeSerif:style=Bold:weight=200
FreeSansBoldOblique.ttf: FreeSans:style=BoldOblique:weight=200
FreeMonoBold.ttf: FreeMono:style=Bold:weight=200

Paramètres importants que vous pouvez rechercher avec fc-list :

Tableau 14.2. Paramètres de fc-list

Paramètre

Signification et valeurs possibles

family

Nom de la famille de polices, comme FreeSans.

foundry

Nom du créateur de cette police, comme urw.

style

Style de police : Medium (moyen), Regular (standard), Bold (gras), Italic (italique) ou Heavy (épais).

lang

Langue prise en charge par la police ; par exemple, de pour l'allemand, ja pour le japonais, zh-TW pour le chinois traditionnel ou zh-CN pour le chinois simplifié.

weight

Graisse de la police : 80 pour une police standard ou 200 pour des caractères gras.

slant

Inclinaison : généralement, 0 pour une police standard et 100 pour l'italique.

file

Nom du fichier contenant la police.

outline

true s'il s'agit d'une police contour ou false dans le cas contraire.

scalable

true s'il s'agit d'une police vectorielle ou false dans le cas contraire.

bitmap

true s'il s'agit d'une police bitmaps ou false dans le cas contraire.

pixelsize

Taille de police, en pixels. L'utilisation de cette option avec fc-list n'est justifiée que pour les polices bitmaps.

14.3.3. Polices codées en CID

Contrairement aux autres types de polices, vous ne pouvez pas installer les polices codées en CID n'importe où. Elles doivent être installées dans /usr/share/ghostscript/Resource/CIDFont. Cela ne concerne pas le système Xft et fontconfig, mais cela reste nécessaire pour Ghostscript et le système de polices X11 de base.

[Tip]Astuce

Pour plus d'informations sur les polices sous X11, reportez-vous au site http://www.xfree86.org/current/fonts.html.