14

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

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

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

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

3 ответа3

13

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

1

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

Он основан на опции xpdf -remote которая позволяет перезагрузить уже открытый файл. Итак, нам нужно только определить, когда файл изменяется. Поскольку в Windows нет встроенного inotify вам нужно установить 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 - Обновить.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .