在 emacs 中使用 latexmk 进行编译

在 emacs 中使用 latexmk 进行编译

在接受的答案中问题建议如何添加latexmk对 emacs 的支持。如果我做对了,编译文件.tex应该被分配给C-c C-c。但是这对我来说不起作用,我必须进入菜单并单击该latexmk选项。

我的问题基本上是,如何使其成为latexmkemacs+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-TeXTeX-run-command是最常见的处理程序,但也有针对 Bibtex、拼写检查器等的特殊处理程序。

答案2

我猜你只是想编译所有必要的文件,不一定非要通过latexmk。实现此目的的最简单方法是运行C-c C-a,它将执行TeX-command-run-all

相关内容