Pec*_*ece 5 pdf latex inotifywait
我在编辑 LaTeX 文件时使用llpp pdf 查看器。为了让它在编译时自动刷新 pdf 文件,我使用包装器来启动它(参见this)。
处理等待和刷新的部分是这个:
inotifywait -m -e close_write $1 | while read; do
kill -HUP $pid_llpp
done &
Run Code Online (Sandbox Code Playgroud)
我的问题如下:每当编译 tex 文件时发生错误,就不会产生 pdf 输出并且 llpp 正在关闭。我尝试过类似的事情:
inotifywait -m -e close_write $1 | while read; do
if [ -a $1 ]
then
kill -HUP $pid_llpp
fi
done &
Run Code Online (Sandbox Code Playgroud)
它部分工作:当编译期间发生错误时,llpp 不会关闭但不再刷新...
有人能帮我解决这个问题吗?
更新:自发布 v26 以来,llpp 以完善的版本提供了包装器脚本!您可以在 llpp 发行版中找到它,名称为misc/llpp.inotify。
我对您的问题进行了部分修复(此处为完整脚本):
inotifywait -m -e close_write "$PWD" | while read dir ev file; do
if [ "$file" = "$pdf" ] && [ -e "$pdf" ]; then
kill -HUP $pid_llpp
fi
done &
Run Code Online (Sandbox Code Playgroud)
这会检查当前 pdf 文件是否仍然可用,然后才触发更新事件。这与您所做的类似。但是,我仍然可能会遇到 llpp 将关闭的情况,因为文件可能在检查后立即消失。我不知道如何解决这个问题。
通过查看包含pdf的文件夹并过滤掉pdf的事件,解决了错误修复后不刷新的问题。如果直接在文件上调用 inotify ,它似乎会错过delete.
如果您仍然对此感兴趣,请告诉我它是否适合您。
(附带说明:包装器现在还可以将标志传递给 llpp)
| 归档时间: |
|
| 查看次数: |
2593 次 |
| 最近记录: |