TeX/Font

Type 1 フォント

Type 1 フォントとは、Adobe 社が開発したページ記述言語である PostScript 形式で記述されたフォントで、文字の拡大・縮小が簡単にできるアウトラインフォントです。PostScript プリンタに導入したり、コンピュータ上で使ったりすることができます。

TeX でももちろん使うことができます。特に、Type 1 フォントがインストールされているときれいな PS, PDF ファイル等を出力することができます。

拡張子は .pfb(バイナリファイル)、.pfa(ASCII ファイル)がよく使われます。

市販されている欧文用 PostScript フォント集

#amazon(484431937X,left,[TrueType フォントパーフェクトコレクション])

#amazon(,clear)

Type 1 フォントの使用例

他形式からの変換

METAFONT(.mf)などから Type 1(.pfb, .pfa)への変換方法を解説します。

TeX での Type 1 フォントの利用

TeX で Type 1 フォントを利用するためには、 若干の作業をしなければなりません。具体的な手順としては

  1. ファイル名の変更(Berry 則にもとづいて)
  2. .afm ファイルの生成と修正(.afm ファイルが付属していなければ) [pf2afm, type1afm]
  3. .tfm ファイルの生成 [afm2tfm]
  4. .vf ファイルの生成 [afm2tfm]
  5. .enc ファイルの生成 [afm2tfm]
  6. .fd, .map ファイルの作成
  7. .sty ファイルの作成

を行います([ ] 内は使用するプログラムの名前です)。

3-6(3-7)の作業を自動でやってくれるのが fontinst パッケージです。この後説明します。

準備

次のようなツールが必要になる場合があります。

インストール方法については上のページを参考にしてください。

ファイル名の変更

フォント名 を参考にしてファイル名を変更します。

.afm ファイルの生成

pf2afm(t1utils に付属)

$ pf2afm xxxx.pfb

を実行します。同じディレクトリ内にある複数の .pfb ファイルを処理する場合は次のようにすると簡単でしょう。

$ for i in *.pfb; do pf2afm $i; done

pf2afm を実行すると

.notdef character ocurred among kern pairs
you'd better check the resulting AFM file.

のような警告が出る場合がありますが、今は無視します。

type1afm(t1lib に付属)

$ type1afm xxxx.pfb

を実行します。同じディレクトリ内にある複数の .pfb ファイルを処理する場合は次のようにすると簡単でしょう。

$ for i in *.pfb; do type1afm $i; done

.tfm, .vf, .enc ファイルの生成

teTeX ディストリビューションに標準で付属する

を用い、.afm ファイルを元に、.tfm, .vf, .enc ファイルを生成します。おおまかな流れは以下の通りです。

  1. afm2tfm の引数に .afm ファイルを指定し、以下のオプションをつけて実行する(.tfm ファイルと .vpl ファイルができる)。
    • -p dviware(dvips, dvipdfm など)で用いるエンコーディングを記述したファイルを指定する。
    • -t TeX 側で用いるエンコーディングを記述したファイルを指定する。
    • -v .vpl ファイルのファイル名を指定する。
  2. vptovf を用いて .vpl ファイルから .vf, .tfm ファイルを作成する。

実際には次のように実行します。

$ afm2tfm hoge8a.afm -p 8r.enc -t ec.enc -v hoge8t.vpl hoge8r.tfm

8r.enc は TeX Base 1 用のエンコーディングファイルです。ec.enc は EC フォント用のエンコーディングファイルです(T1 エンコーディングに近いものです)。

これで hoge8r.tfmhoge8t.vpl が作成されます。上を実行すると

hoge Hoge " TeXBase1Encoding ReEncodeFont " <8r.enc

のような出力が得られますので、これを

hoge Hoge " TeXBase1Encoding ReEncodeFont " <8r.enc <hoge.pfb

に変更して hoge.map に書き込んでおきます。

次に

$ vptovf hoge8t.vpl

を実行し、hoge8t.vf, hoge8t.tfm ファイルを生成します。これで .tfm ファイルは hoge8r.tfmhoge8t.tfm の2種類ができたことになります(両方とも必要です)。

afm2tfm のオプション

Usage: afm2tfm FILE[.afm] [OPTION]... [FILE[.tfm]]
  Convert an Adobe font metric file to TeX font metric format.

-c REAL             use REAL for height of small caps made with -V [0.8]
-e REAL             widen (extend) characters by a factor of REAL
-O                  use octal for all character codes in the vpl file
-p ENCFILE          read/download ENCFILE for the PostScript encoding
-s REAL             oblique (slant) characters by REAL, generally <<1
-t ENCFILE          read ENCFILE for the encoding of the vpl file
-T ENCFILE          equivalent to -p ENCFILE -t ENCFILE
-u                  output only characters from encodings, nothing extra
-v FILE[.vpl]       make a VPL file for conversion to VF
-V SCFILE[.vpl]     like -v, but synthesize smallcaps as lowercase
--help              print this message and exit.
--version           print version number and exit.

バージョンによって異なる可能性があります。

afm2tfm(dvips のマニュアル)

テスト

を参考にテストしてみてください。

fontinst パッケージ

fontinst パッケージを用いると、多くの作業を自動で行ってくれます。fontinst パッケージの概要については上のページをご覧ください。

参考


トップ   編集 凍結 差分 履歴 添付 複製 名前変更 リロード   新規 一覧 検索 最終更新   ヘルプ   最終更新のRSS
Last-modified: 2019-03-30 (土) 04:06:22