読者です 読者をやめる 読者になる 読者になる

頼りないニモニック

はっきりいって個人の日記レベル

Ubuntu13.04でpLaTeX+dvipdfmxからIPAexフォントを埋め込んだPDFを作成する

LaTeX Linux

以前、Ubuntu 12.04 LTS で表題の件を記述しましたが その後インストールの仕組みからディレクトリの構成など変更がかなりありました。備忘録としてここに記述しておきます。

やること

Ubuntu 13.04 (Raring Ringtail) においてplatexコマンド、dvipdfmxコマンドを用いてIPAexフォントを埋め込んだPDFを作成します。無論、Linux Mint 15 (Olivia) でも同様の手順でインストールできるはずです。

ここでは目標の PDF を作成する手順のみ記述し、Texmaker (筆者が愛用) などの GUI 環境については言及しません。

パッケージインストール

$ sudo apt-get install texlive texlive-lang-cjk otf-ipaexfont

IPAexフォントの認識

$ sudo mkdir -p /usr/share/texlive/texmf/fonts/truetype/
$ cd /usr/share/texlive/texmf/fonts/truetype/
$ sudo ln -s /usr/share/fonts/opentype/ipaexfont-gothic/ipaexg.ttf 
$ sudo ln -s /usr/share/fonts/opentype/ipaexfont-mincho/ipaexm.ttf 
$ sudo mktexlsr

mapファイルの用意

以下のファイルを、どこでも良いので用意しておきます。例では ipaex.map として作成します。

rml-jis H ipaexm.ttf
gbm-jis H ipaexg.ttf

rml H :0:ipaexm.ttf
gbm H :0:ipaexg.ttf
rmlv V :0:ipaexm.ttf
gbmv V :0:ipaexg.ttf

otf-ujmr-h    UniJIS-UTF16-H  ipaexm.ttf
otf-ujmr-v    UniJIS-UTF16-V  ipaexm.ttf
otf-cjmr-h    Identity-H      ipaexm.ttf/AJ16
otf-cjmr-v    Identity-V      ipaexm.ttf/AJ16
hminr-h       H               ipaexm.ttf
hminr-v       V               ipaexm.ttf
otf-ujgr-h    UniJIS-UTF16-H  ipaexg.ttf
otf-ujgr-v    UniJIS-UTF16-V  ipaexg.ttf
otf-cjgr-h    Identity-H      ipaexg.ttf/AJ16
otf-cjgr-v    Identity-V      ipaexg.ttf/AJ16
hgothr-h      H               ipaexg.ttf
hgothr-v      V               ipaexg.ttf

unijmin-h       UniJIS-UTF16-H  ipaexm.ttf
unijmin-v       UniJIS-UTF16-V  ipaexm.ttf
unijgoth-h      UniJIS-UTF16-H  ipaexg.ttf
unijgoth-v      UniJIS-UTF16-V  ipaexg.ttf

cidmin-h        Identity-H      ipaexm.ttf/AJ16
cidmin-v        Identity-V      ipaexm.ttf/AJ16
cidgoth-h       Identity-H      ipaexg.ttf/AJ16
cidgoth-v       Identity-V      ipaexg.ttf/AJ16

実行

あとは実行するだけです。dvipdfmx では作成した map ファイルを指定してください。

platex test.tex
dvipdfmx -f ipaex.map test.dvi

余談

以前、platex は EUC にしか対応していなかったため、わざわざ nkf を使って UTF-8EUC-JP に変換していました。最近のパッケージに同梱されている platex はめでたく UTF-8 に対応したようで、変換が不要になりました。

$ platex -version
e-pTeX 3.1415926-p3.3-110825-2.4 (utf8.euc) (TeX Live 2012/Debian)
kpathsea version 6.1.0
ptexenc 1.3.0
Copyright 2012 D.E. Knuth.
There is NO warranty.  Redistribution of this software is
covered by the terms of both the e-pTeX copyright and
the Lesser GNU General Public License.
For more information about these matters, see the file
named COPYING and the e-pTeX source.
Primary author of e-pTeX: D.E. Knuth.

ただし、機種依存文字(例えば はしご高(髙)) は相変わらずそのまま埋め込んではくれません。この場合は前に記述した LaTeXで otf.sty を使いつつUTF-8でファイルを編集する で対処する必要があります。

余談 (その2)

奥村先生による jsarticle などの新ドキュメントクラスは okumura-clsfiles パッケージにて提供されていました。Ubuntu 12.10 より、okumura-clsfiles は仮想パッケージとなり、実体は texlive-lang-cjk パッケージに統合されました。以上のインストール手順で暗黙的にこれを利用できるようになっています。

また、otf.sty も自動的に導入されるようで、上記リンク先にある otf.sty のインストール作業は不要となりました。機種依存文字を使用したPDFの作成で、実質的に必要なのは utf8toutf のコンパイルのみとなりました。

utf8toutf は UTF-8 から EUC-JP (または SHIFT-JIS) に変換する作用も含まれていますが、最新の platex では元の tex ファイルとクラスファイルとで UTF-8EUC-JP が混在していても問題が無いようです(詳しくは未検証)。utf8toutf で得た中間ファイルを別途編集することがなければ、エンコードの変換も不必要と思われます。