Synchronisierung ist eine wichtige Funktion von Textures. Textures ist eine kommerzielle TeX-Implemetierung für den Mac von Blue Sky TeX Systems. Hierbe ist es möglich, dass ein Autor in das Vorschau-Fenster klickt und automatisch zur korrespondierenden Stelle im Quelltext gelangt. Textures ist jedoch noch nicht in einer nativen Mac OS X-Version erhätlich. Diese Implementierung der Synchronisierung von Textures wird überall für seine Präzision im Auffinden des korrespondierenden Quelltextes gelobt.

TeX-Systeme anderer Plattformen haben versucht diese Funktion zu immitieren, indem sie eine zusätzliche Style-Datei benutzt haben, durch die TeX veranlasst wurde die nötigen Informationen in die dvi-Datei zu schreiben. Im Sommer 2003 schrieb Piero D'Ancona ein ähnliches Hilfmittel für pdflatex. Dieses Paket, „pdfsync.sty”, bringt pdftex dazu eine zusätzliche Datei mit Informationen zu Synchronisieren von Eingabe- und Ausgabefenster zu erzeugen. D'Anconas Arbeit basiert auf pdftex-internen Befehlen, die x- und y-Koordinaten von verschiedenen Satzoperationen ausgeben.

Mit TeXShop können sie auf zweierlei Art und Weise synchronisieren. Die Standardmethode nutzt herfür die neue Funktion in Mac OS X 10.4, die es erlaubt nach Text in PDF-Dateien zu suchen. Hirfür werden keine speziellen style-Dateien benötigt. Klicken Sie einfach auf ein Wort oder einen Satz im Quelltext-Fenster und halten Sie dabei die Befehls-(Apfel-)Taste gedrückt; im Vorschaufenster wird nun automatisch die entsprechende Stelle angezeigt und rot eingekreist. Ebenso wird, wenn Sie auf ein Wort oder einen Satz im Vorschau-Fenster klicken und dabei die Befehls-Taste gedrückt halten, die entsprechende Quelldatei (wenn nötig) geöffnet und der passende Text gelb markiert.

Diese Methode ist von dem Programm, das Sie zum Setzen benutzen unabhängig und funktioniert daher mit pdftex und pdflatex, mit TeX + Ghostscript und LaTeX + Ghostscript, mit XeTeX und mit anderen Programmen.

Wenn Sie diese Funktion benutzen ist es nützlich den zu Grunde liegenden Mechanismus zu verstehen. Nehmen wir an, Sie klicken auf einen Punkt im Quelltext. TeXShop durchsucht liest nun 20 Zeichen rechts und links von Ihrem Klickpunkt aus und sucht nach diesen Zeichen in der PDF-Ausgabe-Datei. Findet TeXShop diese Zeichnfolge genau einmal, wird eine erfolgreiche Suche dadurch angezeigt, dass die gefundene Stelle in der PDF-Datei eingekreist wird. Oft jedoch beinhaltet der Quelltext Zeichen, die in der Ausgabedatei nicht erscheinen. Dies ist vor allem bei mathematischen Zeichen der Fall. Schlägt also die Suche fehl, so geht TeXShop fünf Zeichen zurück und liest wiederum 20 Zeichen rechts und links zur Suche aus. Dieser Vorgang wird 20 mal rückwärts, und wenn dies immernoch kein Ergebnis erzielt, 20 mal vorwärts wiederholt. Wird auch nun nichts gefunden, so gibt TeXShop die Suche auf.

Es ist somit offensichtlich, dass es besser ist auf einen Satz anstatt auf eine Formel zu klicken. Auch Absätze mit hohem Anteil an Metasprache synchronisieren nicht besonders gut. Test ergeben jedoch, dass Suchanfragen normalerweise erfolgreich sind und daher die Funktion ohne weiteres Nachdenken benutzt werden kann.

Synchronisierung aus dem Vorschau-Fenster funktioniert auf die selbe Weise. Hierbei ist jedoch zu beachten, dass der Quelltext aus verschiedenen Dateien, die mit \include oder \input eingebunden sind, bestehen kann. TeXShop löst dieses Problem dadurch, dass es davon ausgeht, dass alle \include oder \input Befehle in der Hauptdatei stehen. In der ersten Umsetzung erstellt TeXShop eine Liste der 20 ersten Dateien, die so eingebunden wurden und durchsucht sie alle. Wird die Zeichenfolge genau einmal gefunden, so wird Erfolg gemeldet. Liegt das Suchergebnis in einer Datei, die noch nicht geöffnet ist, so öffnet TeXShop diese. Daraufhin bewegt es den Cursor an die entsprechende Stelle und markiert diese gelb. (In zukünftigen Umsetzungen wird die Anzahl der durchsuchten Dateien eventuell erhöht. Bitte schreiben Sie mir, wenn Sie mehr Dateien benötigen.)

Ältere Versionen von TeXShop nutzten eine alternative Methode der Synchronisierung, die im Jahr 2003 von Jérôme Laurens und Piero D'Ancona entwicklelt wurde. Sie schrieben eine Style-Datei für pdflatex. Ihr Paket: pdfsync.sty bewirkt, dass pdftex während des Setzens eine Hilfsdatei erstellt, die die Verbindungen zwischen Quell- und Ziel-Datei herstellt. Laurensens und D'Anconas Arbeit basiert auf pdftex-internen Befehlen, die die x- und y-Koordinaten einiger Satzoperationen ausgibt. Daher funktioniert dies nur mit pdftex, pdflatex und context.

