emacs auctex命令编译和查看

Pin*_*ins 3 emacs auctex

我使用EMACS/AucTeX.为了编译我做Cc Cc,然后它问

"命令:(默认LaTeX)"

我按下RET然后编译.要查看已编译的文档,我会执行Cc Cv.

我想有一个简单的快捷方式,比如按F1或其他一些组合键来编译然后查看文档.有没有简单的命令/功能可以插入.emacs来做到这一点?

谢谢Pietro

小智 10

Cc Ca(TeX-command-run-all)将在AUCTeX 11.89中完成工作.


Aar*_*ris 0

我认为没有任何东西可以开箱即用,并且仅按顺序调用两个命令的天真的方法是行不通的,因为您需要完成编译过程才能查看输出。

这是一个可能适合您的快速但肮脏的解决方案:

(defun my/TeX-view-once (doc)
  "View TeX output and clean up after `my/TeX-compile-and-view'.

Call `TeX-view' to display TeX output, and remove this function
from `TeX-after-TeX-LaTeX-command-finished-hook', where it may
have been placed by `my/TeX-compile-and-view'."
  (TeX-view)
  (remove-hook 'TeX-after-TeX-LaTeX-command-finished-hook #'my/TeX-view-once))


(defun my/TeX-compile-and-view ()
  "Compile current master file using LaTeX then view output.

Run the \"LaTeX\" command on the master file for active buffer.
When compilation is complete, view output with default
viewer (using `TeX-view').
  (interactive)
  (TeX-command "LaTeX" 'TeX-master-file)
  (add-hook 'TeX-after-TeX-LaTeX-command-finished-hook #'my/TeX-view-once))
Run Code Online (Sandbox Code Playgroud)

您可能想要修改TeX-command中的行my/TeX-compile-and-view,因为它硬编码了许多C-c C-c( TeX-command-master) 中没有的内容。特别是,我不确定如果没有设置主文件它会做什么,即使不需要它也会重新编译。

编辑:经过一些修补,看起来一切都运行良好,没有主文件,只要你的 .emacs 中有这一行:

(setq-default TeX-master nil)
Run Code Online (Sandbox Code Playgroud)

我不确定为什么会出现这种情况,因为这表示 AUCTeX 应该向您查询主文件(如果尚未设置),并且即使在这种情况下,该命令也不会进行查询。如果您不想使用这一行,那么让上述函数在缓冲区上工作应该不会太难。