5

LaTeXファイルを編集するときにllpppdfビューアを使用します。コンパイル時にPDFファイルを自動的に更新するために、ラッパーを使用して起動します(これを参照)。

待機とリフレッシュを処理する部分はこれです:

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は閉じませんが、更新されなくなります...

誰かが私がこの問題を解決するのを手伝ってもらえますか?

4

1 に答える 1

2

更新: リリース 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 &

これは、現在の pdf ファイルがまだ利用可能かどうかを確認し、更新イベントを発生させます。これはあなたがしたことと似ています。ただし、チェックの直後にファイルが消える可能性があるため、llppが閉じてしまう可能性があります。これに取り組む方法がわかりません。

エラーが修正された後に更新されないという問題は、pdf を含むフォルダーを監視し、pdf のイベントを除外することで解決されます。inotify がファイルに対して直接呼び出された場合、 の後のすべてのイベントが欠落しているようですdelete

それでも興味がある場合は、うまくいくかどうかお知らせください。

(補足: ラッパーは、llpp にフラグを渡すこともできるようになりました)

于 2014-03-11T12:55:55.653 に答える