欧文フォントのインストール

TeXdvioutのフォントが表示されるからくりを実験しながら調べてみました。
PDFにしたら60ページになりました。おひまならどうぞ。main-E01R31.pdf(第1版Rev.31) *1


序文からの抜粋。

この文書は、TEX のフォント表示のからくりを調べるために行った実験の記録です。そのため、用語や仕様の解説はしていませんし、フォントの実用的な(LATEX 風) インストールができるようにもなりません。実験は、kakuto3(0.7.6.0) の環境で行いました。タイプセッタはpLATEX2ϵ(jsarticle)、プレビューアはdviout を使い、dviout 以外のプレビューアは対象としません。また、フォントレンダリングにGhostScriptが必要です。これらは、kakuto3 でインストールできます。インストーラの指示通りに設定を行い、使えるようにしておきます。kakuto3 によるTEX 環境が整っていればそれ以外のツールは不要です。

TEX のフォントは、フォントメトリック[Knu95] [Fuc81]、フォントグリフに分けて扱われます。メトリックはタイプセット時に参照されレイアウトに利用されます。メトリックの生成には、afmtotfm、ttftotfm、otftotfm などのツールがあります。グリフはレンダリング時に参照され文字形状の表示に利用されます。フォントのレンダリングは様々な方法で実現されています(mktexpk、gsftopk、ps2pk、WindowsAPI など)。ソースフォントファイル(.ttf、.otf)、TEX ソースファイル(.tex)、メトリックファイル(.tfm)、グリフファイル(.pfb、.afm) などの文字コードの対応付けを行うのがエンコーディングファイル(.enc) です。エンコーディングを利用することで、他者のお約束(記述順や内部番号など) の影響を無くすことができるようになります。また、ファイルの関連付けを行うのがマップファイル(.map) です。インストールはTEX Directory Structure (TDS)に従った標準的なフォルダ構成で行います。

第1 節で、タイプセット時には、フォント名に対応した.tfm が利用されていることを確認します。
第2 節で、キャラクタ命令(\charnumber) を使い、同一文字コードであってもフォントが異なれば別の出力となることを確認します。.tfm のメトリック情報はCHARACTER 毎に記述されていますが、この記述順序がタイプセットに与える影響を調べます。この実験は、キャラクタ番号と文字の対応はTFM の記述順には依存しないことを確認するためのものです。
第3 節で、垂直方向のレイアウト(行送り) はタイプセット時に決定され、水平方向はレンダリング時に改めて決定されていること、そのため.tfm がレンダリング時にも必要であるということを確認します。
第4 節で、texnansi.enc を改竄して、エンコーディング文字コードと文字形状の対応関係を決めていることを確認します。
第5 節は、フォントのインストール例です。

*1:Adobe Latin1などを見ると、「/space、/exclam、/A」などというのは、glyph name というらしいので修正しました。不確かですが、charstring の名前がglyph nameということだと思います。ついでに、pdfのしおり付き。付録のgsftopk代替レンダリングの誤りを修正。版は変えず改訂20−>31にしました。...カバーの画像は改訂20番のままだ...