El visor de PDF que maneja la actualización en vivo de pdf / no bloquea el archivo


17

Estoy trabajando en un documento de látex (con pdflatex, cygwin, Acrobat Reader) y estoy estoy cansado de la marca - Cerrar - abierta proceso.

En osx con Previewno tengo ese problema, ya que puedo compilar los .texarchivos, mientras que el pdf resultante se abre en el visor (que se actualiza después del proceso de compilación).

Mientras que en Win7, con Acrobat Reader, mi pdflatex(tex-live 2012) se queja de que [...] can't write on file xxx.pdf.supongo que el lector bloquea el archivo pdf.

¿Cómo produce / edita eficientemente archivos .tex en Win7? Preferiblemente me apegaría a usar archivos MAKE y un editor de texto en lugar de un entorno de compilación de látex de Windows.


Si esa es una opción para usted: creo que (no puedo verificarlo ahora) a xpdftravés de cygwintrabajos de esa manera. Sin embargo, debe pasar la página hacia adelante y hacia atrás para actualizar el archivo que se muestra.
mpy

Gracias, es bueno para empezar. Pero como sé cómo se maneja en la Mac, me alegraría tener algunas otras soluciones.
Mike

Respuestas:


16

SumatraPDF se puede utilizar en su flujo de trabajo actual. No colocará un candado en el archivo. También es compatible con la sincronización entre el editor y el documento pdf.


1
Quería publicar lo mismo hace un minuto, pero no pude responder mi propia pregunta con menos de 10 repeticiones ... :) De todos modos, ¡gracias!
Mike

2

Aunque ya hay una respuesta que proporciona un lector de PDF de Windows nativo sin bloqueo, seguí el cygwin/xpdfenfoque y pirateé un pequeño script.

Se basa en xpdfla -remoteopción de que es posible volver a cargar un archivo ya abierto. Por lo tanto, solo necesitamos detectar cuándo se cambia el archivo. Como no hay nativo inotifyen Windows , debe instalar inotify-win , que es un C#programa.

Mi script xpdf-fparece funcionar bien, sin embargo, debe cerrar ambos, xpdfy el script (a través de Strg + C) una vez que terminó de ver el 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

A partir de 2017, Firefox / Chrome también puede hacer el trabajo. Firefox incluso mantiene la página actual después de F5 - Actualizar.


2
¿Puedes agregar más detalles a tu respuesta? Decir "X hace el trabajo" es demasiado vago para ser útil. Gracias por contribuir
Digo reinstalar Mónica

1
Los navegadores web en general deberían funcionar. El comportamiento predeterminado / normal / esperado para los clientes REST es cargar el contenido de una URL y luego cerrar la conexión.
user560822
Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.