如何在 Emacs 中设置自动构建

如何在 Emacs 中设置自动构建

我使用 Eclipse 中的 Texclipse 完成了此操作,每次编辑或刷新后都会调用一个脚本。我想知道在 Emacs 中是否可以做到这一点?

对于 Emacs,我通过调用 手动编译M-x tex-compile pdflatex,然后使用 刷新我的 pdf 视图M-x tex-compile \doc-view "MyDocument.pdf"。有人设置过这个吗?有没有关于如何实现此功能的教程?

答案1

使用“auto-save-buffers”,输入到你的.emacs中:

(require 'auto-save-buffers)
(run-with-idle-timer 1.5 t 'auto-save-buffers)  
(global-set-key [f7] 'auto-save-buffers-toggle)
(auto-save-buffers-toggle)

然后使用“latexmk”编译 *.tex 文件。为了让一切更快,你可以用 pdflatex 构建一个称为“格式”的东西。大致如下:

pdflatex -ini -jobname="Brief" "&pdflatex" mylatexformat.ltx "Musterbrief.tex""  

然后将其插入到您的 *.tex 文件中作为第一行:%&Brief。这有一些缺点,例如,如果您更改序言,则必须制作一种新的格式……

要在 Windows 下打开命令窗口,您可以在 .emacs 文件中插入另一个快捷方式:

;; http://stackoverflow.com/a/13509208/1171221
(defun start-cmd () (interactive) 
(let ((proc (start-process "cmd" nil "cmd.exe" "/C" "start" "cmd.exe")))
(set-process-query-on-exit-flag proc nil)))

因此,使用 Mx start-cmd 您可以在 texfile 文件夹中获得命令行。这使得启动 latexmk 的速度更快。

答案2

该解决方案基于Linux。

如果您使用 evince(我想还有其他 pdf 查看器,但我使用 evince)打开您的 pdf,它将在 emacs 内部编译后刷新。

为了不使用 AUCTeX 并在第一个命令后使用较短的命令进行编译,您可以M-x recompile通过在文件中添加以下命令来绑定它.el

(global-set-key (kbd "key-bindings wanted")    'recompile)

请注意,绑定也适用于其他编译。

相关内容