Boost logo

Boost-Commit :

From: dgregor_at_[hidden]
Date: 2008-03-03 15:17:08


Author: dgregor
Date: 2008-03-03 15:17:08 EST (Mon, 03 Mar 2008)
New Revision: 43481
URL: http://svn.boost.org/trac/boost/changeset/43481

Log:
Add pdfsync package
Added:
   sandbox/committee/concepts/stdlib/pdfsync.sty (contents, props changed)
   sandbox/committee/concepts/wording/pdfsync.sty (contents, props changed)

Added: sandbox/committee/concepts/stdlib/pdfsync.sty
==============================================================================
--- (empty file)
+++ sandbox/committee/concepts/stdlib/pdfsync.sty 2008-03-03 15:17:08 EST (Mon, 03 Mar 2008)
@@ -0,0 +1,273 @@
+% LaTeX package pdfsync.sty
+% =========================
+%
+% Presentation
+% ------------
+% pdfsync.sty allows one to synchronize between LaTeX source and pdf output.
+% When used with a text editor and a PDF viewer that both support pdfsync,
+% you can navigate from the source to the output and vice versa.
+% This is some kind of srcltx ported from dvi to pdf.
+%
+% When you typeset foo.tex with pdfsync.sty and either pdfetex or xetex, a foo.pdfsync auxiliary file is created.
+% It only contains geometrical information used by text editors or PDF viewers for synchronization.
+% You can delete this file when you are done.
+%
+% Actually, iTeXMac, iTeXMac2, TeXShop, TextMate, AucTeX are text editors implementing pdfsync support at various level.
+% iTeXMac, iTeXMac2, TeXShop, TeXniscope, PDFView are PDF viewers implementing pdfsync support at various level.
+%
+% Install
+% -------
+% If this package is not already included in you TeX distribution, just copy the pdfsync.sty file to the proper location.
+% On Mac OS X, it can be
+% YOUR_HOME_DIRECTORY/Library/texmf/tex/latex/graphics/graphics.sty
+% where you should replace YOUR_HOME_DIRECTORY by its actual value.
+%
+% Usage
+% -----
+% Put \usepackage{pdfsync} in your LaTeX preamble.
+%
+% In case of sever conflicts with another package, try \usepackage[novbox]{pdfsync} instead.
+%
+% If pdfsync only breaks some part of your LaTeX code, you can try to enclose it in a \pdfsyncstop \pdfsyncstart pair.
+% If you want to add more control point add \pdfsync at sensible locations in your code.
+% In that case, \usepackage[off]{pdfsync} will disable pdf synchronization and \relax the above commands.
+%
+% Use option nohbox (resp nocr, nopar, nomath, nodisplay) in order not to add control points every hbox (resp cr, par, math,display)
+%
+% Bugs
+% ----
+% pdfsync uses extremely severe code. You should not use pdfsync on final documents because it can change the layout rather significantly
+% (different page/line breaks are the most obvious changes), despite this is rather rare,
+% 17.8th Murphy's law states that it will happen to you when it absolutely must not...
+%
+% You should report bugs and package conflicts to jlaurens AT users DOT sourceforge DOT net.
+%
+% The accuracy of pdf synchronization depends on the editor/viewer used for that purpose.
+% iTeXMac2 is actually the most accurate implementation because it combines pdfsync with pdf searching.
+% So, the lack of accuracy is not a bug in pdfsync a priori.
+%
+% Credits:
+% -------
+% The original idea of pdfsync was proposed by Piero D'Ancona in the summer of 2003.
+% He and Jerome Laurens (jlaurens AT usersDOT sourceforge DOT net) both created the first working package.
+% Hans Hagen and David Kastrup made very significant enhancements to the original code.
+%
+% License
+% -------
+% This program is free software; you can redistribute it and/or modify
+% it under the terms of the The LaTeX Project Public License version 1.3c at least
+% http://www.latex-project.org/lppl.txt
+%
+% Home page
+% ---------
+% The official site is
+%
+% http://itexmac.sourceforge.net/pdfsync.html
+%
+% copyright 2006, jlaurens AT users DOT sourceforge DOT net
+%
+\ifx\pdfsync\undefined\else\message{**** pdfsync.sty: WARNING, the package is already loaded.}\expandafter\endinput\fi
+\def\c_at_nfigPDFSYNC@ff{%
+ \let\pdfsync\relax%
+ \let\pdfsyncstart\relax%
+ \let\pdfsyncstop\relax%
+}%
+\ifx\pdfsavepos\undefined
+\message{**** pdfsync.sty: WARNING, synchronization is only available with pdfetex like engines.}%
+\c_at_nfigPDFSYNC@ff
+\let\c_at_nfigPDFSYNC@ff=\undefined
+\expandafter\endinput
+\fi
+% Defining the preamble of the style file:
+\NeedsTeXFormat{LaTeX2e}%
+\ProvidesPackage{pdfsync}[2007/01/15 v1.0]%
+% start of the code
+\let\c_at_nfigPDFSYNCp@r\relax%
+\let\c_at_nfigPDFSYNCm@th\relax%
+\let\c_at_nfigPDFSYNCdispl@y\relax%
+\let\c_at_nfigPDFSYNChb@x\relax%
+\let\c_at_nfigPDFSYNCvb@x\relax%
+\let\c_at_nfigPDFSYNC@cr\relax%
+% Subverting |\everypar| to prepend pdfsync |\@PDFSYNC| specific code that will
+% be executed for each new paragraph.
+%This was primarly suggested by Curtis Clifton on 12/17/2004 (google "subvert token" for details).
+\def\c_at_nfigPDFSYNCp@r{\wlog{**** pdfsync.sty: Synchronizing at \string\everypar}%
+\newtoks\PDFSYNCeveryp_at_r
+\PDFSYNCeveryp_at_r\everypar
+\everypar{\bgroup\setbox\z@\lastbox\@PDFSYNC\box\z@\egroup
+ \the\PDFSYNCeveryp_at_r}%
+\let\everypar\PDFSYNCeveryp_at_r
+}%
+%
+\def\c_at_nfigPDFSYNCdispl@y{\wlog{**** pdfsync.sty: Synchronizing at \string\everydisplay}%
+\newtoks\PDFSYNCeverydispl_at_y
+\PDFSYNCeverydispl_at_y\frozen_at_everydisplay
+\frozen_at_everydisplay{\@PDFSYNC\the\PDFSYNCeverydispl_at_y}%
+\let\frozen_at_everydisplay\PDFSYNCeverydispl_at_y
+}%
+%
+\def\c_at_nfigPDFSYNCm@th{\wlog{**** pdfsync.sty: Synchronizing at \string\everymath}%
+\newtoks\PDFSYNCeverym_at_th
+\PDFSYNCeverym_at_th\frozen_at_everymath
+\frozen_at_everymath{\@PDFSYNC\the\PDFSYNCeverym_at_th}%
+\let\frozen_at_everymath\PDFSYNCeverym_at_th
+}%
+%
+\def\c_at_nfigPDFSYNChb@x{\wlog{**** pdfsync.sty: Synchronizing at \string\everyhbox}%
+\newtoks\PDFSYNCeveryhb_at_x
+\PDFSYNCeveryhb_at_x\everyhbox
+\everyhbox{\ifPDFSYNC_at_unblocked
+ \begingroup
+ \PDFSYNC_at_unblockedfalse
+ \setbox\z@\hbox\bgroup
+ \@PDFSYNC
+ \setbox\z@\hbox\bgroup\bgroup
+ \aftergroup\PDFSYNC_at_endhbox\the\PDFSYNCeveryhb_at_x
+ \PDFSYNC_at_unblockedtrue
+ \fi}%
+\let\everyhbox\PDFSYNCeveryhb_at_x
+\def\PDFSYNC_at_endhbox{\ifnum\lastnodetype>\m_at_ne
+ \egroup \unhbox\z@ \egroup \unhbox\z@
+ \else \egroup \egroup \fi \endgroup \egroup}%
+}%
+%
+\def\c_at_nfigPDFSYNCvb@x{\wlog{**** pdfsync.sty: Synchronizing at \string\everyvbox}%
+\newtoks\PDFSYNCeveryvb_at_x
+\PDFSYNCeveryvb_at_x\everyvbox
+\everyvbox{\ifPDFSYNC_at_unblocked
+ \begingroup
+ \PDFSYNC_at_unblockedfalse
+ \setbox\z@\vbox\bgroup
+ \@PDFSYNC
+ \setbox\z@\vtop\bgroup\bgroup
+ \aftergroup\PDFSYNC_at_endvbox\the\PDFSYNCeveryvb_at_x
+ \PDFSYNC_at_unblockedtrue
+ \fi}%
+\let\everyvbox\PDFSYNCeveryvb_at_x
+\def\PDFSYNC_at_endvbox{\ifnum\lastnodetype>\m_at_ne
+ \egroup
+ \edef\next{\egroup\hrule\@height\the\ht\z@\@depth-\the\ht\z@\relax}%
+ \unvbox\z@ \next \unvbox\z@
+ \else \egroup \egroup \fi \endgroup \egroup}%
+}%
+%
+\def\c_at_nfigPDFSYNC@cr{\wlog{**** pdfsync.sty: Synchronizing at \string\everycr}%
+\newtoks\PDFSYNCevery_at_cr
+\PDFSYNCevery_at_cr\everycr
+\everycr{\the\PDFSYNCevery_at_cr\@PDFSYNC}%
+\let\everycr\PDFSYNCevery_at_cr
+}%
+% Configure pdsync
+\def\c_at_nfigPDFSYNC{\wlog{Configuring pdfsync}%
+\newwrite\PDFSYNC_at_ut%
+\immediate\openout\PDFSYNC_at_ut\jobname.pdfsync%
+\immediate\write\PDFSYNC_at_ut{\jobname}% control info
+\immediate\write\PDFSYNC_at_ut{version 1}% control info
+% patching \shipout
+\let\PDFSYNCship_at_ut@ld\shipout%
+\gdef\PDFSYNCship_at_utn@w{%
+\afterassignment\PDFSYNC_at_utput%
+\setbox\@cclv= %
+}%
+\def\PDFSYNC_at_utput{%
+\relax%
+\ifvoid\@cclv\relax%
+\aftergroup\PDFSYNC@@utput%
+\else%
+\PDFSYNC@@utput%
+\fi%
+}%
+\gdef\PDFSYNC@@utput{%
+\global\advance\PDFSYNCf_at_li@ by 1%
+\immediate\write\PDFSYNC_at_ut{s\space\the\PDFSYNCf_at_li@}%
+\PDFSYNCship_at_ut@ld\box\@cclv%
+}%
+%
+% patching LaTeX \InputIfFileExists for \include and \input
+\let\PDFSYNCInputIfFileExists_at_ff\InputIfFileExists%
+\long\def\PDFSYNCInputIfFileExists_at_n##1##2##3{%
+\immediate\write\PDFSYNC_at_ut{(##1}%
+\PDFSYNCInputIfFileExists_at_ff{##1}{##2}{##3}%
+\immediate\write\PDFSYNC_at_ut{)}}%
+%
+\def\PDFSYNCP_at_siti@n{\the\pdflastxpos\space\the\pdflastypos}%
+%
+\newif\ifPDFSYNCst_at_r%
+\newif\ifPDFSYNCvb_at_x%
+\newcount\PDFSYNCf_at_li@\PDFSYNCf_at_li@=0%
+\newcount\PDFSYNC_at_rder\PDFSYNC_at_rder=0%
+\newif\ifPDFSYNC_at_unblocked
+\PDFSYNC_at_unblockedtrue
+% defining \@@PDFSYNC: the macro that writes to the .pdfsync file
+\def\@@PDFSYNC{%
+\relax%
+\immediate\write\PDFSYNC_at_ut{l\space\the\PDFSYNC_at_rder\space\the\inputlineno}%
+\pdfsavepos%
+\edef\next{\write\PDFSYNC_at_ut{p\ifPDFSYNCst_at_r*\else\ifPDFSYNCvb_at_x+\fi\fi\space\the\PDFSYNC_at_rder\space\noexpand\PDFSYNCP_at_siti@n}}%
+\next%
+\global\advance\PDFSYNC_at_rder by 1%
+\relax%
+}%
+%
+\def\@pdfsync{\bgroup\PDFSYNCst_at_rtrue\@PDFSYNC\egroup}%
+%
+\def\pdfsyncstart{%
+\let\shipout\PDFSYNCship_at_utn@w%
+\let\pdfsync\@pdfsync%
+\let\@PDFSYNC\@@PDFSYNC%
+\let\InputIfFileExists\PDFSYNCInputIfFileExists_at_n%
+}%
+\def\pdfsyncstop{%
+\let\shipout\PDFSYNCship_at_ut@ld%
+\let\pdfsync\relax%
+\let\@PDFSYNC\relax%
+\let\InputIfFileExists\PDFSYNCInputIfFileExists_at_ff%
+}%
+%
+\c_at_nfigPDFSYNCp@r%
+\let\c_at_nfigPDFSYNCp@r\undefined%
+\c_at_nfigPDFSYNCm@th%
+\let\c_at_nfigPDFSYNCm@th\undefined%
+%\c_at_nfigPDFSYNCdispl@y% This does not work with amsmath
+\let\c_at_nfigPDFSYNCdispl@y\undefined%
+\c_at_nfigPDFSYNChb@x%
+\let\c_at_nfigPDFSYNChb@x\undefined%
+\c_at_nfigPDFSYNCvb@x%
+\let\c_at_nfigPDFSYNCvb@x\undefined%
+%\c_at_nfigPDFSYNC@cr% This does not work "Missing \cr inserted" in maketitle
+\let\c_at_nfigPDFSYNC@cr\undefined%
+% the problem of the soul package
+ \ifx\SOUL@\undefined\relax\else%
+ \message{! pdfsync is patching the soul package}
+ \let\PDFSYNC_at_SOUL@\SOUL@
+ \def\SOUL@##1{%
+ \bgroup\pdfsyncstop\PDFSYNC_at_SOUL@{##1}\egroup
+ }%
+ \fi%
+\pdfsyncstart%
+\wlog{**** pdfsync.sty: started}%
+}%
+%
+\AtBeginDocument{%
+\c_at_nfigPDFSYNC%
+\let\c_at_nfigPDFSYNC\undefined%
+}%
+% end of the core code
+% Declaring the option 'nopar' to disable this feature
+\DeclareOption{nopar}{\let\c_at_nfigPDFSYNCp@r\relax}%
+% Declaring the option 'nomath' to disable this feature
+\DeclareOption{nomath}{\let\c_at_nfigPDFSYNCm@th\relax}%
+% Declaring the option 'nodisplay' to disable this feature
+\DeclareOption{nodisplay}{\let\c_at_nfigPDFSYNCdispl@y\relax}%
+% Declaring the option 'nohbox' to disable this feature
+\DeclareOption{nohbox}{\let\c_at_nfigPDFSYNChb@x\relax}%
+% Declaring the option 'novbox' to disable this feature
+\DeclareOption{novbox}{\let\c_at_nfigPDFSYNCvb@x\relax}%
+% Declaring the option 'nocr' to disable this feature
+\DeclareOption{nocr}{\let\c_at_nfigPDFSYNC@cr\relax}%
+% Declaring the option 'off', all the macros are set to \relax
+\DeclareOption{off}{\let\c_at_nfigPDFSYNC\c_at_nfigPDFSYNC@ff}%
+% Beamer problem
+\ifx\beamer_at_version\undefined\relax\else\let\c_at_nfigPDFSYNCvb@x\relax\fi
+\ProcessOptions%
+\endinput%

Added: sandbox/committee/concepts/wording/pdfsync.sty
==============================================================================
--- (empty file)
+++ sandbox/committee/concepts/wording/pdfsync.sty 2008-03-03 15:17:08 EST (Mon, 03 Mar 2008)
@@ -0,0 +1,273 @@
+% LaTeX package pdfsync.sty
+% =========================
+%
+% Presentation
+% ------------
+% pdfsync.sty allows one to synchronize between LaTeX source and pdf output.
+% When used with a text editor and a PDF viewer that both support pdfsync,
+% you can navigate from the source to the output and vice versa.
+% This is some kind of srcltx ported from dvi to pdf.
+%
+% When you typeset foo.tex with pdfsync.sty and either pdfetex or xetex, a foo.pdfsync auxiliary file is created.
+% It only contains geometrical information used by text editors or PDF viewers for synchronization.
+% You can delete this file when you are done.
+%
+% Actually, iTeXMac, iTeXMac2, TeXShop, TextMate, AucTeX are text editors implementing pdfsync support at various level.
+% iTeXMac, iTeXMac2, TeXShop, TeXniscope, PDFView are PDF viewers implementing pdfsync support at various level.
+%
+% Install
+% -------
+% If this package is not already included in you TeX distribution, just copy the pdfsync.sty file to the proper location.
+% On Mac OS X, it can be
+% YOUR_HOME_DIRECTORY/Library/texmf/tex/latex/graphics/graphics.sty
+% where you should replace YOUR_HOME_DIRECTORY by its actual value.
+%
+% Usage
+% -----
+% Put \usepackage{pdfsync} in your LaTeX preamble.
+%
+% In case of sever conflicts with another package, try \usepackage[novbox]{pdfsync} instead.
+%
+% If pdfsync only breaks some part of your LaTeX code, you can try to enclose it in a \pdfsyncstop \pdfsyncstart pair.
+% If you want to add more control point add \pdfsync at sensible locations in your code.
+% In that case, \usepackage[off]{pdfsync} will disable pdf synchronization and \relax the above commands.
+%
+% Use option nohbox (resp nocr, nopar, nomath, nodisplay) in order not to add control points every hbox (resp cr, par, math,display)
+%
+% Bugs
+% ----
+% pdfsync uses extremely severe code. You should not use pdfsync on final documents because it can change the layout rather significantly
+% (different page/line breaks are the most obvious changes), despite this is rather rare,
+% 17.8th Murphy's law states that it will happen to you when it absolutely must not...
+%
+% You should report bugs and package conflicts to jlaurens AT users DOT sourceforge DOT net.
+%
+% The accuracy of pdf synchronization depends on the editor/viewer used for that purpose.
+% iTeXMac2 is actually the most accurate implementation because it combines pdfsync with pdf searching.
+% So, the lack of accuracy is not a bug in pdfsync a priori.
+%
+% Credits:
+% -------
+% The original idea of pdfsync was proposed by Piero D'Ancona in the summer of 2003.
+% He and Jerome Laurens (jlaurens AT usersDOT sourceforge DOT net) both created the first working package.
+% Hans Hagen and David Kastrup made very significant enhancements to the original code.
+%
+% License
+% -------
+% This program is free software; you can redistribute it and/or modify
+% it under the terms of the The LaTeX Project Public License version 1.3c at least
+% http://www.latex-project.org/lppl.txt
+%
+% Home page
+% ---------
+% The official site is
+%
+% http://itexmac.sourceforge.net/pdfsync.html
+%
+% copyright 2006, jlaurens AT users DOT sourceforge DOT net
+%
+\ifx\pdfsync\undefined\else\message{**** pdfsync.sty: WARNING, the package is already loaded.}\expandafter\endinput\fi
+\def\c_at_nfigPDFSYNC@ff{%
+ \let\pdfsync\relax%
+ \let\pdfsyncstart\relax%
+ \let\pdfsyncstop\relax%
+}%
+\ifx\pdfsavepos\undefined
+\message{**** pdfsync.sty: WARNING, synchronization is only available with pdfetex like engines.}%
+\c_at_nfigPDFSYNC@ff
+\let\c_at_nfigPDFSYNC@ff=\undefined
+\expandafter\endinput
+\fi
+% Defining the preamble of the style file:
+\NeedsTeXFormat{LaTeX2e}%
+\ProvidesPackage{pdfsync}[2007/01/15 v1.0]%
+% start of the code
+\let\c_at_nfigPDFSYNCp@r\relax%
+\let\c_at_nfigPDFSYNCm@th\relax%
+\let\c_at_nfigPDFSYNCdispl@y\relax%
+\let\c_at_nfigPDFSYNChb@x\relax%
+\let\c_at_nfigPDFSYNCvb@x\relax%
+\let\c_at_nfigPDFSYNC@cr\relax%
+% Subverting |\everypar| to prepend pdfsync |\@PDFSYNC| specific code that will
+% be executed for each new paragraph.
+%This was primarly suggested by Curtis Clifton on 12/17/2004 (google "subvert token" for details).
+\def\c_at_nfigPDFSYNCp@r{\wlog{**** pdfsync.sty: Synchronizing at \string\everypar}%
+\newtoks\PDFSYNCeveryp_at_r
+\PDFSYNCeveryp_at_r\everypar
+\everypar{\bgroup\setbox\z@\lastbox\@PDFSYNC\box\z@\egroup
+ \the\PDFSYNCeveryp_at_r}%
+\let\everypar\PDFSYNCeveryp_at_r
+}%
+%
+\def\c_at_nfigPDFSYNCdispl@y{\wlog{**** pdfsync.sty: Synchronizing at \string\everydisplay}%
+\newtoks\PDFSYNCeverydispl_at_y
+\PDFSYNCeverydispl_at_y\frozen_at_everydisplay
+\frozen_at_everydisplay{\@PDFSYNC\the\PDFSYNCeverydispl_at_y}%
+\let\frozen_at_everydisplay\PDFSYNCeverydispl_at_y
+}%
+%
+\def\c_at_nfigPDFSYNCm@th{\wlog{**** pdfsync.sty: Synchronizing at \string\everymath}%
+\newtoks\PDFSYNCeverym_at_th
+\PDFSYNCeverym_at_th\frozen_at_everymath
+\frozen_at_everymath{\@PDFSYNC\the\PDFSYNCeverym_at_th}%
+\let\frozen_at_everymath\PDFSYNCeverym_at_th
+}%
+%
+\def\c_at_nfigPDFSYNChb@x{\wlog{**** pdfsync.sty: Synchronizing at \string\everyhbox}%
+\newtoks\PDFSYNCeveryhb_at_x
+\PDFSYNCeveryhb_at_x\everyhbox
+\everyhbox{\ifPDFSYNC_at_unblocked
+ \begingroup
+ \PDFSYNC_at_unblockedfalse
+ \setbox\z@\hbox\bgroup
+ \@PDFSYNC
+ \setbox\z@\hbox\bgroup\bgroup
+ \aftergroup\PDFSYNC_at_endhbox\the\PDFSYNCeveryhb_at_x
+ \PDFSYNC_at_unblockedtrue
+ \fi}%
+\let\everyhbox\PDFSYNCeveryhb_at_x
+\def\PDFSYNC_at_endhbox{\ifnum\lastnodetype>\m_at_ne
+ \egroup \unhbox\z@ \egroup \unhbox\z@
+ \else \egroup \egroup \fi \endgroup \egroup}%
+}%
+%
+\def\c_at_nfigPDFSYNCvb@x{\wlog{**** pdfsync.sty: Synchronizing at \string\everyvbox}%
+\newtoks\PDFSYNCeveryvb_at_x
+\PDFSYNCeveryvb_at_x\everyvbox
+\everyvbox{\ifPDFSYNC_at_unblocked
+ \begingroup
+ \PDFSYNC_at_unblockedfalse
+ \setbox\z@\vbox\bgroup
+ \@PDFSYNC
+ \setbox\z@\vtop\bgroup\bgroup
+ \aftergroup\PDFSYNC_at_endvbox\the\PDFSYNCeveryvb_at_x
+ \PDFSYNC_at_unblockedtrue
+ \fi}%
+\let\everyvbox\PDFSYNCeveryvb_at_x
+\def\PDFSYNC_at_endvbox{\ifnum\lastnodetype>\m_at_ne
+ \egroup
+ \edef\next{\egroup\hrule\@height\the\ht\z@\@depth-\the\ht\z@\relax}%
+ \unvbox\z@ \next \unvbox\z@
+ \else \egroup \egroup \fi \endgroup \egroup}%
+}%
+%
+\def\c_at_nfigPDFSYNC@cr{\wlog{**** pdfsync.sty: Synchronizing at \string\everycr}%
+\newtoks\PDFSYNCevery_at_cr
+\PDFSYNCevery_at_cr\everycr
+\everycr{\the\PDFSYNCevery_at_cr\@PDFSYNC}%
+\let\everycr\PDFSYNCevery_at_cr
+}%
+% Configure pdsync
+\def\c_at_nfigPDFSYNC{\wlog{Configuring pdfsync}%
+\newwrite\PDFSYNC_at_ut%
+\immediate\openout\PDFSYNC_at_ut\jobname.pdfsync%
+\immediate\write\PDFSYNC_at_ut{\jobname}% control info
+\immediate\write\PDFSYNC_at_ut{version 1}% control info
+% patching \shipout
+\let\PDFSYNCship_at_ut@ld\shipout%
+\gdef\PDFSYNCship_at_utn@w{%
+\afterassignment\PDFSYNC_at_utput%
+\setbox\@cclv= %
+}%
+\def\PDFSYNC_at_utput{%
+\relax%
+\ifvoid\@cclv\relax%
+\aftergroup\PDFSYNC@@utput%
+\else%
+\PDFSYNC@@utput%
+\fi%
+}%
+\gdef\PDFSYNC@@utput{%
+\global\advance\PDFSYNCf_at_li@ by 1%
+\immediate\write\PDFSYNC_at_ut{s\space\the\PDFSYNCf_at_li@}%
+\PDFSYNCship_at_ut@ld\box\@cclv%
+}%
+%
+% patching LaTeX \InputIfFileExists for \include and \input
+\let\PDFSYNCInputIfFileExists_at_ff\InputIfFileExists%
+\long\def\PDFSYNCInputIfFileExists_at_n##1##2##3{%
+\immediate\write\PDFSYNC_at_ut{(##1}%
+\PDFSYNCInputIfFileExists_at_ff{##1}{##2}{##3}%
+\immediate\write\PDFSYNC_at_ut{)}}%
+%
+\def\PDFSYNCP_at_siti@n{\the\pdflastxpos\space\the\pdflastypos}%
+%
+\newif\ifPDFSYNCst_at_r%
+\newif\ifPDFSYNCvb_at_x%
+\newcount\PDFSYNCf_at_li@\PDFSYNCf_at_li@=0%
+\newcount\PDFSYNC_at_rder\PDFSYNC_at_rder=0%
+\newif\ifPDFSYNC_at_unblocked
+\PDFSYNC_at_unblockedtrue
+% defining \@@PDFSYNC: the macro that writes to the .pdfsync file
+\def\@@PDFSYNC{%
+\relax%
+\immediate\write\PDFSYNC_at_ut{l\space\the\PDFSYNC_at_rder\space\the\inputlineno}%
+\pdfsavepos%
+\edef\next{\write\PDFSYNC_at_ut{p\ifPDFSYNCst_at_r*\else\ifPDFSYNCvb_at_x+\fi\fi\space\the\PDFSYNC_at_rder\space\noexpand\PDFSYNCP_at_siti@n}}%
+\next%
+\global\advance\PDFSYNC_at_rder by 1%
+\relax%
+}%
+%
+\def\@pdfsync{\bgroup\PDFSYNCst_at_rtrue\@PDFSYNC\egroup}%
+%
+\def\pdfsyncstart{%
+\let\shipout\PDFSYNCship_at_utn@w%
+\let\pdfsync\@pdfsync%
+\let\@PDFSYNC\@@PDFSYNC%
+\let\InputIfFileExists\PDFSYNCInputIfFileExists_at_n%
+}%
+\def\pdfsyncstop{%
+\let\shipout\PDFSYNCship_at_ut@ld%
+\let\pdfsync\relax%
+\let\@PDFSYNC\relax%
+\let\InputIfFileExists\PDFSYNCInputIfFileExists_at_ff%
+}%
+%
+\c_at_nfigPDFSYNCp@r%
+\let\c_at_nfigPDFSYNCp@r\undefined%
+\c_at_nfigPDFSYNCm@th%
+\let\c_at_nfigPDFSYNCm@th\undefined%
+%\c_at_nfigPDFSYNCdispl@y% This does not work with amsmath
+\let\c_at_nfigPDFSYNCdispl@y\undefined%
+\c_at_nfigPDFSYNChb@x%
+\let\c_at_nfigPDFSYNChb@x\undefined%
+\c_at_nfigPDFSYNCvb@x%
+\let\c_at_nfigPDFSYNCvb@x\undefined%
+%\c_at_nfigPDFSYNC@cr% This does not work "Missing \cr inserted" in maketitle
+\let\c_at_nfigPDFSYNC@cr\undefined%
+% the problem of the soul package
+ \ifx\SOUL@\undefined\relax\else%
+ \message{! pdfsync is patching the soul package}
+ \let\PDFSYNC_at_SOUL@\SOUL@
+ \def\SOUL@##1{%
+ \bgroup\pdfsyncstop\PDFSYNC_at_SOUL@{##1}\egroup
+ }%
+ \fi%
+\pdfsyncstart%
+\wlog{**** pdfsync.sty: started}%
+}%
+%
+\AtBeginDocument{%
+\c_at_nfigPDFSYNC%
+\let\c_at_nfigPDFSYNC\undefined%
+}%
+% end of the core code
+% Declaring the option 'nopar' to disable this feature
+\DeclareOption{nopar}{\let\c_at_nfigPDFSYNCp@r\relax}%
+% Declaring the option 'nomath' to disable this feature
+\DeclareOption{nomath}{\let\c_at_nfigPDFSYNCm@th\relax}%
+% Declaring the option 'nodisplay' to disable this feature
+\DeclareOption{nodisplay}{\let\c_at_nfigPDFSYNCdispl@y\relax}%
+% Declaring the option 'nohbox' to disable this feature
+\DeclareOption{nohbox}{\let\c_at_nfigPDFSYNChb@x\relax}%
+% Declaring the option 'novbox' to disable this feature
+\DeclareOption{novbox}{\let\c_at_nfigPDFSYNCvb@x\relax}%
+% Declaring the option 'nocr' to disable this feature
+\DeclareOption{nocr}{\let\c_at_nfigPDFSYNC@cr\relax}%
+% Declaring the option 'off', all the macros are set to \relax
+\DeclareOption{off}{\let\c_at_nfigPDFSYNC\c_at_nfigPDFSYNC@ff}%
+% Beamer problem
+\ifx\beamer_at_version\undefined\relax\else\let\c_at_nfigPDFSYNCvb@x\relax\fi
+\ProcessOptions%
+\endinput%


Boost-Commit list run by bdawes at acm.org, david.abrahams at rcn.com, gregod at cs.rpi.edu, cpdaniel at pacbell.net, john at johnmaddock.co.uk