<次頁><前頁><最下行へ><目次> <ホーム>

8 OTFパッケージの使い方

(First wrote on 040715) ()

8.1 OTFパッケージとは

 OTFパッケージとは、OpenTypeフォントに含まれている文字をLaTeXで使えるようにしたパッケージで作者は斉藤修三郎氏です。

OpenTypeフォントとは

 OpenTypeフォントは、AdobeSystems社とMicrosoft社が共同で開発した次世代のフォントで、現在最も普及している AdobeのPostScript Type1フォントや Microsoft/Macintosh の TrueType フォントの統合版とも言えます。Macintosh や Windows を問わず機種依存性がない上、大幅に拡張された文字数や機能を持ちます。

国際的な文字コードUnicodeに基づいたフォント形式なので、欧文和文はもとより中国の漢字や韓国のハングルなども統一して扱えるのが強みです。

通常 ptexで使えるのは、JISX208仕様のフォントででJIS 第一水準(2965文字)、第2水準(3388文字)の計6353文字ですが、OpenType のフォントはJISX213仕様に準拠し、Std仕様はAdobe-Japan1-3で9354グリフ (文字形のこと。同じ文字でも書き方の違うものを含む) (ユニコードのある 8175文字を含む)、Pro仕様は、Adobe1-4 (グリフ数15444文字) とAdobe1-5 (グリフ数20317) です。これらのグリフは CID番号でエンコードしています。

日本語に限っていえば、最大2万文字を含み、JIS第3,4 水準文字(4344文字)、異体字の他さまざまな記号を含みます。

CID番号で表される文字の中には、ユニコードで表せない文字も含まれています。ユニコードは16進法、CID番号は10進法で記述されています。

 現時点(04年7月)で Adobe1-5 に完全対応しているのは有償の大日本スクリーン販売のヒラギノ6書体パック(\62,790)のみです。ちなみにMacOSXにはこれが標準で組み込まれています。Adobe1-4仕様で2書体フォント限定であればAdobe ホームページからフリーダウンロードできるフォントが使えます。これでもかなり強力と言えるでしょう。

AdobeJapan1−5の全文字一覧がここで見られます。また奥村晴彦著「LaTeX2e 美文書作成入門」改訂第3版の付録にも掲載してあります。CID番号9353迄がAdobe1-3、15443迄がAdobe1-4に対応します。

8.2 インストール法

 インストール法は、奥村晴彦著「LaTeX2e 美文書作成入門」改訂第3版第13章もしくはウエッブ上の奥村氏による解説が あり、また角藤版otf パッケージをインストールすれば、texmf/doc/misc/otf/ README.w32 に方法が書いてあるので、そこを見て下さい。以下はこうしたら動いたという一例です。設定パラメターが時々刻々微妙に変わっているようで、私は最初動かすのに苦労しました。今でもdvipdfm だけしか動いていません。同病の仲間がいるかも知れないと思い、後のメモ用に記録に残すことにしました。

1) 標準のLaTeXパッケージは、D:\usr\local 以下にインストールしてあるものとします。

 角藤氏のサイトより、ウィンドウズ用TeXパッケージの中から otf.tar.bz2 をダウンロードします。とりあえず D:\temp に格納したとします。

2) コマンドプロンプト窓で

>cd /D D:\usr\local

>texinst753 D:\temp

と打ち込めば、OTFパッケージが展開されます。その後で

texmf/doc/misc/otf/ README.w32

にある文書を読んでインストールを完成せよというのが、角藤氏の指示です。各種サンプルも親切にいろいろそろえてあるので、参照すべきところを知っていれば全部書いてあるのですが、慣れない人にはやや分かりにくい。私も試行錯誤でotfが動くようになってからはじめて、全て用意されてあったことに気づきました。以下の文章はその辺を少し詳しく書き下ろしたものと思ってください。

3) 次の最低4つのCMapファイルが必要です。

UniJIS-UTF16-H

UniJIS-UTF16-V

IDENTITY-H (あるいは、Adobe-Japan1-5, Adobe-Japan1-6)

IDENTITY-V (あるいは、Adobe-Japan1-5-V)

これらは、AdobeReader 6.0 をダウンロードすれば、

Program Files/Adobe/Acrobat6.0/Resource/CMap/

に入っているはずです(ここには他にもいろいろなmapが収納してあります)。あるいは、

ftp://ftp.oreilly.com/pub/examples/nutshell/cjkv/adobe/ 

