使用 Emacs DocView 设置 SyncTeX

使用 Emacs DocView 设置 SyncTeX

我在一个 emacs 缓冲区中保存源代码,在另一个启用了自动恢复模式的 DocView 缓冲区中保存编译后的 pdf。使用latexmk -pvc编译可让我获得实时预览。现在我想设置正向和反向搜索。我能找到的有关使用 emacs 和 synctex 的所有说明都涉及一些外部查看器。有什么办法可以做到这一点吗?

答案1

您可以使用pdf 工具。它增加了使用 synctex 进行正向和反向搜索的支持。引用 synctex 相关函数之一中的注释:

Correlate a PDF position with the TeX file.
\\<pdf-sync-minor-mode-map>
This works via SyncTeX, which means the TeX sources need to have
been compiled with `--synctex=1'. In AUCTeX this can be done by
setting `TeX-source-correlate-method' to 'synctex \(before AUCTeX
is loaded\) and enabling `TeX-source-correlate-mode'.

Then \\[pdf-sync-mouse-goto-tex] in the PDF buffer will open the
corresponding TeX location.

If AUCTeX is your preferred tex-mode, this library arranges to
bind `pdf-sync-tex-display-pdf-key' \(the default is `C-c C-g'\)
to `pdf-sync-display-pdf' in `TeX-source-correlate-map'. This
function displays the PDF page corresponding to the current
position in the TeX buffer. This function only works together
with AUCTeX.

设置 AUCTex 后,您应该能够C-c C-g 通过双击 doc-view 中的 pdf 进行正向搜索和反向搜索(启用 pdf-tools;即pdf-tools-enable首先调用)。

答案2

它适用于这个配置文件latexmk

$pdflatex = "pdflatex -src-specials -synctex=1 --shell-escape -interaction=nonstopmode -halt-on-error -file-line-error %O %S";
$pdf_previewer = "start evince %O %S";
$pdf_update_method = 0;
$sleep_time = 1;
$recorder = 1;

这是.emacs

;;correlate
(server-start)
(add-hook 'LaTeX-mode-hook 'TeX-PDF-mode)
(add-hook 'LaTeX-mode-hook 'TeX-source-correlate-mode)
(setq TeX-source-correlate-method 'synctex)
(setq TeX-source-correlate-start-server t)

相关内容