我目前正在使用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
明确添加 XeLaTeXTeX-command-list
可能会让事情顺利进行(我还没有尝试过),但可以说它肯定不是很“AUCTeXy”。
AUCTeX 会尝试猜测要使用的正确引擎(比如,如果您加载fontspec
它,它会询问您),并允许您使用局部变量轻松地为当前文件设置它。
至于您对 的使用TeX-command-default
,据我所知,这并不是那里所期望的。
我建议你使用局部变量来设置它,而不是摆弄你的初始化文件。让 AUCTeX 来做这些艰苦的工作,因为它做得很好。
您可以使用 向文件添加局部变量M-x add-file-local-variable
。您可以添加两个:TeX-engine
和TeX-command-extra-options
。(打开文件时会询问您是否应运行这些选项,您可以选择保存该选项)。文件底部应该出现类似以下内容:
% Local Variables:
% TeX-engine: xetex
% TeX-command-extra-options: "-aux-directory=./tmp"
% End:
(假设"-aux-directory=./tmp"
有效。我无法在这里测试它,我相信这是 MikTeX 的唯一选项。但它确实有效"-output-directory=./tmp"
。)
有了这个,就可以构建您的文档LaTeX
(以及其他所需的内容)。