支持 SyncTeX for Gnome 的 PDF 查看器

Lit*_*les 12 gnome latex pdf software-recommendation

我正在寻找一个 PDF 查看器,用于在 Gnome 下使用 LaTeX 和 SyncTeX(正向和反向搜索)。我从之前在各种论坛上的问题中知道 Okular 具有此功能,但我不想为此拖动 KDE 依赖项。

有没有一种替代方案可以在 Gnome 中很好地工作,而没有太多的依赖?我不介意使用 PPA、从源代码构建、使用旧的 X 风格工具或编写小脚本 - 但我需要一些已知的工作并且不会使我的设置过于混乱。

fra*_*ous 6

正如我在评论中指出的那样,了解您是否有想要与它一起使用的特定编辑器会有所帮助。

gedit中,乳胶插件增加了一个内置的PDF预览gedit中,我推测它支持SyncTeX正向/反向搜索。当然,当我为 GNOME 用户想到一些东西时,这就是我突然想到的。

还有其他带有内置预览器的 LaTeX 编辑器支持 SyncTeX 跳转,例如:TeXworksTexmakerTeXmakerX。这些都是基于 Qt 的而不是基于 GTK 的,但仍然没有像 Kile/Okular 那样需要 KDE 或其库。(gummi是基于 GTK 的,并且有一个内置的预览器——一个实时更新的预览器——但我认为它不支持 synctex ......)

正如另一个答案所指出的那样,evince 据说获得了这个功能,人们正在开发必要的插件以在编辑器端进行交互。我认为它使用 DBus 进行交互——如果你问我,这是一个大错误——但就像你无法弄清楚它是如何工作的一样。但是,Arch Linux 用户存储库中有一个旧版本的 evince,它已打补丁以更直接地提供 SyncTeX 支持。我从未尝试过在 Ubuntu 上编译它,但理论上应该是可能的。不过我已经在 Arch 上使用过它,而且效果很好。

然而,我个人使用MuPDF作为 LaTeX 组合的查看器,我选择它是因为它是我所知道的最快的 PDF 查看器,并且是唯一一个足够快的用于我使用 Vim 作为我的编辑器的实时更新预览脚本。

虽然 MuPDF 不直接支持 SyncTeX,但我编写了一些提供部分 SyncTeX 支持的xdotool脚本。基本上,对于前向搜索,脚本从 vim 调用 synctex 以确定哪个页面与源中的位置匹配,然后将适当的击键发送到 MuPDF 以跳转到该页面。我使用 vim 脚本执行此操作,但是使用 bash,这样的操作可能会奏效:

#!/bin/bash
# mupdf-forward.sh
# usage mupdf-forward.sh <line number> <column number> <tex file> <pdf file>
SEARCHLINE="$1"
SEARCHCOL="$2"
TEXFILE="$3"
PDFFILE="$4"
PAGEFORWARD=0
PAGEFORWARD="$(synctex view -i $SEARCHLINE:$SEARCHCOL:"'"'"$TEXFILE"'"'" -o "'"'"$PDFFILE"'"'" | grep -m1 'Page:' | sed 's/Page://' | tr -d '\n'")"
if [ $PAGEFORWARD -gt 0 ] ; then
   xdotool search --class MuPDF type --window %@ "${PAGEFORWARD}g"
fi
Run Code Online (Sandbox Code Playgroud)

如果您拥有最新版本的 xdotool(甚至比 Maverick 存储库中的版本还新),您可以通过让 xdotool 从其标题栏中读取 MuPDF 显示的页码、调用 synctex 和然后将适当的命令发送到编辑器以跳转到该页面的代码所在的位置(--不像使用真正的 SyncTeX 兼容的 PDF 查看器那样精确,但对于像 MuPDF 这样轻量级的东西来说也不算太简陋) .

无论如何,您可以在这篇博文中阅读并下载我实际用于 vim 的脚本。但是,如果您想使用不同的编辑器,则必须根据需要调整想法。

但希望 evince 的情况也能很快好转。


use*_*124 3

只需使用 Evince,GNOME 和 Ubuntu 的默认文档查看器即可。从 GNOME 2.32(在 Ubuntu 10.10 和即将推出的 Ubuntu 11.04 中找到)开始,Evince 支持 SyncTex。有关更多信息,请参阅 http://library.gnome.org/misc/release-notes/2.32/

  • 在 LaTeX 同步上下文中,“向前搜索”意味着您可以从编辑器跳转到 PDF 查看器中的正确页面。“反向搜索”是指从PDF查看器跳转到所选段落的源代码。 (4认同)