PDF/PS/DVI-Viewer mit automatischem Reload/Refresh?

dpr

Aktives Mitglied
Thread Starter
Dabei seit
04.04.2006
Beiträge
522
Reaktionspunkte
0
Hallo,

wie es der Titel schon sagt: ich suche einen PDF oder DVI-Viewer (zur Not geht auch PostScript), der bei Änderung des dargestellten Files dieses automatisch neu lädt/die Darstellung aktualisiert. Weder Preview noch Acrobat Reader können das. Auch xdvi unter XDarwin macht das nicht mehr.

Danke für jeden Hinweis,
Denny
 
Das scheitert schon daran, dass Du eine PDF, die z.B. in Acrobat geöffnet ist, gar nicht ändern kannst. Nicht lokal am Mac und auch dann nicht, wenn sie z.B. auf einem Netzwerk-Laufwerk gespeichert wird und eine Dose die Datei aufmacht..
Ja, ich bin sicher, und habe da gerade nochmal ausprobiert. (mit Acrobta, nicht mit Vorschau. Aber da darf es eigentlich auch nicht gehen.)
 
Hallo Denny,

ich vermute mal, dass Du Dir das DVI-/PDF-Ergebnis nach einem LaTeX-Durchlauf anschauen willst.
TeXShop bietet neben einem recht komfortablen Editor ein Vorschaufenster auf die PDF-Datei, das nach jedem Durchlauf aktualisiert wird. Schreibe gerade meine Diplomarbeit damit und bin sehr zufrieden mit dem Programm.

Viele Grüße
Kirby
 
Hallo Kirby,

> ich vermute mal, dass Du Dir das DVI-/PDF-Ergebnis nach einem
> LaTeX-Durchlauf anschauen willst.

Exakt! ;-)

> TeXShop bietet neben einem recht komfortablen Editor ein Vorschaufenster

Hmm, das werde ich mir nocheinmal ansehen, obwohl mein Editor (emacs) bereits feststeht.

> Schreibe gerade meine Diplomarbeit damit

Sehr löblich, daß Du dazu LaTeX verwendest. Viel Erfolg!

Gruß, Denny
 
> Das scheitert schon daran, dass Du eine PDF, die z.B. in Acrobat geöffnet
> ist, gar nicht ändern kannst.

Natürlich ist das möglich, das ist eines der UNIX-Idiome z.B. zum Erzeugen temporärer Dateien, wobei sich der erzeugende Prozeß dann nicht mehr um das Aufräumen bei unerwarteten Programmabbrüchen (z.B. im Signal-Handler) kümmern muß. Als Skizze sieht das etwa so aus:

Code:
char *file = "/tmp/whatever";
int fd = open(file, ...);
unlink(file);
write(fd, ...);

Nach dem unlink steht der file descriptor weiter zur Verfügung, nur ist die Datei über das Filesystem nicht mehr zu erreichen. Das gleiche Prinzip gilt bei meinem Beispiel: acroread stellt den Inhalt des initial geöffneten file descriptors dar; unabhängig davon, ob ein anderer Prozeß (hier pdflatex) in der Zwischenzeit das File auf Platte neu geschrieben hat. Wünschen würde ich mir, daß acroread (oder preview) ab und an einmal per stat o.ä. nachsieht, ob sich das file nicht inzwischen geändert hat.

> Ja, ich bin sicher, und habe da gerade nochmal ausprobiert.

Das verwundert mich, denn hier klappt das wie erwartet.

Gruß, Denny

Edit: Noch ein anderes Beispiel wäre das Ersetzen von benutzten shared libraries im laufenden System. Auch das klappt, da benutzende Prozesse einen file descriptor verwenden, der auf die (dann) alte Version verweist, obwohl auf Platte bereits die aktualisierte Version liegt.
 
Hallo Denny,

>> TeXShop bietet neben einem recht komfortablen Editor ein Vorschaufenster
> Hmm, das werde ich mir nocheinmal ansehen, obwohl mein Editor (emacs) bereits feststeht.

Gegen den emacs kann der TeXShop-eigene Editor nicht mithalten, den Psychologen im emacs hab ich aber bisher auch noch nicht gebraucht ;)
Laut Hilfe kann TeXShop auch mit externen Editoren umgehen, probiert hab ich das aber nicht.

>> Schreibe gerade meine Diplomarbeit damit
> Sehr löblich, daß Du dazu LaTeX verwendest. Viel Erfolg!

Danke!

Viele Grüße
Kirby
 
dpr schrieb:
> Das scheitert schon daran, dass Du eine PDF, die z.B. in Acrobat geöffnet
> ist, gar nicht ändern kannst.

Natürlich ist das möglich, das ist eines der UNIX-Idiome z.B. zum Erzeugen temporärer Dateien, wobei sich der erzeugende Prozeß dann nicht mehr um das Aufräumen bei unerwarteten Programmabbrüchen (z.B. im Signal-Handler) kümmern muß. Als Skizze sieht das etwa so aus:

Code:
char *file = "/tmp/whatever";
int fd = open(file, ...);
unlink(file);
write(fd, ...);

> Ja, ich bin sicher, und habe da gerade nochmal ausprobiert.

Welchen "Schweinskram" Du mit "C" oder Unix machen kannst ist das eine, was Du mit Apple-Anwendungen wie Distiller machen kannst, das andere.
Und weder beim Schreiben von PDF aus OS-X heraus, noch aus Indesign, noch mit dem Distiller kannst Du eine PDF überschreiben, die gerade geöffnet ist - basta.
 
