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

# 7. Utiliser les polices ``Type 1'' avec Groff

Maintenant que nous pouvons utiliser la nouvelle police avec X11 et GhostScript, comment faire pour s'en servir aussi avec groff? Tout d'abord, comme nous nous occupons de polices PostScript ``Type 1'', le périphérique groff à utiliser est `ps`. Il faut créer un fichier de police pour chaque police utilisée par groff. Le nom d'une police groff se résume à un fichier dans le répertoire `/usr/share/groff_font/devps`. Dans notre exemple, ce pourrait être `/usr/share/groff_font/devps/SHOWBOAT`. Il faut créer ce fichier avec les outils fournis par groff.

Le premier outil est `afmtodit`. Il n'est pas normalement installé et doit donc être extrait de la distribution sous forme de sources. Je me suis aperçu qu'il fallait modifier la première ligne du fichier, voici donc ce que j'ai fait:

    bash$ cp /usr/src/gnu/usr.bin/groff/afmtodit/afmtodit.pl /tmp
    bash$ ex /tmp/afmtodit.pl
    :1c
    #!/usr/bin/perl -P-
    .
    :wq

Cet outil crée le fichier de police groff à partir du fichier de dimensions de la police (suffixe `.afm`). Pour continuer avec notre exemple:

- De nombreux fichiers `.afm` sont au format Mac... avec des lignes terminées par des ^M

  Il faut les convertir au style Unix avec des lignes terminées par des ^J

      bash$ cd /tmp
      bash$ cat /usr/local/share/fonts/type1/showboat.afm |
             tr '\015' '\012' >showboat.afm

- Créons maintenant le fichier de police groff

      bash$ cd /usr/share/groff_font/devps
      bash$ /tmp/afmtodit.pl -d DESC -e text.enc /tmp/showboat.afm generate/textmap SHOWBOAT

La police peut maintenant être référencée par le nom SHOWBOAT.

Si l'on utilise GhostScript pour piloter les imprimantes du système, il n'y a rien d'autre à faire. Si, par contre, l'on utilise de vraies imprimantes PostScript, il faut alors charger la police sur l'imprimante pour pouvoir l'utiliser (à moins que l'imprimante ne dispose de la police ``showboat'' en interne ou sur une disquette de polices accessible). La dernière étape consiste à créer la police chargeable. L'outil `pfbtops` est utilisé pour créer le format `.pfa` de la police et le fichier `download` est modifié pour faire référence à la nouvelle police. Le fichier `download` doit indiquer le nom interne de la police. Ce nom peut être facilement connu à l'aide du fichier de police groff, comme le montre l'exemple:

- Créer le fichier de police `.pfa`

      bash$ fgrep internalname SHOWBOAT
      internalname Showboat

- Dire à groff qu'il faut charger la police

      bash$ ex download
      :$a
      Showboat      showboat.pfa
      .
      :wq

Pour tester la police:

    bash$ cd /tmp
    bash$ cat >exemple.t <<EOF
    .sp 5
    .ps 15
    C'est un exemple de police Showboat:
    .br
    .ps 48
    .vs (\n(.s+2)p
    .sp
    .ft SHOWBOAT
    ABCDEFGHI
    .br
    JKLMNOPQR
    .br
    STUVWXYZ
    .sp
    .ps 16
    .vs (\n(.s+2)p
    .fp 5 SHOWBOAT
    .ft 5
    Utilisée comme première lettre d'un paragraphe. Cela ressemblera à:
    .sp50p
    \s(48\f5V\s0\fRoici la première phrase d'un paragraphe qui utilise
    la police showboat pour sa première lettre. Il faut augmenter
    l'espacement vertical pour laisser de la place pour la première
    lettre.
    EOF
    bash$ groff -Tps exemple.t >exemple.ps

- Pour utiliser GhostScript/GhostView

      bash$ ghostview exemple.ps

- Pour l'imprimer

      bash$ lpr -Ppostscript exemple.ps

Références: `/usr/src/gnu/usr.bin/groff/afmtodit/afmtodit.man`, groff_font(5), groff_char(5), pfbtops(1).

Précédent | Sommaire | Suivant
Utiliser les polices ``Type 1'' avec GhostScript |  | Peut-on utiliser des polices ``True Type''?

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