TeX におけるフォントの仕組みは若干複雑で、(p)TeX の標準のフォント*1 しか使っていないという人も多いのではないでしょうか。最近は Times, New Century, Palatino といったパッケージが用意されていますので、これを使っている人もいることでしょう。以下では、TeX 用に用意された(欧文)フォントを作成、インストールするために必要になる、「TeX におけるフォントの機構」を簡単に解説します。
TeX が組版を行うときは、字形の情報は必要ありません。「一つ一つの文字に外接する四角形を順に並べていく」というのが大体のイメージです。そのため、文字の
の情報があれば組版できます。「深さ」は聞き慣れない言葉ですが、ローマ字の場合を考えてみてください。ローマ字は基準線(baseline)の上に並べていきますが、`g' などは基準線より下に出ます。その、基準線より下に出ている部分が文字の「深さ」です。
実は、これだけでは情報が足りません。
に関する情報も必要です。上の言葉について、詳しくは他のページで調べてみてください。
これらの情報は全て .tfm(TeX Font Metric file)に収められています。したがって、TeX で組版する際には .tfm(だけ)があればよいということになります。実際に組版されたものを目で見る(xdvi や PDF, PS で見る)ためには上の情報だけでは無理ですので、文字の形を収めた何らかのファイルが必要になります。
TeX が組版をするには、まず .tfm ファイルが必要ですので、.tfm ファイルが用意されていないフォントの場合は、自分で作成しなければなりません。例えば Type 1 フォントを入手すると .afm(Adobe Font Metric file)がついてきますが、これを .tfm に変換する必要があります。TrueType, OpenType フォントは、内部にメトリックと字形に関する情報を含んでいますので、何らかのツールを使ってメトリックの情報を抽出し、.tfm ファイルにする必要があります。ここでは具体的な方法は述べません。詳しくは
を参照してください。
コンピュータ上で文字を扱う場合には、それぞれの文字に番号を与えて管理しています。この番号のことを「文字コード」といいます。それぞれの文字コードと、実際のフォントに含まれるグリフ(字形)との対応関係を「エンコード」といいます。
文字コードはシステムによって異なります*2。TeX で用いるフォントの文字コードも一種類ではありませんので、エンコーディングも複数存在することになります。
エンコード | 解説 |
---|---|
OT1 | Knuth 教授が定義した、本文用のエンコード。1つのセットは128文字で構成されている。 |
T1 | TUG(TeX Users Group)のメンバーが定義した、OT1 を拡張したエンコード。1つのセットは256文字で構成される。 |
TS1 | Text Symbol 用のエンコード。主に記号が収められている。 |
OT1 と T1 エンコーディングの大きな違いは、構成する文字数です。128文字ではアクセントつきのローマ文字を全て収録することができないので、文字と記号を組み合わせてそれを表現しますが、256文字ならばそれらを収録できますので、アクセントつきのローマ文字をそれぞれ用意することができます。欧文系人文学では T1 エンコーディングが必須といってもよいでしょう。
エンコード | 解説 |
---|---|
8a | Adobe Standard エンコーディング。Type 1 フォントは普通このエンコーディングである。 |
8r | TeX Base 1 エンコーディング。仮想フォント用のエンコーディング(後述)。 |
7t | TeX Text エンコーディング。OT1 に対応する。 |
8t | Cork エンコーディング。T1 に対応する。 |
仮想フォント(virtual font)とは、次のような問題を解決するための仕組みです。
仮想フォントは実際には字形の情報は含んでおらず、(上の問題からも明らかなように)エンコーディングを拡張したようなものです。既に述べた TeX におけるフォントの機構からもわかるように、TeX は仮想フォントを用いません。TeX が出力した .dvi ファイルを見たり、変換したりするときに用いられます。
仮想フォントの拡張子は .vf です。
TeX が用いるエンコーディングと、一般に配布されているフォントのエンコーディングは同じだとは限りません。例えば Type 1 フォントは Adobe Standard エンコーディング(TeX では 8a エンコーディング)ですので、そのまま TeX で扱うことはできません。このような場合、仮想フォントを用いてエンコーディングを対応させます。その際に TeX Base 1 エンコーディング(8r)を間に挟みます。TeX Base 1 エンコーディングとは、さまざまフォントのエンコーディングを、仮想フォントを通じて共通に使えるようにする目的で準備されているものです。
おおよその手順は次のようになります。なお、ここでは Type 1 フォントの例で説明します。Type 1 フォントの多くはアクセントつきのローマ文字を含んでいますので、TeX 側のエンコーディングは OT1(7t)ではなく T1(8t)を用います。
Type 1 フォントには .afm(Adobe Font Metric file)がついてきますから、それを 8r.enc などのエンコーディングを記述したファイルを使って .tfm, .vf ファイルを生成し、.tfm, .enc, .pfb などの対応を記述した .map ファイルを作成したうえで適切な場所にインストールすれば TeX で使えるようになります。