virtual font kit (2.0 alpha)
				桜井貴文(sakurai@math.s.chiba-u.ac.jp)
				千葉大 数学・情報数理学科

これはdvi2ps-j、dvi2dviで使うvirtual fontを作るためのkitである。
(まだこのドキュメントは完全ではありません。)

[1] virtual fontの生成

makeの引数として以下のものを指定するとそれぞれのvirtual fontが作られる。 

a2bk	pTeXのdviを、プリンタ内蔵のモノスペースの漢字フォントを使うdviに
	変換するためのvirtual font。
v2h,vsy,vsyd	縦書き用のプリンタ内蔵のモノスペースの漢字フォントを
	使うdviを、横書き用の漢字フォントを使うdviに変換するvirtual font。
	a2bkと組み合わせて使うことにより、pTeXの縦書きを含んだdviを
	プリンタ内蔵のモノスペースの漢字フォントを使うdviに変換する
	ことができる。
	v2hと、vsy/vsydのいずれか一方を選択する。(違いは[2]で述べる。)

Makefile中の変数を以下のように設定する。各変数は、()内のものをmakeの
targetとして選んだとき設定しなければならない。
j (a2bk)
	この値を j にするとコンパクトなvirtual fontが作られる。
	ただし、dvi2ps-3.0j-alpha以上、dvi2dvi-1.1以上が必要である。
bkfonts (a2bk)
	1. 自分のプリンタの内蔵フォントが何であるかをvfdata.doc(これは生成
	   されたvfの説明のためのドキュメントであるが)を読んで決定する。
	   ない場合は [3] を参照のこと。
	2. Makefile中のbkfontsの定義の次の行以下にある bk-* から必要なもの
	   を選び、それらをbkfontsとする。選んだものは
		bkfonts = '${bk-mor2}' '${bk-rsp}'
	   のように変数を ' で囲まなければならない。
JFM (a2bk)
	pTeXで使う min10.tfm, ... というjfmファイルがあるディレクトリ

make終了後、vf/XXX というディレクトリの下にvirtual fontができているの
でそれを適当なディレクトリに移動する。a2bkを選んだときはさらに jfm/XXX 
の下にできたjfmファイルを適当なディレクトリに移動する。

[2] フォント名の置換とvf,tfmファイルの配置

このパッケージで作られるvirtual fontは、フォントを別のフォントで
置き換えるために使う。たとえばpTeXで使われるmin10の場合、
	min10 -> rml	by min10.vf (a2bk)
のように名前は置き換えられる。(上の行は、makeのオプションa2bkによって
作られたmin10.vfというvfファイルによって、min10というフォント名がrml
というフォント名に置き換えられることを表わしている。) このrmlという
dvi中でのフォント名をRyumin-Light-Hというプリンタ内蔵フォント名に
マップするのはdvi2ps等のdviドライバの役割である。
pTeXで使われる縦書き用のtmin10の場合
	tmin10 -> rmlv	by tmin10.vf (a2bk)
で、通常はrmlvというフォント名を縦書き用のプリンタ内蔵フォント
Ryumin-Light-Vにマップするのであるが、縦書き用のプリンタ内蔵フォントが
ない場合は横書き用のフォントで近似できるようにする。まず、
	rmlv -> rml + rmlvsy	by rmlv.vf (v2h)
によって句読点(``。''や``、''等)や撥音(``っ''等)等をシフトすることに
よって調整する。さらに回転や裏返しをしなければならない文字もあるが、
それらは
	rmlvsy -> rml  rotate/mirror by PS special	by rmlvsy.vf (vsy)
	rmlvsy -> rml  rotate by DIR	by rmlvsy.vf (vsyd)
によって調整される。前者では、special命令でPostScriptコードを埋め込む
ことによって文字の回転と裏返しを実現している。後者では、pTeXの縦書きの
際使われるDIR命令で文字の回転を実現しているが、裏返しが必要なのに裏返
されていない文字もある。いずれの場合も、縦書き用のフォントは必要ない。
まとめると、前者はPostScriptプリンタで出力する場合、後者はDIR命令を
解釈できるdviドライバの場合に使う。

このパッケージで生成されたtfm/vfファイルをどのように配置するかは趣味の
問題ではあるが、たとえば以下のようにする。

    .../fonts/tfm/adobe/jp/{rml,rmlv}.tfm
    .../fonts/vf/ptex/a2mor2/{min10,tmin10}.vf
    .../fonts/vf/adobe/jp/{rml,rmlv}.vf
    .../fonts/vf/adobe/jp-ps/rmlvsy.vf
    .../fonts/vf/adobe/jp-dir/rmlvsy.vf

    .../fonts/tfm/std/jp/{stdmn,stdmnv}.tfm
    .../fonts/vf/ptex/a2std/{min10,tmin10}.vf
    .../fonts/vf/std/jp/{stdmn,stdmnv}.vf
    .../fonts/vf/std/jp-ps/stdmnvsy.vf
    .../fonts/vf/std/jp-dir/stdmnvsy.vf


[3] 漢字フォントの記述

変数 bk-FFF は、
	XXX <フォント記述1> <フォント記述2> ...
という形の文字列である。ここで、XXXはvfおよびtfmの下にできるディレクトリ名、
<フォント記述i> は、
	<tfm名>:<dvi中でのfont名>:<モノtfm名>
という文字列である。ただし、
	<tfm名>はプリンタ内蔵の漢字フォントのtfm(jfm)名(以下TTTと書く)、
	<dvi中>でのfont名はサイズに関する部分は除いた名前(以下FFFと書く)、
	<モノtfm名>は横書きの場合はmonokan、縦書きの場合はmonokan-v
である。この記述により、
	FFF5.vf, FFF6.vf, FFF7.vf, FFF8.vf, FFF9.vf, FFF10.vf
というvfファイルが vf/XXX というディレクトリの下に、
	TTT.tfm
というtfmファイルが tfm/XXX というディレクトリの下に作られる。
vfを作るときに参照されるデータは、data/a2TTT というファイルに記述
されている。1行に1つの文字について記述されていて、1番目の項目が
文字コード、2番目の項目が調節量(1000=全角幅)である。それ以降の項は
コメントである。(なお、縦書きの a2rmlvs, a2gbmvs, a2tmmv, a2tgbv は
いいかげんなものです。) また、a2std* は min10.tfm, goth10.tfm,
tmin10.tfm, tgoth10.tfm のみのデータから作ったもので、ある程度標準的な
ものになっている(と思う)。個々のフォントに関するデータがないときの
代用品になるだろう。
data/v2hTTT は縦書き用のフォントを横書き用のフォントで近似するときに
使うデータである。
