2007-01-18

AUCTeX の preview-latex で本文がプレビュー画像に隠れない不具合

AUCTeX 11.83 以降の preview-latex 機能を使っていると、スクリーン・ショットのやうに「プレビュー画像」に隠されるべき \section{テスト} 命令が画像の横に表示されてしまう (赤線で囲った所) 不具合に遭遇することがある。

Preview-LaTeX

この TeX ソースは本来、かういふテキストだった。

\documentclass{jarticle}

\begin{document}
\section{test1}
\section{テスト}
\end{document}

スクリーン・ショットを見て分かる通り、\section 命令の引数が英数字の場合、この問題は現れない。あくまで、引数が日本語の場合にだけ起こる問題となっている。

原因と解決方法

これは、TeX の coding-system (文字コード) が正しく設定されていないのが原因。最近の OS は Unicode 化が進んでいるけれど、TeX はまだ EUC (or SJIS) ベースのシステムなので、その喰い違いが出てしまった。

Unix ユーザーなら次のコードを、

(setq TeX-japanese-process-input-coding-system 'euc-jp
      TeX-japanese-process-output-coding-system 'euc-jp)

Windows ユーザーなら次のコードを

(setq TeX-japanese-process-input-coding-system 'shift_jis
      TeX-japanese-process-output-coding-system 'shift_jis)

.emacs ファイルに追加すると、上記問題は解決する。

6 comments:

  1. 初めてコメントします.
    AUCTeX 11.84 で preview-latex を使うと,\documentclass{jarticle} を指定している場合に \C-c \C-p \C-d でプレビューできないようです.内部で platex ではなく latex を読んでいるので,
    jarticle.cls not found
    が原因と思われるのですが.

    tex-jp.el は,こちらで配布されているバグフィックス版を使用してます.

    ReplyDelete
  2. kasai さん、はじめまして。
    実は現在、ネット環境がありませんで、コメントの返事が滞っている状況です。申し訳ありません。

    もしお急ぎでしたら、AUCTeX の ML に直接連絡なさるか、奥村先生の TeX QA 掲示板に報告されると返事があるかもしれません。

    ReplyDelete
  3. TeX-parse-self の値はどうなっているでしょうか。もし nil なら t にしてみて試してください。私の所では、TeX-parse-self を t にカスタマイズしてあれば、LaTeX-command-style による自動判別が働いて、ちゃんと platex を呼んでくれるようになり、日本語文書に対しても問題なく preview-latex が動作します。一方、TeX-parse-self を nil (特にカスタマイズしなければこの値)にしてみると、日本語文書(jarticle 使用)では確かに

    ! LaTeX Error: File `jarticle.cls' not found.

    になります。

    ※ たぶん、TeX-parse-self はファイルの「読み込み時」の動作に関わる設定なので、すでに読み込み終わったバッファ内で値を変更しても、そのバッファに対しては効果が出ない可能性が高いです。値を変更した後別のファイルを開いてそちらで preview-latex を試すか、あるいは .emacs で (setq TeX-parse-self t) などと書いて emacs を立ち上げ直すなどしてみてください。

    ReplyDelete
  4. 伊汲さん、コメントありがとうございます。TeX-parse-self が nil の場合のことは、思い付きませんでした。確かに、その可能性はありますね。

    ※既にファイル読み込みを終えた後に、TeX-parse-self の値を変更した場合は、C-c C-n するとパースし直してくれます。

    ReplyDelete
  5. こんにちは、安宅さん。kasai さんはもうご覧になってないかな?

    > ※既にファイル読み込みを終えた後に、TeX-> parse-self の値を変更した場合は、C-c
    > C-n するとパースし直してくれます。

    これなんですけど、C-c C-n をすると、勝手に auto サブディレクトリが作られてしまうので、私は使わないようにしています。(TeX-auto-save は nil のまま使っているのです。あちこちに auto サブディレクトリができてしまうのは見苦しいな、というのが私の感覚なので)

    「TeX-auto-save が nil なのに、C-c C-n すると auto サブディレクトリが作られてしまう」というのは、これまでは何となくそういうもの(仕様)かと思っていたのですが、もしかしたらバグ?

    ReplyDelete
  6. > kasai さんはもうご覧になってないかな?

    kasai さん、もしご覧になっているなら、問題が解決したかどうかを書き込んでくれると、助かります。

    > C-c C-n をすると、勝手に auto サブディレクトリが作られてしまう...「TeX-auto-save が nil なのに、C-c C-n すると auto サブディレクトリが作られてしまう」

    ありゃ。そんな風になっていましたか。うーん、バグかもしれませんねぇ。

    現在、新しい Mac に手を出したばかりで、TeX どころか Emacs すら、環境構築できていません。ちょっとレスポンスが悪くなります。ご容赦を。

    ReplyDelete