PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Linux synctex



atero
09-01-2010, 01:11
Hallo,

ich arbeite zusammen mit Anderen an einem Latex Dokument. Ich unter Linux, die Anderen auf dem Mac.

Sie verwenden folgendes:

\usepackage{pdfsync}
\synctex=1

Ich denke das ist zum Synchronisieren zwischen PDF Viewer und Editor. So weit ich weiß, wird das bei mir unter Linux mit Kile nicht funktionieren. Schade da es ein praktisches Feature ist, aber gut. Nur bekomme ich beim Kompilieren den Fehler "Undefined control sequence \synctex" (ich nehme mal an auf dem Mac lief der Code fehlerfrei). Jedes mal auskommentieren von \synctex wenn ich was am Dokument mache und danach wieder einkommentieren ist eine Möglichkeit, allerdings nicht sonderlich elegant. Fällt euch vielleicht eine bessere Lösung ein?

Viele Grüße
atero

voss
09-01-2010, 09:31
ich arbeite zusammen mit Anderen an einem Latex Dokument. Ich unter Linux, die Anderen auf dem Mac.

Sie verwenden folgendes:

\usepackage{pdfsync}
\synctex=1

Ich denke das ist zum Synchronisieren zwischen PDF Viewer und Editor. So weit ich weiß, wird das bei mir unter Linux mit Kile nicht funktionieren. Schade da es ein praktisches Feature ist, aber gut. Nur bekomme ich beim Kompilieren den Fehler "Undefined control sequence \synctex" (ich nehme mal an auf dem Mac lief der Code fehlerfrei). Jedes mal auskommentieren von \synctex wenn ich was am Dokument mache und danach wieder einkommentieren ist eine Möglichkeit, allerdings nicht sonderlich elegant. Fällt euch vielleicht eine bessere Lösung ein?


du hast einfach das Paket synctex nicht geladen ... ansonsten gibt
es auch nicht die Fehlermeldung.

Herbert

localghost
09-01-2010, 14:23
[...] Ich denke das ist zum Synchronisieren zwischen PDF Viewer und Editor. So weit ich weiß, wird das bei mir unter Linux mit Kile nicht funktionieren. [...]
Ändere in Kile doch einfach die Optionen für den Compiler und füge -synctex=-1 hinzu (siehe Anhang).


MfG
Thorsten¹

atero
09-01-2010, 15:45
du hast einfach das Paket synctex nicht geladen ... ansonsten gibt
es auch nicht die Fehlermeldung.

Da hast du Recht, synctex wird nicht geladen. Will ich es laden, sagt mir Kile "synctex.sty not found", scheint also nicht installiert zu sein. Über den Linux Paketmanager apt bekomme ich synctex so wie es aussieht nicht installiert, auf der Homepage (http://itexmac.sourceforge.net/SyncTeX.html) und bei CTAN (http://www.ctan.org/tex-archive/support/synctex-parser/) habe ich nichts gefunden was nach einem einfach installierbaren Paket aussieht. So etwas wie

if (Betriebssystem == Mac){
\synctex=1
}
ist mit Latex nicht möglich, oder?



Ändere in Kile doch einfach die Optionen für den Compiler und füge -synctex=-1 hinzu (siehe Anhang).
Das deaktiviert die synctex-Option doch nur wieder, oder? Das heißt installiert sein muss synctex dafür erst einmal?

Viele Grüße
atero

localghost
09-01-2010, 15:56
Das deaktiviert die synctex-Option doch nur wieder, oder? Das heißt installiert sein muss synctex dafür erst einmal? [...]
Wie kommst Du darauf? Es ersetzt den anderen Kram.

atero
09-01-2010, 16:30
Wie kommst Du darauf? Es ersetzt den anderen Kram.
Da im Code synctex=1 steht, die Option für den Compiler war synctex=-1. 1=an, -1=aus - so meine Vermutung.

Ganz verstanden habe ich dich auch noch nicht. Ich fange mit dem synctex ja sowieso nichts an. Wenn dann müssten doch die Zeilen im Latex-Code raus und meine Kollegen am Mac müssen ihrem Compiler diese Option übergeben, oder? Oder funktioniert das synchronisieren auch bei mir unter Linux wenn ich die Compiler-Option setze (mit Kile - Evince)?

u_fischer
09-01-2010, 17:15
Man braucht kein Paket für synctex. Aber man braucht ein aktuelles pdftex. Bei mir (miktex 2.7., pdfTeX, Version 3.1415926-1.40.9) funktioniert dieses tadellos:

\documentclass{article}
\synctex=1
\begin{document}
abc
\end{document}

Man kann synctex aber auch beim pdflatex-Aufruf aktivieren
(pdflatex --synctex=1), dann braucht man keinen Befehl im Dokument.

Um den Befehl zu maskieren, kannst du
\ifcsname synctex\endcsname\synctex=1\fi
benutzen.

synctex ergänzt aber nicht das pdfsync-Paket sondern ersetzt es, von daher ist \usepackage{pdfsync} eigentlich falsch.

lockstep
09-01-2010, 17:23
Da im Code synctex=1 steht, die Option für den Compiler war synctex=-1. 1=an, -1=aus - so meine Vermutung.

Deine Vermutung ist falsch. 1=komprimierte synctex-Datei, -1=unkomprimierte synctex-Datei, 0=aus.

lockstep

atero
09-01-2010, 19:50
Man braucht kein Paket für synctex. Aber man braucht ein aktuelles pdftex. Bei mir (miktex 2.7., pdfTeX, Version 3.1415926-1.40.9) funktioniert dieses tadellos:

Ausgabe in der Konsole nach Eingabe von "pdftex": "This is pdfTeXk, Version 3.1415926-1.40.9 (Web2C 7.5.7)". Dein Minimalbeispiel erzeugt bei mir den gleichen Fehler wie mein Dokument. Ich verwende Ubuntu und habe daher glaube ich texlive 2008 (?) statt miktex.



Um den Befehl zu maskieren, kannst du
\ifcsname synctex\endcsname\synctex=1\fi
benutzen.

Damit kompiliert das Dokument wieder, soweit klasse! Mich würde allerdings noch interessieren wie das jetzt funktioniert. Der Text zwischen csname habe ich gelesen bildet ein Tex-Kommando. Macht dein Code also das:

if (Tex-Kommando "synctex" existiert){synctex := 1}
?


synctex ergänzt aber nicht das pdfsync-Paket sondern ersetzt es, von daher ist \usepackage{pdfsync} eigentlich falsch.
das heißt entweder synctex=1 im Code oder über den Compiler setzen, es muss aber in keinem Fall ein Paket wie pdfsync geladen werden. Richtig?


Deine Vermutung ist falsch. 1=komprimierte synctex-Datei, -1=unkomprimierte synctex-Datei, 0=aus.

lockstep
ah ok, danke.