![Emacs/LuaLaTeX 与 Evince/Zathura 的集成在 Ubuntu 18.04 中不起作用。我该如何修复它?](https://linux22.com/image/1008241/Emacs%2FLuaLaTeX%20%E4%B8%8E%20Evince%2FZathura%20%E7%9A%84%E9%9B%86%E6%88%90%E5%9C%A8%20Ubuntu%2018.04%20%E4%B8%AD%E4%B8%8D%E8%B5%B7%E4%BD%9C%E7%94%A8%E3%80%82%E6%88%91%E8%AF%A5%E5%A6%82%E4%BD%95%E4%BF%AE%E5%A4%8D%E5%AE%83%EF%BC%9F.png)
在我最近升级(每次新安装)到 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 来说都解决了这个问题,该问题只会偶尔出现。但是,到目前为止我还没有找到更好的解决方案。我应该说这不是一个真正实用的解决方案。