阻止 SyncTeX 打开新实例 Evince?

阻止 SyncTeX 打开新实例 Evince?

我在 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

相关内容