Emacs/LuaLaTeX 与 Evince/Zathura 的集成在 Ubuntu 18.04 中不起作用。我该如何修复它?

Emacs/LuaLaTeX 与 Evince/Zathura 的集成在 Ubuntu 18.04 中不起作用。我该如何修复它?

在我最近升级(每次新安装)到 Ubuntu 18.04 后,我开始遇到很多工具链(Emacs、Lualatex、Evince)的问题。我正在使用向前/向后搜索来近似所见即所得的 LaTeX 编辑。

Evince 在重新编译/更新 LuaLaTeX 时开始崩溃。然后我尝试使用 zathura(另一个 PDF 查看器),在尝试查看之后,zathura 也发生了类似的崩溃。一段时间后,甚至无法再通过 Emacs 发出的用于控制 zathura 的命令来启动 Zathura。

我正在使用 Ubuntu 18.04 和相应的 emacs、evince 和 zathura 包以及来自 ubuntu 包存储库的一些“标准” emacs 扩展。

我的.emacs 的相关部分:

(package-initialize)

(add-to-list 'load-path "~/.emacs.d/lisp/")

(add-hook 'text-mode-hook 'electric-pair-mode) 
(add-hook 'text-mode-hook 'show-paren-mode)
(add-hook 'text-mode-hook 'turn-on-auto-fill)

(add-hook 'TeX-mode-hook 'outline-minor-mode)

(setq TeX-auto-save t)
(setq TeX-parse-self t)
(setq-default TeX-master nil)

(add-hook 'LaTeX-mode-hook 'flyspell-mode)
(add-hook 'LaTeX-mode-hook 'LaTeX-math-mode)
(add-hook 'LaTeX-mode-hook 'turn-on-reftex)
(setq reftex-plug-into-AUCTeX t)
(add-hook 'LaTeX-mode-hook 'company-mode)
(add-hook 'LaTeX-mode-hook 'TeX-source-correlate-mode)
(setq TeX-source-correlate-method 'synctex)
(setq TeX-source-correlate-start-server t)
(add-hook 'LaTeX-mode-hook 'TeX-PDF-mode)
(setq TeX-view-program-selection '((output-pdf "Zathura")))

Emacs 生成以下调用:

zathura file.pdf --synctex-forward 200:0:sometexinclude.tex -x "emacsclient
+%{line} %{input}"

像这样调用,zathura(我不使用 zathura 配置文件)表现出以下内容:

zsh: segmentation fault (core dumped)  zathura file.pdf
--synctex-forward 200:0:sometexinclude.tex -x

Evince 也因 SIGSEGV 而崩溃,这让我相信这是一个与查看器无关的问题。

我最后发现,删除 synctex.gz 文件可以启动 zathura 并查看 pdf 输出。但这当然不是理想的解决方案。但是,在这种情况下,我无法快速找到如何找到核心转储并使其可读。(这可能超出了我的问题范围。)

描述了在 OS X 设置中大型文档发生该问题的情况这里:对我来说,文档越长(超过 60 页),这种情况发生的频率就越高,不过,在我的情况下,是在 Linux 下。

希望得到一些帮助?(我应该将这个问题转移/分享给 emacs 社区吗?)

答案1

一个解决方案目前对我来说似乎有效的是忽略线

(setq TeX-source-correlate-method 'synctex)

来自我的 .emacs 配置。因此,最低配置要使前进/后退搜索再次工作似乎是:

(add-hook 'LaTeX-mode-hook 'TeX-source-correlate-mode)
(setq TeX-source-correlate-start-server t)

使用 evince (默认)并添加一行使用 zathura

(setq TeX-view-program-selection '((output-pdf "Zathura")))

此外,我从一个方案更改\include\includeonly一个方案注释掉未使用的 latex 包括。我的理论是,超链接(例如,到 bibrefs、章节等)到 latex 和 synctex 输出中维护的页面,但不是生成到 PDF 中可能会给我使用的两个 PDF 查看器带来一些麻烦。

更可靠的解决方案是删除.synctex.gz文件。这对于 evince 和 zathura 来说都解决了这个问题,该问题只会偶尔出现。但是,到目前为止我还没有找到更好的解决方案。我应该说这不是一个真正实用的解决方案。

相关内容