在接受的答案中问题建议如何添加latexmk
对 emacs 的支持。如果我做对了,编译文件.tex
应该被分配给C-c C-c
。但是这对我来说不起作用,我必须进入菜单并单击该latexmk
选项。
我的问题基本上是,如何使其成为latexmk
emacs+auctex 的默认引擎?
编辑 1:当点击C-c C-c
,然后输入时,latexmk
我得到了所需的结果,即它使用 latexmk 进行编译。因此,也许更具体的问题是如何将 latexmk 设置为默认脚本/编译器。
答案1
首先,查看TeX-command-list
以确保它有一个条目latexmk
。如果没有,则需要向此变量添加一行以允许 Auctex 调用可执行文件;不幸的是,这个变量没有很好的记录(请参阅手册);稍后我会解释。
其次,默认程序由变量指定TeX-command-default
。将其更改为使用的标识符TeX-command-list
,即命令规范前的字符串latexmk
。
TeX-command-list
例如,如果显示中的一个元素(您可以使用来查看C-h v
):
("Latex Make" "latexmk %(-pdf) %t" TeX-run-TeX)
然后TeX-command-default
需要"Latex Make"
。
Auctex 变量TeX-command-default
正如我所说,这个变量没有得到很好的记录。它应该是列表的列表,每个列表都采用以下形式:
'("Handle" "external-command %(switches) %(arguments)" Auctex-handler)
其中Handle
引入了要从对话框中运行的工具的句柄C-c C-c
,因此句柄列表TeX-command-default
是此提示符下可能的完成列表。第二个选项是指定要运行的可执行文件的形式,并且Auctex-handler
是处理该过程并调用外部命令的 Elisp 函数。 TeX-run-TeX
和TeX-run-command
是最常见的处理程序,但也有针对 Bibtex、拼写检查器等的特殊处理程序。
答案2
我猜你只是想编译所有必要的文件,不一定非要通过latexmk
。实现此目的的最简单方法是运行C-c C-a
,它将执行TeX-command-run-all
。