TeX/Font/OpenType

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

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

購入

Adobe 社より購入できます。

書体見本

フォントの用意

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

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

$ 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 のコピー

TeX/Font/OpenType#enc を参照してください。

.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
RegularSmall Caps-fsmcppmnrc8t
RegularSmall Caps (old style number)-fsmcp -fonumpmnrc8tj
RegularSlant-S 0.167pmnro8t
RegularSlant (old style number)-fonum -S 0.167pmnro8tj
Italicpmnri8t
Italic(old style number)-fonumpmnri8tj
Boldpmnb8t
Bold(old style number)-fonumpmnb8tj
BoldSmall Caps-fsmcppmnbc8t
BoldSmall Caps (old style number)-fsmcp -fonumpmnbc8tj
BoldSlant-S 0.167pmnbo8t
BoldSlant (old style number)-fonum -S 0.167pmnbo8tj
BoldItalicpmnbi8t
BoldItalic (old style number)-fonumpmnbi8tj
Semiboldpmns8t
Semibold(old style number)-fonumpmns8tj
SemiboldSmall Caps-fsmcppmnsc8t
SemiboldSmall Caps (old style number)-fsmcp -fonumpmnsc8tj
SemiboldSlant-S 0.167pmnso8t
SemiboldSlant (old style number)-fonum -S 0.167pmnso8tj
SemiboldItalicpmnsi8t
SemiboldItalic (old style number)-fonumpmnsi8tj
Blackpmnc8t
Black(old style number)-fonumpmnc8tj
BlackSmall Caps-fsmcppmncc8t
BlackSmall Caps (old style number)-fsmcp -fonumpmncc8tj
BlackSlant-S 0.167pmnco8t
BlackSlant (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 を元にし、必要に応じて次の変換をしてそれぞれのファイルを作成します。

次のようになります。

%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
Last-modified: 2019-03-30 (土) 04:06:21