FC2ブログ

つぶつぶなるままに

物理とかプログラミングとか

スポンサーサイト

上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。

AUCTeX のプレビューを platex + input 環境で動かす

CentOS + Emacs 環境において,AUCTeX のプレビュー機能(C-c C-p C-d)が上手く動かなかった。
エラーの詳細を見てみると、多分重要な情報は
Error: /invalidfileaccess in --file--
の部分。で、適当にぐぐったところ
ghostscript 9.05 fails with preview-latex and auctex
に gs のオプションで -dSAFER を -dNOSAFER にすればいいとか書いてあるので、そうすると上手く動いた。

さらに、分割コンパイル環境、つまり input (または include)で読み込まれる先のファイルを編集している場合にプレビューが上手くいかなかったので、これまた適当にぐぐったところ
AUCTeXのコンパイルとかインラインのプレビューをincludeしたファイルから無理やりやる方法
というページが見付かったのだが、私の環境ではそもそも言及されている auto/chap.elが見付からなかったりして、解決できなかった。C-c C-l の結果とにらめっこして色々検討した結果、 preview-LaTeX-command をいじれば上手く動くことが分かった。

さらにさらに、ここまでの設定で align 環境とかは問題なくプレビューできてるのだけど、本文中の数式とかの表示がちょっとおかしく、画像は表示されるのだがなぜか常に行頭にあり、しかもプレビューで置換されるはずの数式本文がそのまま表示されてしまっている。で、これも適当にぐぐったところ
AUCTeX の preview-latex で本文がプレビュー画像に隠れない不具合
というどんぴしゃなページを発見し、私の環境では euc ではなく UTF-8 だったのでそれに合わせて設定したところ、上手く動いた。

最終的に、
(custom-set-variables
'(TeX-japanese-process-input-coding-system (quote utf-8))
'(TeX-japanese-process-output-coding-system (quote utf-8))
'(preview-LaTeX-command (quote ("platex \"\\nonstopmode\\nofiles\\PassOptionsToPackage{" ("," . preview-required-option-list) "}{preview}\\AtBeginDocument{\\ifx\\ifPreview\\undefined" preview-default-preamble "\\fi}\"%' \"\\input\" %t")))
'(preview-gs-options (quote ("-q" "-dNOSAFER" "-dNOPAUSE" "-DNOPLATFONTS" "-dPrinted" "-dTextAlphaBits=4" "-dGraphicsAlphaBits=4"))))
を init.el に書けば platex + input 環境で AUCTeX のプレビューが上手く動くようになった。

なお、既存の custome-set-variables がある場合は、init.el に上記の設定を書き込むのではなく、emacs の GUI を利用して自動生成させる方がよい。

emacs の GUI を利用する場合は、AUCTeX をロードした状態で M-x customize-variable RET preview-gs-options から -dSAFER を -dNOSAFER に、さらに M-x customize-variable RET preview-LaTeX-command から、最初の行の %`%l を platex にして、最後の行の %t を "\input" %t に変更。
あとは同様に TeX-japanese-process-input-coding-system なども utf-8 などに変更。

基本的に init.el を編集するより GUI からやる方が結局は便利。ただ init.el が汚くなるのが気にくわないけど。(mess up してるのはどっちだって話ではあるが)
スポンサーサイト

テーマ:Linux - ジャンル:コンピュータ

コメント

コメントの投稿


管理者にだけ表示を許可する

トラックバック

トラックバックURLはこちら
http://granular.blog39.fc2.com/tb.php/65-dee94f1d
この記事にトラックバックする(FC2ブログユーザー)

FC2Ad

上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。