понедельник, 9 ноября 2009 г.

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-sync.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
Inverse search command:
"C:\Program Files\TeXnicCenter\TEXCNTR.EXE" /ddecmd "[goto('%f', '%l')]"

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

Forward search
To setup forward-search with TeXnicCenter proceed as follows:
1- Menu 'Build\Define output profiles...'
2- Select the profile "Latex=>PDF"
3- Select the tab 'Viewer'
4- Fill the options as follows:
Path of executable: c:\tools\SumatraPDF-sync.exe -reuse-instance
Forward search: select DDE command
Command: [ForwardSearch("%bm.pdf","%Wc",%l,0,0,0)]
Server: SUMATRA
Topic: control
View project's output: select DDE command
Command: [Open("%bm.pdf",0,1,1)]
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.

Источник

Комментариев нет: