web-dev-qa-db-ja.com

PDFのライブアップデートを処理するPDFビューア/ファイルをロックしません

私はラテックスドキュメント(pdflatex、cygwin、acrobatリーダーを使用)に取り組んでいますが、make ----close --openにうんざりしています。 =プロセス。

Preview のosxでは.texファイルをコンパイルできるので、その問題はありませんが、結果のpdfはビューアで開かれます(後で更新されます)ビルドプロセス)。

Win7では、Acrobat Readerを使用すると、私のpdflatex(tex-live 2012)が[...] can't write on file xxx.pdf.と文句を言います。リーダーがpdfファイルをロックしていると思います。

Win7で。texファイルを効率的に作成/編集するにはどうすればよいですか?私はできれば、Windowsラテックスビルド環境の代わりにメイクファイルとテキストエディタを使用することに固執するでしょう。

18
mike

SumatraPDF 現在のワークフローで使用できます。ファイルにロックはかかりません。また、 サポート エディターとPDFドキュメント間の同期。

17
Mattias

ネイティブの非ブロッキングウィンドウPDFリーダーを提供する答えはすでにありますが、私はcygwin/xpdfアプローチに従い、小さなスクリプトを一緒にハックしました。

これは、xpdf-remoteオプションに基づいており、すでに開いているファイルをリロードすることができます。したがって、ファイルがいつ変更されたかを検出するだけで済みます。ネイティブ Windowsではinotify がないため、C#プログラムである inotify-win をインストールする必要があります。

私のスクリプトxpdf-fは正常に機能しているようですが、PDFの視聴が終了したら、xpdfとスクリプト(Strg + C経由)の両方を閉じる必要があります。

#!/bin/bash

if [[ "$1" = "" ]]; then
  echo Usage: $0 FILE
  exit 1
fi

if [[ ! -e "$1" ]]; then
  echo Error: File $1 does not exist.
  exit 2
fi

xpdf -remote filewatch "$1" &
XPDFPID=$!

while [[ -e /proc/$XPDFPID ]]; do
  inotifywait `dirname $1` | grep "MODIFY $1"
  [[ $? = 0 ]] && xpdf -remote filewatch -reload
done
2
mpy

2017年の時点で、Firefox/Chromeもその仕事をすることができます。 Firefoxは、F5-更新後も現在のページを保持します。

1
isti_spl