-
 iTeXMac2 News - iTeXMac News - What is iTeXMac - Screen Shots - The SyncTeX page Screenshot Download Specifications Example Credits - Download Section - iTM Resources - iTM FAQ - Lists - iTM Bug reporter - iTM's future - iTM's developer section - Localize section - TeX section - Credits

This is the official SyncTeX page.

## Presentation

You can see synchronization based on SyncTeX in Jonathan Kew's TeXWorks or iTeXMac2

This is the historical repository of the SyncTeX package. The full package consists of the following 7 files: You can retrieve all the files at once: SyncTeXPackage.zip.

The most recent source is retrieved from the texlive reppository with a svn client.

svn co svn://tug.org/texlive/trunk/Build/source/texk/web2c/synctexdir

This repository also contains files that are specific to TeX and do not concern the synctex parser.

Developers are expected to maintain a local copy of the full SyncTeX parser package. To check if a new version is available, they can make the difference between their local synctex_parser_version.txt file and the remote one.

## Limitations and bugs

The synctex command line tool distributed in TeXLive 08 is based on a buggy synctex parser. The errors are fixed in this new version, but the limitations still hold, in particular when ConTeXt is involved. Enhancements should be expected.

### SyncTeX and ConTeXt

When backwards synchronization is involved, ConTeXt renders things difficult. The problem is that the ConTeXt output routine creates output pages with different overlapping layers. It has definitely a 3D structure. When the user clicks at some location in the output document, only a 2D information is provided and we do not know for sure which layer should be selected. Fortunately, there are some heuristics that work quite everytime.

### SyncTeX and Beamer

The LaTeX beamer package is using techniques that SyncTeX cannot observe. Actually, consider the following code snippet:

 line 100: \def\thetext{Some text to be processed later} 

 ... 

 line 200: \thetext 

SyncTeX will synchronize with line 200 which is not very useful but not with line 100. SyncTeX has no mean to guess that line 100 will be used later on in the page. In general, the direct synchronization will give the correct page but the reverse synchronization gives a line after the correct one. In forthcoming versions, new TeX primitives will be added to catch properly this situation. This is a limitation of the original TeX engine.

As a consequence, Synchronization will only work for applications like iTeXMac2 or TeXShop, because they also use some text analysis.

Maybe it is possible to refactor beamer to use different techniques that SyncTeX can observe but it might be a big job.

Note that other synchronization technologies like pdfsync, srcltx or source specials will also fail in such situations.

## The SyncTeX Viewer

I have been asked to share the lightweight pdf viewer I wrote on Mac OS X to help me design SyncTeX. Here is SyncTeX Viewer.zip. Due to a lack of time, it won't be supported.

Eventually, integration of the viewer technology into TeXWorks can be considered.

## More...

It will contain more material soon.

-