から、 aj16.tar.Z をダウンロードしてきて展開したフォルダーの中に、あるはずです。Adobe-Japan1-5-V は OTFパッケージをインストールしたら texmf/doc/misc/otf/に入っています。

これらのCMapファイルを

texmf/fonts/cmap/

の中に収納します。

4) 以下は、PDFファイルにフォントを埋め込むときの作業です。埋め込まないときは、OTFフォントは不要であり、かつ次の cid-x.map の書き方が違います。

 埋め込まないときに何が起こるかというと、出力のPDFファイルにはフォント名と文字のコード(のみ?)が書き出されて、読む側が自前のフォントで置き換えて表示します。したがって読む側でフォントに対応できていれば問題ないのですが、OTFパッケージを使うのは多分通常は使わない珍しい文字の必要に迫られてですから、相手側の環境に依存せず読んでもらうためにはフォントを埋め込むほうが安全です。

ADOBEのホームページから、AdobeReader6.0用の日本語フォント alf_jpn.exe をダウンロードし実行すると以下のフォントが、Program Files/Adobe/Acrobat6.0/Resource/CIDFont/ に展開されます。

 KozMinPro-Regular-Acro.otf  (あるいはKozMinStd-Regular-Acro.otf)

 KozGoPro-Medium-acro.otf  (あるいはKozGoStd-Medium-acro.otf )

これらのフォントを texmf/fonts/ディレクトリーに opentype というサブディレクトリーを作って収納します(*注)。ProとStdの違いは前者がAdobe1-4準拠、後者が1-3準拠で対応字数に差があります。ここではProを使います。

*****************************

*注: ダウンロードはフリーですが、AdobeReaderで使うことを前提としているようです。埋め込んで配布するときは、多分個人用ならば問題ないでしょうが、一般に配布することには注意が必要です。

5) テキストエディターで、

texmf/fonts/map/dvipdfm/base/cid-x.map

を開き、次の文章を書き込みます。埋め込まないときの例が既に書いてある場合は書き換えます。

5.1) 小塚フォントを埋め込む場合 (フォントをtexmf/fonnts/opentype/以下に収納する必要あり)

 % tfm フォント名  CID(UTF)番号参照マップファイル  埋め込みフォントファイル名
 
 otf-ujmr-h  UniJIS-UTF16-H  KozMinPro-Regular-Acro.otf
 otf-ujmr-v  UniJIS-UTF16-V  KozMinPro-Regular-Acro.otf
 otf-cjmr-h  Identity-H  KozMinPro-Regular-Acro.otf
 otf-cjmr-v  Identity-V  KozMinPro-Regular-Acro.otf
 hminr-h  H  KozMinPro-Regular-Acro.otf
 hminr-v  V  KozMinPro-Regular-Acro.otf
  
 otf-ujgr-h  UniJIS-UTF16-H  KozGoPro-Medium-acro.otf
 otf-ujgr-v  UniJIS-UTF16-V  KozGoPro-Medium-acro.otf
 otf-cjgr-h  Identity-H  KozGoPro-Medium-acro.otf
 otf-cjgr-v  Identity-V  KozGoPro-Medium-acro.otf
 hgothr-h  H  KozGoPro-Medium-acro.otf
 hgothr-v  V  KozGoPro-Medium-acro.otf

第1列の otf-* はTeXの持つotf用のtfmフォントで、otfパッケージをインストールすれば、texfm/fonts/tfm/ptex/otf/ に収納されているはずものです。第2列は文字コードのマップで、第3列が埋め込み用のフォント名です。この第3列は、実際に埋め込みに使用するフォント名を指定します。ちなみにフォントを埋め込まないときは、第3列を一般的なフォント名(KozMinPro-Regular-Acro.otf の代わりにRyumin-Light、KozGoPro-Medium-acro.otf の代わりにGothicBBB-Medium )で置き換えます。

map の書き方は、cid-x.map の冒頭に書いてあります。

 なお、texmf/doc/misc/otf/には、使うフォントの種類に応じてcid-x.map に書き込むべきいくつかの例がファイルとして置いてあり、上記の例は、texmf/doc/misc/otf/kozukax.map の内容をそのまま写したものです。

 tfm フォント名  各文字の意味
 ujmr-h

 cjmr-h の意味

 u; ユニコード、 c; CIDコード
 j; 日本語、 c; 中国簡体字、 t; 中国繁体字、 k; 韓国ハングル文字
 m; 明朝、 g; ゴシック、 
 r; 細字(regular?)、 b; ボールド(太字) l; 細字(rとは異なる)
 h; 横書きフォント、 v; 縦書きフォント

