【问题标题】:Auto-reload pdf viewer while editing latex files编辑乳胶文件时自动重新加载pdf查看器
【发布时间】:2013-03-16 15:35:16
【问题描述】:

我在编辑我的 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不会关闭但不再刷新......

谁能帮我解决这个问题?

【问题讨论】:

  • 我使用了自动刷新的 Evince。不过,llpp 的渲染效果非常好。
  • 我推荐使用 texniccenter 作为你的乳胶编辑器,然后按 CTRL-F5 刷新。

标签: pdf latex inotifywait


【解决方案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)

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2011-01-29
    • 1970-01-01
    • 2019-05-17
    • 1970-01-01
    • 1970-01-01
    • 2015-08-09
    • 2014-06-20
    • 1970-01-01
    相关资源
    最近更新 更多