我在 gedit 中使用 SyncTeX 插件,似乎在 gedit 中按住 ctrl 键并单击(向前搜索)会打开一个新的 Evince 实例,即使已经打开了一个实例。
有没有什么办法可以防止这种情况发生?SyncTeX 正向搜索调用 evince 的方式显然与 nautilus 的方式不同。
顺便说一句,我使用“外部工具”插件通过脚本编译了我的 tex 文件。打开 pdf 文件的行使用xdg-open
。
答案1
我找到了解决方法。问题是 Synctex 启动的实例无法被我的“外部工具”脚本中的命令识别。
Synctex 实例被列为/usr/bin/evince file:///path/to/my/file.pdf
,而 xdg-open 调用的实例被列为evince file.pdf
。
因此,我刚刚修改了我的脚本,以便它也将被列为/usr/bin/evince file:///path/to/my/file.pdf
。我的外部工具脚本现在显示为:
#!/bin/bash
if [ "$GEDIT_CURRENT_DOCUMENT_TYPE" == "text/html" ]; then
google-chrome $GEDIT_CURRENT_DOCUMENT_NAME
elif [ "$GEDIT_CURRENT_DOCUMENT_TYPE" == "text/x-tex" ]; then
filename=$GEDIT_CURRENT_DOCUMENT_NAME
shortname=`echo $filename | sed 's/\(.*\)\.tex$/\1/'`
path=file://$GEDIT_CURRENT_DOCUMENT_PATH
shortpath=`echo $path | sed 's/\(.*\)\.tex$/\1/'`
latex -synctex=1 -interaction batchmode -src $filename
dvips -t a4 $shortname.dvi
ps2pdf -sPAPERSIZE=a4 -dOptimize=true -dEmbedAllFonts=true $shortname.ps
rm --interactive=never $shortname.dvi $shortname.out $shortname.ps $shortname.blg $shortname.toc $shortname.log
#xdg-open $shortname.pdf
/usr/bin/evince $shortpath.pdf
else
echo "I don't know how to compile files of the type:" "$GEDIT_CURRENT_DOCUMENT_TYPE"
fi