5.2) MS True Type フォントを埋め込む場合

 Adobeの小塚フォントを埋め込む時は texmf/fonts/opentype に入れる必要がありましたが、MSのフォントはシステムに入っているので特にどこかに入れる必要はありません。

 注: .ttc は省略しても良いが、/AJ1無しでは動かない。

 % tfmフォント名  CID(UTF)番号参照マップファイル  埋め込むフォントファイル名
  
 otf-ujmr-h  UniJIS-UTF16-H  msmincho.ttc
 otf-ujmr-v  UniJIS-UTF16-V  msmincho.ttc
 otf-cjmr-h  Identity-H  msmincho.ttc/AJ1
 otf-cjmr-v  Identity-V  msmincho.ttc/AJ1
 hminr-h  H  msmincho.ttc
 hminr-v  V  msmincho.ttc
  
 otf-ujgr-h  UniJIS-UTF16-H  msgothic.ttc
 otf-ujgr-v  UniJIS-UTF16-V  msgothic.ttc
 otf-cjgr-h  Identity-H  msgothic.ttc/AJ1
 otf-cjgr-v  Identity-V  msgothic.ttc/AJ1
 hgothr-h  H  msgothic.ttc
 hgothr-v  V  msgothic.ttc
  

   以下の三つのMS TrueType フォントについてはテストしていません。

MSには太明朝がないので、以下のように代用する。

ただしこの場合埋め込まれない。

otf-ujmb-h UniJIS-UTF16-H msmincho,Bold
otf-ujmb-v UniJIS-UTF16-V msmincho,Bold
otf-cjmb-h Identity-H msmincho,Bold
otf-cjmb-v Identity-V msmincho,Bold
hminb-h H msmincho,Bold
hminb-v V msmincho,Bold
%
% HGRSGU は HG創英角ゴシック
%
otf-ujgb-h UniJIS-UTF16-H HGRSGU.TTC
otf-ujgb-v UniJIS-UTF16-V HGRSGU.TTC
otf-cjgb-h Identity-H HGRSGU.TTC
otf-cjgb-v Identity-V HGRSGU.TTC
hgothb-h H HGRSGU.TTC
hgothb-v V HGRSGU.TTC
%
% HGRSMP は HG丸ゴシック
%
otf-ujmgr-h UniJIS-UTF16-H HGRSMP.TTF
otf-ujmgr-v UniJIS-UTF16-V HGRSMP.TTF
otf-cjmgr-h Identity-H HGRSMP.TTF
otf-cjmgr-v Identity-V HGRSMP.TTF
hmgothr-h H HGRSMP.TTF
hmgothr-v V HGRSMP.TTF

6) コマンドプロンプト窓で

mktexlsr

を実行しデータベースを更新します。

8.3 中国語・韓国語を埋め込む方法

簡体字は中国シンガポール等で使われます。繁体字は正体字とも言い、台湾香港等で使われます。日本の旧漢字に相当します。3つの文字が同じであれば、同じユニコード番号が対応します。しかし、同じユニコードに対応しても日本字/簡体字/繁体字で微妙な字形の相違が存在する場合があります(いわゆる漢字統合問題)。斉藤氏の otf パッケージでは、multi オプションを使って、\UTF(・・)、\UTFC(・・)、\UTFT(・・)、\UTFK(・・)を使い分けることにより、別々に日本字/簡体字/繁体字/ハングル文字を区別します。

インストール法は前節の日本語フォントに対する設定と同じやり方です。

(a) ADOBEのホームページから、AdobeReader6.0用の中国語簡体字 (alf_chs.exe)、繁体字 (alf_cht.exe)、韓国語ハングル (alf_kor.exe)のフォントをダウンロードして実行すると、Program Files\Adobe\Acrobat6.0\Resource\CIDFont に次のフォントが展開されます。

 簡体字フォントファイル名: AdobeSongStd-Light-Acro.otf

 繁体字フォントファイル名: AdobeMingStd-Light-Acro.otf

 ハングルフォントファイル名: AdobeMyungjoStd-Medium-Acro.otf

使うフォントを texmf/fonts/ の下に opentype というサブディレクトリーを作って収納します。

(b) テキストエディターで、

texmf/fonts/map/dvipdfm/base/cid-x.map

を開き、次の文章を書き込みます。

