Переглядач Pdf, який обробляє актуальне оновлення pdf / не блокує файл


17

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

У ОСX з Previewпроблемою у мене немає, оскільки я можу компілювати .texфайли, тоді як отриманий pdf відкривається у переглядачі (який оновлюється після процесу збирання).

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

Як ви ефективно створюєте / редагуєте .tex файли на Win7? Я бажаю дотримуватися використання файлів та текстового редактора замість середовища побудови латексу Windows.


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

Thx, це добре для початківців. Але оскільки я знаю, як це обробляється на mac, я буду радий мати ще деякі рішення.
Майк

Відповіді:


16

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


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

2

Хоча вже є відповідь, що надає рідну незаблокувальну програму зчитування PDF-файлів Windows, я дотримувався 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
Чи можете ви додати більше деталей до своєї відповіді? Говорити "X робить роботу" занадто розпливчаста, щоб бути корисною. Дякуємо за ваш внесок.
Я кажу, відновіть Моніку

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