News

This is my personal home page. If you are looking for the Cracklock utility go to this section. You can download other freewares that I have developed on this page, and if you want to know about my PhD research then go to this page.

Configuring editors with SumatraPDF 
This document explains how to configure your favourite editor for synchronization with SumatraPDF.

Introduction


Synchronization technologies

SumatraPDF supports two synchronization technologies: pdfsync and the more recent SyncTeX.

To use the first one you just need to load the 'pdfsync' package in your latex document as follows:
\usepackage{pdfsync}
When compiling your source file, LaTeX will generate a .pdfsync file along with the .pdf output file. This file can then be used by SumatraPDF to perform synchronization.

With SyncTeX it is not necessary to load any package. However you need to specify the 'synctex' switch when compiling your document with pdflatex:
pdflatex -synctex=-1 document.tex
Also make sure you have updated your TeX installation as only recent releases of pdftex support this feature (TeXLive 2008 and MikTex 2.7).

For more details on the synchronization feature of SumatraPDF, check the following posts: Post 1 Post 2 Post 3.

Inverse search

With the inverse search synchronization feature, double-clicking on the PDF file in SumatraPDF brings you directly to corresponding line in the .tex source file.

By default the WinEdt editor is invoked. If you are using the build of SumatraPDF from my website, then you can change this command by choosing the Menu 'File\Set inverse search command line'. The format of the string is:
"C:\Program Files\MyEditor\MyEditor.exe" PARAMETERS
where PARAMETERS can contain the following macros:
%f path to the TeX source file
%l line number
%c column number

Forward search

Forward search gives you the ability to go from the source .tex file to the corresponding location in the PDF. When you invoke a forward search from your editor, SumatraPDF automatically highlights the corresponding location in the PDF. The communication between the editor and SumatraPDF relies on the DDE protocol (Supported by most editors such as WinEdt and TeXnicCenter).

Synchronization in action


Screenshot

Configuration for commonly used editors


WinEdt

Inverse search
Inverse search command:
"C:\Program Files\WinEdt Team\WinEdt\winedt.exe" "[Open(|%f|);SelPar(%l,8)]"

Forward search
1- Download the macro file Sumatra-Find.edt.
2- Save it in the folder: C:\Program Files\WinEdt Team\WinEdt\Exec\
3- Open the menu 'Option\Execution Modes', tab 'Acrobat' and set the field 'PDF viewer Executable' to the path to your local copy of SumatraPDF.EXE.
4- Go to the menu 'Option\Menu setup'. Create a new macro menu somewhere (under 'Accessories' for instance) and fill the options as follows:
Name: Sumatra Find
Macro: Exe('%b\Exec\Sumatra-Find.edt');
Requires File Filter: %P\%N.pdf
Start in: %P
Shortcut: F8

Now when editing a .tex file in WinEdt, you can invoke forward search by pressing F8.

TeXnicCenter

Latex compilation
If your are using synchronization based on the pdfsync package then you can just compile your TeX file as usually. If instead you prefer to use SyncTeX-based synchronization then you need to tweak the compilation switches in TeXnicCenter as follows:
1- Menu 'Build\Define output profiles...'
2- Select the profile "Latex=>PDF"
3- Select the tab '(La)TeX'
4- In the field 'Command line arguments to pass to the compiler' add -synctex=-1.

Inverse search
The inverse search command is:
"C:\Program Files\TeXnicCenter\TEXCNTR.EXE" /ddecmd "[goto('%f', '%l')]"

If you are using the official build of SumatraPDF this setting can be set permanently at the command-line with:
"C:\Program Files\SumatraPDF\SumatraPDF.exe" -inverse-search "\"C:\Program Files\TeXnicCenter\TEXCNTR.EXE\" /ddecmd \"[goto('%f', '%l')]\""

If you are using my own build then go to SumatraPDF setting dialog and set up the inverse search command from there. It will automatically suggests the correct command-line for TeXnicCenter if SumatraPDF-TeX detects that TeXnicCenter is installed.

Forward search
In TeXnicCenter choose menu 'Build\Define output profiles...',
select the profile "Latex=>PDF", go to tab 'Viewer'
and fill the options as follows:

'Path of executable':
C:\Program Files\SumatraPDF\SumatraPDF.exe -reuse-instance

'View project's output':
Select option 'DDE command'
Command: [Open("%bm.pdf",0,1,1)]
Server: SUMATRA
Topic: control

'Forward search':
Select option 'DDE command'
Command: [ForwardSearch("%bm.pdf","%Wc",%l,0,0,0)]
Server: SUMATRA
Topic: control

'Close document before running (La)TeX':
Do not close

(nt)Emacs

Inverse search
Set the following inverse search command in SumatraPDF (menu 'File\Set inverse search command line'):
c:\emacs\bin\emacsclientw.exe +%l "%f"

Make sure the emacs server is started by by running the command
server-start
from within Emacs or by adding (server-start) to your emacs init file. (See Emacs doc)

Auctex settings
- Configure the pdflatex-command from the configure menu in emacs:
(LaTeX-command "latex -synctex=-1")
- Set 'Latex\Customize Auctex\Tex command\Tex Output View Style\Line containing the phrase <^pdf$>' to
C:\Programme\SumatraPDF\SumatraPDF.exe %o

Forward search
1- Download the script file sumatra-forward.el
2- Update your init.el or .emacs file to load the sumatra-forward script by adding the following command:
(require 'sumatra-forward)
3- Make sure that you have the ddeclient tools. (It is bundled with ntemacs)
4- Restart Emacs
5- Press F8 in the TeX document to trigger a forward-search

Further explanations on how to make Emacs+Auctex work with SumatraPDF are available here.

Vim

Julien Cornebise and Manuel Pégourié-Gonnard have developed a patch for Vim-latex. You can download it from vim-fwdsumatra.zip.
Installation instructions are provided in the zip file.