7. タイプ 1 フォントを Groff で利用する

ここまでで新しいフォントを X11Ghostscript の両方で用いることができるようになりましたが、 この新しいフォントをどのようにすれば groff で使うことができるでしょうか? まず第一に、PostScript® のタイプ 1 フォントを扱っていますから、 これを適用できる groff デバイスは ps デバイスです。次に、各々のフォントを groff で使用できるようにフォントファ イルを作らなくてはなりません。 groff でのフォント名は /usr/share/groff_font/devps の中のファイル名になります。上述の例では、フォントファイルは /usr/share/groff_font/devps/SHOWBOAT とすることができるでしょう。このファイルは groff によって提供されているツールを用いて生成しなくてはなりません。

最初に afmtodit というツールを使います。 このコマンドは通常ではインストールされませんので、 ソースプログラム群から該当プログラムを取り出さなくてはなりません。 このファイルの最初の一行を変更しなくてはならないことが分かっています。 著者は次のようにしました。

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

このツールはメトリックファイル (.afm 拡張子) から groff フォントファイルを生成してくれます。 フォント使用方法例を続けることにしましょう。

.afm ファイルの多くは Mac 形式… すなわち行が ^M で区切られています。
これを行を ^J で区切る UNIX® スタイルに変換する必要があります。
% cd /tmp
% cat /usr/local/share/fonts/type1/showboat.afm |
	tr '\015' '\012' >showboat.afm

そして、groff フォントファイルを生成します。
% cd /usr/share/groff_font/devps
% /tmp/afmtodit.pl -d DESC -e text.enc /tmp/showboat.afm generate/textmap SHOWBOAT

これでフォントを SHOWBOAT という名前で参照することができました。

システムでプリンタを扱うために Ghostscript を使用しているならば、 これで作業は完了しました。しかしながら、本物の PostScript プリンタを使っている場合は、フォントを使用可能にする為に、 当該フォントをプリンタにダウンロードする必要があります (showboat フォントがプリンタに偶然にも最初から組み込まれている場合、 もしくはプリンタからアクセスされるフォントディスクの中に入ってい る場合はこの限りではありません)。 フォント利用の最終段階として、 ダウンロード可能な形式のフォントを生成します。 ツール pfbtops は (訳注 : .pfb 形式から) .pfa 形式のフォントを生成するために、そして、 download というファイルを編集し、 フォントの内部名を参照するように変更しなくてはなりません。 この内部名は以下で示すように groff フォントファイルから容易に調べることができます。

.pfa フォントファイルを生成する。
% pfbtops /usr/local/share/fonts/type1/showboat.pfb >showboat.pfa

もちろん、.pfa が既に利用可能であれば、 参照できるようにシンボリックリンクを張って下さい。

内部フォント名を得る。
% fgrep internalname SHOWBOAT
internalname Showboat

該当フォントをダウンロードしなくてはならないことを groff に通知する。
% ex download
:$a
Showboat      showboat.pfa
.
:wq

フォントを試用する。

% cd /tmp
% cat >example.t <<EOF
.sp 5
.ps 16
This is an example of the Showboat font:
.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 R
To use it for the first letter of a paragraph, it will look like:
.sp 50p
\s(48\f5H\s0\fRere is the first sentence of a paragraph that uses the
showboat font as its first letter.
Additional vertical space must be used to allow room for the larger
letter.
EOF
% groff -Tps example.t >example.ps

ghostscript/ghostviewを使って表示する。
% ghostview example.ps

印刷する (訳注 : プリンタ名は適宜変更して下さい)。
% lpr -Ppostscript example.ps

参考文献: /usr/src/gnu/usr.bin/groff/afmtodit/afmtodit.mangroff_font(5)groff_char(7)pfbtops(1)

本文書、および他の文書は ftp://ftp.FreeBSD.org/pub/FreeBSD/doc/ からダウンロードできます。

FreeBSD に関する質問がある場合には、ドキュメント を読んだ上で <questions@FreeBSD.org> まで (英語で) 連絡してください。
本文書に関する質問については、<doc@FreeBSD.org> まで電子メールを (英語で) 送ってください。