Difference between revisions of "SyncTeX"

SyncTeX is a program that puts a lot of anchors in the output file that link to the corresponding position in the source file. This allows you to quickly jump from PDF to source.

Usage

You can use the `--synctex` switch to enable SyncTeX.

So in MkIV you can run

```context --synctex jobname
```

and in MkII you can use

```texexec --synctex jobname
```

Alternatively you can add one of the following commands to your MkIV document:

```\setupsynctex[state=start,method=min] % clickable words
\setupsynctex[state=start,method=max] % more efficient clickable ranges
```

This will create a file `jobname.synctex`. The command

```context --purge
```

or next run without `--synctex` will remove the file again.

To see what became clickable, use one of

```\enabletrackers[system.synctex.visualize]
\enabletrackers[system.synctex.visualize=real]
```

This file can be used by your editor and PDF viewer to jump back and forth between the source and the PDF.

Editors & Viewers

TeXWorks

You may need to modify the command for executing ConTeXt first (you need to add `--synctex` switch in preferences).

Evince, Okular & Kile

Okular (the KDE PDF viewer) and Evince (the GNOME one) support SyncTeX. (The latter since version 2.32.0)

To forward something from a text editor to Okular, do

```okular --unique '\${pdffile}#src:\${linenumber} \${texfile}'
```

Kile’s (the KDE TeX IDE) ForwardPDF function should support SyncTeX, but it doesn’t seem to work with ConTeXt at the time of writing

Skim.app & TextMate (Mac OS X)

In Skim/Preferences/Sync choose TextMate. The key combination

```Shift + Apple + MouseClick
```

will bring you to the corresponding line in text editor.

In TextMate I have created my own command inside the ConTeXt bundle:

• Save: Nothing
• Command(s)
```#!/bin/bash
pdf=\${TM_FILEPATH%tex}pdf
/Applications/Skim.app/Contents/SharedSupport/displayline -r "\$TM_LINE_NUMBER" "\${pdf}"
```
• Input: None
If you use `Apple+R` for typesetting that needs to be modified as well (to account for --synctex switch).