Программа просмотра PDF, которая выполняет обновление в реальном времени PDF / не блокирует файл

4494
mike

Я работаю на латексной документ (с pdflatex, Cygwin, читатель акробата), и я устал от макияжа - близко - открыт процесс.

В OSX у Previewменя нет этой проблемы, так как я могу скомпилировать .texфайлы, в то время как полученный PDF открывается в программе просмотра (которая обновляется после процесса сборки).

В то время как на Win7, с Acrobat Reader, мой pdflatex(tex-live 2012) жалуется, что, [...] can't write on file xxx.pdf.я думаю, читатель блокирует файл PDF.

Как эффективно создавать / редактировать файлы .tex на Win7? Я бы предпочел использовать make-файлы и текстовый редактор вместо среды сборки из латекса.

13
Если это вариант для вас: я думаю (не могу проверить это прямо сейчас) `xpdf` через` cygwin` работает таким образом. Однако вам нужно перевернуть страницу вперед и назад, чтобы обновить отображаемый файл. mpy 10 лет назад 0
Спасибо, это хорошо для начинающих. Но так как я знаю, как это делается на Mac, я был бы рад, что есть другие решения. mike 10 лет назад 0
См. Http://tex.stackexchange.com/q/2006/5763 Martin Schröder 10 лет назад 2

3 ответа на вопрос

12
Mattias

SumatraPDF can be used in your current workflow. It will not place a lock on the file. It also supports synchronization between editor and pdf document.

Я хотел опубликовать то же самое минуту назад, но я не мог ответить на свой вопрос менее чем с 10 представителями ... :) В любом случае, спасибо! mike 10 лет назад 1
1
mpy

Although there's already an answer providing a native non-blocking windows PDF reader, I followed the cygwin/xpdf approach and hacked together a small script.

It is based on xpdf's -remote option which which it is possible to reload an already opened file. So, we only need to detect when the file is changed. As there is no native inotify on windows you need to install inotify-win, which is a C# program.

My script xpdf-f seems to work fine, however you have to close both, xpdf and the the script (via Strg+C) once finished watching the PDF.

#!/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 
-1
isti_spl

Начиная с 2017 года, Firefox / Chrome может выполнять свою работу. Firefox даже сохраняет текущую страницу после F5 - Обновить.

Можете ли вы добавить более подробную информацию к вашему ответу? Сказать «Х выполняет работу» слишком расплывчато, чтобы быть полезным. Спасибо за помощь. Twisty Impersonator 6 лет назад 0

Похожие вопросы