6.5. Utilisation des polices de caractères sous X11

Contribution de Murray Stokely.

6.5.1. Polices de caractères Type1

Les polices de caractères livrées par défaut avec X11 sont loin d'être idéales pour des applications de type publication. Les grandes polices utilisées pour les présentations présentent un aspect en escalier et peu professionnel, et les petites polices sous Netscape® sont presque complètement illisibles. Cependant, il existe de nombreuses polices Type1 (PostScript®) gratuites, de hautes qualités qui peuvent être aisément utilisées avec X11. Par exemple, la collection de polices de caractères URW (x11-fonts/urwfonts) comprend une version haute qualité des polices de caractères standards type1 (Times Roman®, Helvetica®, Palatino® et autres). La collection Freefonts (x11-fonts/freefonts) comprend beaucoup plus de polices de caractères, mais la plupart d'entre elles sont destinées à être utilisées avec des logiciels graphiques comme The Gimp, et ne sont pas suffisamment complètes pour servir de polices de caractères d'affichage. De plus X11 peut être configuré pour utiliser les polices de caractères TrueType® avec un minimum d'effort. Pour plus de détails à ce sujet, consultez la page de manuel X(7) ou la section sur les polices de caractères TrueType®.

Pour installer les collections de polices de caractères Type1 précédentes à partir du catalogue des logiciels portés, lancez les commandes suivantes:

# cd /usr/ports/x11-fonts/urwfonts
# make install clean

Et de même pour la collection Freefont ou d'autres. Pour que le serveur X détecte ces polices, ajoutez une ligne appropriée au fichier de configuration du serveur X (/etc/X11/xorg.conf), du type:

FontPath "/usr/local/lib/X11/fonts/URW/"

Autre possibilité, en ligne de commande dans une session X lancez:

% xset fp+ /usr/local/lib/X11/fonts/URW
% xset fp rehash

Cela fonctionnera mais les effets seront perdus quand la session X sera fermée, à moins de l'ajouter dans le fichier de démarrage (~/.xinitrc pour une session startx classique, ou dans ~/.xsession quand on s'attache au système par l'intermédiaire d'un gestionnaire de session graphique comme XDM). Une troisième méthode est d'utiliser le nouveau fichier /usr/local/etc/fonts/local.conf: voir la section sur l'anticrénelage.

6.5.2. Polices de caractères TrueType®

Xorg dispose d'un support intégré pour le rendu des polices TrueType®. Il y a deux différents modules qui peuvent activer cette fonctionnalité. Le module freetype est utilisé dans cet exemple parce qu'il est plus compatible avec les autres moteurs de rendu des polices de caractères. Pour activer le module freetype ajoutez juste la ligne suivante dans la section "Module" du fichier /etc/X11/xorg.conf.

Load  "freetype"

Maintenant créez un répertoire pour les polices TrueType® (par exemple /usr/local/lib/X11/fonts/TrueType) et copiez toutes les polices TrueType® dans ce répertoire. Gardez à l'esprit que les polices TrueType® ne peuvent être directement prises d'un Macintosh; elles doivent être dans un format UNIX®/MS-DOS®/Windows pour être utilisées sous X11. Une fois les fichiers copiés dans ce répertoire, utilisez ttmkfdir pour créer un fichier fonts.dir, de façon à ce que le moteur d'affichage des polices d'X sache que de nouveaux fichiers ont été installés. ttmkfdir est disponible dans le catalogue des logiciels portés de FreeBSD sous x11-fonts/ttmkfdir.

# cd /usr/local/lib/X11/fonts/TrueType
# ttmkfdir -o fonts.dir

Maintenant ajoutez le répertoire des polices TrueType® au chemin des polices de caractères. Cela est identique à ce qui est décrit ci-dessus pour les polices Type1, c'est à dire, utiliser

% xset fp+ /usr/local/lib/X11/fonts/TrueType
% xset fp rehash

ou ajouter une ligne FontPath au fichier xorg.conf.

