Wednesday, March 09, 2011

platexで文字コードをUTF-8で使うための設定

Ubuntu 10.10 のpLaTeXは、EUCにしか対応していない。
一方で、Ubuntu側の日本語文字コードはUTF-8が標準になっているわけで、ちぐはぐなわけですよ。

まぁ僕の場合、TeXを書くのはYaTeX on Emacsに限るわけだし、Emacs上では文字コードは特に意識しなくてもいいので、これまではEUCで書いてやったtemplateファイルを.texファイル作成時に自動的に読み込んでやって、対処してた。

けれど、org-modeを使うようになって、latex出力させてやることになると、このままではまずいのだ。
だって、UTF-8で出力されてしまうから。

なので、web上を色々あさってみて、以下のようにしてみた。



1) 以下のスクリプトを作成 (~/bin/platex.sh)
---
#!/bin/sh

name=`echo $1 | sed 's/\.tex$//' | xargs basename`
temp=`mktemp /tmp/$name.XXXXXXXX`

nkf -e $1 > $temp
/usr/bin/platex $temp

rm $temp
---
実行許可しておく (% chmod +x platex.sh )


2) 次に、 .emacs.elに以下の行を追加。
(setq tex-command "/home/***/bin/platex.sh")

***はユーザー名。絶対パスで指定してやった方が無難かなと。


以上で、YaTeX上で、現在のUbuntuの標準文字コードであるところのUTF-8でTeXを書いても、問題なくコンパイルできるようになります。

ただしこの方法だと、文字コードをUTF-8からEUCに変換後のテンポラリファイルにTeXをかけていることになるので、仮にエラーが出た場合、当該行にジャンプするYaTeXの機能が使えません。
ちょっと不便。


となると、emacsの文字コードをEUCに固定してやった方が楽なのかな・・・。