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
を参考にテストしてみてください。