Visionneuse PDF qui gère la mise à jour en direct du pdf / ne verrouille pas le fichier


17

Je travaille sur un document en latex (avec pdflatex, cygwin, acrobat reader) et je suis fatigué du processus make - close - open .

Sur osx avec Previewje n'ai pas ce problème, car je peux compiler les .texfichiers, tandis que le pdf résultant est ouvert dans le visualiseur (qui est mis à jour après le processus de construction).

Alors que sur Win7, avec Acrobat Reader, mon pdflatex(tex-live 2012) se plaint que [...] can't write on file xxx.pdf.je suppose que le lecteur verrouille le fichier pdf.

Comment produire / éditer efficacement des fichiers .tex sur Win7? Je préférerais m'en tenir à l'utilisation de makefiles et d'un éditeur de texte au lieu d'un environnement de construction de latex Windows.


Si c'est une option pour vous: je pense (ne peut pas le vérifier en ce moment) xpdfvia cygwinfonctionne de cette façon. Cependant, vous devez tourner la page en avant et en arrière pour mettre à jour le fichier affiché.
mpy

Thx, c'est bon pour les débutants. Mais comme je sais comment cela est géré sur le mac, je serais heureux d'avoir d'autres solutions.
Mike

Réponses:


16

SumatraPDF peut être utilisé dans votre flux de travail actuel. Il ne placera pas de verrou sur le fichier. Il prend également en charge la synchronisation entre l'éditeur et le document pdf.


1
Je voulais poster le même il y a une minute, mais je n'ai pas pu répondre à ma propre question avec moins de 10 répétitions ... :) Quoi qu'il en soit, merci!
Mike

2

Bien qu'il existe déjà une réponse fournissant un lecteur PDF Windows non bloquant natif, j'ai suivi l' cygwin/xpdfapproche et piraté ensemble un petit script.

Il est basé sur xpdfl' -remoteoption de laquelle il est possible de recharger un fichier déjà ouvert. Il nous suffit donc de détecter quand le fichier est modifié. Comme il n'y a pas de natif inotifysur Windows, vous devez installer inotify-win , qui est un C#programme.

Mon script xpdf-fsemble bien fonctionner, mais vous devez fermer les deux, xpdfet le script (via Strg + C) a fini de regarder le 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

À partir de 2017, Firefox / Chrome peut également faire le travail. Firefox conserve même la page actuelle après F5 - Actualiser.


2
Pouvez-vous ajouter plus de détails à votre réponse? Dire «X fait le travail» est trop vague pour être utile. Merci d'avoir contribué.
Je dis Reinstate Monica

1
Les navigateurs Web en général devraient fonctionner. Le comportement par défaut / normal / attendu pour les clients REST consiste à charger le contenu d'une URL, puis à fermer la connexion.
user560822
En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.