以下では欧文用 OpenType フォントの利用法について解説します。想定するのは、.otf ファイルと、TeX 側で使うエンコーディングを記述したファイル(.enc)から .pfb, .tfm, .enc(.otf フォント側の), .map ファイルを生成し、.fd を作成してインストールし、必要に応じて .sty ファイルを作成・インストールする方法です。つまり OpenType フォントから Type 1 フォントを生成してそれを使います。
上にあるメニューバーから、[アドビストア] -> [フォント] を選択すると、Adobe Type Showroom にアクセスできます。
次のツールが必要です。それぞれのページでインストール方法を説明してあります。
.fd(Font Definition)ファイルは、フォントファミリなどとフォントに関するファイルとの対応関係を記述したファイルです。Type 1 用の .fd ファイルが用意されていることがあるので、探してみるとよいでしょう。.fd ファイルのファイル名は
になっています。例えば T1 エンコーディングの Adobe Minion フォントの場合は t1pmn.fd となります。フォントファミリ名は Berry 則にもとづいて決まります。フォント名 を参照してください。
LCDF Typetools を使って .pfb, .tfm, .enc, .map ファイルを生成します。
LCDF Typetools は、入手した OpenType フォントにつけられているわかりやすい名前(MinionPro など)を元にファイル名を決定することを推奨していますが、Type 1 フォントを自分でインストールしている人にとっては、Berry 則にもとづいたファイル名にした方が管理しやすいでしょう。それにこの方が .fd ファイルを使いまわせます*1。
ファイル名の決定については フォント名 をご覧ください。Adobe Minion の場合は pmn で始まります。そのあとにシェイプやエンコーディングなどを表す文字や数字を続けます。
次に、どのエンコーディングを用いるか決定しなければなりません。LCDF Typetools が推奨する OpenType フォント用のエンコーディングは LY1 ですが、一般にはあまり使われていないでしょう。Type 1 フォント を自分でインストールしていれば、それと同じ T1 エンコーディングにすると都合がよさそうです。なお、OT1 エンコーディングなど、他のエンコーディングも使えるはずですので、試してみるのもよいでしょう。
さて、各種 .enc ファイルは ${TEXMF,TEXMFDIST}/fonts/enc/dvips/base/ にあります。代表的なエンコーディングの種類と .enc ファイルの対応は次の通りです。
エンコーディング | .enc ファイル |
---|---|
T1 | cork.enc |
LY1 | texnansx.enc |
OT1 エンコーディングの場合は LCDF Typetools の導入ディレクトリ(例えば /usr/local/share/lcdf-typetools/ など)にある 7t.enc を用います。
CTAN にも用意されています。
エンコーディング | .enc ファイル |
---|---|
T1 | ${CTAN}/fonts/utilities/fontools/share/t1.enc |
TS1 | ${CTAN}/fonts/utilities/fontools/share/ts1.enc |
LY1 | ${CTAN}/fonts/utilities/fontools/share/ly1.enc |
otftotfm はファイルを生成するときに .map ファイルに書き込む内容を表示するので、空の .map ファイルを作っておき、それを順次書き込んでいくことにします。.map の名前はフォントファミリ名にしておくとよいでしょう。次は Adobe Minion の場合です。
$ touch pmn.map
otftotfm を実行して .tfm, .vf, .enc ファイルを生成し、同時に .map ファイルに書き込んでいきましょう。
otftotfm はオプションが非常に豊富です。代表的なオプションは次の通りです。
オプション | 詳細の指定 | 機能 |
---|---|---|
-e | エンコーディングファイルを指定する | |
-f feature | feature で指定した機能を有効にする | |
-fkern | カーニングを有効にする | |
-fliga | リガチャを有効にする | |
-fsmcp | スモールキャップ体を有効にする | |
-fonum | オールドスタイルの数字を有効にする | |
-n | 出力するファイル名を指定する | |
-S amt | -S 0.167 | amt で指定された角度だけ傾斜させる(Slant) |
今扱っている OpenType フォントでどのオプションが使えるかを確認するためには、次のコマンドを実行します。
$ otfinfo -f MinionPro-Regular.otf
詳しくは次のヘルプを参考にしてください。
エンコーディングファイルには cork.enc を用い、出力するファイル名を指定し、リガチャとカーニングを有効にした上で、スモールキャップ体・オールドスタイル・傾斜は必要なところのみ有効にします。
コマンドの例は次のようになります。
$ otftotfm -e cork.enc -fkern -fliga -fsmcp -fonum -n pmnrc8tj MinionPro-Regular.otf >>pmn.map
この例では、カーニング、リガチャ、スモールキャップ、オールドスタイルが有効になっています。pmnrc8tj の部分は Berry 則にもとづいて決定しましょう。
実行の際にエラーが出ることがありますが、大抵の場合は無視して大丈夫です。
できた .map ファイルを確認して、不要な記述があれば削除しておきます。不要な記述とは次のようなものです。
I had to ...
スラント体の指示は .map ファイル中で次のようにされています。
pmnro8t--base MinionPro-Regular "0.167 SlantFont AutoEnc_xxx ReEncodeFont" ...
0.167 SlantFont は ReEncodeFont の後にきて、次のようにならなければなりませんので、修正しましょう。
pmnro8t--base MinionPro-Regular " AutoEnc_xxx ReEncodeFont 0.167 SlantFont " ...
次のようにすると一括して変換できます。
cp pmn.map pmn.map.bak sed 's/0.167 SlantFont\(.*ReEncodeFont\)/\1 0.167 SlantFont/' pmn.map.bak >pmn.map
入手した .fd ファイルに修正が必要ならば修正します。上の例のように pmnj というフォントファミリを作成した場合は t1pmn.fd をコピーして t1pmnj.fd を作成しておきます。
必要ならば .sty ファイルも作成しておきます。
ファイルを適切な場所にコピーして、次のコマンドを実行します。
# mktexlsr # updmap-sys --enable Map=xxx.map
を参考にテストしてみてください。