ttk さんによる pTeX 内部 Unicode 対応版 upTeX/upLaTeX をやっとインストールした。upTeX/upLaTeX の概略は『Unicode 対応 pTeX』にしるしたとおりである。バージョンはできたてのほやほや uptex-0.10 である。ptetex3-20070125 旧システムと,私自身で構築した texmf-local とに上書きインストールした。いつからか ptetex3 インストーラは /usr/local/teTeX 配下を削除しない仕様になり,さらに面倒が減った。Mac OS X での導入備忘録をしるしておく。
- パッケージのダウンロード/展開
ttk さんのサイトから uptex-0.10.tar.gz と uptex フォントバイナリをダウンロードして $HOME/tmp/ptetex3 (インストールワークディレクトリ) に格納する。uptex-0.10.tar.gz はアーカイバで展開しておく。
必要に応じて cm-super.zip (V. Volovich による T1, T2 Type1 フォント集成),cbfonts.zip (ギリシア語 Type1 フォント集成),unicode.zip (LaTeX unicode 拡張パッケージ) も同じワークディレクトリにダウンロードしておく。私の場合,すでにこれらは texmf-local に存在しているので実行しなかった。以下の手順ではダウンロードを含めている。
土村さんの ptetex3-20070606.tar.gz,その前提となる tetex-src-3.0.tar.gz,tetex-texmf-3.0po.tar.gz も入手しておく。ptetex3-20070606.tar.gz のみ解凍しておく。残りのアーカイブはインストーラが自動的に展開してくれる。
% mkdir -p ~/tmp/ptetex3 % cd ~/tmp/ptetex3 % wget -nH -nd \ http://homepage3.nifty.com/ttk/comp/tex/uptex-0.10.tar.gz % wget -nH -nd \ http://homepage3.nifty.com/ttk/comp/tex/uptex_font-0.08.tar.gz % wget -nH -nd \ http://tutimura.ath.cx/~nob/tex/ptetex/ptetex3/ptetex3-20070606.tar.gz % wget -nH -nd \ ftp://ftp.ring.gr.jp/pub/text/CTAN/systems/unix/teTeX/current/distrib/\ tetex-src-3.0.tar.gz % wget -nH -nd \ ftp://ftp.ring.gr.jp/pub/text/CTAN/systems/unix/teTeX/current/distrib/\ tetex-texmf-3.0po.tar.gz % wget -nH -nd \ http://tug.ctan.org/fonts/ps-type1/cm-super.zip % wget -nH -nd \ http://tug.ctan.org/fonts/greek/cbfonts.zip % wget -nH -nd \ http://tug.ctan.org/macros/latex/contrib/unicode.zip % tar zxvf ptetex3-20070606.tar.gz % tar zxvf uptex-0.10.tar.gz
- upTeX パッチの移動
upTeX 提供のパッチを ptetex3 展開ディレクトリにコピーする。
% cp uptex-0.10/patch/* ptetex3-20070606/
- my_option 調整
ptetex3 のインストールオプション設定である my_option.sample を適宜修正して,ワークディレクトリ直下に my_option として格納する。私の場合はまったく修正する必要がなく,コピーするだけだった。
% cp ptetex3-20070606/my_option.sample my_option
- Ghostscript のパス修正
私のように Ghostscript を /usr/local/teTeX 以下に導入している場合,ptetex3 付属のインストールスクリプト 7font-search.sh の 109 行目を以下のように /usr/local/teTeX を参照するよう手直ししておく。
ghostscript /usr{,/local/teTeX,/sfw}/{share,lib}/ghostscript{,/*}/Resource/CMap
- .texmf-* のリネーム/環境変数のリセット
ホームディレクトリ下にある .texmf-* ディレクトリをリネームしておく。また TEXxxxx 等の環境変数はインストールする仮想端末においてリセットしておく。
% cd $HOME % mv .texmf-var texmf-var-old % mv .texmf-config texmf-config-old % unsetenv TEXDIR % unsetenv TEXMFLOCAL ...等々
- upTeX/upLaTeX のビルド
以下を順次実行する。
% cd ~/tmp/ptetex3/ptetex3-20070606 % ./0uptex.sh % make babel font fonty
make test が問題なさそうであれば,スーパーユーザ権限でインストールを実行する。
# make install
- upTeX/upLaTeX フォーマットファイル再生成
私の場合,折悪しくインストール時に参照される language.dat に関して texmf-local 下にある,latex 用に調整した 8 bit ハイフネーションパターン用ファイルが使われたため upTeX/upLaTeX のフォーマットファイルの生成に失敗してしまった。platex 用に 7 bit 化を施した language.dat に変更して,再度フォーマットを生成した。
% cd /var/tmp/ptetex3/tetex-src-3.0/texk/web2c/uptex % make formats % sudo cp *.fmt /usr/local/teTeX/texmf-var/web2c
- フォントマップの登録
旧システムで利用していたフォントマップを再登録する。これは私自身で texmf-local 下に追加したフォントパッケージについて実施した。
% source ~/.tcshrc (環境変数を再度設定するため) % find /usr/local/teTeX/share/texmf-local -name "*.map" |\ xargs basename > /tmp/maplist % emacs /tmp/maplist & (不要なものを適宜削除) % foreach i (`cat /tmp/maplist`) foreach? echo "*** map file: $i ***" foreach? updmap --nomkmap --nohash --enable Map=$i foreach? end ... %
次に,upTeX 用のフォントマップを登録しておく。~/tmp/ptetex3/uptex-0.10/font/map 下に dvipdfmx,dvips 用のサンプルが置かれている。これを別名にコピーして,内容をユーザ事情にあったフォント名に修正して,マップ登録を行う。これを実行しておかないと upTeX/upLaTeX の組版結果を閲覧できない。
% cd ~/tmp/ptetex3/uptex-0.10/font/map % cp for_dvipdfmx uptex-dvipdfmx.map % cp for_dvips uptex-dvips.map % emacs uptex-dvipdfmx.map & (適宜編集) % emacs uptex-dvips.map & (適宜編集) % su -m # mkdir -p $TEXDIR/fonts/map/dvips/uptex # cp *.map $TEXDIR/fonts/map/dvips/uptex # mktexlsr # updmap-sys --nomkmap --enable KanjiMap=uptex-dvipdfmx.map # updmap-sys --nomkmap --enable KanjiMap=uptex-dvips.map
さて,最後にフォントマップを実際に更新する。updmap.log でエラーが出ていないか確認しておく。
# updmap-sys
以上で ptetex3-upTeX 組込みは完了である。uptex-0.10/samples 下にサンプル文書が格納されている。make all としてタイプセットして確認してほしい。
upTeX/upLaTeX の追加フィーチャーについては私自身試行しつつ,今後話題にできればよいと思うが,基本的なものを以下に挙げておく。Unicode は主に記号類について和文,欧文どちらで取り扱うか決めかねる場合があり,upTeX では新しいプリミティブで制御できるようになっている。ttk さんの苦労が偲ばれる。
- \kcatcode プリミティブ
- Unicode 文字の欧文 (15) か和文・漢字 (18) かの取り扱いを指示する。\kcatcode`б=15 とするとキリル文字が欧文として扱われる。キリル文字はこれを指定しないと全角文字として処理されてしまい,ハイフネーションなど機能しないので注意。またある文字について \kcatcode をセットすると,同じ Unicode 文字ブロックに属する文字を別行で指定した場合 "Missing number" のエラーとなってしまう。よって,ロシア語ならばある一文字について指定しておくに留めるか,\disablecjktoken を活用する。ちなみに古典ギリシア語をタイプセットする場合は基本ギリシア文字と拡張ギリシア文字のふたつのエリアについて \kcatcode を指定する必要がある(\kcatcode`Ἄ=15\relax\kcatcode`ς=15\relax など)。
- \disablecjktoken プリミティブ
- この指定以降の Unicode トークンを欧文として扱う。
- \enablecjktoken プリミティブ
- この指定以降の Unicode トークンを漢字として扱う。
- 文書クラス
- ujarticle.cls,utarticle.cls が追加されている。UTF-8 で原稿を準備して upLaTeX で組む場合は \documentclass{ujarticle} とする。奥村先生の jsarticle.cls を使いたい場合はオプションに uplatex を指定する (\documentclass[uplatex]{jsarticle})。