TeX/Font/OpenType

Adobe Minion(OpenType)のインストール

Adobe 社の販売している Minion-Pro フォントを TeX で使えるようにしてみます。LCDF Typetools が必要です。TeX/Font/OpenType をご覧ください。

フォントの用意

次のフォントを作業用ディレクトリにコピーします。

それぞれのフォントの情報を見るには次のようにします。

$ otfinfo -f MinionPro-Regular.otf

ファイル名の決定

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

ファイル名の決定については フォント名 をご覧ください。Adobe Minion の場合は pmn で始まります。実際のファイル名の例についてはこの後の「otftotfm --- コマンドの実行」の部分をご覧ください。

.fd ファイルの入手

.fd ファイルは自動で生成されません。Adobe Minion(Type 1 PostScript)用の .fd ファイルを入手してそれを流用します。

Adobe Minion 用の .fdCTAN にありますが、サーバによってはない場合もありますので、適当に探してみてください。例えば次のような場所にありました。

用意されている .fd ファイルは念のため全て入手しておきましょう。

ファイルの生成

.tfm, .vf, .pfb, .enc ファイルを生成します。

.enc のコピー

まず、どのエンコーディングを用いるか、決定しなければなりません。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 を用います。

それでは T1 用の .enc ファイルを作業用ディレクトリにコピーします。

$ cp /usr/local/teTeX/share/texmf-dist/fonts/enc/dvips/base/cork.enc ./

TeX をインストールした場所に応じて適宜変更してください。

.map ファイルの作成

.map ファイルに書き込みながら .tfm ファイルを生成するので、空の .map ファイルを作っておきます。

$ touch pmn.map

otftotfm

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

オプション

otftotfm にはオプションが多数用意されています。詳細は otftotfm のマニュアル(TeX/Font/OpenType/LCDFTypeTools 参照)に譲るとして、ここではよく使うオプションを確認しておきましょう。

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

コマンドの実行

エンコーディングファイルには cork.enc を用い、出力するファイル名を指定し、リガチャとカーニングを有効にした上で、スモールキャップ体・オールドスタイル・傾斜は必要なところのみ有効にします。

コマンドの概要は次のようになります。

$ otftotfm -e cork.enc -fkern -fliga -n xxxx8t MinionPro-xxxx.otf >>pmn.map

これに必要なオプションを付け加え、xxxx8t の部分にファイル名を指定し、元のファイル名を MinionPro-xxxx.otf に当てはめて実行します。8t は T1 エンコーディングの場合です。他のエンコーディングの場合は適宜読みかえてください。

字体オプションファイル名
Regularpmnr8t
Regular (old style number)-fonumpmnr8tj
Regular Small Caps-fsmcppmnrc8t
Regular Small Caps (old style number)-fsmcp -fonumpmnrc8tj
Regular Slant-S 0.167pmnro8t
Regular Slant (old style number)-fonum -S 0.167pmnro8tj
Italicpmnri8t
Italic (old style number)-fonumpmnri8tj
Boldpmnb8t
Bold (old style number)-fonumpmnb8tj
Bold Small Caps-fsmcppmnbc8t
Bold Small Caps (old style number)-fsmcp -fonumpmnbc8tj
Bold Slant-S 0.167pmnbo8t
Bold Slant (old style number)-fonum -S 0.167pmnbo8tj
Bold Italicpmnbi8t
Bold Italic (old style number)-fonumpmnbi8tj
Semiboldpmns8t
Semibold (old style number)-fonumpmns8tj
Semibold Small Caps-fsmcppmnsc8t
Semibold Small Caps (old style number)-fsmcp -fonumpmnsc8tj
Semibold Slant-S 0.167pmnso8t
Semibold Slant (old style number)-fonum -S 0.167pmnso8tj
Semibold Italicpmnsi8t
Semibold Italic (old style number)-fonumpmnsi8tj
Blackpmnc8t
Black (old style number)-fonumpmnc8tj
Black Small Caps-fsmcppmncc8t
Black Small Caps (old style number)-fsmcp -fonumpmncc8tj
Black Slant-S 0.167pmnco8t
Black Slant (old style number)-fonum -S 0.167pmnco8tj

実行の際にエラーが出ることがありますが、大抵の場合は無視して大丈夫です。

.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, .sty ファイルが必要です。自分で作成することもできますが、先ほどの