%
% 繁体字
%
otf-utmr-h UniCNS-UTF16-H AdobeMingStd-Light-Acro.otf
otf-utmr-v UniCNS-UTF16-V AdobeMingStd-Light-Acro.otf
otf-utgr-h UniCNS-UTF16-H AdobeMingStd-Light-Acro.otf
otf-utgr-v UniCNS-UTF16-V AdobeMingStd-Light-Acro.otf
otf-ctmr-h Identity-H AdobeMingStd-Light-Acro.otf
otf-ctmr-v Identity-V AdobeMingStd-Light-Acro.otf
%
% 簡体字
%
otf-ucmr-h UniGB-UTF16-H AdobeSongStd-Light-Acro.otf
otf-ucmr-v UniGB-UTF16-V AdobeSongStd-Light-Acro.otf
otf-ucgr-h UniGB-UTF16-H AdobeSongStd-Light-Acro.otf
otf-ucgr-v UniGB-UTF16-V AdobeSongStd-Light-Acro.otf
otf-ccmr-h Identity-H AdobeSongStd-Light-Acro.otf
otf-ccmr-v Identity-V AdobeSongStd-Light-Acro.otf
%
% ハングル
%
otf-ukmr-h UniKS-UTF16-H AdobeMyungjoStd-Medium-Acro.otf
otf-ukmr-v UniKS-UTF16-V AdobeMyungjoStd-Medium-Acro.otf
otf-ukgr-h UniKS-UTF16-H AdobeMyungjoStd-Medium-Acro.otf
otf-ukgr-v UniKS-UTF16-V AdobeMyungjoStd-Medium-Acro.otf
otf-ckmr-h Identity-H AdobeMyungjoStd-Medium-Acro.otf
otf-ckmr-v Identity-V AdobeMyungjoStd-Medium-Acro.otf

8.4 OTFパッケージを使ってみる。

cid-x.map に上記小塚フォントの設定をして保存し、mktexlsr を実行したします。次に

usepackage[option, option2, ・・・]{otf} をpreambleで宣言します。

option の指定 (以下は斉藤氏のマニュアルをそのままコピーしたものです。全部はテストしていません)

[noreplace]  \UTF{・・・} などで指定したところ以外はデフォルトの明朝体 (mc/m)やゴシック体(gt/m) 付属のtfmパッケージで置き換える。このオプションを指定しないと全ての文字が otf フォントで統一される。他のオプションbold,expert,deluxe のいずれかが宣言されている時は無効

[bold] 太字で置き換える。deluxe が宣言されているときは無効。

[expert] 仮名が縦組み専用、横組み専用組方向にに切り替わり、ルビ用の仮名が使える。

 通常 \usepackage{furikana} を preamble で宣言して使います。furikana.sty は藤田真作氏のホームページから、ダウンロードし

texmf/ptex/platex/misc/otf/

に入れておきます。

[deluxe] 多ウェイト化。 明朝体、ゴシック体それぞれ2ウェイトが使用可能。つまり mc/m,mc/bx,gt/m,gt/bx,gt/bx/n に別々のフォントを割り当てることが可能となります。例えば

{\mgfamily ・・・・・・} を宣言すると丸ゴシックになります。このオプションを使うときは、 preamble に

\usepackage{redeffont} を宣言する必要があります。

[multi] 多国語使用オプションです。ユニコードは、中国語簡体字、繁体字、韓国ハングル文字にも対応していますが、これらは和文フォントには含まれません。これら中国語、韓国語を利用するときは、multi オプションを使い\UTFC,\UTFT,\UTFK で簡体字、繁体字、ハングルを指定します。

[nomacros]  マクロを読み込まない。

次のような otftest.texファイルを作り

\documentclass{jarticle}

%\usepackage{utf}
\usepackage[deluxe,multi]{otf}
\usepackage{redeffont}
\usepackage{amsmath,amssymb}

\begin{document}

{ }\\
森\UTF{9DD7}外と内田百\UTF{9592}が\UTF{9AD9}島屋に行った。\\
\CID{7652}飾北斎が\CID{13706}野屋で豚丼を喰った。\\
{ }\\
日本字 毛沢東 台湾 烏龍茶 電脳 「陳佳\UTF{6D31} 邱貨盛」\\
\UTFC{7b80}\UTFC{4F53}字 毛\UTFC{6CFD}\UTFC{4E1C} \UTFC{53F0}\UTFC{6E7E}\UTFC{9E1F}\UTFC{9F99}\UTFC{8336} \UTFC{7535}\UTFC{8111} 「\UTFC{9648}佳\UTFC{6D31} 邱\UTFC{534E}盛」 \\
%% 簡体\\

