我正在寻找在Gnome下使用LaTeX和SyncTeX(正向和反向搜索)的PDF查看器。我从各个论坛的先前问题中知道Okular具有此功能,但我不希望仅为此而拖动KDE依赖项。
有没有一种替代方案可以在Gnome中很好地运行而又没有太多的依赖关系?我不介意使用PPA,从源代码构建,使用旧的X风格工具或编写小型脚本-但是我需要一些已知的有效方法,并且不会使我的设置过于混乱。
我正在寻找在Gnome下使用LaTeX和SyncTeX(正向和反向搜索)的PDF查看器。我从各个论坛的先前问题中知道Okular具有此功能,但我不希望仅为此而拖动KDE依赖项。
有没有一种替代方案可以在Gnome中很好地运行而又没有太多的依赖关系?我不介意使用PPA,从源代码构建,使用旧的X风格工具或编写小型脚本-但是我需要一些已知的有效方法,并且不会使我的设置过于混乱。
Answers:
正如我在评论中指出的那样,这有助于了解您是否想将特定的编辑器与之配合使用。
在gedit中,乳胶插件增加了一个内置的PDF预览gedit中,我推测它支持SyncTeX正向/反向搜索。当我想到GNOME用户时,这就是我想到的东西。
还有其他带有内置预览器的LaTeX编辑器,它们支持SyncTeX跳转,例如:TeXworks,Texmaker,TeXmakerX。这些都是基于Qt的,而不是基于GTK的,但是,它们都不需要KDE或像Kile / Okular这样的库。(gummi基于GTK并具有内置的预览器-当时正在实时更新-但我认为它不支持synctex ...)
正如其他答案所指出的那样,证据表明该功能已得到使用,人们正在开发必要的插件以在编辑器端进行交互。我收集到它使用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
如果您拥有最新版本的xdotool(比Maverick仓库中的版本还要新),则可以通过让xdotool从其标题栏中读取MuPDF显示的页码,调用synctex和然后将适当的命令发送到编辑器,以跳转至该页面的代码所在的位置(-精度不及使用真正的SyncTeX兼容的PDF查看器,但是对于像MuPDF一样轻巧的东西来说也不太简陋) 。
无论如何,您可以在此博客文章中阅读并下载我实际用于vim的脚本。但是,如果您要使用其他编辑器,则必须根据需要调整想法。
但是希望这种情况也能很快解决。
只需使用Evince,这是GNOME和Ubuntu的默认文档查看器。自GNOME 2.32(在Ubuntu 10.10和即将发布的Ubuntu 11.04中发现)以来,Evince支持SyncTex。有关更多信息,请参见 http://library.gnome.org/misc/release-notes/2.32/