フォントと FreeBSD: A Tutorial
Prev |  | Next

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

ここまでで新しいフォントを X11 と Ghostscript の両方で用いることができるようになりましたが、 この新しいフォントをどのようにすれば 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.man`、 groff_font(5)、groff_char(7)、pfbtops(1)

Prev | Home | Next
タイプ 1 フォントを Ghostscript で利用する |  | TrueType フォントを groff 用に groff/PostScript フォーマットに変換する