AUCTeX が特定のディレクトリに補助ファイルを配置できない

AUCTeX が特定のディレクトリに補助ファイルを配置できない

Emacs + Auctex現在、.tex ファイルを編集およびコンパイルするために を使用していますxelatex。コンパイル中に作成された補助ファイルを別のディレクトリ (/tmp など) に配置したいのですが、 に次のコードがあります。init.elしかし、機能しません。補助ファイルはまだルート ディレクトリにあります。私のコードの何が間違っているのでしょうか。誰か助けてくれませんか。

(add-to-list 'TeX-command-list '("XeLaTeX" "%`xelatex%(mode)%' %t" TeX-run-TeX nil  t))
(setq TeX-command-default "XeLaTeX -aux-directory=./tmp")

答え1

XeLaTeX を明示的に追加すると、TeX-command-listうまくいく可能性があります (試していません) が、いわゆる「AUCTeXy」とは言えません。

AUCTeX は、使用する正しいエンジンを推測しようとします (たとえば、ロードするとfontspecエンジンについて尋ねられます)。また、ローカル変数を使用して、現在のファイルに簡単にエンジンを設定できるようにします。

の使用に関してはTeX-command-default、私が理解している限りでは、それはそこで期待されているものではありません。

これを設定するために、init ファイルをいじるのではなく、ローカル変数を使用することをお勧めします。そして、AUCTeX に難しい作業を任せてください。AUCTeX はうまくやってくれます。

を使用してファイルにローカル変数を追加できます。と のM-x add-file-local-variable2 つを追加できます。(ファイルを開くときにこれらのオプションを実行するかどうかを尋ねられます。オプションを保存することを選択できます)。ファイルの末尾には次のような内容が記述されている必要があります。TeX-engineTeX-command-extra-options

% Local Variables:
% TeX-engine: xetex
% TeX-command-extra-options: "-aux-directory=./tmp"
% End:

("-aux-directory=./tmp"動作すると仮定します。ここではテストできませんが、これは MikTeX のみのオプションだと思います。ただし、 では動作します"-output-directory=./tmp"。)

それが完了したら、ドキュメントLaTeX(およびその他必要なもの)を作成します。

関連情報