2013-03-16 41 views
3

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

部件处理的等待和耳目一新的是这一个:

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

我的问题是:每当在TEX文件的编译出现错误,不PDF输出procuded和llpp正在缩小。我想类似的东西:

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

它的工作原理部分:在编译过程中出现错误,llpp关不上,但不会再刷新......

谁能帮我解决这个问题?

+0

我已经使出了Evince使用,它会自动刷新。尽管如此,llpp呈现出令人难以置信的更好。 – djeikyb 2013-04-04 22:12:15

+0

我建议使用texniccenter作为乳胶编辑器,然后按CTRL-F5进行刷新。 – Veridian 2013-08-13 15:36:10

回答

1

我推了部分修复您的问题(完整的脚本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)