[[TeX/Font]]

*OpenType フォントの利用 [#d57e36d5]

以下では欧文用 OpenType フォントの利用法について解説します。想定するのは、''.otf'' ファイルから ''.pfb'', ''.tfm'', ''.fd'', ''.enc'', ''.map'' ファイルを生成し、必要に応じて ''.sty'' ファイルを作成する方法です。つまり OpenType フォントから Type 1 フォントを生成してそれを使います。
以下では欧文用 OpenType フォントの利用法について解説します。想定するのは、''.otf'' ファイルと、TeX 側で使うエンコーディングを記述したファイル(''.enc'')から ''.pfb'', ''.tfm'', ''.enc''(''.otf'' フォント側の), ''.map'' ファイルを生成し、''.fd'' を作成してインストールし、必要に応じて ''.sty'' ファイルを作成・インストールする方法です。つまり OpenType フォントから Type 1 フォントを生成してそれを使います。

以下の例では Adobe 社の販売している Minion-Pro フォントを用います。
**OpenType フォントメーカ [#c7c26c6d]

*準備 [#ic79b7dc]
-[[Adobe:http://www.adobe.com/jp/]]
--[[OpenType Font Guide:http://www.adobe.com/type/browser/pdfs/OTGuide.pdf]]

次のツールが必要です。
上にあるメニューバーから、[アドビストア] -> [フォント] を選択すると、Adobe Type Showroom にアクセスできます。

-LCDF Typetools
-otftofd
-[[Garamond Premier Pro:http://store3.adobe.com/type/browser/pdfs/1737.pdf]]

以下でインストール方法を説明します。
**作業例 [#s6627673]

**LCDF Typetools [#s0efe72d]
-[[Adobe Caslon>TeX/Font/OpenType/AdobeCaslon]]
-[[Adobe Garamond Pro>TeX/Font/OpenType/AdobeGaramond]]
-[[Adobe Minion>TeX/Font/OpenType/AdobeMinion]]

***ダウンロード [#jb507441]
**準備 [#ic79b7dc]

-http://www.lcdf.org/type/
次のツールが必要です。それぞれのページでインストール方法を説明してあります。

***インストール [#j002c3a1]
-[[LCDF Typetools>TeX/Font/OpenType/LCDFTypeTools]]
-[[otftofd>TeX/Font/OpenType/OtfToFd]] (手作業で作成しても大したことはないので、必ずしもインストールする必要はありません)

 $ tar xvzf lcdf-typetools-2.45.tar.gz
 $ cd lcdf-typetools-2.45
 $ ./configure
**.fd ファイルの入手 [#z15d9360]

kpathsea に関するエラーが出るときは、指示にしたがって PREFIX を指定するか、--without-kpathsea オプションをつけて無効化します。
''.fd''(Font Definition)ファイルは、フォントファミリなどとフォントに関するファイルとの対応関係を記述したファイルです。Type 1 用の ''.fd'' ファイルが用意されていることがあるので、探してみるとよいでしょう。''.fd'' ファイルのファイル名は

 $ ./configure --without-kpathsea
 $ make
 # make install
-(エンコーディング)+(フォントファミリ名).fd

これで次のようなコマンドが使えるようになります。
になっています。例えば T1 エンコーディングの Adobe Minion フォントの場合は ''t1pmn.fd'' となります。フォントファミリ名は Berry 則にもとづいて決まります。[[フォント名>TeX/Font/FontName]] を参照してください。

-otfinfo
-otftotfm
**LCDF Typetools の実行 [#de74e75b]

**otftofd [#xfaf4676]
LCDF Typetools を使って ''.pfb'', ''.tfm'', ''.enc'', ''.map'' ファイルを生成します。

otftofd は、''.otf'' ファイルから ''.fd'' ファイルを生成するユーティリティです。
***フォント名、ファイル名の決定 [#l0e669e5]

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

-${[[CTAN>TeX/Keyword/CTAN]]}/fonts/utilities/otftofd.zip
ファイル名の決定については [[フォント名>TeX/Font/FontName]] をご覧ください。Adobe Minion の場合は ''pmn'' で始まります。そのあとにシェイプやエンコーディングなどを表す文字や数字を続けます。

***インストール [#t7b4069b]
**.enc のコピー&aname(enc); [#g0dabf32]

otftofd.zip を次のように解凍すればすぐに使えます(特にインストール作業は必要ありません)。
次に、どのエンコーディングを用いるか決定しなければなりません。LCDF Typetools が推奨する OpenType フォント用のエンコーディングは LY1 ですが、一般にはあまり使われていないでしょう。[[Type 1 フォント>TeX/Font/Type1]] を自分でインストールしていれば、それと同じ T1 エンコーディングにすると都合がよさそうです。なお、OT1 エンコーディングなど、他のエンコーディングも使えるはずですので、試してみるのもよいでしょう。

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

頻繁に使うようならば次のようにインストールしてもよいでしょう。
|~エンコーディング|~.enc ファイル|
|~T1|cork.enc|
|~LY1|texnansx.enc|

 # cp otftofd /usr/local/bin
OT1 エンコーディングの場合は LCDF Typetools の導入ディレクトリ(例えば /usr/local/share/lcdf-typetools/ など)にある ''7t.enc'' を用います。

*フォントの用意 [#yb4d7a17]
CTAN にも用意されています。

次のフォントを作業用ディレクトリにコピーします。
|~エンコーディング|~.enc ファイル|
|~T1|${CTAN}/fonts/utilities/fontools/share/t1.enc|
|~TS1|${CTAN}/fonts/utilities/fontools/share/ts1.enc|
|~LY1|${CTAN}/fonts/utilities/fontools/share/ly1.enc|

-MinionPro-Bold.otf
-MinionPro-BoldIt.otf
-MinionPro-It.otf
-MinionPro-Regular.otf
-MinionPro-Semibold.otf
-MinionPro-SemiboldIt.otf
-MinionStd-Black.otf
**.map ファイルの作成 [#la1d3edd]

それぞれのフォントの情報を見るには次のようにします。
''otftotfm'' はファイルを生成するときに ''.map'' ファイルに書き込む内容を表示するので、空の ''.map'' ファイルを作っておき、それを順次書き込んでいくことにします。''.map'' の名前はフォントファミリ名にしておくとよいでしょう。次は Adobe Minion の場合です。

 $ otfinfo -f MinionPro-Regular.otf
 $ touch pmn.map

*ot1pmn.fd ファイルの入手 [#lfe28371]
**otftotfm [#ic24d075]

これ以降の作業方針の目安とするため、''ot1pmn.fd'' ファイルを入手します。
''otftotfm'' を実行して ''.tfm'', ''.vf'', ''.enc'' ファイルを生成し、同時に ''.map'' ファイルに書き込んでいきましょう。

''ot1pmn.fd'' は [[CTAN>TeX/Keyword/CTAN]] にありますが、サーバによってはない場合もありますので、適当に探してみてください。例えば次のような場所にありました。
***オプション [#y84cd34b]

-http://www.botik.ru/~znamensk/CTAN/fonts/metrics/adobe/minion/tex/
''otftotfm'' はオプションが非常に豊富です。代表的なオプションは次の通りです。

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

''.tfm'' ファイルを生成します。
今扱っている OpenType フォントでどのオプションが使えるかを確認するためには、次のコマンドを実行します。

**7t.enc のコピー [#c73dc26e]
 $ otfinfo -f MinionPro-Regular.otf

まず、TeX の基本的なエンコーディングである OT1 用の ''.enc'' ファイルを作業用ディレクトリにコピーします。
詳しくは次のヘルプを参考にしてください。

 $ cp /usr/local/share/lcdf-typetools/7t.enc ./
-http://www.lcdf.org/~eddietwo/type/otftotfm.1.html
-http://www.lcdf.org/~eddietwo/type/otfinfo.1.html

LCDF Typetools をインストールした場所に応じて読みかえてください。
***コマンドの実行 [#a269f959]

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

''.map'' ファイルに書き込みながら ''.tfm'' ファイルを生成するので、空の ''.map'' ファイルを作っておきます。
コマンドの例は次のようになります。

 $ touch pmn.map
 $ otftotfm -e cork.enc -fkern -fliga -fsmcp -fonum -n pmnrc8tj MinionPro-Regular.otf >>pmn.map

**tfm ファイルの生成 [#zc534084]
この例では、カーニング、リガチャ、スモールキャップ、オールドスタイルが有効になっています。''pmnrc8tj'' の部分は Berry 則にもとづいて決定しましょう。

せっかくなのでリガチャを有効にして ''.tfm'' ファイルを生成しましょう。
実行の際にエラーが出ることがありますが、大抵の場合は無視して大丈夫です。

 $ otftotfm -n pmnr7t -f kern -f liga -e 7t.enc MinionPro-Regular.otf >>pmn.map
 $ otftotfm -n pmnrc7t -f kern -f liga -e 7t.enc -f smcp MinionPro-Regular.otf >>pmn.map
 $ otftotfm -n pmnri7t -f kern -f liga -e 7t.enc MinionPro-It.otf >>pmn.map
 $ otftotfm -n pmnb7t -f kern -f liga -e 7t.enc MinionPro-Bold.otf >>pmn.map
 $ otftotfm -n pmnbc7t -f kern -f liga -e 7t.enc -f smcp MinionPro-Bold.otf >>pmn.map
 $ otftotfm -n pmnbi7t -f kern -f liga -e 7t.enc MinionPro-BoldIt.otf >>pmn.map
 $ otftotfm -n pmns7t -f kern -f liga -e 7t.enc MinionPro-Semibold.otf >>pmn.map 
 $ otftotfm -n pmnsc7t -f kern -f liga -e 7t.enc -f smcp MinionPro-Semibold.otf >>pmn.map
 $ otftotfm -n pmnsi7t -f kern -f liga -e 7t.enc MinionPro-SemiboldIt.otf >>pmn.map
 $ otftotfm -n pmnc7t -f kern -f liga -e 7t.enc MinionStd-Black.otf >>pmn.map
**.map ファイル [#wd3cc9a5]

*.map ファイル [#g56d5e9c]
***確認 [#j1280fbc]

**確認 [#gedc8444]

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

 I had to ...

**コピー [#n6a167e7]
***修正 [#d117f458]

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

 # mkdir -p /usr/local/teTeX/share/texmf-local/fonts/map/dvips/adobe/minion
 # cp 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/ の部分は自分のシステムに合わせて読みかえてください。
''0.167 SlantFont'' は ''ReEncodeFont'' の後にきて、次のようにならなければなりませんので、修正しましょう。

**設定 [#c4b04124]
 pmnro8t--base MinionPro-Regular " AutoEnc_xxx ReEncodeFont 0.167 SlantFont " ...

TeX から使えるようにします。
次のようにすると一括して変換できます。

 # mktexlsr
 # updmap-sys --enable Map=pmn.map
 cp pmn.map pmn.map.bak
 sed 's/0.167 SlantFont\(.*ReEncodeFont\)/\1 0.167 SlantFont/' pmn.map.bak >pmn.map

*フォントテーブルの作成 [#j8ab10e4]
**.fd ファイル [#q516e304]

うまく使えるかどうか、フォントテーブルを作成して確認します。作業用ディレクトリで次のコマンドを実行します。
入手した ''.fd'' ファイルに修正が必要ならば修正します。上の例のように ''pmnj'' というフォントファミリを作成した場合は ''t1pmn.fd'' をコピーして ''t1pmnj.fd'' を作成しておきます。

 $ tex testfont
 Name of the font to test = pmnr7t
 *\table
 *\end
**.sty ファイル [#f41e5898]

''testfont.dvi'' というファイルができているので、xdvi などで見るか、dvipdfmx で PDF にします。
必要ならば ''.sty'' ファイルも作成しておきます。

 $ dvipdfmx testfont.dvi
**ファイルのコピー [#o4e2b7b8]

フォントテーブルの作成については [[フォントテーブル>TeX/Font/FontTable]] も参考にしてください。
ファイルを適切な場所にコピーして、次のコマンドを実行します。

*ファイルのコピー [#b95a43e2]

次のファイルをコピーします。かっこ内は ptetex3 の場合のインストールディレクトリです。

-''.pfb'' (/usr/local/teTeX/share/texmf-local/fonts/type1/adobe/minion/)
-''.tfm'' (/usr/local/teTeX/share/texmf-local/fonts/tfm/adobe/minion/)
-''.enc'' (/usr/local/teTeX/share/texmf-local/fonts/enc/dvips/adobe/minion/)

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

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

で配布されていますので、これを使うのが便利でしょう。次のディレクトリにコピーしておきます。

-/usr/local/teTeX/share/texmf-local/tex/latex/adobe/minion/

コピーしたら忘れずに

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

を実行しておきます。
**テスト [#b9b599ab]

*テスト [#yce19545]
-[[フォント出力のテスト>TeX/Font/FontTest]]

次のようなファイルを作って ''latex'' でコンパイルしてみます((platex でもよいですが、テストをするときには日本語に依存しないものの方が何か起こったときに問題の切り分けがしやすいでしょう。))。
を参考にテストしてみてください。

 \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)、イタリック体・ボールド体が出力されているかどうか、スモールキャップスの場合の数字がオールドスタイルになっているかどうか、などを確認してください。

*参考 [#r771dd99]

-http://www.tug.org/pipermail/macostex-archives/2004-July/007054.html
-http://www.tug.org/pipermail/macostex-archives/2004-July/007081.html
-http://www.tug.org/pipermail/macostex-archives/2006-May/022320.html
-http://tug.ctan.org/tex-archive/fonts/utilities/otftofd/ (otftofd/README と同じです)
-http://www.tug.org/pipermail/fontinst/2003/001242.html
-http://www.tug.org/pipermail/fontinst/2003/001243.html

**日本語用フォント [#m97aa958]

-http://oku.edu.mie-u.ac.jp/~okumura/texfaq/qa/36255.html
-http://oku.edu.mie-u.ac.jp/~okumura/texfaq/qa/36263.html
-http://oku.edu.mie-u.ac.jp/~okumura/texfaq/qa/41280.html


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