编辑我的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不会关闭但不再刷新...
任何人都可以帮我解决这个问题吗?
更新:自发布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)