> Welchen "Schweinskram" Du mit "C" oder Unix machen kannst ist das eine,
> was Du mit Apple-Anwendungen wie Distiller machen kannst, das andere.

Gleiche Darstellung, nur von der anderen Seite betrachtet: welche Eigenschaften der Dateiarbeit Du aus der Beobachtung Deiner präferierten Applikationen ableitest ist das eine, welche Eigenschaften file descriptoren des verwendeten Betriebssytems (auf dem auch Deine verwendeten Applikationen aufsetzen müssen) haben, das andere.

> Und weder beim Schreiben von PDF aus OS-X heraus [...] kannst Du eine
> PDF überschreiben, die gerade geöffnet ist

Wie ich bereits schrieb: ich mache das ständig. Ebenso habe ich bereits versucht, zu beschreiben, warum und wie das unter einem UNIX funktioniert. Daß einige Applikationen ggf. zusätzliches Locking implementieren, mag ja sein. Dennoch ist die allgemeine Aussage falsch, daß geöffnete Files nicht geschrieben werden können.

> basta

Schon recht :)
 
dpr schrieb:
> Welchen "Schweinskram" Du mit "C" oder Unix machen kannst ist das eine,
> was Du mit Apple-Anwendungen wie Distiller machen kannst, das andere.

Gleiche Darstellung, nur von der anderen Seite betrachtet: welche Eigenschaften der Dateiarbeit Du aus der Beobachtung Deiner präferierten Applikationen ableitest ist das eine, welche Eigenschaften file descriptoren des verwendeten Betriebssytems (auf dem auch Deine verwendeten Applikationen aufsetzen müssen) haben, das andere.

> Und weder beim Schreiben von PDF aus OS-X heraus [...] kannst Du eine
> PDF überschreiben, die gerade geöffnet ist

Wie ich bereits schrieb: ich mache das ständig. Ebenso habe ich bereits versucht, zu beschreiben, warum und wie das unter einem UNIX funktioniert. Daß einige Applikationen ggf. zusätzliches Locking implementieren, mag ja sein. Dennoch ist die allgemeine Aussage falsch, daß geöffnete Files nicht geschrieben werden können.

> basta

Schon recht :)

Du widersprichst Dir selbst.
Ganz oben schreibst Du, dass das mit Acrobat nicht geht. Da hast Du recht.
Unten schreibst Du, dass Du das ständig machst.

Was denn nun?
Letzendlich hast Du pauschalisiert, nicht ich. Ich sprach (schrieb) immer und ausnahmslos nur von PDF und Acrobat/Mac-OS. Die überschreiben keine geöffneten PDF-Files, das ist auch gut so, und wird immer so bleiben.
Dass Unix irgendwann irgendwo irgendwie doch geöffnete Files überschreiben kann interessiert in dem Zusammenhang sicherlich kaum einen ausser Dir.

QST
 
> Du widersprichst Dir selbst.

Auch das ist falsch. Wenn Du meine Beiträge aufmerksam gelesen hättest, hättest Du das bereits bemerken können:

> Ganz oben schreibst Du, dass das mit Acrobat nicht geht. Da hast Du
> recht.

Acrobat Reader oder Preview stören sich nicht ansatzweise daran, daß ein mit diesen Applikationen betrachtetes PDF während der Betrachtung von einem zweiten Prozeß (z.B. pdflatex) geschrieben wird. Mag sein, daß das mit dem Acrobat Writer nicht funktionert, das war jedoch nie die Frage.

> Unten schreibst Du, dass Du das ständig machst.

pdflatex (das benannte ich z.B. in Beitrag #5) ist es völlig gleichgültig, ob das File, das es gerade selbst schreibt, in der Vergangenheit von irgendeinem Prozeß gelesen wurde oder ob ein mit dem Filenamen assoziierter file descriptor geöffnet ist.

> Was denn nun?

Einfach meinen Text genau lesen: Prozeß A (Acrobat Reader, Preview) liest, Prozeß B (pdflatex) schreibt. Beide stören sich nicht, warum auch? Die Frage war, ob man Prozeß A dazu überreden kann, Änderungen durch B zu erkennen.

> Letzendlich hast Du pauschalisiert, nicht ich.

Ich habe nicht pauschalisiert, sondern erfolglos versucht, Dir im Kontext dieses Problems eine Eigenschaft von File descriptoren und deren Sinnhaftigkeit zu vermitteln.

> Ich sprach (schrieb) immer und ausnahmslos nur von PDF und
> Acrobat/Mac-OS.

Ich habe (s.o.) nicht behauptet, daß ich PDFs mit Acrobat schreiben will. Was verstehst Du eigentlich unter Mac-OS? Die bunte Oberfläche?

> Dass Unix irgendwann irgendwo irgendwie doch
> geöffnete Files überschreiben kann interessiert in dem Zusammenhang
> sicherlich kaum einen ausser Dir.

Ich habe dieses Konzept sogar verstanden. :) Das es Dich nichteinmal interessiert, hast Du eindrucksvoll beschrieben.

Sollten Dir noch stichhaltigere Argumente als "das ist so" einfallen, können wir diese Diskussion gerne fortsetzen. Anderenfalls wünsche ich viel Spaß mit Deinen Applikationen betrachte ich diese Diskussion als beendet.
 
Zuletzt bearbeitet:
Problem gelöst

> einen PDF oder DVI-Viewer (zur Not geht auch PostScript), der bei Änderung
> des dargestellten Files dieses automatisch neu lädt

Fürs Archiv: TeXniscope macht genau das.

Gruß, Denny
 
Zurück
Oben Unten