FreeBSD et les polices de caractères: Un guide utilisateur
Précédent |  | Suivant

# 5. X11 et les polices “Type 1”

X11 peut employer les formats de police de caractères `.pfa` et `.pfb`. Il y a une référence croisée de chaque fichier sur son nom X11 par l'intermédiaire du fichier `fonts.dir` de chaque répertoire.

Il y a déjà un répertoire appelé `Type1`. La façon la plus immédiate d'ajouter une police de caractères est de la mettre dans ce répertoire. Une meilleure manière de procéder est de mettre toutes les nouvelle polices dans un répertoire distinct et d'utiliser un lien symbolique sur ces nouvelles polices. Il est alors plus facile de distinguer ses propres polices de celles qui sont fournies d'origine. Par exemple:

- Créer un repertoire pour les fichiers de police de caractères.

      bash$ mkdir -p /usr/local/share/fonts/type1
      bash$ cd /usr/local/share/fonts/type1

- Y mettre les fichiers `.pfa`, `.pfb` et `.afm`. On peut aussi vouloir y conserver les fichiers `README` et autres documentations concernant les polices de caractères.

      bash$ cp /cdrom/fonts/atm/showboat/showboat.pfb .
      bash$ cp /cdrom/fonts/atm/showboat/showboat.afm .

- Tenir à jour un index pour créer les références croisées sur les polices.

      bash$ echo showboat - InfoMagic CICA, Dec 1994, /fonts/atm/showboat >>INDEX

Pour pouvoir maintenant utiliser une nouvelle police de caractères, il faut mettre le fichier à disposition, et mettre à jour le fichier des noms de polices. Les noms de police X11 se présentent comme suit:

    -bitstream-charter-medium-r-normal-xxx-0-0-0-0-p-0-iso8859-1
         |        |      |    |   |     |  | | | | | |    \    \
         |        |      |    |   |     \  \ \ \ \ \ \     +----+- jeu de caractères
         |        |      |    |   \      \  \ \ \ \ \ +- largeur moyenne
         |        |      |    |    \      \  \ \ \ \ +- espacement
         |        |      |    \     \      \  \ \ \ +- résolution verticale
         |        |      |     \     \      \  \ \ +- résolution horizontale
         |        |      |      \     \      \  \ +- points
         |        |      |       \  largeur   \  +- pixels
         |        |      |        \            \
       casse   famille graisse inclinaison style supplémentaire

Il faut créer un nouveau nom pour chaque nouvelle police. Si la documentation qui l'accompagne vous donne quelques informations, elle peut servir de base pour définir ce nom. Si vous n'avez aucune information, vous pouvez utiliser la commande strings(1) sur le fichier de police. Par exemple:

    bash$ strings showboat.pfb | more

    %!FontType1-1.0: Showboat 001.001
    %%CreationDate: 1/15/91 5:16:03 PM
    %%VMusage: 1024 45747
    % Generated by Fontographer 3.1
    % Showboat
     1991 by David Rakowski.  Alle Rechte Vorbehalten.
    FontDirectory/Showboat known{/Showboat findfont dup/UniqueID known{dup
    /UniqueID get 4962377 eq exch/FontType get 1 eq and}{pop false}ifelse
    {save true}{false}ifelse}{false}ifelse
    12 dict begin
    /FontInfo 9 dict dup begin
     /version (001.001) readonly def
     /FullName (Showboat) readonly def
     /FamilyName (Showboat) readonly def
     /Weight (Medium) readonly def
     /ItalicAngle 0 def
     /isFixedPitch false def
     /UnderlinePosition -106 def
     /UnderlineThickness 16 def
     /Notice (Showboat
     1991 by David Rakowski.  Alle Rechte Vorbehalten.) readonly def
    end readonly def
    /FontName /Showboat def
    --stdin--

A partir de ces informations, le nom pourrait être:

    -type1-Showboat-medium-r-normal-decorative-0-0-0-0-p-0-iso8859-1

Les composantes de ce nom sont:

Casse

  Appelons simplement toutes nos nouvelles polices `type1`.

Famille

  Le nom de la police.

Graisse

  Normal, gras, médium, semi-gras, etc. D'après les résultats de strings(1) ci-dessus, la police a une graisse médium.

Inclinaison

  roman, italique ou oblique. Comme ItaliqueAngle vaut 0, nous utiliserons roman.

Largeur

  Normale, large, condensée, étendue, etc. Jusqu'à ce que nous la déterminions à l'usage, nous supposerons qu'elle est normale.

Style supplémentaire

  Habituellement non renseigné, mais nous nous en servons pour indiquer que la police contient des majuscules décoratives.

Espacement

  Proportionnel ou fixe. Comme isFixedPitch est faux, nous utilisons Proportionnel.

Tous ces noms sont arbitraires, mais il faut essayer de rester compatible avec les conventions existantes. Une police est connue d'une application X11 sous un nom qui peut éventuellement comporter des caractères de substitution, il faut donc choisir un nom significatif. On peut commencer en utilisant simplement:

    ...-normal-r-normal-...-p-...

comme nom, puis se servir de xfontsel(1) pour visualiser la police et affiner son nom en fonction de ce à quoi elle ressemble.

Donc, pour compléter notre exemple:

- Rendre la police accessible à X11

      bash$ cd /usr/X11R6/lib/X11/fonts/Type1
      bash$ ln -s /usr/local/share/fonts/type1/showboat.pfb .

- Editer `fonts.scale` et `fonts.dir` pour y ajouter une ligne décrivant la nouvelle police et incrémenter le nombre de polices qui est défini en première ligne

      bash$ ex fonts.dir
      :1p
      25
      :1c
      26
      .
      :$a
      showboat.pfb -type1-showboat-medium-r-normal-decorative-0-0-0-0-p-0-iso8859-1
      .
      :wq

- `fonts.scale` et `fonts.dir` sont apparemment identiques

      bash$ cp fonts.dir fonts.scale

- Informer X11 des modifications

      bash$ xset fp rehash

- Visualiser la nouvelle police

      bash$ xfontsel -pattern -type1-*

Références: xfontsel(1), xset(1), The X Window System in a Nutshell, O'Reilly & Associates.

Précédent | Sommaire | Suivant
Configurer une console virtuelle en mode 80x60 lignes |  | Utiliser les polices “Type 1” avec GhostScript

Ce document, ainsi que d'autres peut être téléchargé sur 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>.