Voilà. Désormais Netscape®, Gimp, StarOffice, et toutes les autres applications X devraient maintenant reconnaître les polices de caractères TrueType®. Les polices très petites (comme le texte de page web visualisé sur un écran haute résolution) et les très grandes polices (dans StarOffice) auront un rendu bien meilleur maintenant.

6.5.3. Polices de caractères anticrénelage

Mis à jour par Joe Marcus Clarke.

L'anticrénelage est disponible sous X11 depuis XFree86 4.0.2. Cependant, la configuration des polices de caractères était relativement lourde avant l'arrivée d'XFree86 4.3.0. Depuis XFree86 4.3.0, toutes les polices sous X11 se trouvant dans les répertoires /usr/local/lib/X11/fonts/ et ~/.fonts/ sont automatiquement disponibles pour l'anticrénelage avec les applications compatibles Xft. Toutes les applications ne sont pas compatibles Xft, mais de nombreuses ont été dotées du support Xft. Par exemple, les applications utilisant Qt 2.3 et versions suivantes (la boîte à outils pour l'environnement de travail KDE), GTK+ 2.0 et suivantes (la boîte à outils de l'environnement de travail GNOME), et Mozilla 1.2 et versions suivantes.

Afin de contrôler quelles polices de caractères sont anticrénelées, ou pour configurer les propriétés de l'anticrénelage, créez (ou éditez, s'il existe déjà) le fichier /usr/local/etc/fonts/local.conf. Plusieurs caractéristiques avancées du système de fontes Xft peuvent être ajustées par l'intermédiaire de ce fichier; cette section ne décrit que des possibilités simples. Pour plus de détails, consultez la page de manuel fonts-conf(5).

Ce fichier doit être dans le format XML. Faites attention à la casse des caractères, et assurez-vous que toutes les balises sont correctement fermées. Le fichier débute avec l'entête XML classique suivie par une définition DOCTYPE, puis de la balise <fontconfig>:

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

Comme précisé précédemment, l'ensemble des polices de caractères du répertoire /usr/local/lib/X11/fonts/ comme du répertoire ~/.fonts/ sont disponibles pour les applications compatibles Xft. Si vous désirez ajouter un autre répertoire en dehors des ces deux là, ajoutez une ligne similaire à la suivante au fichier /usr/local/etc/fonts/local.conf:

<dir>/chemin/vers/mes/fontes</dir>

Après l'ajout de nouvelles fontes, et tout particulièrement de nouveaux répertoires de polices, vous devrez exécuter la commande suivante pour reconstituer le cache des polices de caractères:

# fc-cache -f

L'anticrénelage rend les bords légèrement flous, ce qui rend le texte très petit plus lisible et enlève l'effet “d'escalier” des grands textes, mais peut provoquer une fatigue visuelle si c'est appliqué au texte normal. Pour exclure les tailles de polices inférieures à 14 points de l'anticrénelage, ajoutez ces lignes:

	 <match target="font">
	  <test name="size" compare="less">
		<double>14</double>
	  </test>
	  <edit name="antialias" mode="assign">
		<bool>false</bool>
	  </edit>
	</match>
	<match target="font">
	  <test name="pixelsize" compare="less" qual="any">
		<double>14</double>
	  </test>
	  <edit mode="assign" name="antialias">
		<bool>false</bool>
	  </edit>
	</match>

L'espacement pour certaines polices de caractères à chasse fixe peut également être inapproprié avec l'anticrénelage. Cela semble être un problème avec KDE, en particulier. Une solution possible pour cela est de forcer l'espacement pour de telles polices de caractères à 100. Ajoutez les lignes suivantes:

	 <match target="pattern" name="family">
	  <test qual="any" name="family">
	    <string>fixed</string>
	  </test>
	  <edit name="family" mode="assign">
	    <string>mono</string>
	  </edit>
	</match>
	<match target="pattern" name="family">
	  <test qual="any" name="family">
	    <string>console</string>
	  </test>
	  <edit name="family" mode="assign">
	    <string>mono</string>
	  </edit>
	</match>

