[[TeX/Font/OpenType]]

*Adobe Minion(OpenType)のインストール [#i9d83f43]

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

*フォントの用意 [#x329d269]

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

-MinionPro-Regular.otf
-MinionPro-It.otf
-MinionPro-Bold.otf
-MinionPro-BoldIt.otf
-MinionPro-Semibold.otf
-MinionPro-SemiboldIt.otf
-MinionStd-Black.otf

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

 $ otfinfo -f MinionPro-Regular.otf

*ファイル名の決定 [#l4293356]

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

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

*.fd ファイルの入手 [#ga250561]

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

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

-http://www.botik.ru/~znamensk/CTAN/fonts/metrics/adobe/minion/tex/

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

*.tfm ファイルの生成 [#e1729f0e]
*ファイルの生成 [#e1729f0e]

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

**.enc のコピー [#t017b541]

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

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

|~エンコーディング|~.enc ファイル|
|~T1|cork.enc|
|~LY1|texnansx.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 ファイルの作成 [#yc3f66c4]

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

 $ touch pmn.map

**otftotfm [#gf9d805c]

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

***オプション [#t730fb89]

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

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

***コマンドの実行 [#l21817a4]

エンコーディングファイルには ''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 ファイル [#ybc932c5]

**確認 [#o2128cc0]

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

 I had to ...

**コピー [#z903fa36]
**修正 [#i0c0ed8e]

''.map'' ファイルを TeX が見つけてこられるところにコピーします。
スラント体の指示は ''.map'' ファイル中で次のようにされています。

-''.pfb'' (/usr/local/teTeX/share/texmf-local/fonts/type1/adobe/minion/)
-''.tfm'' (/usr/local/teTeX/share/texmf-local/fonts/tfm/adobe/minion/)
-''.vf'' (/usr/local/teTeX/share/texmf-local/fonts/vf/adobe/minion/)
-''.enc'' (/usr/local/teTeX/share/texmf-local/fonts/enc/dvips/adobe/minion/)
-''pmn.map'' (/usr/local/teTeX/share/texmf-local/fonts/map/dvips/adobe/minion)
 pmnro8t--base MinionPro-Regular "0.167 SlantFont AutoEnc_xxx ReEncodeFont" ...

/usr/local/teTeX/share/ の部分は自分のシステムに合わせて読みかえてください。上の他に ''.fd'', ''.sty'' ファイルが必要です。自分で作成することもできますが、先ほどの
''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 ファイル [#oa48b8e6]

先に述べたように ''.fd'', ''.sty'' ファイルが必要です。自分で作成することもできますが、先ほどの

-http://www.botik.ru/~znamensk/CTAN/fonts/metrics/adobe/minion/tex/

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

-/usr/local/teTeX/share/texmf-local/tex/latex/adobe/minion/
 %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

**設定 [#q5d8454b]
*.sty ファイル [#m236da2e]

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

 # mktexlsr
 # updmap-sys --enable Map=pmn.map
 \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

*フォントテーブルの作成 [#s0d529cd]
これで

うまく使えるかどうか、フォントテーブルを作成して確認します。作業用ディレクトリで次のコマンドを実行します。
 \usepackage[oldstyle]{pminion}

 $ tex testfont
 Name of the font to test = pmnr8t
 *\table
 *\end
とプリアンブルに書けばオールドスタイルが標準に、

''testfont.dvi'' というファイルができているので、xdvi などで見るか、dvipdfmx で PDF にします。
 \usepackage{pminion}

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

フォントテーブルの作成については [[フォントテーブル>TeX/Font/FontTable]] も参考にしてください。
一部分だけオールドスタイル・ライニングにする場合はそれぞれ

 \textos{0123456789}
 \textln{0123456789}

を使います。

*コピー [#s87ca931]

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

-''.pfb'' (/usr/local/teTeX/share/texmf-local/fonts/type1/adobe/minion/)
-''.tfm'' (/usr/local/teTeX/share/texmf-local/fonts/tfm/adobe/minion/)
-''.vf'' (/usr/local/teTeX/share/texmf-local/fonts/vf/adobe/minion/)
-''.enc'' (/usr/local/teTeX/share/texmf-local/fonts/enc/dvips/adobe/minion/)
-''pmn.map'' (/usr/local/teTeX/share/texmf-local/fonts/map/dvips/adobe/minion)
-''.fd'' (/usr/local/teTeX/share/texmf-local/tex/latex/adobe/minion/)
-''pminion.sty'' (/usr/local/teTeX/share/texmf-local/tex/latex/adobe/minion/)

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

**設定 [#q5d8454b]

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

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

*テスト [#i7c428a9]

次のようなファイルを作って ''latex'' でコンパイルしてみます((platex でもよいですが、テストをするときには日本語に依存しないものの方が何か起こったときに問題の切り分けがしやすいでしょう。))。
-[[フォント出力のテスト>TeX/Font/FontTest]]

 \documentclass[a4paper,12pt]{article}
 \usepackage{minion}
 \title{Minion}
 
 \begin{document}
 %%%%% TEXT START %%%%%
 \maketitle
 
 Minion
 \begin{quote}
  ABCDEFGHIJKLMNOPQRSTUVWXYZ\\
  0123456789\\
  ffi ffl\\
  \textit{abcdefg}\\
  \textbf{abcdefg}\\
  \textsc{0123456789}
 \end{quote}
 
 %%%%% TEXT END %%%%%
 \end{document}
を参考にテストしてみてください。

リガチャが適切に処理されているかどうか(ffi, ffl)、イタリック体・ボールド体が出力されているかどうか、スモールキャップ体の場合の数字がオールドスタイルになっているかどうか、などを確認してください。


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