[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[debian-users:16089] Re: xdvi 時のフォント生成



シンザンモノの森本と申します

From: Tatsuhiko Sakai<tatsu@xxxxxxxxxxxx>
Date: Mon, 14 Jun 1999 00:29:16 +0900

> フォント生成では、実際にはどのような作業を行っているのでしょうか?
> 漢字は文字種が多いので、文書中で使われている文字分だけフォント生
> 成しているのでしょうか?

debian での標準設定がどうだったか確認していませんが、大体以下の
通りになります。

まずは文字の種類と、フォントを区別して考えて下さい。a という文字
が入るという情報と、a という文字の形の情報は別物です。そして dvi 
ファイルには前者と、tfm ファイルが提供する、文字の大きさの情報の
みが含まれています。そこでその情報に沿って、実際に表示すべき画像
としてのフォントを用意せねばなりません。ところが標準ではこれが用
意されておらず、METAFONT のソースとして提供されています。このソー
スをコンパイルしてフォントを生成します。それが pk ファイルになり
ます。これは文字の種類毎大きさ毎に作られねばならないので、膨大な
数になります。

#だから計算さえすればどんな大きさにもなるベクトルフォントが便利
#なわけですね、でもベクトルフォントは表示するのに逆に計算がいる
#先日のスレッドのように「おそーい」ということがあり得ます。

一度作ったフォントは pk ファイルとしておいとくので、同じサイズ同
じ種類のものはもう生成されないはずです。逆に言えば、その時必要な
フォントしか作られません。今まで使ったことないサイズ、使ったこと
のないフォントが必要になれば、そのたびに生成され、蓄積されていき
ます。しかし、作ったファイルの置き場所が検索パスに含まれていなけ
れば無意味です。また、膨大なファイルを検索して使う TeX のシステ
ムは kpathsea ライブラリというものを使って目的もファイルを捜し出
しますが、毎回ディレクトリツリーを検索しなくていいように、ls-R 
という名のファイルにファイル一覧を生成し保存しておきます。つまり
ファイルはあってもこのファイルが更新されない限り、無意味です。
permission がらみでこれが更新できなくなっていることはありうると
思います。

#dvips や dvi2ps もこのフォントを ps ファイルに埋め込みますが、
#これを使わず、プリンタなどが持っているフォントを使う設定にして、
#ps ファイルを太らせない設定もできます。また TeX の標準である 
#Computer Modern(CM) というフォントは通常は使われませんのでそう
#う措置をとらざるを得ないわけですが、Postscript 用の CM フォン
#トはフリーのものが提供されていますので、プリンタにそれを組み込
#んで使えば、最も TeX らしい出力を得ることができます。

さて、日本語でこれをやると生成されるファイルサイズが尋常ではなく
なるので、TrueType フォントなどのベクトルフォントをその都度ラス
タライズして使うようになっています。ベクトルフォントは形の情報だ
けを持っていて、実際に表示する際には大きさを指定してやり、実際の
フォントを生成せねばなりません。現状では xdvi などは VFlib とい
うライブラリを使ってそれを実現します。逆に英数字も全部これを使う
こともできるわけですが...

ASCII が出ている Platex2e のセットについてる解説書が詳しかったと
思います。私は Linux いじり始める以前に Solaris で環境構築する際 
TeX のインストール方法のweb page や雑誌の記事を漁りまくり、ドキュ
メントを印刷して読みまくって構造を理解しましたが、あの本の簡潔か
つ詳しい記述を見てガーンと思いました。

では...