]> code.delx.au - gnu-emacs-elpa/blob - packages/auctex/latex/preview.sty
Remove version numbers in packages/ directory
[gnu-emacs-elpa] / packages / auctex / latex / preview.sty
1 %%
2 %% This is file `preview.sty',
3 %% generated with the docstrip utility.
4 %%
5 %% The original source files were:
6 %%
7 %% preview.dtx (with options: `style')
8 %% preview.dtx (with options: `style,active')
9 %%
10 %% IMPORTANT NOTICE:
11 %%
12 %% For the copyright see the source file.
13 %%
14 %% Any modified versions of this file must be renamed
15 %% with new filenames distinct from preview.sty.
16 %%
17 %% For distribution of the original source see the terms
18 %% for copying and modification in the file preview.dtx preview.dtx.
19 %%
20 %% This generated file may be distributed as long as the
21 %% original source files, as listed above, are part of the
22 %% same distribution. (The sources need not necessarily be
23 %% in the same archive or directory.)
24 %% The preview style for extracting previews from LaTeX documents.
25 %% Developed as part of AUCTeX <URL:http://www.gnu.org/software/auctex>.
26 \NeedsTeXFormat{LaTeX2e} \def\reserved@a #1#2$#3:
27 #4${\xdef#1{\reserved@c #2#4 $}} \def\reserved@c #1 #2${#1}
28 \begingroup \catcode`\_=12
29 \reserved@a\pr@version $Name: release_11_86 $ \ifx\pr@version\@empty
30 \reserved@a\pr@version CVS-$Revision: 1.126 $ \endgroup \else
31 \def\next release_{} \lccode`\_=`.
32 \edef\next{\lowercase{\endgroup
33 \def\noexpand\pr@version{\expandafter\next\pr@version}}} \next \fi
34 \reserved@a\next $Date: 2010/02/14 16:19:00 $
35 \edef\next{\noexpand\ProvidesPackage{preview}%
36 [\next\space \pr@version\space (AUCTeX/preview-latex)]}
37 \next
38 \let\ifPreview\iffalse
39 \let\preview@delay=\@gobble
40 \let\pr@advise=\@gobbletwo
41 \long\def\pr@advise@ship#1#2#3{}
42 \def\pr@loadcfg#1{\InputIfFileExists{#1.cfg}{}{}}
43 \DeclareOption{noconfig}{\let\pr@loadcfg=\@gobble}
44 \long\def\pr@addto@front#1#2{%
45 \toks@{#2}\toks@\expandafter{\the\expandafter\toks@#1}%
46 \xdef#1{\the\toks@}}
47 \DeclareOption{active}{%
48 \let\ifPreview\iftrue
49 \def\pr@advise#1{%
50 \expandafter\pr@adviseii\csname pr@\string#1\endcsname#1}%
51 \long\def\pr@advise@ship#1#2#3{\pr@advise#1{\pr@protect@ship{#2}{#3}}}%
52 \let\preview@delay\@firstofone}
53 \long\def\pr@adviseii#1#2#3{\preview@delay{%
54 \ifx#1\relax \let#1#2\fi
55 \toks@{#3#1}%
56 \ifx\@undefined\protected \else \protected\fi
57 \long\edef#2{\the\toks@}}}
58 \DeclareOption{delayed}{%
59 \ifPreview \def\preview@delay{\AtBeginDocument}\fi
60 }
61 \newif\ifpr@fixbb
62 \pr@fixbbfalse
63 \DeclareOption{psfixbb}{\ifPreview%
64 \pr@fixbbtrue
65 \newbox\pr@markerbox
66 \setbox\pr@markerbox\hbox{\special{psfile=/dev/null}}\fi
67 }
68 \let\pr@graphicstype=\z@
69 \DeclareOption{dvips}{%
70 \let\pr@graphicstype\@ne
71 \preview@delay{\AtBeginDvi{%
72 \special{!/preview@version(\pr@version)def}
73 \special{!userdict begin/preview-bop-level 0 def%
74 /bop-hook{/preview-bop-level dup load dup 0 le{/isls false def%
75 /vsize 792 def/hsize 612 def}if 1 add store}bind def%
76 /eop-hook{/preview-bop-level dup load dup 0 gt{1 sub}if
77 store}bind def end}}}}
78 \DeclareOption{pdftex}{%
79 \let\pr@graphicstype\tw@}
80 \DeclareOption{xetex}{%
81 \let\pr@graphicstype\thr@@}
82 \begingroup
83 \catcode`\*=11
84 \@firstofone{\endgroup
85 \DeclareOption{displaymath}{%
86 \preview@delay{\toks@{%
87 \pr@startbox{\noindent$$%
88 \aftergroup\pr@endbox\@gobbletwo}{$$}\@firstofone}%
89 \everydisplay\expandafter{\the\expandafter\toks@
90 \expandafter{\the\everydisplay}}}%
91 \pr@advise@ship\equation{\begingroup\aftergroup\pr@endbox
92 \def\dt@ptrue{\m@ne=\m@ne}\noindent}%
93 {\endgroup}%
94 \pr@advise@ship\equation*{\begingroup\aftergroup\pr@endbox
95 \def\dt@ptrue{\m@ne=\m@ne}\noindent}%
96 {\endgroup}%
97 \PreviewOpen[][\def\dt@ptrue{\m@ne=\m@ne}\noindent#1]\[%
98 \PreviewClose\]%
99 \PreviewEnvironment[][\noindent#1]{eqnarray}%
100 \PreviewEnvironment[][\noindent#1]{eqnarray*}%
101 \PreviewEnvironment{displaymath}%
102 }}
103 \begingroup
104 \def\next#1#2{%
105 \endgroup
106 \DeclareOption{textmath}{%
107 \PreviewEnvironment{math}%
108 \preview@delay{\ifx#1\@undefined \let#1=$%$
109 \fi\catcode`\$=\active
110 \ifx\xyreuncatcodes\@undefined\else
111 \edef\next{\catcode`@=\the\catcode`@\relax}%
112 \makeatother\expandafter\xyreuncatcodes\next\fi}%
113 \pr@advise@ship\(\pr@endaftergroup{}% \)
114 \pr@advise@ship#1{\@firstoftwo{\let#1=#2%
115 \futurelet\reserved@a\pr@textmathcheck}}{}}%
116 \def\pr@textmathcheck{\expandafter\pr@endaftergroup
117 \ifx\reserved@a#1{#2#2}\expandafter\@gobbletwo\fi#2}}
118 \lccode`\~=`\$
119 \lowercase{\expandafter\next\expandafter~}%
120 \csname pr@\string$%$
121 \endcsname
122 \DeclareOption{graphics}{%
123 \PreviewMacro[*[[!]{\includegraphics}%]]
124 }
125 \def\pr@floatfix#1#2{\ifx#1#2%
126 \ifx#1\@undefined\else
127 \PackageWarningNoLine{preview}{%
128 Your document class has a bad definition^^J
129 of \string#1, most likely^^J
130 \string\let\string#1=\string#2^^J
131 which has now been changed to^^J
132 \string\def\string#1{\string#2}^^J
133 because otherwise subsequent changes to \string#2^^J
134 (like done by several packages changing float behaviour)^^J
135 can't take effect on \string#1.^^J
136 Please complain to your document class author}%
137 \def#1{#2}\fi\fi}
138 \begingroup
139 \def\next#1#2{\endgroup
140 \DeclareOption{floats}{%
141 \pr@floatfix\endfigure\end@float
142 \pr@floatfix\endtable\end@float
143 \pr@floatfix#1\end@dblfloat
144 \pr@floatfix#2\end@dblfloat
145 \PreviewSnarfEnvironment[![]{@float}%]
146 \PreviewSnarfEnvironment[![]{@dblfloat}%]
147 }}
148 \expandafter\next\csname endfigure*\expandafter\endcsname
149 \csname endtable*\endcsname
150 \DeclareOption{sections}{%
151 \PreviewMacro[!!!!!!*[[!]{\@startsection}%]]
152 \PreviewMacro[*[[!]{\chapter}%]]
153 }
154 \DeclareOption*
155 {\InputIfFileExists{pr\CurrentOption.def}{}{\OptionNotUsed}}
156 \def\PreviewMacro{\@ifstar\pr@starmacro\pr@macro}
157 \long\def\pr@domacro#1#2{%
158 \long\def\next##1{#2}%
159 \pr@callafter\next#1]\pr@endparse}
160 \newcommand\pr@macro[1][]{%
161 \toks@{\pr@domacro{#1}}%
162 \long\edef\next[##1]##2{%
163 \noexpand\pr@advise@ship{##2}{\the\toks@{##1\noexpand\pr@endbox}}{}}%
164 \@ifnextchar[\next\pr@macroii}
165 \def\pr@macroii{\next[##1]}
166 \long\def\pr@endmacro#1{#1\pr@endbox}
167 \long\def\pr@protect@domacro#1#2{\pr@protect{%
168 \long\def\next##1{#2}%
169 \pr@callafter\next#1]\pr@endparse}}
170 \newcommand\pr@starmacro[1][]{\toks@{\pr@protect@domacro{#1}}%
171 \long\edef\next[##1]##2{%
172 \noexpand\pr@advise##2{\the\toks@{##1}}}%
173 \@ifnextchar[\next{\next[]}}
174 \def\PreviewOpen{\@ifstar\pr@starmacro\pr@open}
175 \newcommand\pr@open[1][]{%
176 \toks@{\pr@domacro{#1}}%
177 \long\edef\next[##1]##2{%
178 \noexpand\pr@advise##2{\begingroup
179 \noexpand\pr@protect@ship
180 {\the\toks@{\begingroup\aftergroup\noexpand\pr@endbox##1}}%
181 {\endgroup}}}%
182 \@ifnextchar[\next\pr@macroii}
183 \def\PreviewClose{\@ifstar\pr@starmacro\pr@close}
184 \newcommand\pr@close[1][]{%
185 \toks@{\pr@domacro{#1}}%
186 \long\edef\next[##1]##2{%
187 \noexpand\pr@advise{##2}{\the\toks@{##1\endgroup}}}%
188 \@ifnextchar[\next\pr@macroii}
189 \def\PreviewEnvironment{\@ifstar\pr@starenv\pr@env}
190 \newcommand\pr@starenv[1][]{\toks@{\pr@starmacro[{#1}]}%
191 \long\edef\next##1##2{%
192 \the\toks@[{##2}]##1}%
193 \begingroup\pr@starenvii}
194 \newcommand\pr@starenvii[2][]{\endgroup
195 \expandafter\next\csname#2\endcsname{#1}%
196 \expandafter\pr@starmacro\csname end#2\endcsname}
197 \newcommand\pr@env[1][]{%
198 \toks@{\pr@domacro{#1}}%
199 \long\edef\next[##1]##2{%
200 \noexpand\expandafter\noexpand\pr@advise@ship
201 \noexpand\csname##2\noexpand\endcsname{\the\toks@
202 {\begingroup\aftergroup\noexpand\pr@endbox##1}}{\endgroup}}%
203 \@ifnextchar[\next\pr@macroii %]
204 }
205 \newcommand{\PreviewSnarfEnvironment}[2][]{%
206 \expandafter\pr@advise
207 \csname #2\endcsname{\pr@snarfafter{#1}}%
208 \expandafter\pr@advise
209 \csname end#2\endcsname{\pr@endsnarf}}
210 \let\pr@ship@start\@empty
211 \let\pr@ship@end\@empty
212 \newenvironment{preview}{\ignorespaces}{\ifhmode\unskip\fi}
213 \newenvironment{nopreview}{\ignorespaces}{\ifhmode\unskip\fi}
214 \ProcessOptions\relax
215 \ifPreview\else\expandafter\endinput\fi
216 %% The preview style for extracting previews from LaTeX documents.
217 %% Developed as part of AUCTeX <URL:http://www.gnu.org/software/auctex>.
218 \newif\ifpr@outer
219 \pr@outertrue
220 \newcount\pr@snippet
221 \global\pr@snippet=1
222 \def\pr@protect{\ifx\protect\@typeset@protect
223 \ifpr@outer \expandafter\expandafter\expandafter
224 \@secondoftwo\fi\fi\@gobble}
225 \def\pr@protect@ship{\pr@protect{\@firstoftwo\pr@startbox}%
226 \@gobbletwo}
227 \def\pr@insert{\begingroup\afterassignment\pr@insertii\count@}
228 \def\pr@insertii{\endgroup\setbox\pr@box\vbox}
229 \def\pr@mark{{\afterassignment}\toks@}
230 \def\pr@marks{{\aftergroup\pr@mark\afterassignment}\count@}
231 \newbox\pr@box
232 \long\def\pr@startbox#1#2{%
233 \ifpr@outer
234 \toks@{#2}%
235 \edef\pr@cleanup{\the\toks@}%
236 \setbox\pr@box\vbox\bgroup
237 \break
238 \pr@outerfalse\@arrayparboxrestore
239 \let\insert\pr@insert
240 \let\mark\pr@mark
241 \let\marks\pr@marks
242 \expandafter\expandafter\expandafter
243 \pr@ship@start
244 \expandafter\@firstofone
245 \else
246 \expandafter \@gobble
247 \fi{#1}}
248 \def\pr@endbox{%
249 \let\reserved@a\relax
250 \ifvmode \edef\reserved@a{\the\everypar}%
251 \ifx\reserved@a\@empty\else
252 \dimen@\prevdepth
253 \noindent\par
254 \setbox\z@\lastbox\unskip\unpenalty
255 \prevdepth\dimen@
256 \setbox\z@\hbox\bgroup\penalty-\maxdimen\unhbox\z@
257 \ifnum\lastpenalty=-\maxdimen\egroup
258 \else\egroup\box\z@ \fi\fi\fi
259 \ifhmode \par\unskip\setbox\z@\lastbox
260 \nointerlineskip\hbox{\unhbox\z@\/}%
261 \else \unskip\unpenalty\unskip \fi
262 \egroup
263 \setbox\pr@box\vbox{%
264 \baselineskip\z@skip \lineskip\z@skip \lineskiplimit\z@
265 \@begindvi
266 \nointerlineskip
267 \splittopskip\z@skip\setbox\z@\vsplit\pr@box to\z@
268 \unvbox\z@
269 \nointerlineskip
270 %\color@setgroup
271 \box\pr@box
272 %\color@endgroup
273 }%
274 \pr@ship@end
275 {\let\protect\noexpand
276 \ifx\pr@offset@override\@undefined
277 \voffset=-\ht\pr@box
278 \hoffset=\z@
279 \fi
280 \c@page=\pr@snippet
281 \pr@shipout
282 \ifpr@fixbb\hbox{%
283 \dimen@\wd\pr@box
284 \@tempdima\ht\pr@box
285 \@tempdimb\dp\pr@box
286 \box\pr@box
287 \llap{\raise\@tempdima\copy\pr@markerbox\kern\dimen@}%
288 \lower\@tempdimb\copy\pr@markerbox}%
289 \else \box\pr@box \fi}%
290 \global\advance\pr@snippet\@ne
291 \pr@cleanup
292 }
293 \let\pr@shipout=\shipout
294 \def\shipout{\deadcycles\z@\bgroup\setbox\z@\box\voidb@x
295 \afterassignment\pr@shipoutegroup\setbox\z@}
296 \def\pr@shipoutegroup{\ifvoid\z@ \expandafter\aftergroup\fi \egroup}
297 \def\pr@parseit#1{\csname pr@parse#1\endcsname}
298 \let\pr@endparse=\@percentchar
299 \def\next#1{%
300 \def\pr@callafter{%
301 \afterassignment\pr@parseit
302 \let#1= }}
303 \expandafter\next\csname pr@parse\pr@endparse\endcsname
304 \long\expandafter\def\csname pr@parse*\endcsname#1\pr@endparse#2{%
305 \begingroup\toks@{#1\pr@endparse{#2}}%
306 \edef\next##1{\endgroup##1\the\toks@}%
307 \@ifstar{\next{\pr@parse@*}}{\next\pr@parseit}}
308 \long\expandafter\def\csname pr@parse[\endcsname#1\pr@endparse#2{%
309 \begingroup\toks@{#1\pr@endparse{#2}}%
310 \edef\next##1{\endgroup##1\the\toks@}%
311 \@ifnextchar[{\next\pr@bracket}{\next\pr@parseit}}
312 \long\def\pr@bracket#1\pr@endparse#2[#3]{%
313 \pr@parseit#1\pr@endparse{#2[{#3}]}}
314 \expandafter\let\csname pr@parse]\endcsname=\pr@parseit
315 \long\def\pr@parse#1\pr@endparse#2#3{%
316 \pr@parseit#1\pr@endparse{#2{#3}}}
317 \expandafter\let\csname pr@parse!\endcsname=\pr@parse
318 \long\expandafter\def\csname pr@parse?\endcsname#1#2\pr@endparse#3{%
319 \begingroup\toks@{#2\pr@endparse{#3}}%
320 \@ifnextchar#1{\pr@parsecond\@firstoftwo}%
321 {\pr@parsecond\@secondoftwo}}
322 \def\pr@parsecond#1{\expandafter\endgroup
323 \expandafter\expandafter\expandafter\pr@parseit
324 \expandafter#1\the\toks@}
325 \long\def\pr@parse@#1#2\pr@endparse#3{%
326 \pr@parseit #2\pr@endparse{#3#1}}
327 \long\expandafter\def\csname pr@parse-\endcsname
328 #1\pr@endparse#2{\begingroup
329 \toks@{\endgroup\pr@parseit #1\pr@endparse{#2}}%
330 {\aftergroup\the\aftergroup\toks@ \afterassignment}%
331 \let\next= }
332 \long\expandafter\def\csname pr@parse:\endcsname
333 #1#2#3\pr@endparse#4{\begingroup
334 \toks@{\endgroup \pr@parseit#3\pr@endparse{#4}}%
335 \long\def\next#1{#2}%
336 \the\expandafter\toks@\next}
337 \long\expandafter\def\csname pr@parse#\endcsname
338 #1#2#3\pr@endparse#4{\begingroup
339 \toks@{#4}%
340 \long\edef\next##1{\toks@{\the\toks@##1}}%
341 \toks@{\endgroup \pr@parseit#3\pr@endparse}%
342 \long\def\reserved@a#1{{#2}}%
343 \the\expandafter\next\reserved@a}
344 \def\pr@endaftergroup#1{#1\aftergroup\pr@endbox}
345 \let\pr@endsnarf\relax
346 \long\def\pr@snarfafter#1{\ifpr@outer
347 \pr@ship@start
348 \let\pr@ship@start\relax
349 \let\pr@endsnarf\endgroup
350 \else
351 \let\pr@endsnarf\relax
352 \fi
353 \pr@protect{\pr@callafter\pr@startsnarf#1]\pr@endparse}}
354 \def\pr@startsnarf#1{#1\begingroup
355 \pr@startbox{\begingroup\aftergroup\pr@endbox}{\endgroup}%
356 \ignorespaces}
357 \renewenvironment{preview}{\begingroup
358 \pr@startbox{\begingroup\aftergroup\pr@endbox}%
359 {\endgroup}%
360 \ignorespaces}%
361 {\ifhmode\unskip\fi\endgroup}
362 \renewenvironment{nopreview}{\pr@outerfalse\ignorespaces}%
363 {\ifhmode\unskip\fi}
364 \newtoks\pr@output
365 \pr@output\output
366 \output{%
367 \pr@outerfalse
368 \let\@begindvi\@empty
369 \the\pr@output}
370 \let\output\pr@output
371 \def\pr@typeinfos{\typeout{Preview: Fontsize \f@size pt}%
372 \ifnum\mag=\@m\else\typeout{Preview: Magnification \number\mag}\fi
373 \ifx\pdfoutput\@undefined
374 \ifx\XeTeXversion\@undefined \else
375 % FIXME: The message should not be emitted if XeTeX does not produce
376 % PDF. There does not seem to be a primitive for that, though.
377 \typeout{Preview: PDFoutput 1}%
378 \fi
379 \else
380 \ifx\pdfoutput\relax \else
381 \ifnum\pdfoutput>\z@
382 \typeout{Preview: PDFoutput 1}%
383 \fi
384 \fi
385 \fi
386 }
387 \AtBeginDocument{\pr@typeinfos}
388 \pr@loadcfg{prdefault}
389 \endinput
390 %%
391 %% End of file `preview.sty'.