ptexlive with e-pTeX on Snow Leopard

MacBook Pro を手に入れ,ptexlive, e-pTeX をインストールした。epTeX-100420 は ptexlive に対応するとともに,ptexlive の懸案であった Babel 対応を付加してくれた。インストールは基本的に添付の文書: ptexlive の README,e-pTeX の INSTALL.txt を参照すればよいけれども,Mac OS X 10.6.3 Snow Leopard にインストールするに当たって,私がハマった点を中心にメモしておく。

ptexlive の 大前提 TeX Live 2009-20091107 の xz アーカイブから iso イメージを取り出す方法は,ptexlive 開発者・土村さんが ptexlive Wiki において懇切丁寧に書いてくださっている。Mac OS X での iso イメージのマウントは hdiutil mount texlive2009-20091107.iso とすればよい。どのデバイスにどのようなパスでマウントされたかが返される。このパスの install-tl を管理者権限で実行して,TeX Live を導入する。このパスは,あとで ptexlive の導入設定 ptexlive.cfgISO_DIR 変数に指定しておく。

ptexlive Wiki から ptexlive-20100322.tar.gz を,e-pTeX Wiki から eptex-100420.tar.bz2ptex-qtrip-100402.11.tar.gz を,ダウンロードし,同じ作業ディレクトリに格納し,ptex-qtrip- 以外をその場所で展開する。

私の場合,ptexlive 前提の nkf や libpng・zlib ライブラリ等を MacPorts でインストールした。Ports ではヘッダ,ライブラリ等が /opt/local 配下にインストールされるので,ptexlive.cfg においてライブラリ,ヘッダの場所を,次のように追加しておく必要があった。

CPPFLAGS="-I/opt/local/include -I/usr/local/include"
LDFLAGS="-L/opt/local/lib -L/usr/local/lib"
LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/local/lib:/opt/local/lib
export CPPFLAGS LDFLAGS LD_LIBRARY_PATH

いちばんハマったのが,autoconf,automake,m4 のバージョンである。それぞれ 2.63 以上,1.11 以上,1.4.4 以上であることを --version オプションで確認し,それ未満ならアップデートしておく。ここは普段軽く扱ってしまうところだけど,e-pTeX の開発者・北川さんがきちんと書いてくれているとおりにしないと,eptex のコンパイルがすっとばされてしまうので注意。

もうひとつ Snow Leopard への導入で大事なのは,プレインストールされている sed ではなく,GNU sed を追加インストールして,こちらを使うこと。そうでないと,e-pTeX の configure スクリプトのパッチがうまく当たらず,エラー終了してしまう。

これらの点で引っ掛かったけれども,そのあとは手順どおり以下を実行すれば完了した。

$ cd ptexlive-20100322
$ make stage2
$ cd ../eptex-100420
$ ./0eptex.sh
$ ./6babel.sh
$ cd ../ptexlive-20100322
$ make fonty test
$ sudo make install distclean
$ hdutil eject /dev/diskX 
→ TeX Live iso イメージのデマウント。X はマウント時に表示された番号。

このタイミングで実行パスを ptexlive, texlive のバイナリディレクトリに通しておく。

最後に ptexlive 旧版で構築したローカルツリー(texmf-local)のバックアップがあれば,これを新 ptexlive に展開し,そこにあるフォントマップを改めて登録しておく。

$ su -m
# cd /usr/local/texlive
# tar zxvf $where/texmf-local-back.tar.gz
# mktexlsr
# cd texmf-local/fonts/map/dvips
# for i in `find . -name "*.map" | xargs basename`
> do updmap-sys --nomkmap --enable Map=$i; done
# updmap-sys

最近の ptexlive では,texmf-local よりも配布ツリーが優先的に参照されるようになった。あるマクロの最新版を texmf-local ツリーに入れ,その旧版を配布ツリーに残したままにすると,予期しないトラブルに見舞われるので注意。

fmtutil-sys --byfmt eplatex などとして,UTF-8 ハイフネーションパターンもきちんとロードされるようになった(出力フォントが Unicode でもない TeX ハイフネーションパターンで UTF-8 にこだわるコントリビュータの考え方が,いまひとつ私には理解できていません。なんでもかんでも Unicode じゃないとダメという最近の風潮は Linux の悪い影響だと思う)。Babel ヘブライ語など,かつての ptexlive では処理できなかった右左書字方向言語も処理できるようになった。あとは upTeX が ptexlive に追従してくれるのを期待したい。