5.5. Utilisation des polices de caractères sous Xorg

5.5.1. Polices de caractères Type1

Les polices de caractères livrées par défaut avec Xorg 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 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 Xorg.. 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 Gimp, et ne sont pas suffisamment complètes pour servir de polices de caractères d'affichage. De plus Xorg 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 Section 5.5.2, « Polices de caractères TrueType® ».

Pour installer les collections de polices de caractères Type1 précédentes à partir des paquets binaires, lancez les commandes suivantes:

# pkg install urwfonts

Pour les compiler à 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/share/fonts/URW/"

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

% xset fp+ /usr/local/share/fonts/urwfonts
% xset fp rehash

Cela fonctionnera mais la configuration sera perdue 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: comme montré dans la section Section 5.5.3, « Polices de caractères anticrénelage ».

5.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/share/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 Apple® Mac®; elles doivent être dans un format UNIX®/MS-DOS®/Windows® pour être utilisées sous Xorg. Une fois les fichiers copiés dans ce répertoire, utilisez mkfontscale 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. mkfontscale peut être installé à partir d'un paquet binaire:

# pkg install mkfontscale

Puis créez un index des polices de caractères pour X dans le répertoire:

# cd /usr/local/share/fonts/TrueType
# mkfontscale

Maintenant ajoutez le répertoire des polices TrueType® au chemin des polices de caractères. Cela est identique à ce qui est décrit dans la section Section 5.5.1, « Polices de caractères Type1 »:

% xset fp+ /usr/local/share/fonts/TrueType
% xset fp rehash

ou ajouter une ligne FontPath au fichier xorg.conf.

Désormais Gimp, LibreOffice, et toutes les autres applications X devraient maintenant reconnaître les polices de caractères TrueType® installées. 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 LibreOffice) auront un rendu bien meilleur maintenant.

5.5.3. Polices de caractères anticrénelage

Toutes les polices de caractères sous Xorg se trouvant dans les répertoires /usr/local/share/fonts/ et ~/.fonts/ sont automatiquement disponibles pour l'anticrénelage avec les applications compatibles Xft. La plupart des application sont compatibles Xft, comme KDE, GNOME, et Firefox.

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/share/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 polices, 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 de taille normale. 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 applications. 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.

Les utilisateurs peuvent ajouter leurs propres paramètres par l'intermédiaire de leur propre fichier ~/.config/fontconfig/fonts.conf. Ce fichier doit utiliser le même format XML décrit précédemment.

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éterminer lequel fonctionne le mieux.

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>.