使用 emacs 进行编译并更新 docview 中的视图

使用 emacs 进行编译并更新 docview 中的视图

我在 Ubuntu 14.04 下使用带有 AUCTeX 的 Emacs。我的框架被分成两个窗口,如下所示:

 ------------------------------
|                |             |
|                |             |
|       1        |       2     |
|                |             |
|                |             |
 ------------------------------

目前,C-c C-c仅编译窗口 1 中的 TeX 文件并在窗口 2 中显示错误(如果有)。

如果“docview”没有任何错误,我希望此命令在窗口 2 中自动加载已编译的 pdf。

顺便说一句,我目前必须在调用后按“Enter” C-c C-c(为了验证我想要使用我的默认编译器的事实),是否可以删除这个验证部分?

我知道我应该修改我的.emacs文件,但是我对这些配置文件很不舒服......

答案1

对于您的第一个问题(很遗憾您没有将两者分开!),我建议建议该TeX-command-sentinel功能。 (我现在没有足够的时间来调查这个问题;您希望日志缓冲区在成功编译后显示 pdf 的部分可能有点棘手,但绝对可行。问题可能是现有 Emacs 中的窗口配置相当不稳定。有一些 Emacs 软件包可以解决这个问题,但我都不知道。如果有人能解决这个问题,请随时编辑这个答案!)

对于你的第二个问题(你真的应该把它们分开!),试试这个:

(define-key TeX-mode-map (kbd "C-c C-z")
  (lambda ()
    (interactive)
    (TeX-command TeX-command-default 'TeX-master-file)))

这可能不是有史以来最强大的代码(例如,它无法编译该区域),但它将(在 AUCTeX 中通常未使用的)C-c C-z键序列绑定到在当前缓冲区的主文件上运行默认的 TeX 命令。

令人惊讶的是,调用这个C-c C-c建议的东西是棘手的:负责这个的命令是TeX-command-query,它包含负责的逻辑选择要运行的命令交互式查询。非常糟糕的做法。人们可以 (a) 复制粘贴此函数的第一部分并更改最后一部分,或者 (b) 建议此函数completing-read暂时更改的含义(更糟糕的做法!)。(事实上,最好向 AUCTeX 开发人员提交功能请求,将此功能一分为二!说到拆分,如果每个问题只有一个问题,这个网站的效果最好。)

顺便说一句,请不要使用该.emacs文件;最好使用~/.emacs.d/init.el

顺便说一下²,我有没有提过最好分开你的问题本网站上的条目?

答案2

我建议不要这样做。关心“它看起来怎么样”会分散你对内容的注意力。(La)TeX 的优势在于它首先是一个组织系统内容,打印渲染应该是最后一步。

相关内容