Visualizzatore di PDF che gestisce l'aggiornamento live di pdf / non blocca il file


17

Sto lavorando a un documento in lattice (con pdflatex, cygwin, acrobat reader) e sono stanco del processo make - close - open .

Su osx con Previewnon ho questo problema, dal momento che posso compilare i .texfile, mentre il pdf risultante viene aperto nel visualizzatore (che viene aggiornato dopo il processo di compilazione).

Mentre su Win7, con Acrobat Reader, il mio pdflatex(tex-live 2012) si lamenta del fatto [...] can't write on file xxx.pdf.che immagino che il lettore blocchi il file pdf.

Come si producono / modificano in modo efficiente i file .tex su Win7? Preferirei attenermi all'utilizzo di makefile e di un editor di testo anziché di un ambiente di build in lattice di Windows.


Se questa è un'opzione per te: penso (non posso controllarlo adesso) xpdftramite cygwinfunziona in quel modo. Tuttavia, è necessario girare avanti e indietro la pagina per aggiornare il file visualizzato.
mpy

Grazie, è buono per cominciare. Ma dal momento che so come viene gestito sul Mac, sarei felice di avere altre soluzioni.
Mike

Risposte:


16

SumatraPDF può essere utilizzato nel flusso di lavoro corrente. Non posizionerà un blocco sul file. Supporta anche la sincronizzazione tra editor e documento pdf.


1
Volevo pubblicare lo stesso un minuto fa, ma non sono riuscito a rispondere alla mia domanda con meno di 10 rappresentanti ... :) Comunque, grazie!
mike

2

Anche se c'è già una risposta che fornisce un lettore PDF nativo per Windows non bloccante, ho seguito l' cygwin/xpdfapproccio e messo insieme un piccolo script.

E 'basato su xpdf's -remoteopzione che quale è possibile ricaricare un file già aperto. Quindi, dobbiamo solo rilevare quando il file viene modificato. Poiché non esiste un nativo inotifysu Windows, è necessario installare inotify-win , che è un C#programma.

La mia sceneggiatura xpdf-fsembra funzionare bene, tuttavia è necessario chiudere entrambe, xpdfe una volta terminata la visione del PDF , la sceneggiatura (tramite Strg + C).

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

A partire dal 2017 anche Firefox / Chrome possono fare il lavoro. Firefox mantiene anche la pagina corrente dopo F5 - Aggiorna.


2
Puoi aggiungere più dettagli alla tua risposta? Dire "X fa il lavoro" è troppo vago per essere utile. Grazie per aver contribuito.
Dico Reinstate Monica il

1
I browser Web in generale dovrebbero funzionare. Il comportamento predefinito / normale / previsto per i client REST è caricare il contenuto di un URL e quindi chiudere la connessione.
user560822
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.