名前: munepi 日時: 2009-03-12 01:31:37 IPアドレス: 121.3.40.*
>>52914 # もういろんな方が回答されていますが、私も少し便乗致します。 > 当然エラーメッセージ中に出てくる日本語は文字化けして読めません。 > (Emacs+YaTeXを使っています)。 たぶん以下の二つのさえ決めてしまえば、終わる気が致します。 (setq YaTeX-kanji-code 4 ; 1: SJIS, 2: JIS, 3: EUC, 4: UTF-8 YaTeX-latex-message-code 'utf-8 ; 文字化けしないようにする ) 後者の YaTeX-latex-message-code の文字コードは、 *YaTeX-typesetting* バッファの文字コードですので、 Emacs のデフォルトのロケールにすれば良いと思います。 さて、前者の YaTeX-kanji-code ですが、 ロケールに合わせて 4 (utf8) のまま編集作業をされたいのでしたら、 こんな簡単な wrapper はいかがでしょうか? さっき以下のようなスクリプトをでっち上げてみました。 ----- ここから #!/bin/bash # -*- coding: utf-8-unix -*- DEFAULT_KANJICODE="utf8" __platex=/usr/bin/platex __nkf=/usr/bin/nkf __cp=/bin/cp __mv=/bin/mv Usage() { cat<<EOF $($__platex --help) This script allows the following options: -kanji=STRING set Japanese encoding (STRING=euc|jis|sjis|utf8) EOF } if [ $# -eq 0 ]; then $__platex exit fi while [ $# -gt 0 ]; do case "$1" in -kanji=*) KANJICODE="$1" ;; -*) PLATEXOPTS="${PLATEXOPTS} $1" ;; *) JOBNAME=$1 ;; esac shift done KANJICODE=$(echo $KANJICODE | sed s/-kanji=//) [ -z $KANJICODE ] && KANJICODE=$DEFAULT_KANJICODE [ -z $JOBNAME ] && Usage && exit JOBNAME=$(basename $JOBNAME .tex) TEXFILE=$JOBNAME.tex [ ! -f $TEXFILE ] && Usage && exit $__cp -a $JOBNAME.tex $JOBNAME.tex.nkftemp $__nkf --unix --$KANJICODE --overwrite $TEXFILE $__platex $PLATEXOPTS $JOBNAME $__cp -a $JOBNAME.tex.nkftemp $JOBNAME.tex exit ----- ここまで 上記スクリプトをパスの通ったディレクトリに platex として保存しておきます。 以下、ここでは元の platex と区別するために myplatex とします。 当方の環境は VineSeed で ロケールも platex も utf8 です。 このスクリプトで、Vine 上ですと、 $ myplatex -kanji=euc とすると、platex は utf8 がデフォルトなので、当然 dvi を開くと文字化けが再現できます。 # *YaTeX-typesetting* は文字化けしません。 上記スクリプトで$JOBNAME.texをリネームせずにそのままコンパイルさせてさせているのは、 xdvi-search に対応させるためです。 Debian lenny だと、platex の漢字コードが euc だそうなので、 DEFAULT_KANJICODE="euc" としたらうまくいくはずですが、試していないので分かりません。 # もっとも ptetex3 を自前でコンパイルされた方が、一番楽に解決すると思います。
この書き込みへの返事: