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.