で Type 1 フォント用のものが配布されていますので、これを使うのが便利でしょう。ここでのやり方では、pmnpmnj というフォントファミリを作成したので、t1pmn.fd の他に t1pmnj.fd も必要になります。t1pmn.fd を元にし、{pmn} になっているところを {pmnj} に変更し、pmnr8t などの記述を pmnr8tj などに変更して次のようにします。

%Filename: t1pmnj.fd

%THIS FILE SHOULD BE PUT IN A TEX INPUTS DIRECTORY

\ProvidesFile{t1pmnj.fd}[2006/10/07 T1/pmnj by MATSUURA Takashi]

\DeclareFontFamily{T1}{pmnj}{}

\DeclareFontShape{T1}{pmnj}{m}{n}{
   <-> pmnr8tj
}{}

\DeclareFontShape{T1}{pmnj}{m}{sc}{
   <-> pmnrc8tj
}{}

\DeclareFontShape{T1}{pmnj}{m}{sl}{
   <-> pmnro8tj
}{}

\DeclareFontShape{T1}{pmnj}{m}{it}{
   <-> pmnri8tj
}{}

\DeclareFontShape{T1}{pmnj}{b}{n}{
   <-> pmnb8tj
}{}

\DeclareFontShape{T1}{pmnj}{b}{sc}{
   <-> pmnbc8tj
}{}

\DeclareFontShape{T1}{pmnj}{b}{sl}{
   <-> pmnbo8tj
}{}

\DeclareFontShape{T1}{pmnj}{b}{it}{
   <-> pmnbi8tj
}{}

\DeclareFontShape{T1}{pmnj}{sb}{n}{
   <-> pmns8tj
}{}

\DeclareFontShape{T1}{pmnj}{sb}{sc}{
   <-> pmnsc8tj
}{}

\DeclareFontShape{T1}{pmnj}{sb}{sl}{
   <-> pmnso8tj
}{}

\DeclareFontShape{T1}{pmnj}{sb}{it}{
   <-> pmnsi8tj
}{}

\DeclareFontShape{T1}{pmnj}{eb}{n}{
   <-> pmnc8tj
}{}

\DeclareFontShape{T1}{pmnj}{eb}{sc}{
   <-> pmncc8tj
}{}

\DeclareFontShape{T1}{pmnj}{eb}{sl}{
   <-> pmnco8tj
}{}

\DeclareFontShape{T1}{pmnj}{bx}{n}{<->ssub * pmnj/b/n}{}
\DeclareFontShape{T1}{pmnj}{bx}{sc}{<->ssub * pmnj/b/sc}{}
\DeclareFontShape{T1}{pmnj}{bx}{sl}{<->ssub * pmnj/b/sl}{}
\DeclareFontShape{T1}{pmnj}{bx}{it}{<->ssub * pmnj/b/it}{}
\DeclareFontShape{T1}{pmnj}{eb}{it}{<->ssub * pmnj/eb/sl}{}

\endinput

.sty ファイル

簡単に Adobe Minion フォントを使えるように、pminion.sty を作成します。今回オールドスタイルを使えるようにしていますので、オプションで指定できるようにしましょう。

\NeedsTeXFormat{LaTeX2e}
\ProvidesPackage{pminion}[2006/10/07 v1.0 Adobe Minion by MATSUURA Takashi]
\RequirePackage[T1]{fontenc}
\RequirePackage{textcomp}
\DeclareOption{lining}{\renewcommand*{\rmdefault}{pmn}}
\DeclareOption{oldstyle}{\renewcommand*{\rmdefault}{pmnj}}
\ExecuteOptions{lining}
\ProcessOptions\relax
\newcommand*{\textos}[1]{{\fontfamily{pmnj}\selectfont #1}}
\newcommand*{\textln}[1]{{\fontfamily{pmn}\selectfont #1}}
\endinput

これで

\usepackage[oldstyle]{pminion}

とプリアンブルに書けばオールドスタイルが標準に、

\usepackage{pminion}

と書けばライニング(通常)が標準になります。

一部分だけオールドスタイル・ライニングにする場合はそれぞれ

\textos{0123456789}
\textln{0123456789}

を使います。

コピー

以下のファイルを TeX が見つけてこられるところにコピーします。

/usr/local/teTeX/share/texmf-local/ の部分は自分のシステムに合わせて読みかえてください。

設定

TeX から使えるようにします。

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

テスト

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


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

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