PDF-Viewer, der die Live-Aktualisierung von PDF- / PDF-Dateien verwaltet, sperrt die Datei nicht


17

Ich arbeite gerade an einem Latex - Dokument (mit pdflatex, Cygwin, Acrobat Reader) , und ich bin bin müde von dem Make - nah - offen Prozess.

Unter OSX mit habe Previewich dieses Problem nicht, da ich die .texDateien kompilieren kann , während das resultierende PDF im Viewer geöffnet wird (das nach dem Erstellungsprozess aktualisiert wird).

Unter Win7 mit Acrobat Reader pdflatexbeklagt sich mein (tex-live 2012), dass [...] can't write on file xxx.pdf.der Reader die PDF-Datei sperrt.

Wie können Sie .tex- Dateien unter Win7 effizient erstellen / bearbeiten ? Ich würde am liebsten Makefiles und einen Texteditor anstelle einer Windows-Latex-Build-Umgebung verwenden.


Wenn das eine Option für Sie ist: Ich denke , (es kann nicht sofort überprüfen) xpdfüber cygwinArbeiten auf diese Weise. Sie müssen jedoch die Seite vor und zurück blättern, um die angezeigte Datei zu aktualisieren.
— mpy

Danke, es ist gut für den Anfang. Aber da ich weiß, wie es auf dem Mac funktioniert, würde ich mich über einige andere Lösungen freuen.
— Mike

Antworten:


16

SumatraPDF kann in Ihrem aktuellen Workflow verwendet werden. Die Datei wird nicht gesperrt. Es unterstützt auch die Synchronisation zwischen Editor und PDF-Dokument.


1
Ich wollte dasselbe vor einer Minute posten, aber ich konnte meine eigene Frage nicht mit weniger als 10 Wiederholungen beantworten ... :) Wie auch immer, danke!
— Mike

2

Obwohl es bereits eine Antwort gibt, die einen systemeigenen, nicht blockierenden Windows-PDF-Reader bereitstellt, bin ich dem cygwin/xpdfAnsatz gefolgt und habe ein kleines Skript gehackt.

Es basiert auf xpdfder -remoteOption welche es möglich ist eine bereits geöffnete Datei neu zu laden. Wir müssen also nur erkennen, wann die Datei geändert wurde. Da es inotifyunter Windows kein natives Programm gibt , müssen Sie das Programm inotify-win installieren C#.

Mein Skript xpdf-fscheint xpdfeinwandfrei zu funktionieren, Sie müssen jedoch beide schließen, und das Skript (über Strg + C) hat die PDF-Datei nach dem Ansehen fertiggestellt.

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

Ab 2017 kann auch Firefox / Chrome den Job erledigen. Firefox behält sogar die aktuelle Seite nach F5 - Aktualisieren bei.


2
Können Sie Ihrer Antwort mehr Details hinzufügen? Zu vage zu sagen, "X macht den Job", ist zu hilfreich. Vielen Dank für Ihren Beitrag.
— Ich sage Reinstate Monica

1
Webbrowser sollten im Allgemeinen funktionieren. Das standardmäßige / normale / erwartete Verhalten für REST-Clients besteht darin, den Inhalt einer URL zu laden und dann die Verbindung zu schließen.
— user560822
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.