TeXShop kann diese Methode immernoch benutzen. Durch eine Einstellung unter "Sonstiges", kann diese Methode eingestellt werden. "pdfsync" ist die alte, "pdfsearch", die neue Methode. Es ist auch möglich pdfsync zu verwenden, falls pdfsearch versagen sollte.

Um die "pdfsync"-Mthode zu nutzen, müssen Sie die aktuellste Version von pdfsync und den dazu gehörigen Dateien installieren. Lesen Sie hierzu "Wie konfiguriere ich TeXShop?: Wurde TeXShop richtig installiert?" um sicher zu stellen, dass Sie alle Dateien installiert haben.

Um pdfsync zu benutzen, fügen Sie folgende Befehlsfolge in die Preambel ihrer Quelldatei (vor \begin{document})ein:

  \usepackage{pdfsync}

Dieses Paket wird ignoriert, wenn Sie mit tex + ghostscript arbeiten. Verwenden Sie jedoch pdflatex, so wird eine zusätzliche Datei mit dem Suffix „.pdfsync“ erstellt. Ist der Titel Ihrer Quelldatei „Haupt.tex“ so lautet diese „Haupt.pdfsync“. In dieser Datei werden die notwendigen Informationen zum Synchronisieren gesichert. Die meisten Dateien sollten ohne Fehler mit pdfsync gesetzt werden. In einigen Fällen kann dieses Paket jedoch zu Fehlern führen. Code der zu Fehlern führt, sollte dann zwischen das Befehlspaar „\pdfsyncstop“ und „\pdfsyncstart“ gesetzt werden. Wenn Sie eine höhere Genauigkeit erzielen wollen, können Sie mit dem Befehl „\pdfsync“ weitere Synchronisationspunkte setzen.

Wurde eine Datei mit pdfsync gesetzt, können Sie zwischen Quelltext- und Vorschau-Fenster wechseln, indem Sie an eine bestimmt Position in einem der Fenster klicken während Sie die Befehlstaste drücken. Sofort sollten Sie zur entsprechenden Stelle im jeweils anderen korrespondierenden Fenster gelangen. Gehört der Punkt im Vorschau-Fenster zu einer Quelldatei die nicht geöffnet ist, so wird diese geöffnet und zum entsprechenden Punkt gescrollt. Andersherum wird direkt zum entsprechenden Punkt im Vorschau-Fenster gesprungen, wenn Sie die Befehlstaste gedrückt halten und in den Quelltext klicken.

Dieser Prozess funktioniert, wenn die Quelldatei eine %SourceDoc-Angabe hat oder eine Hauptdatei festgelegt wurde. Achtung: Wenn ein Hauptdokument noch andere Dateien mit dem \inlcude-Befehl einbindet, die jedoch keine %SourceDoc-Angabe oder eine Hauptdatei festgelegt haben, so wird zwar von Vorschau-fenster zum entsprechenden Quelltext, jedoch nicht wieder zurück gesprungen. Um dies zu vermeiden sollten Sie die %SourceDoc-Angabe bei allen Dateien Ihres Projekts hinzufügen.

In dieser anfänglichen Implemetierung lässt die Genauigkeit zu wünschen übrig. Die entsprechende Stelle im Quelltext kann um ein paar Zeilen variieren. Die Synchronisationtechnik wird jedoch weiter überarbeitet und wird sich weiter verbessern.

Wie oben schon beschrieben arbeitet pdfsync mit Dateien zusammen, die mt dem Befehl „\include{meinedatei} eingebettet wurden. Der Befehl „\input“ wird auch unterstützt. Allerdings nur in folgender Syntax: „\input{meinedatei}“. Die Alternative Synatx „\input meinedatei“ funktioniert nicht.

Die Datei „pdfsync.sty“ wird von LaTeX verwendet. Ähnliche Dateien, „pdfsync.tex“ und „pdfsync4context.tex“ sind für Synchronisation mit TeX und ConTeXt gedacht.

Die Synchronisation wird dadurch bewerkstelligt, dass Daten über korrespondierende Synchronisationspunkte in die „meinedatei.pdfsync“ geschrieben werden. Jeder Eintrag enthält etwa folgende Information:

  Die Seitenzahl im Vorschau-Dokument, auf der der Punkt auftaucht
  Der genaue Ort des Punktes auf dieser Seite
  Der Name der Quelldatei, die diese spezielle Seite ausgibt
  Die Zeilennummer der Quelldatei für diese speielle Ausgabe

Man kann sich die Synchronisationspunkte in TeXShop anzeigen lassen. Im Vorschaufenster kann man sich eine Option mit dem Titel „SyncMarks“ einblenden lassen. Normalerweise ist diese ausgeblendet. Sie können diese aber einblenden, indem Sie sie mit dem Menüpunkt „Werkzeugleiste anpassen“ zu ihrer Werkzeugleiste hinzufügen. Ist die Option gewählt, werden die Synchronisationspunkte angezeigt.

Erscheint das Vorschau-Fenster zum ersten Mal ist die Option nicht ausgewählt. Sie können dieses Verhalten jedoch mit Hilfe einer versteckten Einstellung anpassen:

  defaults write TeXShop ShowSyncMarks YES

Erweitert
Pdfsync