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


17

Я работаю над латексным документом (с pdflatex, cygwin, acrobat reader), и я устал от процесса создания - закрытия - открытия .

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

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

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


Если это вариант для вас: я думаю (не могу проверить это прямо сейчас) xpdfчерез cygwinработает таким образом. Однако вам нужно перевернуть страницу вперед и назад, чтобы обновить отображаемый файл.
mpy

Спасибо, это хорошо для начинающих. Но так как я знаю, как это делается на Mac, я был бы рад, что есть другие решения.
микрофон

Ответы:


16

SumatraPDF может использоваться в вашем текущем рабочем процессе. Он не будет блокировать файл. Он также поддерживает синхронизацию между редактором и PDF-документом.


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

2

Хотя уже есть ответ, предоставляющий нативную неблокирующую программу чтения PDF окон, я следовал этому cygwin/xpdfподходу и собрал небольшой скрипт.

Он основан на xpdf«S -remoteвариант , который который можно перезарядить уже открытый файл. Итак, нам нужно только определить, когда файл изменяется. Поскольку inotifyв Windows нет нативного кода, вам нужно установить inotify-win , которая является C#программой.

Мой сценарий, xpdf-fкажется, работает нормально, однако вы должны закрыть оба, xpdfи сценарий (через Strg + C) после просмотра 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

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


2
Можете ли вы добавить больше деталей к вашему ответу? Сказать «Х выполняет работу» слишком расплывчато, чтобы быть полезным. Спасибо за помощь.
Я говорю: восстанови Монику

1
Веб-браузеры в целом должны работать. Стандартным / нормальным / ожидаемым поведением для клиентов REST является загрузка содержимого URL-адреса, а затем закрытие соединения.
user560822
Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.