\UTFT{7E41}\UTFT{9AD4}字 毛\UTFT{6FA4}東 \UTFT{81FA}\UTFT{7063}
\UTFT{70CF}\UTFT{9F8D}\UTFT{8336} \UTFT{96FB}\UTFT{8133} \\
%% 繁体\\

ハングル \UTFK{d55c}\UTFK{ae00} \\ %%  韓国\\

****************************\\

{\gtfamily

森\UTF{9DD7}外と内田百\UTF{9592}が\UTF{9AD9}島屋に行った。\\
\CID{7652}飾北斎が\CID{13706}野屋で豚丼を喰った。\\
{ }\\
日本字 毛沢東 台湾 烏龍茶 電脳 「陳佳\UTF{6D31} 邱貨盛」\\
\UTFC{7b80}\UTFC{4F53}字 毛\UTFC{6CFD}\UTFC{4E1C} \UTFC{53F0}\UTFC{6E7E}\UTFC{9E1F}\UTFC{9F99}\UTFC{8336} \UTFC{7535}\UTFC{8111} 「\UTFC{9648}佳\UTFC{6D31} 邱\UTFC{534E}盛」 \\
%% 簡体\\

\UTFT{7E41}\UTFT{9AD4}字 毛\UTFT{6FA4}東 \UTFT{81FA}\UTFT{7063}
\UTFT{70CF}\UTFT{9F8D}\UTFT{8336} \UTFT{96FB}\UTFT{8133} \\
%% 繁体\\

ハングル \UTFK{d55c}\UTFK{ae00} \\ %%  韓国\\

}

%% AMSパッケージを用いて、二度打ちの太字を出力する。
「$\pmb{\text{\UTFC{9648}佳\UTFC{6D31} 邱\UTFC{534E}盛 }}$」\\

\end{document}

>platex otftest

>dvipdfmx otftest

>start otftest.pdf

を実行すると、次のような出力が得られます。「」が日本字のフォントになく、「脳」が繁体字のフォント中に無いこと、簡体字、繁体字、韓国字のゴシック体フォントが無いことを示しています。

8.5 雑 感

 (1) 私が、otf パッケージに興味を持ったのは、ある報告の中でさんずい偏に耳と書いて"じ"と読む文字「」を含む中国人名を入れる必要があったからです。ATOK13の文字一覧で検索したところ、JIS/SJIS番号が無くユニコード番号"6D31" のみを持っていたことが発端です。しかし、otf パッケージを使っても出力できませんでした。その後それは AdobeJapan1-4 になくAdobeJapan1-5 の中 (CID番号"16932") にあることを発見しました。Adobeからフリーダウンロードできる小塚フォントはAdobeJapan1-5に対応していなかったということです。
(2) システムにあるMS明朝を埋め込めば、出力できるのではないかと考えました。なぜなら Tex テキスト文には「」を書き込めるからです。でもやはり、dvipdfmx を通すと消えました。(3) そこで次にとった手段は中国簡体字表を眺めて、ユニコードを探すという方法でした。まず「3rdpageSearcj jp」へ飛んで、中国語簡体字の欄を表示し、次に欲しい簡体字の部首のあるところに飛んで、簡体字一覧表の中から探しました。部首が特定できていれば一覧表はそれほど大きくないから比較的簡単に探せます。こうして探した文字のユニコードを入れて出力したのが、上記の中国人氏名です。簡体字に関してはゴシック体がなかったのでAMSパッケージを使い二度打ちをするという姑息な手段で太字を出してみました。 Texユーザーにとってこのようなやり方は恥かしいですね。

8.6 関連リンク

文字コード入門  

ユニコードホームページ ユニコードの本家。

UTFFAQ ユニコードについて良くある質問

既存の日本語文字コードとユニコードの間のマッピングルール  

ウィンドウズ用ユニコードフォント集+ユニコード全般の解説 ユニコード対応の各国言語フォントの一覧と簡単な解説

ユニコード文字表

3rdpageSearcj jp」 はユニコード文字を探すのに便利なサイトです。

ユニコードの漢字(約2万字)を部首で引く 

繁体字 --> 簡体字 変換 繁体字を入力すると簡体字とそのユニコードが出力されます。また、ピンイン (発音のローマ字綴り) を知ることができます。 

ユニコード/CID変換

AdobeJapan1-6 Japan1-6 (1-3,1-4,1-5 をむ) CID番号付きの文字一覧です。

CID to Unicode Mapping

CID コードによるフォントとCMapの対応付け

外字の作りかた 

<次頁><前頁><節頭><目次> <ホーム>