Przeglądarka PDF, która obsługuje aktualizację pdf / nie blokuje pliku

17

Pracuję nad dokumentem lateksowym (z pdflatex, cygwin, czytnikiem akrobatów) i mam dość procesu tworzenia - zamykania - otwierania .

Na OSX z Previewnie mam tego problemu, ponieważ mogę skompilować .texpliki, podczas gdy wynikowy plik PDF jest otwierany w przeglądarce (która jest aktualizowana po procesie kompilacji).

Podczas gdy w Win7 z Acrobat Reader mój pdflatex(tex-live 2012) narzeka, że [...] can't write on file xxx.pdf.chyba czytnik blokuje plik pdf.

Jak wydajnie tworzysz / edytujesz pliki .tex na Win7? Wolałbym raczej używać plików makefile i edytora tekstów zamiast środowiska budowania lateksów w systemie Windows.

mikrofon
źródło
Jeśli jest to opcja dla ciebie: Myślę, że (nie mogę teraz tego sprawdzić) xpdfza pośrednictwem cygwindziała w ten sposób. Należy jednak przewracać stronę do przodu i do tyłu, aby zaktualizować wyświetlany plik.
mpy
Dzięki, to jest dobre na początek. Ale skoro wiem, jak to jest obsługiwane na komputerze Mac, chętnie skorzystam z innych rozwiązań.
Mike
2
Patrz tex.stackexchange.com/q/2006/5763
Przywróć Monikę - M. Schröder

Odpowiedzi:

16

SumatraPDF może być używany w bieżącym przepływie pracy. Nie spowoduje blokady pliku. To również obsługuje synchronizację pomiędzy redaktor i dokumencie pdf.

Mattias
źródło
1
Chciałem napisać to samo minutę temu, ale nie mogłem odpowiedzieć na moje pytanie mniej niż 10 powtórzeń ... :) W każdym razie, dziękuję!
Mike
2

Chociaż istnieje już odpowiedź dostarczająca natywny nieblokujący czytnik plików PDF dla systemu Windows, podążyłem za tym cygwin/xpdfpodejściem i zhakowałem mały skrypt.

Jest on oparty na xpdf„s -remoteopcją która którego można przeładować jest już otwarty plik. Musimy tylko wykryć, kiedy plik zostanie zmieniony. Ponieważ nie ma natywnego systemu inotifyWindows , musisz zainstalować inotify-win , który jest C#programem.

xpdf-fWygląda na to, że mój skrypt działa dobrze, ale musisz zamknąć oba, xpdfa skrypt (przez Strg + C) po zakończeniu oglądania pliku 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
mpy
źródło
1

Od 2017 r. Firefox / Chrome może to robić. Firefox zachowuje nawet bieżącą stronę po F5 - Odśwież.

isti_spl
źródło
2
Czy możesz dodać więcej szczegółów do swojej odpowiedzi? Mówienie „X wykonuje pracę” jest zbyt niejasne, aby było pomocne. Dziękuję za pomoc.
Mówię: Przywróć Monikę
1
Przeglądarki internetowe powinny ogólnie działać. Domyślne / normalne / oczekiwane zachowanie klientów REST polega na załadowaniu treści adresu URL, a następnie zamknięciu połączenia.
user560822