我在编辑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不会关闭但不再刷新...
有人可以帮我解决这个问题吗?
答案 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)