Emacs Auctex:如何在当前光标位置打开 evince 中的 pdf

Emacs Auctex:如何在当前光标位置打开 evince 中的 pdf

我使用 emacs auctex 编写 latex 文件。由于文本很长,而且我倾向于在不同的地方进行更改,因此我希望 emacs 打开 pdf,以便文本中显示光标在源文件中的位置。

我在装有 MikTex/Texniccenter/Acroreader 的 Windows 机器上见过这种情况。在 Ubuntu 的 emacs/auctex/evince 中可以这样做吗?

答案1

为此,您需要将以下行添加到您的 .emacs 文件中,以便当您使用 evince 查看 pdf 时,它会告诉 evince 页码:

(setq TeX-view-program-list '(("Evince" "evince --page-index=%(outpage) %o")))
(setq TeX-view-program-selection '((output-pdf "Evince")))

然后,一旦您在 emacs 中打开了 tex 文件,您就需要使用以下命令打开源关联:

C-c C-t C-s

或者,如果您不想每次都手动启动它,那么请将以下行添加到您的 .emacs:

(add-hook 'LaTeX-mode-hook 'TeX-source-correlate-mode)

此外,如果您想阻止 emacs 提示您是否要启动关联服务器,请添加以下行:

(setq TeX-source-correlate-start-server t)

就这样吧。

编辑:实际上,事实证明您不应该使用 pdfsync 包,因此我删除了对它的所有引用。此解决方案不需要它(显然它现在已内置于所有基于 TeX 的引擎中),并且使用它实际上似乎会导致问题(对我来说,它似乎会破坏使用表格的代码)。

修改 2:我之前在使用 .emacs 自动启用 TeX-source-correlate-mode 时遇到了问题,但现在这些问题似乎已经解决了。不知道这是因为我更新了 emacs 还是因为我删除了 pdfsync。无论如何,现在可以正常工作了 :)

答案2

我使用了http://www.emacswiki.org/emacs/AUCTeX(最后一节:Synctex 和 Evince),效果很好……通过这个,您可以实现双向同步(例如,在 emacs 中按 Cc Cv 转到 pdf 页面,或在 evince 中按 C-mouse1 转到 emacs 中的正确位置)。总体而言,它与第一个答案类似,但您不需要手动包含 pdfsync,emacs 和 evince 使用 dbus 进行通信。不过,您也必须执行 Cc Ct Cs。

相关内容