(ceci ajoute un alias "mono" pour les autres noms communs des polices de caractères fixes), puis ajoutez:

	 <match target="pattern" name="family">
	  <test qual="any" name="family">
	    <string>mono</string>
	  </test>
	  <edit name="spacing" mode="assign">
	    <int>100</int>
	  </edit>
	</match>

Certaines polices de caractères, comme Helvetica, peuvent présenter des problèmes lors de l'anticrénelage. Généralement cela se manifeste par l'impression que la fonte semble coupée en deux verticalement. Au pire cela peut provoquer des crashs avec certaines application comme Mozilla. Pour éviter cela, pensez à ajouter ce qui suit au fichier local.conf:

	 <match target="pattern" name="family">
	  <test qual="any" name="family">
	    <string>Helvetica</string>
	  </test>
	  <edit name="family" mode="assign">
	    <string>sans-serif</string>
	  </edit>
	</match>

Une fois l'édition de local.conf achevée, assurez-vous que le fichier se termine par la balise </fontconfig>. Si ce n'est pas le cas, tous vos changements seront ignorés.

L'ensemble de polices de caractères fourni par défaut avec X11 n'est pas très adapté pour l'anticrénelage. Un bien meilleur ensemble de fontes peut être trouvé dans le catalogue des logiciels portés: x11-fonts/bitstream-vera. Ce logiciel installera un fichier /usr/local/etc/fonts/local.conf si ce dernier n'existe pas déjà. Si le fichier existe, le logiciel porté créera un fichier nommé /usr/local/etc/fonts/local.conf-vera. Il fusionnera le contenu de ce fichier dans /usr/local/etc/fonts/local.conf, et les polices de caractères Bitstream remplaceront automatiquement les polices avec empattement (serif), sans empattement (sans-serif) et à chasse fixe d'X11.

Et enfin, les utilisateurs peuvent ajouter leurs propres paramètres par l'intermédiaire de leur fichier .fonts.conf. Pour cela, chaque utilisateur devrait créer un fichier ~/.fonts.conf. Ce fichier doit également être écrit en XML.

Un dernier point: avec un écran LCD, un échantillonnage “sub-pixel” peut être désiré. Fondamentalement, ceci traite les composantes rouge, verte et bleu séparément (horizontalement séparées) pour améliorer la résolution horizontale; les résultats peuvent être dramatiques. Pour activer cela, ajoutez quelque part dans le fichier local.conf les lignes:

	 <match target="font">
	  <test qual="all" name="rgba">
	    <const>unknown</const>
	  </test>
	  <edit name="rgba" mode="assign">
	    <const>rgb</const>
	  </edit>
	</match>
      

Note:

En fonction de type d'écran, le terme “rgb” pourra devoir être changé pour “bgr”, “vrgb” ou “vbgr”: expérimentez pour définir lequel fonctionne le mieux.

L'anticrénelage devrait être activé au prochain lancement du serveur X. Cependant, notez que les applications doivent savoir comment l'utiliser. A l'heure actuelle, le “toolkit” Qt le supporte, donc l'intégralité de l'environnement KDE peut utiliser des polices anticrénelées. GTK+ et GNOME peuvent également faire usage de l'anticrénelage via le système « Font » (voir la Section 6.7.1.3, « Polices de caractères anticrénelage avec GNOME » pour plus de détails). Par défaut, Mozilla 1.2 et versions suivantes utiliseront automatiquement l'anticrénelage. Pour désactiver cette caractéristique, recompilez Mozilla avec le paramètre -DWITHOUT_XFT.

Ce document, ainsi que d'autres peut être téléchargé sur ftp://ftp.FreeBSD.org/pub/FreeBSD/doc/

Pour toutes questions à propos de FreeBSD, lisez la documentation avant de contacter <questions@FreeBSD.org>.

Pour les questions sur cette documentation, contactez <doc@FreeBSD.org>.