编辑乳胶文件时自动重新加载pdf查看器

时间:2013-03-16 15:35:17

标签: pdf latex inotifywait

我在编辑LaTeX文件时使用llpp pdf查看器。为了让我在编译时自动刷新pdf文件,我使用包装器来启动它(参见this)。

处理等待和刷新的部分是这个:

inotifywait -m -e close_write $1 | while read; do
    kill -HUP $pid_llpp
done &

我的问题如下:每当编辑tex文件时发生错误,都不会产生pdf输出,并且llpp正在关闭。我尝试过类似的东西:

inotifywait -m -e close_write $1 | while read; do
    if [ -a $1 ]
    then
        kill -HUP $pid_llpp
    fi
done &

部分工作:在编译期间发生错误时,llpp不会关闭但不再刷新...

有人可以帮我解决这个问题吗?

1 个答案:

答案 0 :(得分:1)

更新:自发布v26 llpp以精美版本发布包装脚本!你在llpp发行版中发现它是misc / llpp.inotify。


我推动了对您的问题的部分修复(完整脚本here):

inotifywait -m -e close_write "$PWD" | while read dir ev file; do
if [ "$file" = "$pdf" ] && [ -e "$pdf" ]; then
    kill -HUP $pid_llpp
fi
done &

这将检查当前的pdf文件是否仍然可用,然后才会触发更新事件。这与您所做的类似。但是我仍然可以看到llpp将关闭,因为文件可能会在检查后直接消失。我不知道如何解决这个问题。

修复错误后不刷新的问题通过观察包含pdf的文件夹并过滤掉pdf的事件来解决。如果直接在文件上调用inotify,它似乎会错过delete之后的所有事件。

如果您对它仍然感兴趣,请告诉我它是否适合您。

(作为旁注:包装器现在也能够将标志传递给llpp)