764 lines
34 KiB
XML
Executable file
764 lines
34 KiB
XML
Executable file
<?xml version="1.0" encoding="iso-8859-1"?>
|
|
<!DOCTYPE article PUBLIC "-//FreeBSD//DTD DocBook XML V5.0-Based Extension//EN"
|
|
"http://www.FreeBSD.org/XML/share/xml/freebsd50.dtd">
|
|
<!--
|
|
The FreeBSD Documentation Project
|
|
The FreeBSD French Documentation Project
|
|
|
|
$FreeBSD$
|
|
Original revision: n.nn
|
|
-->
|
|
<article xmlns="http://docbook.org/ns/docbook" xmlns:xlink="http://www.w3.org/1999/xlink" version="5.0" xml:lang="fr">
|
|
<info><title>FreeBSD et les polices de caractères</title><subtitle>Un guide utilisateur</subtitle>
|
|
|
|
|
|
<authorgroup>
|
|
<author><personname><firstname>Dave</firstname><surname>Bodenstab</surname></personname></author>
|
|
</authorgroup>
|
|
<abstract>
|
|
<para><email>imdave@synet.net</email></para>
|
|
<para>Mercredi 7 Aout 1996</para>
|
|
<para>Ce document décrit les différents fichiers de polices de caractères
|
|
qui peuvent être utilisés avec FreeBSD et le pilote syscons, X11,
|
|
GhostScript et Groff. Des exemples immédiatement applicables sont donnés
|
|
pour passer l'affichage à la console en mode 80x60 et pour se servir des
|
|
polices “Type 1” avec les programmes d'application
|
|
précités.</para>
|
|
|
|
&trans.a.haby;
|
|
</abstract>
|
|
|
|
<pubdate>$FreeBSD$</pubdate>
|
|
|
|
<releaseinfo>$FreeBSD$</releaseinfo>
|
|
</info>
|
|
<sect1>
|
|
<title>Introduction</title>
|
|
<para>Il y a de nombreuses sources de polices de caractères disponibles,
|
|
et l'on peut se demander comment les utiliser avec FreeBSD. La
|
|
réponse peut être obtenue en détaillant attentivement la
|
|
documentation du composant voulu. Cela peut prendre beaucoup de
|
|
temps, ce guide essaie donc de fournir un raccourci pour les autres
|
|
personnes que cela intéresserait.</para>
|
|
</sect1>
|
|
<sect1>
|
|
<title>Terminologie élémentaire</title>
|
|
<para>Il y a de nombreux formats de polices de caractères avec chacun
|
|
son propre suffixe de nom de fichier. Quelques uns d'entre eux
|
|
seront discutés dans ce document:</para>
|
|
<variablelist>
|
|
<varlistentry>
|
|
<term><filename>.pfa</filename>, <filename>.pfb</filename></term>
|
|
<listitem>
|
|
<para>Polices PostScript “Type 1”.
|
|
<filename>.pfa</filename> est le format <emphasis>A</emphasis>scii
|
|
et <filename>.pfb</filename> le format
|
|
<emphasis>B</emphasis>inaire.</para>
|
|
</listitem>
|
|
</varlistentry>
|
|
<varlistentry>
|
|
<term><filename>.afm</filename></term>
|
|
<listitem>
|
|
<para>Le fichier de dimensions d'une police
|
|
“Type 1”.</para>
|
|
</listitem>
|
|
</varlistentry>
|
|
<varlistentry>
|
|
<term><filename>.pfm</filename></term>
|
|
<listitem>
|
|
<para>Le fichier de dimensions pour l'impression d'une police
|
|
“Type 1”.</para>
|
|
</listitem>
|
|
</varlistentry>
|
|
<varlistentry>
|
|
<term><filename>.ttf</filename></term>
|
|
<listitem>
|
|
<para>Police “True Type”.</para>
|
|
</listitem>
|
|
</varlistentry>
|
|
<varlistentry>
|
|
<term><filename>.fot</filename></term>
|
|
<listitem>
|
|
<para>Référence indirecte à une police “True Type” (ce
|
|
n'est pas la police elle-même).</para>
|
|
</listitem>
|
|
</varlistentry>
|
|
<varlistentry>
|
|
<term><filename>.fon</filename>, <filename>.fnt</filename></term>
|
|
<listitem>
|
|
<para>Police de caractères “bitmap” pour affichage à
|
|
l'écran.</para>
|
|
</listitem>
|
|
</varlistentry>
|
|
</variablelist>
|
|
<para>Les fichiers <filename>.fot</filename> sont employés par Windows un
|
|
peu de la même façon que des liens symboliques vers le fichiers de police
|
|
“True Type” (<filename>.ttf</filename>). Les fichiers
|
|
<filename>.fon</filename> sont aussi utilisés par Windows. Je ne
|
|
connais pas de moyen de se servir de ces fichiers avec FreeBSD.</para>
|
|
</sect1>
|
|
<sect1>
|
|
<title>Quels formats de polices de caractères puis-je utiliser?</title>
|
|
<para>Le format de fichier de police de caractères utile dépend de
|
|
l'application. FreeBSD lui-même n'utilise pas de police de
|
|
caractères. Ce sont les programmes d'application et/ou les pilotes
|
|
qui se servent éventuellement de ces fichiers. Voici un petit tableau
|
|
associant application/pilote de périphérique et suffixe des fichiers de
|
|
police de caractères:</para>
|
|
<informaltable>
|
|
<tgroup cols="6">
|
|
<thead>
|
|
<row>
|
|
<entry/>
|
|
<entry><filename>.fnt</filename></entry>
|
|
<entry><filename>.pfa</filename></entry>
|
|
<entry><filename>.pfb</filename></entry>
|
|
<entry><filename>.ttf</filename></entry>
|
|
<entry><filename>.afm</filename></entry>
|
|
</row>
|
|
</thead>
|
|
<tbody>
|
|
<row>
|
|
<entry>Pilote <filename>syscons</filename></entry>
|
|
<entry>Oui</entry>
|
|
<entry/>
|
|
<entry/>
|
|
<entry/>
|
|
<entry/>
|
|
</row>
|
|
<row>
|
|
<entry><application>GhostScript</application></entry>
|
|
<entry/>
|
|
<entry>Oui</entry>
|
|
<entry>Oui</entry>
|
|
<entry>Oui</entry>
|
|
<entry/>
|
|
</row>
|
|
<row>
|
|
<entry>X11</entry>
|
|
<entry/>
|
|
<entry>Oui</entry>
|
|
<entry>Oui</entry>
|
|
<entry/>
|
|
<entry/>
|
|
</row>
|
|
<row>
|
|
<entry><application>Groff</application></entry>
|
|
<entry/>
|
|
<entry>Oui</entry>
|
|
<entry/>
|
|
<entry/>
|
|
<entry>Oui</entry>
|
|
</row>
|
|
<row>
|
|
<entry><application>Povray</application></entry>
|
|
<entry/>
|
|
<entry/>
|
|
<entry/>
|
|
<entry>Oui</entry>
|
|
<entry/>
|
|
</row>
|
|
</tbody>
|
|
</tgroup>
|
|
</informaltable>
|
|
<para>Le suffixe <filename>.fnt</filename> est assez fréquemment utilisé.
|
|
Je soupçonne que lorsque quelqu'un veut créer un fichier de police de
|
|
caractères spécialisé pour son application, il choisit la plupart du temps
|
|
ce suffixe. Il y a donc des chances pour que des fichiers avec ce
|
|
suffixe n'aient pas tous le même format; en particulier, les fichiers
|
|
<filename>.fnt</filename> utilisés par le pilote syscons de FreeBSD
|
|
n'auront peut-être pas le même format qu'un fichier
|
|
<filename>.fnt</filename> utilisé dans l'environnement DOS/Windows. Je
|
|
n'ai jamais essayé d'utiliser d'autres fichiers <filename>.fnt</filename>
|
|
que ceux fournis avec FreeBSD.</para>
|
|
</sect1>
|
|
<sect1>
|
|
<title>Configurer une console virtuelle en mode 80x60 lignes</title>
|
|
<para>Il faut d'abord charger une police de caractères 8x8. Le fichier
|
|
<filename>/etc/sysconfig</filename><footnote><para>N.d.T.:
|
|
<filename>/etc/rc.conf</filename> dans les versions récentes de
|
|
FreeBSD.</para></footnote> doit donc contenir les lignes:</para>
|
|
<programlisting>
|
|
# choose font 8x8 from /usr/share/syscons/fonts/* (or NO for default)
|
|
font8x8=/usr/share/syscons/fonts/cp437-8x8.fnt
|
|
</programlisting>
|
|
<para>La commande pour changer de mode d'affichage est
|
|
<citerefentry><refentrytitle>vidcontrol</refentrytitle>
|
|
<manvolnum>1</manvolnum></citerefentry>:</para>
|
|
<informalexample>
|
|
<screen><prompt>bash$</prompt> <userinput>vidcontrol VGA_80x60</userinput></screen>
|
|
</informalexample>
|
|
<para>Différents programmes en mode plein-écran, tel
|
|
<citerefentry><refentrytitle>vi</refentrytitle>
|
|
<manvolnum>1</manvolnum></citerefentry>,
|
|
doivent pouvoir déterminer la taille actuelle de l'écran. Elle peut être
|
|
configurée avec
|
|
<citerefentry><refentrytitle>stty</refentrytitle>
|
|
<manvolnum>1</manvolnum></citerefentry>:</para>
|
|
<informalexample>
|
|
<screen><prompt>bash$</prompt> <userinput>stty crt rows 60 columns 80</userinput></screen>
|
|
</informalexample>
|
|
<para>Pour rendre cela moins fastidieux, ces commandes peuvent être
|
|
introduites dans une procédure exécutée au démarrage du système. Voici une
|
|
façon de le faire:</para>
|
|
<orderedlist>
|
|
<listitem>
|
|
<para>Modifiez <filename>/etc/sysconfig</filename> comme expliqué plus
|
|
haut,</para>
|
|
</listitem>
|
|
<listitem>
|
|
<para>Ajoutez les lignes suivantes à
|
|
<filename>/etc/rc.local</filename>:</para>
|
|
<programlisting>
|
|
for tty in /dev/ttyv?
|
|
do
|
|
vidcontrol VGA_80x60 <$tty >/dev/null 2<&1
|
|
done
|
|
</programlisting>
|
|
</listitem>
|
|
<listitem>
|
|
<para>Ajoutez les lignes suivantes à
|
|
<filename>/etc/profile</filename>:</para>
|
|
<programlisting>
|
|
TTYNAME=`basename \`tty\``
|
|
if expr "$TTYNAME" : 'ttyv' > /dev/null
|
|
then
|
|
stty crt rows 60 columns 80
|
|
fi
|
|
</programlisting>
|
|
</listitem>
|
|
</orderedlist>
|
|
<para>Références:
|
|
<citerefentry><refentrytitle>stty</refentrytitle>
|
|
<manvolnum>1</manvolnum></citerefentry>,
|
|
<citerefentry><refentrytitle>vidcontrol</refentrytitle>
|
|
<manvolnum>1</manvolnum></citerefentry>.</para>
|
|
</sect1>
|
|
<sect1>
|
|
<title>X11 et les polices “Type 1”</title>
|
|
<para>X11 peut employer les formats de police de caractères
|
|
<filename>.pfa</filename> et <filename>.pfb</filename>. Il y a une
|
|
référence croisée de chaque fichier sur son nom X11 par l'intermédiaire du
|
|
fichier <filename>fonts.dir</filename> de chaque répertoire.</para>
|
|
<para>Il y a déjà un répertoire appelé <filename>Type1</filename>. 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:</para>
|
|
<itemizedlist>
|
|
<listitem>
|
|
<para><emphasis>Créer un repertoire pour les fichiers de police de
|
|
caractères.</emphasis></para>
|
|
<informalexample>
|
|
<screen><prompt>bash$</prompt> <userinput>mkdir -p /usr/local/share/fonts/type1</userinput>
|
|
<prompt>bash$</prompt> <userinput>cd /usr/local/share/fonts/type1</userinput></screen>
|
|
</informalexample>
|
|
</listitem>
|
|
<listitem>
|
|
<para><emphasis>Y mettre les fichiers <filename>.pfa</filename>,
|
|
<filename>.pfb</filename> et <filename>.afm</filename>. On peut aussi
|
|
vouloir y conserver les fichiers <filename>README</filename> et autres
|
|
documentations concernant les polices de caractères.</emphasis></para>
|
|
<informalexample>
|
|
<screen><prompt>bash$</prompt> <userinput>cp /cdrom/fonts/atm/showboat/showboat.pfb .</userinput>
|
|
<prompt>bash$</prompt> <userinput>cp /cdrom/fonts/atm/showboat/showboat.afm .</userinput></screen>
|
|
</informalexample>
|
|
</listitem>
|
|
<listitem>
|
|
<para><emphasis>Tenir à jour un index pour créer les références croisées
|
|
sur les polices.</emphasis></para>
|
|
<informalexample>
|
|
<screen><prompt>bash$</prompt> <userinput>echo showboat - InfoMagic CICA, Dec 1994, /fonts/atm/showboat >>INDEX</userinput></screen>
|
|
</informalexample>
|
|
</listitem>
|
|
</itemizedlist>
|
|
<para>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:</para>
|
|
<programlisting>
|
|
-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
|
|
</programlisting>
|
|
<para>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
|
|
<citerefentry><refentrytitle>strings</refentrytitle>
|
|
<manvolnum>1</manvolnum></citerefentry> sur le fichier de police. Par
|
|
exemple:</para>
|
|
<informalexample>
|
|
<screen><prompt>bash$</prompt> <userinput>strings showboat.pfb | more</userinput></screen>
|
|
</informalexample>
|
|
<programlisting>
|
|
%!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--
|
|
</programlisting>
|
|
<para>A partir de ces informations, le nom pourrait être:</para>
|
|
<programlisting>
|
|
-type1-Showboat-medium-r-normal-decorative-0-0-0-0-p-0-iso8859-1
|
|
</programlisting>
|
|
<para>Les composantes de ce nom sont:</para>
|
|
<variablelist>
|
|
<varlistentry>
|
|
<term>Casse</term>
|
|
<listitem>
|
|
<para>Appelons simplement toutes nos nouvelles polices
|
|
<literal>type1</literal>.</para>
|
|
</listitem>
|
|
</varlistentry>
|
|
<varlistentry>
|
|
<term>Famille</term>
|
|
<listitem>
|
|
<para>Le nom de la police.</para>
|
|
</listitem>
|
|
</varlistentry>
|
|
<varlistentry>
|
|
<term>Graisse</term>
|
|
<listitem>
|
|
<para>Normal, gras, médium, semi-gras, etc. D'après les résultats
|
|
de <citerefentry><refentrytitle>strings</refentrytitle>
|
|
<manvolnum>1</manvolnum></citerefentry> ci-dessus, la police a une
|
|
graisse <emphasis>médium</emphasis>.</para>
|
|
</listitem>
|
|
</varlistentry>
|
|
<varlistentry>
|
|
<term>Inclinaison</term>
|
|
<listitem>
|
|
<para><emphasis>r</emphasis>oman, <emphasis>i</emphasis>talique ou
|
|
<emphasis>o</emphasis>blique. Comme
|
|
<emphasis>ItaliqueAngle</emphasis> vaut 0, nous utiliserons
|
|
<emphasis>roman</emphasis>.</para>
|
|
</listitem>
|
|
</varlistentry>
|
|
<varlistentry>
|
|
<term>Largeur</term>
|
|
<listitem>
|
|
<para>Normale, large, condensée, étendue, etc. Jusqu'à ce que nous la
|
|
déterminions à l'usage, nous supposerons qu'elle est
|
|
<emphasis>normale</emphasis>.</para>
|
|
</listitem>
|
|
</varlistentry>
|
|
<varlistentry>
|
|
<term>Style supplémentaire</term>
|
|
<listitem>
|
|
<para>Habituellement non renseigné, mais nous nous en servons pour
|
|
indiquer que la police contient des majuscules décoratives.</para>
|
|
</listitem>
|
|
</varlistentry>
|
|
<varlistentry>
|
|
<term>Espacement</term>
|
|
<listitem>
|
|
<para>Proportionnel ou fixe. Comme <emphasis>isFixedPitch</emphasis>
|
|
est faux, nous utilisons <emphasis>Proportionnel</emphasis>.</para>
|
|
</listitem>
|
|
</varlistentry>
|
|
</variablelist>
|
|
<para> 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:</para>
|
|
<programlisting>
|
|
...-normal-r-normal-...-p-...
|
|
</programlisting>
|
|
<para>comme nom, puis se servir de
|
|
<citerefentry><refentrytitle>xfontsel</refentrytitle>
|
|
<manvolnum>1</manvolnum></citerefentry> pour visualiser la police et
|
|
affiner son nom en fonction de ce à quoi elle ressemble.</para>
|
|
<para>Donc, pour compléter notre exemple:</para>
|
|
<itemizedlist>
|
|
<listitem>
|
|
<para><emphasis>Rendre la police accessible à X11</emphasis></para>
|
|
<informalexample>
|
|
<screen><prompt>bash$</prompt> <userinput>cd /usr/X11R6/lib/X11/fonts/Type1</userinput>
|
|
<prompt>bash$</prompt> <userinput>ln -s /usr/local/share/fonts/type1/showboat.pfb .</userinput></screen>
|
|
</informalexample>
|
|
</listitem>
|
|
<listitem>
|
|
<para><emphasis>Editer <filename>fonts.scale</filename> et
|
|
<filename>fonts.dir</filename> 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</emphasis></para>
|
|
<informalexample>
|
|
<screen><prompt>bash$</prompt> <userinput>ex fonts.dir</userinput>
|
|
<userinput>:1p</userinput>
|
|
<userinput>25</userinput>
|
|
<userinput>:1c</userinput>
|
|
<userinput>26</userinput>
|
|
<userinput>.</userinput>
|
|
<userinput>:$a</userinput>
|
|
<userinput>showboat.pfb -type1-showboat-medium-r-normal-decorative-0-0-0-0-p-0-iso8859-1</userinput>
|
|
<userinput>.</userinput>
|
|
<userinput>:wq</userinput></screen>
|
|
</informalexample>
|
|
</listitem>
|
|
<listitem>
|
|
<para><emphasis><filename>fonts.scale</filename> et
|
|
<filename>fonts.dir</filename> sont apparemment
|
|
identiques</emphasis></para>
|
|
<informalexample>
|
|
<screen><prompt>bash$</prompt> <userinput>cp fonts.dir fonts.scale</userinput></screen>
|
|
</informalexample>
|
|
</listitem>
|
|
<listitem>
|
|
<para><emphasis>Informer X11 des modifications</emphasis></para>
|
|
<informalexample>
|
|
<screen><prompt>bash$</prompt> <userinput>xset fp rehash</userinput></screen>
|
|
</informalexample>
|
|
</listitem>
|
|
<listitem>
|
|
<para><emphasis>Visualiser la nouvelle police</emphasis></para>
|
|
<informalexample>
|
|
<screen><prompt>bash$</prompt> <userinput>xfontsel -pattern -type1-*</userinput></screen>
|
|
</informalexample>
|
|
</listitem>
|
|
</itemizedlist>
|
|
<para>Références: <citerefentry><refentrytitle>xfontsel</refentrytitle>
|
|
<manvolnum>1</manvolnum></citerefentry>,
|
|
<citerefentry><refentrytitle>xset</refentrytitle>
|
|
<manvolnum>1</manvolnum></citerefentry>, <emphasis>The X Window System
|
|
in a Nutshell</emphasis>, <link xlink:href="http://www.ora.com">O'Reilly &
|
|
Associates</link>.</para>
|
|
</sect1>
|
|
<sect1>
|
|
<title>Utiliser les polices “Type 1” avec GhostScript</title>
|
|
<para>GhostScript référence les polices via son fichier
|
|
<filename>Fontmap</filename>. Il doit donc être modifié de la même façon
|
|
que le fichier X11 <filename>fonts.dir</filename>. GhostScript peut
|
|
utiliser des fichiers de police de caractères aux formats
|
|
<filename>.pfa</filename> ou <filename>.pfb</filename>. Voici comment nous
|
|
utiliserions la police de l'exemple précédent avec GhostScript:</para>
|
|
<itemizedlist>
|
|
<listitem>
|
|
<para><emphasis>Mettre la police dans le répertoire des polices de
|
|
GhostScript</emphasis></para>
|
|
<informalexample>
|
|
<screen><prompt>bash$</prompt> <userinput>cd /usr/local/share/ghostscript/fonts</userinput>
|
|
<prompt>bash$</prompt> <userinput>ln -s /usr/local/share/fonts/type1/showboat.pfb .</userinput></screen>
|
|
</informalexample>
|
|
</listitem>
|
|
<listitem>
|
|
<para><emphasis>Editer le fichier <filename>Fontmap</filename> pour que
|
|
GhostScript ait connaissance de la nouvelle police</emphasis></para>
|
|
<informalexample>
|
|
<screen><prompt>bash$</prompt> <userinput>cd /usr/local/share/ghostscript/4.01</userinput>
|
|
<prompt>bash$</prompt> <userinput>ex Fontmap</userinput>
|
|
<userinput>:$a</userinput>
|
|
<userinput>/Showboat (showboat.pfb) ; % From CICA /fonts/atm/showboat</userinput>
|
|
<userinput>:wq</userinput></screen>
|
|
</informalexample>
|
|
</listitem>
|
|
<listitem>
|
|
<para><emphasis>Utiliser GhostScript pour visualiser la
|
|
police</emphasis></para>
|
|
<informalexample>
|
|
<screen><prompt>bash$</prompt> <userinput>gs prfont.ps</userinput></screen>
|
|
</informalexample>
|
|
<programlisting>
|
|
Aladdin Ghostscript 4.01 (1996-7-10)
|
|
Copyright (C) 1996 Aladdin Enterprises, Menlo Park, CA. All rights
|
|
reserved.
|
|
This software comes with NO WARRANTY: see the file PUBLIC for details.
|
|
Loading Times-Roman font from /usr/local/share/ghostscript/fonts/tir_____.pfb...
|
|
/1899520 581354 1300084 13826 0 done.
|
|
</programlisting>
|
|
<informalexample>
|
|
<screen><prompt>GS></prompt> <userinput>Showboat DoFont</userinput></screen>
|
|
</informalexample>
|
|
<programlisting>
|
|
Loading Showboat font from /usr/local/share/ghostscript/fonts/showboat.pfb...
|
|
1939688 565415 1300084 16901 0 done.
|
|
>>showpage, press <return> to continue<<
|
|
>>showpage, press <return> to continue<<
|
|
>>showpage, press <return> to continue<<
|
|
</programlisting>
|
|
<informalexample>
|
|
<screen><prompt>GS></prompt> <userinput>quit</userinput></screen>
|
|
</informalexample>
|
|
</listitem>
|
|
</itemizedlist>
|
|
<para>Références: <filename>fonts.txt</filename> de la distribution de
|
|
GhostScript 4.01.</para>
|
|
</sect1>
|
|
<sect1>
|
|
<title>Utiliser les polices “Type 1” avec Groff</title>
|
|
<para>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
|
|
<filename>ps</filename>. 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
|
|
<filename>/usr/share/groff_font/devps</filename>. Dans notre exemple, ce
|
|
pourrait être <filename>/usr/share/groff_font/devps/SHOWBOAT</filename>.
|
|
Il faut créer ce fichier avec les outils fournis par groff.</para>
|
|
<para>Le premier outil est <filename>afmtodit</filename>. 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:</para>
|
|
<informalexample>
|
|
<screen><prompt>bash$</prompt> <userinput>cp /usr/src/gnu/usr.bin/groff/afmtodit/afmtodit.pl /tmp</userinput>
|
|
<prompt>bash$</prompt> <userinput>ex /tmp/afmtodit.pl</userinput>
|
|
<userinput>:1c</userinput>
|
|
<userinput>#!/usr/bin/perl -P-</userinput>
|
|
<userinput>.</userinput>
|
|
<userinput>:wq</userinput></screen>
|
|
</informalexample>
|
|
<para>Cet outil crée le fichier de police groff à partir du fichier de
|
|
dimensions de la police (suffixe <filename>.afm</filename>). Pour
|
|
continuer avec notre exemple:</para>
|
|
<itemizedlist>
|
|
<listitem>
|
|
<para><emphasis>De nombreux fichiers <filename>.afm</filename> sont au
|
|
format Mac... avec des lignes terminées par des ^M</emphasis></para>
|
|
<para>Il faut les convertir au style Unix avec des lignes terminées par
|
|
des ^J</para>
|
|
<informalexample>
|
|
<screen><prompt>bash$</prompt> <userinput>cd /tmp</userinput>
|
|
<prompt>bash$</prompt> <userinput>cat /usr/local/share/fonts/type1/showboat.afm |</userinput>
|
|
<userinput>tr '\015' '\012' >showboat.afm</userinput></screen>
|
|
</informalexample>
|
|
</listitem>
|
|
<listitem>
|
|
<para><emphasis>Créons maintenant le fichier de police
|
|
groff</emphasis></para>
|
|
<informalexample>
|
|
<screen><prompt>bash$</prompt> <userinput>cd /usr/share/groff_font/devps</userinput>
|
|
<prompt>bash$</prompt> <userinput>/tmp/afmtodit.pl -d DESC -e text.enc /tmp/showboat.afm generate/textmap SHOWBOAT</userinput></screen>
|
|
</informalexample>
|
|
</listitem>
|
|
</itemizedlist>
|
|
<para>La police peut maintenant être référencée par le nom SHOWBOAT.</para>
|
|
<para>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 <filename>pfbtops</filename> est utilisé pour créer le format
|
|
<filename>.pfa</filename> de la police et le fichier
|
|
<filename>download</filename> est modifié pour faire référence à la
|
|
nouvelle police. Le fichier <filename>download</filename> 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:</para>
|
|
<itemizedlist>
|
|
<listitem>
|
|
<para><emphasis>Créer le fichier de police
|
|
<filename>.pfa</filename></emphasis></para>
|
|
<informalexample>
|
|
<screen><prompt>bash$</prompt> <userinput>fgrep internalname SHOWBOAT</userinput>
|
|
internalname Showboat</screen>
|
|
</informalexample>
|
|
</listitem>
|
|
<listitem>
|
|
<para><emphasis>Dire à groff qu'il faut charger la
|
|
police</emphasis></para>
|
|
<informalexample>
|
|
<screen><prompt>bash$</prompt> <userinput>ex download</userinput>
|
|
<userinput>:$a</userinput>
|
|
<userinput>Showboat showboat.pfa</userinput>
|
|
<userinput>.</userinput>
|
|
<userinput>:wq</userinput></screen>
|
|
</informalexample>
|
|
</listitem>
|
|
</itemizedlist>
|
|
<para>Pour tester la police:</para>
|
|
<informalexample>
|
|
<screen><prompt>bash$</prompt> <userinput>cd /tmp</userinput>
|
|
<prompt>bash$</prompt> <userinput>cat >exemple.t <<EOF</userinput>
|
|
<userinput>.sp 5</userinput>
|
|
<userinput>.ps 15</userinput>
|
|
<userinput>C'est un exemple de police Showboat:</userinput>
|
|
<userinput>.br</userinput>
|
|
<userinput>.ps 48</userinput>
|
|
<userinput>.vs (\n(.s+2)p</userinput>
|
|
<userinput>.sp</userinput>
|
|
<userinput>.ft SHOWBOAT</userinput>
|
|
<userinput>ABCDEFGHI</userinput>
|
|
<userinput>.br</userinput>
|
|
<userinput>JKLMNOPQR</userinput>
|
|
<userinput>.br</userinput>
|
|
<userinput>STUVWXYZ</userinput>
|
|
<userinput>.sp</userinput>
|
|
<userinput>.ps 16</userinput>
|
|
<userinput>.vs (\n(.s+2)p</userinput>
|
|
<userinput>.fp 5 SHOWBOAT</userinput>
|
|
<userinput>.ft 5</userinput>
|
|
<userinput>Utilisée comme première lettre d'un paragraphe. Cela ressemblera à:</userinput>
|
|
<userinput>.sp50p</userinput>
|
|
<userinput>\s(48\f5V\s0\fRoici la première phrase d'un paragraphe qui utilise</userinput>
|
|
<userinput>la police showboat pour sa première lettre. Il faut augmenter</userinput>
|
|
<userinput>l'espacement vertical pour laisser de la place pour la première</userinput>
|
|
<userinput>lettre.</userinput>
|
|
<userinput>EOF</userinput>
|
|
<prompt>bash$</prompt> <userinput>groff -Tps exemple.t >exemple.ps</userinput></screen>
|
|
</informalexample>
|
|
<itemizedlist>
|
|
<listitem>
|
|
<para><emphasis>Pour utiliser GhostScript/GhostView</emphasis></para>
|
|
<informalexample>
|
|
<screen><prompt>bash$</prompt> <userinput>ghostview exemple.ps</userinput></screen>
|
|
</informalexample>
|
|
</listitem>
|
|
<listitem>
|
|
<para><emphasis>Pour l'imprimer</emphasis></para>
|
|
<informalexample>
|
|
<screen><prompt>bash$</prompt> <userinput>lpr -Ppostscript exemple.ps</userinput></screen>
|
|
</informalexample>
|
|
</listitem>
|
|
</itemizedlist>
|
|
<para>Références:
|
|
<filename>/usr/src/gnu/usr.bin/groff/afmtodit/afmtodit.man</filename>,
|
|
<citerefentry><refentrytitle>groff_font</refentrytitle>
|
|
<manvolnum>5</manvolnum></citerefentry>,
|
|
<citerefentry><refentrytitle>groff_char</refentrytitle>
|
|
<manvolnum>5</manvolnum></citerefentry>,
|
|
<citerefentry><refentrytitle>pfbtops</refentrytitle>
|
|
<manvolnum>1</manvolnum></citerefentry>.</para>
|
|
</sect1>
|
|
<sect1>
|
|
<title>Peut-on utiliser des polices “True Type”?</title>
|
|
<para>Le format de police “True Type” est utilisée par Windows,
|
|
Windows 95 et le Macintosh. Il est assez répandu et il y a de nombreuses
|
|
polices de ce format disponibles.</para>
|
|
<para>Malheureusement, je connais peu d'applications qui puissent utiliser
|
|
ce format: GhostScript et Povray viennent à l'esprit. Le support par
|
|
GhostScript est, d'après la documentation, assez rudimentaire et il y a
|
|
des chances que le résultat soit moins bon qu'avec les polices
|
|
“Type 1”. Povray version 3 est aussi capable d'utiliser des
|
|
des polices “True Type”, mais je doute que beaucoup de
|
|
personnes créent des documents sous forme de pages générées par lancer de
|
|
rayon :-).</para>
|
|
<para>Il est difficile d'utiliser une police “True Type” avec
|
|
groff parce que groff a besoin d'un fichier de description de la police,
|
|
et je ne connais pas d'outil pour déterminer les dimensions d'une police
|
|
“True Type”. De plus, il faudrait charger la police sur les
|
|
imprimantes PostScript avec le format approprié et, de nouveau, groff ne
|
|
peut gérer de cette façon les polices “True Type”.</para>
|
|
<para>Cette situation plutôt désolante changera peut-être bientôt. Le
|
|
<link xlink:href="http://www.freetype.org">Projet FreeType</link> développe
|
|
actuellement un ensemble d'utilitaire FreeType:</para>
|
|
<itemizedlist>
|
|
<listitem>
|
|
<para>Le serveur de polices <filename>xfsft</filename> pour X11 peut
|
|
gérer les polices “TrueType” en plus des polices
|
|
ordinaires. Bien que ce soit encore une version béta, elle a la
|
|
réputation d'être à peu près utilisable. Voyez
|
|
<link xlink:href="http://www.dcs.ed.sc.uk/home/jec/programs/xfsft">la page de
|
|
Juliusz Chroboczek</link> pour plus d'informations. Il y a des
|
|
instructions de portage sous FreeBSD sur
|
|
<link xlink:href="http://math.missouri.edu/~stephen/software">la page
|
|
logicielle de Stephen Montgomery</link>.</para>
|
|
</listitem>
|
|
<listitem>
|
|
<para><filename>xfstt</filename> est un autre serveur X11, disponible
|
|
sur <link xlink:href="ftp://sunsite.unc.edu/pub/Linux/X11/fonts">ftp://sunsite.unc.edu/pub/Linux/X11/fonts</link>.</para>
|
|
</listitem>
|
|
<listitem>
|
|
<para>Il y a un programme appelé <filename>ttf2bdf</filename> qui peut
|
|
créer des fichiers BDF utilisables en environnement X à partir de
|
|
fichiers “TrueType”. Les binaires pour Linux sont censés
|
|
être disponibles sur
|
|
<link xlink:href="ftp://crl.nmsu.edu/CLR/multiling/General/">ftp://crl.nmsu.edu/CLR/multiling/General/</link>.</para>
|
|
</listitem>
|
|
<listitem>
|
|
<para>Pour les personnes qui ont besoin de polices “True
|
|
Type” asiatiques, il peut valoir la peine de jetter un coup
|
|
d'oeil au serveur de polices <filename>XTT</filename>. Il y a des
|
|
informations sur <filename>XTT</filename> à l'adresse:
|
|
<link xlink:href="http://hawk.ise.chuo-u.ac.jp/student/person/tshiozak/study/freebsd-at-random/x-tt/index-en.html">http://hawk.ise.chuo-u.ac.jp/student/person/tshiozak/study/freebsd-at-random/x-tt/index-en.html</link>.</para>
|
|
</listitem>
|
|
<listitem>
|
|
<para>et d'autres ...</para>
|
|
</listitem>
|
|
</itemizedlist>
|
|
</sect1>
|
|
<sect1>
|
|
<title>Où peut-on trouver des polices supplémentaires?</title>
|
|
<para>Il y a de nombreuses polices disponibles sur l'Internet. Elles sont
|
|
soit complètement gratuites ou en “partagiciel”. Il y a aussi
|
|
de nombreux CD-ROMs peux onéreux qui contiennent beaucoup de polices.
|
|
Voici quelques sites Internet (au mois d'Août 1996):</para>
|
|
<itemizedlist>
|
|
<listitem>
|
|
<para><link xlink:href="ftp://ftp.winsite.com">ftp://ftp.winsite.com</link>
|
|
(auparavant CICA),</para>
|
|
</listitem>
|
|
<listitem>
|
|
<para><link xlink:href="http://www.simtel.net/">http://www.simtel.net/</link>,</para>
|
|
</listitem>
|
|
<listitem>
|
|
<para><link xlink:href="ftp://ftp.coast.net/">ftp://ftp.coast.net/</link>,</para>
|
|
</listitem>
|
|
<listitem>
|
|
<para><link xlink:href="http://af-pc-plloyd.ecel.uwa.edu.au/fonts/index.html">http://af-pc-plloyd.ecel.uwa.edu.au/fonts/index.html</link>,</para>
|
|
</listitem>
|
|
<listitem>
|
|
<para><link xlink:href="http://www.esselte.com/letraset/index.html">http://www.esselte.com/letraset/index.html</link>,</para>
|
|
</listitem>
|
|
<listitem>
|
|
<para><link xlink:href="http://www.inil.com/users/elfring/esf.htm">http://www.inil.com/users/elfring/esf.htm</link>.</para>
|
|
</listitem>
|
|
</itemizedlist>
|
|
</sect1>
|
|
<sect1>
|
|
<title>D'autres questions</title>
|
|
<itemizedlist>
|
|
<listitem>
|
|
<para>Que sont que les fichiers <filename>.pfm</filename>?</para>
|
|
</listitem>
|
|
<listitem>
|
|
<para>Peut-on générer des fichiers <filename>.afm</filename> à partir de
|
|
fichiers <filename>.pfa</filename> ou
|
|
<filename>.pfb</filename>?</para>
|
|
</listitem>
|
|
<listitem>
|
|
<para>Comment générer des fichiers de correspondance de caractères pour
|
|
groff pour les polices PostScript dont les caractères ont des noms qui
|
|
ne sont pas standard?</para>
|
|
</listitem>
|
|
<listitem>
|
|
<para>Les périphériques <filename>xditview</filename> et
|
|
<filename>devX??</filename> peuvent-ils être configurés pour
|
|
accéder aux nouvelles polices?</para>
|
|
</listitem>
|
|
<listitem>
|
|
<para>Il serait bien d'avoir des exemples d'utilisation de polices
|
|
“True Type” avec GhostScript et Povray.</para>
|
|
</listitem>
|
|
</itemizedlist>
|
|
</sect1>
|
|
</article>
|