TrueType フォントによる pTeX の多書体化

商用 TrueType フォントがあることに最近気がついて、以前から気になって いた pTeX の多書体化をやってみました。横書きは簡単でしたが TrueType フォント に縦書き用フォントが無いので、縦書きが上手くできるまではちょっと苦労しました。 以下は基本的に Debian (sid) 環境での話です。

makejvf の場合

例として「行書体」 TrueType フォント名が hgrgy.ttc の場合で説明します。

フォントの準備

vftool 版との共存を考慮するとディレクトリだけでなく フォント名も変えておく方が良い気がしてきたので変更しました('01.7.12)。 単独で使う場合には関係ありません。
TeX TFM 名で hgr を hg に
ドライバ用 TFM 名で先頭に a を付けました(ASCII のつもり)。

はじめにフォント名を決めます。必要なものは、「TeX の TFM 名」、 「ドライバ用 TFM 名」、「VFlib フォント名」、「PostScript フォント名」 の四つです。ここでは仮に次のようにしましょう。
 
横書き縦書き
VFlib フォント名 vfgyo
TeX の TFM 名 hggyo thggyo
ドライバ用 TFM 名 agyo agyov
PostScript フォント名 HG-Gyo-H HG-Gyo-V
(ここの用語が怪しい。ドライバ用 TFM というのは他では内蔵漢字 jfm とか 呼ばれてる気がしますが、要するに makejvf の第二引数に与えた名前です)
注意;「ドライバ用 TFM 名」は makejvf の引数で、 「VFlib フォント名」は vfontcap で、「PostScript フォント名」は kconfig.ps で自由に設定できます。
これに従って設定します。
vftool 版の VF/TFM と共存するときを考えて、dvips が makejvf のファイルを先に見付けるように、ディレクトリを変更('01.7.9)。

スタイルファイル

簡単には morisawa.sty 等を修正すればできます。okumura-clsfiles をインストールして morisawa.sty で TFM 名を hggyo に修正します。 to be written...

ドライバの設定

Debian では dvips の VFlib 版は無いので dvips では gs の VFlib に任せる方法になります。dvi2ps は VFlib 対応ですが設定方法が 良く分らないので同じく gs に任せてしまう方法になります。
dvips の場合
psfonts.map に
agyo	HG-Gyo-H
agyov	HG-Gyo-V
と設定。dvips は agyo はプリンタ内蔵 PS フォントと思ってくれる。
Debian の dvips は VFlib 版でないのでこうします。VFlib 版だと
agyo	HG-Gyo-H   <' vfgyo
agyov	HG-Gyo-V   <' vfgyo
のようにする?縦書きフォントがこれで良いのかどうか不明です。
dvi2ps の場合
fontdesc で 注意;
map	agyo	JSNR	^vfgyo
map	agyov	JSNR	^vfgyo
のようにしたのでは縦書きが上手く行きませんでした。 vfontcap で vfgyo を回転させても縦書きで「、」などが正しく表示できません。 上手い設定すればできるのかもわかりませんが PS フォント経由にするのが キーポイントらしい。
概略は のようにして dvi2ps -F trty でしょう。
修正('01.7.13) bk trty にするより別の変数 を使う方が良さそうな気がするので ttf trty にしました。 例えば通常の min, goth も一緒に使う場合など bk があった方が簡単だと思います。
ここで VF を使わずに hggyo.tfm を HG-Gyo に対応させ ても表示はできますが VF の行ってる微調整が無くなるようです。 カッコの位置などで比較できます。
これらは最終的には gs に依存してるので gs で表示できますが印刷の場合 直接 PS プリンタに送ると文字化けします。一度 gs で変換する必要がある ようです。
gs -sDEVICE=psmono -r600 -dBATCH -dNOPAUSE -sOutputFile=test.ps out.ps
のようにする。
xdvi の場合
vfontmap に
hggyo		vfgyo
thggyo		vfgyo
かなと思いますがあまり調査できてません。多分不十分な表示になると思います。 dvips, dvi2ps で PS に落して gs で表示が確実でしょう。

vftool の場合

vftool 2.0-alpha で VF ファイルを作ると、縦書き用フォントが無い場合、 横書き用フォントで近似/代用できるようです。これを用いると直接 PS プリンタ に送っても大丈夫な PS ファイルが生成できます。
同じく「行書体」 TrueType フォント名が hgrgy.ttc の場合で説明します。

フォントの準備

現在 ('01.7) Debian (JP) には vftool 1.2 しかないので vftool 2.0-alpha をゲットしてインストールする必要があります。
また vftool は初めてなので誤解や誤りがあるかもわかりません。

vftool での VF/TFM ファイルの生成

dvi2ps の設定

にして dvi2ps -F hgr などでしょう。
修正('01.7.13) bk hgr にするより別の変数を 使う方が良さそうな気がするので ttf hgr にしました。 例えば通常の min, goth も一緒に使う場合など bk があった方が簡単だと思います。

参考にした情報

Multifontization 基本サイト
TeXのTrueTypeによる多書体化 分り易い気が
TeX のインストールや多書体化について gs-cjk の関係者かと
Linux de TeX多書体 Kondara のパッケージ関係らしい