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 ファイルは自動で生成されません。Adobe Minion(Type 1 PostScript)用の .fd ファイルを入手してそれを流用します。
Adobe Minion 用の .fd は CTAN にありますが、サーバによってはない場合もありますので、適当に探してみてください。例えば次のような場所にありました。
用意されている .fd ファイルは念のため全て入手しておきましょう。
.tfm, .vf, .pfb, .enc ファイルを生成します。
TeX/Font/OpenType#enc を参照してください。
.map ファイルに書き込みながら .tfm ファイルを生成するので、空の .map ファイルを作っておきます。
$ touch pmn.map
otftotfm を実行して .tfm, .vf, .enc ファイルを生成し、同時に .map ファイルに書き込んでいきましょう。
otftotfm にはオプションが多数用意されています。詳細は otftotfm のマニュアル(TeX/Font/OpenType/LCDFTypeTools 参照)に譲るとして、ここではよく使うオプションを確認しておきましょう。
| オプション | 詳細の指定 | 機能 |
|---|---|---|
| -e | エンコーディングファイルを指定する | |
| -f feature | feature で指定した機能を有効にする | |
| -fkern | カーニングを有効にする | |
| -fliga | リガチャを有効にする | |
| -fsmcp | スモールキャップ体を有効にする | |
| -fonum | オールドスタイルの数字を有効にする | |
| -n | 出力するファイル名を指定する | |
| -S amt | -S 0.167 | amt で指定された角度だけ傾斜させる(Slant) |
エンコーディングファイルには cork.enc を用い、出力するファイル名を指定し、リガチャとカーニングを有効にした上で、スモールキャップ体・オールドスタイル・傾斜は必要なところのみ有効にします。
コマンドの概要は次のようになります。
$ otftotfm -e cork.enc -fkern -fliga -n xxxx8t MinionPro-xxxx.otf >>pmn.map
これに必要なオプションを付け加え、xxxx8t の部分にファイル名を指定し、元のファイル名を MinionPro-xxxx.otf に当てはめて実行します。8t は T1 エンコーディングの場合です。他のエンコーディングの場合は適宜読みかえてください。
| 元ファイル | オプション | 指定するオプション | ファイル名 |
|---|---|---|---|
| Regular | pmnr8t | ||
| Regular | (old style number) | -fonum | pmnr8tj |
| Regular | Small Caps | -fsmcp | pmnrc8t |
| Regular | Small Caps (old style number) | -fsmcp -fonum | pmnrc8tj |
| Regular | Slant | -S 0.167 | pmnro8t |
| Regular | Slant (old style number) | -fonum -S 0.167 | pmnro8tj |
| Italic | pmnri8t | ||
| Italic | (old style number) | -fonum | pmnri8tj |
| Bold | pmnb8t | ||
| Bold | (old style number) | -fonum | pmnb8tj |
| Bold | Small Caps | -fsmcp | pmnbc8t |
| Bold | Small Caps (old style number) | -fsmcp -fonum | pmnbc8tj |
| Bold | Slant | -S 0.167 | pmnbo8t |
| Bold | Slant (old style number) | -fonum -S 0.167 | pmnbo8tj |
| Bold | Italic | pmnbi8t | |
| Bold | Italic (old style number) | -fonum | pmnbi8tj |
| Semibold | pmns8t | ||
| Semibold | (old style number) | -fonum | pmns8tj |
| Semibold | Small Caps | -fsmcp | pmnsc8t |
| Semibold | Small Caps (old style number) | -fsmcp -fonum | pmnsc8tj |
| Semibold | Slant | -S 0.167 | pmnso8t |
| Semibold | Slant (old style number) | -fonum -S 0.167 | pmnso8tj |
| Semibold | Italic | pmnsi8t | |
| Semibold | Italic (old style number) | -fonum | pmnsi8tj |
| Black | pmnc8t | ||
| Black | (old style number) | -fonum | pmnc8tj |
| Black | Small Caps | -fsmcp | pmncc8t |
| Black | Small Caps (old style number) | -fsmcp -fonum | pmncc8tj |
| Black | Slant | -S 0.167 | pmnco8t |
| Black | Slant (old style number) | -fonum -S 0.167 | pmnco8tj |
実行の際にエラーが出ることがありますが、大抵の場合は無視して大丈夫です。
できた .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, .sty ファイルが必要です。自分で作成することもできますが、先ほどの
で Type 1 フォント用のものが配布されていますので、これを使うのが便利でしょう。ここでのやり方では、pmn と pmnj というフォントファミリを作成したので、以下のファイルが必要になります。
t1pmn.fd を元にし、必要に応じて次の変換をしてそれぞれのファイルを作成します。
次のようになります。
%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
簡単に 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
を参考にテストしてみてください。