TeX/Font

OpenType フォントの利用

以下では欧文用 OpenType フォントの利用法について解説します。想定するのは、.otf ファイルと、TeX 側で使うエンコーディングを記述したファイル(.enc)から .pfb, .tfm, .enc.otf フォント側の), .map ファイルを生成し、.fd を作成してインストールし、必要に応じて .sty ファイルを作成・インストールする方法です。つまり OpenType フォントから Type 1 フォントを生成してそれを使います。

作業例

準備

次のツールが必要です。それぞれのページでインストール方法を説明してあります。

.fd ファイルの入手

.fd(Font Definition)ファイルは、フォントファミリなどとフォントに関するファイルとの対応関係を記述したファイルです。Type 1 用の .fd ファイルが用意されていることがあるので、探してみるとよいでしょう。.fd ファイルのファイル名は

になっています。例えば T1 エンコーディングの Adobe Minion フォントの場合は t1pmn.fd となります。フォントファミリ名は Berry 則にもとづいて決まります。フォント名 を参照してください。

LCDF Typetools の実行

LCDF Typetools を使って .pfb, .tfm, .enc, .map ファイルを生成します。

フォント名、ファイル名の決定

LCDF Typetools は、入手した OpenType フォントにつけられているわかりやすい名前(MinionPro など)を元にファイル名を決定することを推奨していますが、Type 1 フォントを自分でインストールしている人にとっては、Berry 則にもとづいたファイル名にした方が管理しやすいでしょう。それにこの方が .fd ファイルを使いまわせます*1

ファイル名の決定については フォント名 をご覧ください。Adobe Minion の場合は pmn で始まります。そのあとにシェイプやエンコーディングなどを表す文字や数字を続けます。

.enc のコピー&aname: Invalid ID string: enc)&aname(g0dabf32;

次に、どのエンコーディングを用いるか決定しなければなりません。LCDF Typetools が推奨する OpenType フォント用のエンコーディングは LY1 ですが、一般にはあまり使われていないでしょう。Type 1 フォント を自分でインストールしていれば、それと同じ T1 エンコーディングにすると都合がよさそうです。なお、OT1 エンコーディングなど、他のエンコーディングも使えるはずですので、試してみるのもよいでしょう。

さて、各種 .enc ファイルは ${TEXMF,TEXMFDIST}/fonts/enc/dvips/base/ にあります。代表的なエンコーディングの種類と .enc ファイルの対応は次の通りです。

エンコーディング.enc ファイル
T1cork.enc
LY1texnansx.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

.map ファイルの作成

otftotfm はファイルを生成するときに .map ファイルに書き込む内容を表示するので、空の .map ファイルを作っておき、それを順次書き込んでいくことにします。.map の名前はフォントファミリ名にしておくとよいでしょう。次は Adobe Minion の場合です。

$ touch pmn.map

otftotfm

otftotfm を実行して .tfm, .vf, .enc ファイルを生成し、同時に .map ファイルに書き込んでいきましょう。

オプション

otftotfm はオプションが非常に豊富です。代表的なオプションは次の通りです。

オプション詳細の指定機能
-eエンコーディングファイルを指定する
-f featurefeature で指定した機能を有効にする
-fkernカーニングを有効にする
-fligaリガチャを有効にする
-fsmcpスモールキャップ体を有効にする
-fonumオールドスタイルの数字を有効にする
-n出力するファイル名を指定する
-S amt-S 0.167amt で指定された角度だけ傾斜させる(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 ファイル

確認

できた .map ファイルを確認して、不要な記述があれば削除しておきます。不要な記述とは次のようなものです。

I had to ...

修正

スラント体の指示は .map ファイル中で次のようにされています。

pmnro8t--base MinionPro-Regular "0.167 SlantFont AutoEnc_xxx ReEncodeFont" ...

0.167 SlantFontReEncodeFont の後にきて、次のようにならなければなりませんので、修正しましょう。

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 ファイル

入手した .fd ファイルに修正が必要ならば修正します。上の例のように pmnj というフォントファミリを作成した場合は t1pmn.fd をコピーして t1pmnj.fd を作成しておきます。

.sty ファイル

必要ならば .sty ファイルも作成しておきます。

ファイルのコピー

ファイルを適切な場所にコピーして、次のコマンドを実行します。

# mktexlsr
# updmap-sys --enable Map=xxx.map 

テスト

を参考にテストしてみてください。

参考


*1 Type 1 フォント用の .fd ファイルを流用できる場合があります。

トップ   新規 一覧 検索 最終更新   ヘルプ   最終更新のRSS