1 |
%% |
2 |
%% This is file `revtex4.cls', |
3 |
%% generated with the docstrip utility. |
4 |
%% |
5 |
%% The original source files were: |
6 |
%% |
7 |
%% revtex4.dtx (with options: `class-pre') |
8 |
%% ltxutil.dtx (with options: `ltxutil-krn') |
9 |
%% ltxgrid.dtx (with options: `ltxgrid-krn') |
10 |
%% textcase.dtx (with options: `package') |
11 |
%% revtex4.dtx (with options: `class-pst') |
12 |
%% |
13 |
%% This file is part of the APS files in the REVTeX 4 distribution. |
14 |
%% For the version number, search on the string |
15 |
%% Original version by David Carlisle |
16 |
%% Modified by Arthur Ogawa (mailto:ogawa@teleport.com) |
17 |
%% |
18 |
%% Copyright (c) 1999 The American Physical Society. |
19 |
%% http://publish.aps.org/revtex4/ |
20 |
%% mailto:revtex4@aps.org |
21 |
%% |
22 |
%% See the REVTeX 4 README file for restrictions and more information. |
23 |
%% |
24 |
\NeedsTeXFormat{LaTeX2e}[1996/12/01] |
25 |
\ProvidesClass{revtex4} |
26 |
[2001/08/03 v4.0 (http://publish.aps.org/revtex4/ for documentation)]%FileInfo |
27 |
\def\class@name{revtex4}% |
28 |
\GenericInfo{}{\space |
29 |
Copyright (c) 2001 The American Physical Society.^^J |
30 |
mailto:revtex@aps.org^^J |
31 |
Licensed under the LPPL:^^Jhttp://www.ctan.org/tex-archive/macros/latex/base/lppl.txt^^J |
32 |
Arthur Ogawa <ogawa@teleport.com>^^J |
33 |
Based on work by David Carlisle <david@dcarlisle.demon.co.uk>% |
34 |
\@gobble |
35 |
}% |
36 |
\if@compatibility |
37 |
\edef\reserved@a{\errhelp{% |
38 |
Change your \string\documentstyle\space statement to |
39 |
\string\documentclass\space and rerun. |
40 |
}}\reserved@a |
41 |
\errmessage{You cannot run \class@name\space in compatability mode}% |
42 |
\expandafter\@@end |
43 |
\fi |
44 |
\let\DeclareOption@latex\DeclareOption |
45 |
\let\DeclareOption\@gobbletwo |
46 |
\let\ProcessOptions@latex\ProcessOptions |
47 |
\let\ProcessOptions\@empty |
48 |
\let\ProvidesPackage@latex\ProvidesPackage |
49 |
\def\ProvidesPackage#1[#2]{% |
50 |
\class@info{Incorporating package #1 [#2].}% |
51 |
}% |
52 |
\typeout{% |
53 |
ltxutil: portions licensed from W. E. Baxter (web@superscript.com)% |
54 |
}% |
55 |
\def\class@err#1{\ClassError{\class@name}{#1}\@eha}% |
56 |
\def\class@warn#1{\ClassWarningNoLine{\class@name}{#1}}% |
57 |
\def\class@info#1{\ClassInfo{\class@name}{#1}}% |
58 |
\def\obsolete@command#1{% |
59 |
\class@warn@end{Command \string#1\space is obsolete.^^JPlease remove from your document}% |
60 |
\global\let#1\@empty |
61 |
#1% |
62 |
}% |
63 |
\def\replace@command#1#2{% |
64 |
\class@warn@end{Command \string#1\space is obsolete;^^JUse \string#2\space instead}% |
65 |
\global\let#1#2% |
66 |
#1% |
67 |
}% |
68 |
\def\replace@environment#1#2{% |
69 |
\class@warn@end{Environment #1 is obsolete;^^JUse #2 instead}% |
70 |
\glet@environment{#1}{#2}% |
71 |
\@nameuse{#1}% |
72 |
}% |
73 |
\def\incompatible@package#1{% |
74 |
\@ifpackageloaded{#1}{% |
75 |
\def\@tempa{I cannot continue. You must remove the \string\usepackage\ statement that caused that package to be loaded.}% |
76 |
\ClassError{\class@name}{The #1 package cannot be used with \class@name}% |
77 |
\@tempa\stop |
78 |
}{% |
79 |
\class@info{#1 was not loaded (OK!)}% |
80 |
}% |
81 |
}% |
82 |
\def\class@warn@end#1{% |
83 |
\gappdef\class@enddocumenthook{\class@warn{#1}}% |
84 |
}% |
85 |
\AtEndOfClass{% |
86 |
\@ifxundefined\class@name{\def\class@name{Generic Class}}{}% |
87 |
}% |
88 |
\def\t@{to}% |
89 |
\dimendef\dimen@iii\thr@@ |
90 |
\def\halignt@{\halign\t@}% |
91 |
\chardef\f@ur=4\relax |
92 |
\chardef\cat@letter=11\relax |
93 |
\chardef\other=12\relax |
94 |
\def\let@environment#1#2{% |
95 |
\expandafter\let |
96 |
\csname#1\expandafter\endcsname\csname#2\endcsname |
97 |
\expandafter\let |
98 |
\csname end#1\expandafter\endcsname\csname end#2\endcsname |
99 |
}% |
100 |
\def\glet@environment#1#2{% |
101 |
\global\expandafter\let |
102 |
\csname#1\expandafter\endcsname\csname#2\endcsname |
103 |
\global\expandafter\let |
104 |
\csname end#1\expandafter\endcsname\csname end#2\endcsname |
105 |
}% |
106 |
\newcommand\tracingplain{% |
107 |
\tracingonline\z@\tracingcommands\z@\tracingstats\z@ |
108 |
\tracingpages\z@\tracingoutput\z@\tracinglostchars\@ne |
109 |
\tracingmacros\z@\tracingparagraphs\z@\tracingrestores\z@ |
110 |
\showboxbreadth5\showboxdepth3\relax %\errorstopmode |
111 |
}% |
112 |
\newcommand\traceoutput{% |
113 |
\appdef\@resetactivechars{\showoutput}% |
114 |
}% |
115 |
\newcommand\say[1]{\typeout{<\noexpand#1=\meaning#1>}}% |
116 |
\newcommand\saythe[1]{\typeout{<\noexpand#1=\the#1>}}% |
117 |
\def\fullinterlineskip{\prevdepth\z@}% |
118 |
\countdef\count@i\@ne |
119 |
\countdef\count@ii\tw@ |
120 |
\long\def\prepdef#1#2{% |
121 |
\@ifxundefined#1{\toks@{}}{\toks@\expandafter{#1}}% |
122 |
\toks@ii{#2}% |
123 |
\edef#1{\the\toks@ii\the\toks@}% |
124 |
}% |
125 |
\long\def\appdef#1#2{% |
126 |
\@ifxundefined#1{\toks@{}}{\toks@\expandafter{#1}}% |
127 |
\toks@ii{#2}% |
128 |
\edef#1{\the\toks@\the\toks@ii}% |
129 |
}% |
130 |
\long\def\gappdef#1#2{% |
131 |
\@ifxundefined#1{\toks@{}}{\toks@\expandafter{#1}}% |
132 |
\toks@ii{#2}% |
133 |
\global\edef#1{\the\toks@\the\toks@ii}% |
134 |
}% |
135 |
\long\def\appdef@val#1#2{% |
136 |
\appdef#1{{#2}}% |
137 |
}% |
138 |
\long\def\appdef@e#1#2{% |
139 |
\expandafter\appdef |
140 |
\expandafter#1% |
141 |
\expandafter{#2}% |
142 |
}% |
143 |
\long\def\appdef@eval#1#2{% |
144 |
\expandafter\appdef@val |
145 |
\expandafter#1% |
146 |
\expandafter{#2}% |
147 |
}% |
148 |
\toksdef\toks@ii=\tw@ |
149 |
\long\def\@ifxundefined#1{\@ifx{\undefined#1}}% |
150 |
\long\def\@ifnotrelax#1#2#3{\@ifx{\relax#1}{#3}{#2}}% |
151 |
\long\def\@argswap#1#2{#2#1}% |
152 |
\long\def\@argswap@val#1#2{#2{#1}}% |
153 |
\def\@ifxundefined@cs#1{\expandafter\@ifx\expandafter{\csname#1\endcsname\relax}}% |
154 |
\def\@boolean#1#2{% |
155 |
\long\def#1{% |
156 |
#2% \if<something> |
157 |
\expandafter\true@sw |
158 |
\else |
159 |
\expandafter\false@sw |
160 |
\fi |
161 |
}% |
162 |
}% |
163 |
\def\@boole@def#1#{\@boolean{#1}}% Implicit #2 |
164 |
\def\@booleantrue#1{\let#1\true@sw}% |
165 |
\def\@booleanfalse#1{\let#1\false@sw}% |
166 |
\@boole@def\@ifx#1{\ifx#1}% |
167 |
\@boole@def\@ifx@empty#1{\ifx\@empty#1}% |
168 |
\@boole@def\@if@empty#1{\if!#1!}% |
169 |
\def\@if@sw#1#2{#1\expandafter\true@sw\else\expandafter\false@sw#2}% |
170 |
\@boole@def\@ifdim#1{\ifdim#1}% |
171 |
\@boole@def\@ifeof#1{\ifeof#1}% |
172 |
\@boole@def\@ifhbox#1{\ifhbox#1}% |
173 |
\@boole@def\@ifhmode{\ifhmode}% |
174 |
\@boole@def\@ifinner{\ifinner}% |
175 |
\@boole@def\@ifmmode{\ifmmode}% |
176 |
\@boole@def\@ifnum#1{\ifnum#1}% |
177 |
\@boole@def\@ifodd#1{\ifodd#1}% |
178 |
\@boole@def\@ifvbox#1{\ifvbox#1}% |
179 |
\@boole@def\@ifvmode{\ifvmode}% |
180 |
\@boole@def\@ifvoid#1{\ifvoid#1}% |
181 |
\long\def\true@sw#1#2{#1}% |
182 |
\long\def\false@sw#1#2{#2}% |
183 |
\long\def\loopuntil#1{#1{}{\loopuntil{#1}}}% |
184 |
\long\def\loopwhile#1{#1{\loopwhile{#1}}{}}% |
185 |
\def\@provide#1{% |
186 |
\@ifx{\undefined#1}{\true@sw}{\@ifx{\relax#1}{\true@sw}{\false@sw}}% |
187 |
{\def#1}{\def\j@nk}% |
188 |
}% |
189 |
\prepdef\document{% |
190 |
\endgroup |
191 |
\init@documenthook |
192 |
\set@typesize@hook |
193 |
\normalsize |
194 |
\set@pica@hook |
195 |
\true@sw{}% |
196 |
}% |
197 |
\def\init@documenthook{}% |
198 |
\AtBeginDocument{% |
199 |
\class@documenthook |
200 |
}% |
201 |
\AtEndDocument{% |
202 |
\class@enddocumenthook |
203 |
}% |
204 |
\def\class@documenthook{}% |
205 |
\def\class@enddocumenthook{}% |
206 |
\def\set@typesize@hook{}% |
207 |
\def\set@pica@hook{}% |
208 |
\def\enddocument{% |
209 |
\@enddocumenthook |
210 |
\@checkend{document}% |
211 |
\clear@document |
212 |
\check@aux |
213 |
\deadcycles\z@ |
214 |
\@@end |
215 |
}% |
216 |
\def\clear@document{\clearpage}% |
217 |
\def\check@aux{\do@check@aux}% |
218 |
\def\do@check@aux{% |
219 |
\@if@sw\if@filesw\fi{% |
220 |
\immediate\closeout\@mainaux |
221 |
\let\@setckpt\@gobbletwo |
222 |
\let\@newl@bel\@testdef |
223 |
\@tempswafalse |
224 |
\makeatletter |
225 |
\input\jobname.aux\relax |
226 |
}{}% |
227 |
\@dofilelist |
228 |
\@ifdim{\font@submax >\fontsubfuzz\relax}{% |
229 |
\@font@warning{% |
230 |
Size substitutions with differences\MessageBreak |
231 |
up to \font@submax\space have occured.\@gobbletwo |
232 |
}% |
233 |
}{}% |
234 |
\@defaultsubs |
235 |
\@refundefined |
236 |
\@if@sw\if@filesw\fi{% |
237 |
\@ifx{\@multiplelabels\relax}{% |
238 |
\@if@sw\if@tempswa\fi{% |
239 |
\@latex@warning@no@line{% |
240 |
Label(s) may have changed. |
241 |
Rerun to get cross-references right |
242 |
}% |
243 |
}{}% |
244 |
}{% |
245 |
\@multiplelabels |
246 |
}% |
247 |
}{}% |
248 |
}% |
249 |
\def\flushing{% |
250 |
\let\\\@normalcr |
251 |
\leftskip\z@skip |
252 |
\rightskip\z@skip |
253 |
\@rightskip\z@skip |
254 |
\parfillskip\@flushglue |
255 |
}% |
256 |
\def\eqnarray@LaTeX{% |
257 |
\stepcounter{equation}% |
258 |
\def\@currentlabel{\p@equation\theequation}% |
259 |
\global\@eqnswtrue |
260 |
\m@th |
261 |
\global\@eqcnt\z@ |
262 |
\tabskip\@centering |
263 |
\let\\\@eqncr |
264 |
$$\everycr{}\halign\t@\displaywidth\bgroup |
265 |
\hskip\@centering$\displaystyle\tabskip\z@skip{##}$\@eqnsel |
266 |
&\global\@eqcnt\@ne\hskip \tw@\arraycolsep \hfil${##}$\hfil |
267 |
&\global\@eqcnt\tw@ \hskip \tw@\arraycolsep |
268 |
$\displaystyle{##}$\hfil\tabskip\@centering |
269 |
&\global\@eqcnt\thr@@ \hb@xt@\z@\bgroup\hss##\egroup |
270 |
\tabskip\z@skip |
271 |
\cr |
272 |
} |
273 |
\long\def\eqnarray@fleqn@fixed{% |
274 |
\stepcounter{equation}\def\@currentlabel{\p@equation\theequation}% |
275 |
\global\@eqnswtrue\m@th\global\@eqcnt\z@ |
276 |
\tabskip\mathindent |
277 |
\let\\=\@eqncr |
278 |
\setlength\abovedisplayskip{\topsep}% |
279 |
\ifvmode\addtolength\abovedisplayskip{\partopsep}\fi |
280 |
\addtolength\abovedisplayskip{\parskip}% |
281 |
\setlength\belowdisplayskip{\abovedisplayskip}% |
282 |
\setlength\belowdisplayshortskip{\abovedisplayskip}% |
283 |
\setlength\abovedisplayshortskip{\abovedisplayskip}% |
284 |
$$% |
285 |
\everycr{}% |
286 |
\halignt@\linewidth\bgroup |
287 |
\hskip\@centering$\displaystyle\tabskip\z@skip{##}$\@eqnsel |
288 |
&\global\@eqcnt\@ne |
289 |
\hskip\tw@\eqncolsep |
290 |
\hfil${{}##{}}$\hfil |
291 |
&\global\@eqcnt\tw@ |
292 |
\hskip\tw@\eqncolsep |
293 |
$\displaystyle{##}$\hfil\tabskip\@centering |
294 |
&\global\@eqcnt\thr@@\hb@xt@\z@\bgroup\hss##\egroup |
295 |
\tabskip\z@skip |
296 |
\cr |
297 |
}% |
298 |
\@ifx{\eqnarray\eqnarray@LaTeX}{% |
299 |
\class@info{Repairing broken LaTeX eqnarray}% |
300 |
\let\eqnarray\eqnarray@fleqn@fixed |
301 |
\newlength\eqncolsep |
302 |
\setlength\eqncolsep\z@ |
303 |
\let\eqnarray@LaTeX\relax |
304 |
\let\eqnarray@fleqn@fixed\relax |
305 |
}{}% |
306 |
\def\mathindent{\@centering}% |
307 |
\def\set@eqnarray@skips{}% |
308 |
\def\footnote{% |
309 |
\@ifnextchar[\@xfootnote{\@yfootnote\@footnotetext}% |
310 |
}% |
311 |
\def\footnotemark{% |
312 |
\@ifnextchar[\@xfootnotemark{\@yfootnote}% |
313 |
}% |
314 |
\def\@xfootnote[#1]{% |
315 |
\@xfootnotemark[#1]% |
316 |
\@footnotetext |
317 |
}% |
318 |
\def\@xfootnotemark@ltx[#1]{% |
319 |
\begingroup |
320 |
\csname c@\@mpfn\endcsname #1\relax |
321 |
\unrestored@protected@xdef\@thefnmark{\thempfn}% |
322 |
\endgroup |
323 |
\H@@footnotemark |
324 |
}% |
325 |
\def\@yfootnote{% |
326 |
\stepcounter\@mpfn |
327 |
\protected@xdef\@thefnmark{\thempfn}% |
328 |
\H@@footnotemark |
329 |
}% |
330 |
\appdef\class@documenthook{% |
331 |
\@ifxundefined\H@@footnotemark{% |
332 |
\let\H@@footnotemark\@footnotemark |
333 |
}{}% |
334 |
\let\@xfootnotemark\@xfootnotemark@ltx |
335 |
}% |
336 |
\long\def\@footnotetext{% |
337 |
\insert\footins\bgroup |
338 |
\make@footnotetext |
339 |
}% |
340 |
\long\def\@mpfootnotetext{% |
341 |
\minipagefootnote@pick |
342 |
\make@footnotetext |
343 |
}% |
344 |
\def\make@footnotetext#1{% |
345 |
\reset@font\footnotesize |
346 |
\interlinepenalty\interfootnotelinepenalty |
347 |
\splittopskip\footnotesep |
348 |
\splitmaxdepth\dp\strutbox |
349 |
\set@footnotewidth |
350 |
\@parboxrestore |
351 |
\protected@edef\@currentlabel{% |
352 |
\csname p@footnote\endcsname\@thefnmark |
353 |
}% |
354 |
\color@begingroup |
355 |
\@makefntext{% |
356 |
\rule\z@\footnotesep\ignorespaces#1\@finalstrut\strutbox |
357 |
}% |
358 |
\color@endgroup |
359 |
\minipagefootnote@drop |
360 |
}% |
361 |
\def\set@footnotewidth{% |
362 |
\hsize\columnwidth |
363 |
\linewidth\hsize |
364 |
}% |
365 |
\def\set@footnotewidth@ii{% |
366 |
\hsize\textwidth |
367 |
\advance\hsize\columnsep |
368 |
\divide\hsize\tw@ |
369 |
\advance\hsize-\columnsep |
370 |
\linewidth\hsize |
371 |
}% |
372 |
\def\addtocontents#1#2{% |
373 |
\protected@write\@auxout{% |
374 |
\let \label \@gobble \let \index \@gobble \let \glossary \@gobble |
375 |
\def\({\string\(}% |
376 |
\def\){\string\)}% |
377 |
\def\\{\string\\}% |
378 |
}{\string \@writefile {#1}{#2}}% |
379 |
}% |
380 |
\def\addcontentsline#1#2#3{% |
381 |
\addtocontents{#1}{% |
382 |
\protect\contentsline{#2}{#3}{\thepage}{}% |
383 |
}% |
384 |
}% |
385 |
\def\contentsline#1#2#3#4{% |
386 |
\csname l@#1\endcsname{#2}{#3}% |
387 |
}% |
388 |
\def\label#1{% |
389 |
\@bsphack |
390 |
\protected@write\@auxout{}{% |
391 |
\string\newlabel{#1}{{\@currentlabel}{\thepage}{}{}{}}% |
392 |
}% |
393 |
\@esphack |
394 |
}% |
395 |
\appdef\class@documenthook{% |
396 |
\prepdef\caption{\minipagefootnote@here}% |
397 |
}% |
398 |
\def\minipagefootnote@init{% |
399 |
\setbox\@mpfootins\box\voidb@x |
400 |
}% |
401 |
\def\minipagefootnote@pick{% |
402 |
\global\setbox\@mpfootins\vbox\bgroup |
403 |
\unvbox\@mpfootins |
404 |
}% |
405 |
\def\minipagefootnote@drop{% |
406 |
\egroup |
407 |
}% |
408 |
\def\minipagefootnote@here{% |
409 |
\par |
410 |
\@ifvoid\@mpfootins{}{% |
411 |
\vskip\skip\@mpfootins |
412 |
\fullinterlineskip |
413 |
\@ifinner{% |
414 |
\vtop{\unvcopy\@mpfootins}% |
415 |
{\setbox\z@\lastbox}% |
416 |
}{}% |
417 |
\unvbox\@mpfootins |
418 |
}% |
419 |
}% |
420 |
\def\minipagefootnote@foot{% |
421 |
\@ifvoid\@mpfootins{}{% |
422 |
\insert\footins\bgroup\unvbox\@mpfootins\egroup |
423 |
}% |
424 |
}% |
425 |
\def\endminipage{% |
426 |
\par |
427 |
\unskip |
428 |
\minipagefootnote@here |
429 |
\@minipagefalse %% added 24 May 89 |
430 |
\color@endgroup |
431 |
\egroup |
432 |
\expandafter\@iiiparbox\@mpargs{\unvbox\@tempboxa}% |
433 |
}% |
434 |
\let\@xfloat@LaTeX\@xfloat |
435 |
\def\@xfloat#1[#2]{% |
436 |
\@xfloat@prep |
437 |
\@nameuse{fp@proc@#2}% |
438 |
\@ifxundefined\floats@sw{\global\@booleantrue\floats@sw}{}% |
439 |
\floats@sw{\@xfloat@LaTeX{#1}[#2]}{\@xfloat@anchored{#1}[]}% |
440 |
}% |
441 |
\def\@xfloat@prep{% |
442 |
\let\footnote\footnote@latex |
443 |
\def\@mpfn{mpfootnote}% |
444 |
\def\thempfn{\thempfootnote}% |
445 |
\c@mpfootnote\z@ |
446 |
\let\@footnotetext\@mpfootnotetext |
447 |
\let\H@@footnotetext\@mpfootnotetext |
448 |
\let\@makefntext\@mpmakefntext |
449 |
}% |
450 |
\appdef\class@documenthook{% |
451 |
\let\footnote@latex\footnote |
452 |
}% |
453 |
\def\@xfloat@anchored#1[#2]{% |
454 |
\def\@captype{#1}% |
455 |
\begin@float@pagebreak |
456 |
\let\end@float\end@float@anchored |
457 |
\let\end@dblfloat\end@float@anchored |
458 |
\hsize\columnwidth |
459 |
\@parboxrestore |
460 |
\@floatboxreset |
461 |
\minipagefootnote@init |
462 |
}% |
463 |
\def\end@float@anchored{% |
464 |
\minipagefootnote@here |
465 |
\par\vskip\z@skip %% \par\vskip\z@ added 15 Dec 87 |
466 |
\par |
467 |
\end@float@pagebreak |
468 |
}% |
469 |
\def\begin@float@pagebreak{\par\addvspace\intextsep}% |
470 |
\def\end@float@pagebreak{\par\addvspace\intextsep}% |
471 |
\def\@mpmakefntext#1{% |
472 |
\parindent=1em |
473 |
\noindent |
474 |
\hb@xt@1em{\hss\@makefnmark}% |
475 |
#1% |
476 |
}% |
477 |
\def\do@if@floats#1#2{% |
478 |
\@ifxundefined\floats@sw{\global\@booleantrue\floats@sw}{}% |
479 |
\floats@sw{}{% |
480 |
\expandafter\newwrite |
481 |
\csname#1write\endcsname |
482 |
\expandafter\def |
483 |
\csname#1@stream\endcsname{\jobname#2}% |
484 |
\expandafter\immediate |
485 |
\expandafter\openout |
486 |
\csname#1write\endcsname |
487 |
\csname#1@stream\endcsname\relax |
488 |
\@ifxundefined\@float@LaTeX{% |
489 |
\let\@float@LaTeX\@float |
490 |
\let\@dblfloat@LaTeX\@dblfloat |
491 |
\let\@float\write@float |
492 |
\let\@dblfloat\write@floats |
493 |
}{}% |
494 |
\let@environment{#1@float}{#1}% |
495 |
\let@environment{#1@floats}{#1*}% |
496 |
\@ifxundefined@cs{#1@write}{}{% |
497 |
\let@environment{#1}{#1@write}% |
498 |
}% |
499 |
}% |
500 |
}% |
501 |
\def\triggerpar{\leavevmode\@@par}% |
502 |
\def\oneapage{\def\begin@float@pagebreak{\newpage}\def\end@float@pagebreak{\newpage}}% |
503 |
\def\print@float#1#2{% |
504 |
\@ifxundefined@cs{#1write}{}{% |
505 |
\begingroup |
506 |
\@booleanfalse\floats@sw |
507 |
#2% |
508 |
\raggedbottom |
509 |
\def\array@default{v}% floats must |
510 |
\let\@float\@float@LaTeX |
511 |
\let\@dblfloat\@dblfloat@LaTeX |
512 |
\let\trigger@float@par\triggerpar |
513 |
\let@environment{#1}{#1@float}% |
514 |
\let@environment{#1*}{#1@floats}% |
515 |
\expandafter\prepdef\csname#1\endcsname{\trigger@float@par}% |
516 |
\expandafter\prepdef\csname#1*\endcsname{\trigger@float@par}% |
517 |
\@namedef{fps@#1}{h!}% |
518 |
\expandafter\immediate |
519 |
\expandafter\closeout |
520 |
\csname#1write\endcsname |
521 |
\everypar{% |
522 |
\global\let\trigger@float@par\relax |
523 |
\global\everypar{}\setbox\z@\lastbox |
524 |
\@ifxundefined@cs{#1sname}{}{% |
525 |
\begin@float@pagebreak |
526 |
\expandafter\section |
527 |
\expandafter*% |
528 |
\expandafter{% |
529 |
\csname#1sname\endcsname |
530 |
}% |
531 |
}% |
532 |
}% |
533 |
\input{\csname#1@stream\endcsname}% |
534 |
\endgroup |
535 |
\global\expandafter\let\csname#1write\endcsname\relax |
536 |
}% |
537 |
}% |
538 |
\def\write@float#1{\write@@float{#1}{#1}}% |
539 |
\def\endwrite@float{\@Esphack}% |
540 |
\def\write@floats#1{\write@@float{#1*}{#1}}% |
541 |
\def\endwrite@floats{\@Esphack}% |
542 |
\def\write@@float#1#2{% |
543 |
\ifhmode |
544 |
\@bsphack |
545 |
\fi |
546 |
\chardef\@tempc\csname#2write\endcsname |
547 |
\toks@{\begin{#1}}% |
548 |
\def\@tempb{#1}% |
549 |
\expandafter\let\csname end#1\endcsname\endwrite@float |
550 |
\catcode`\^^M\active |
551 |
\@makeother\{\@makeother\}\@makeother\% |
552 |
\write@floatline |
553 |
}% |
554 |
\begingroup |
555 |
\catcode`\[\the\catcode`\{\catcode`\]\the\catcode`\}\@makeother\{\@makeother\}% |
556 |
\gdef\float@end@tag#1\end{#2}#3\@nul[% |
557 |
\def\@tempa[#2]% |
558 |
\@ifx[\@tempa\@tempb][\end[#2]][\write@floatline]% |
559 |
]% |
560 |
\obeylines% |
561 |
\gdef\write@floatline#1^^M[% |
562 |
\begingroup% |
563 |
\newlinechar`\^^M% |
564 |
\toks@\expandafter[\the\toks@#1]\immediate\write\@tempc[\the\toks@]% |
565 |
\endgroup% |
566 |
\toks@[]% |
567 |
\float@end@tag#1\end{}\@nul% |
568 |
]% |
569 |
\endgroup |
570 |
\def\@alph#1{\ifcase#1\or a\or b\or c\or d\else\@ialph{#1}\fi} |
571 |
\def\@ialph#1{\ifcase#1\or \or \or \or \or e\or f\or g\or h\or i\or j\or |
572 |
k\or l\or m\or n\or o\or p\or q\or r\or s\or t\or u\or v\or w\or x\or |
573 |
y\or z\or aa\or bb\or cc\or dd\or ee\or ff\or gg\or hh\or ii\or jj\or |
574 |
kk\or ll\or mm\or nn\or oo\or pp\or qq\or rr\or ss\or tt\or uu\or |
575 |
vv\or ww\or xx\or yy\or zz\else\@ctrerr\fi} |
576 |
\def\@startsection#1#2#3#4#5#6{% |
577 |
\@startsection@hook |
578 |
\if@noskipsec \leavevmode \fi |
579 |
\par |
580 |
\@tempskipa #4\relax |
581 |
\@afterindenttrue |
582 |
\ifdim \@tempskipa <\z@ |
583 |
\@tempskipa -\@tempskipa \@afterindentfalse |
584 |
\fi |
585 |
\if@nobreak |
586 |
\everypar{}% |
587 |
\else |
588 |
\addpenalty\@secpenalty\addvspace\@tempskipa |
589 |
\fi |
590 |
\@ifstar |
591 |
{\@dblarg{\@ssect@ltx{#1}{#2}{#3}{#4}{#5}{#6}}}% |
592 |
{\@dblarg{\@sect@ltx {#1}{#2}{#3}{#4}{#5}{#6}}}% |
593 |
}% |
594 |
\def\@startsection@hook{}% |
595 |
\class@info |
596 |
{Repairing broken LateX \string\@sect}% |
597 |
\def\@sect@ltx#1#2#3#4#5#6[#7]#8{% |
598 |
\@ifnum{#2>\c@secnumdepth}{% |
599 |
\def\H@svsec{\phantomsection}% |
600 |
\let\@svsec\@empty |
601 |
}{% |
602 |
\H@refstepcounter{#1}% |
603 |
\def\H@svsec{% |
604 |
\phantomsection |
605 |
}% |
606 |
\protected@edef\@svsec{{#1}}% |
607 |
\@ifundefined{@#1cntformat}{% |
608 |
\prepdef\@svsec\@seccntformat |
609 |
}{% |
610 |
\expandafter\prepdef |
611 |
\expandafter\@svsec |
612 |
\csname @#1cntformat\endcsname |
613 |
}% |
614 |
}% |
615 |
\@tempskipa #5\relax |
616 |
\@ifdim{\@tempskipa>\z@}{% |
617 |
\begingroup |
618 |
\interlinepenalty \@M |
619 |
#6{% |
620 |
\@ifundefined{@hangfrom@#1}{\@hang@from}{\csname @hangfrom@#1\endcsname}% |
621 |
{\hskip#3\relax\H@svsec}{\@svsec}{#8}% |
622 |
}% |
623 |
\@@par |
624 |
\endgroup |
625 |
\@ifundefined{#1mark}{\@gobble}{\csname #1mark\endcsname}{#7}% |
626 |
\addcontentsline{toc}{#1}{% |
627 |
\@ifnum{#2>\c@secnumdepth}{% |
628 |
\protect\numberline{}% |
629 |
}{% |
630 |
\protect\numberline{\csname the#1\endcsname}% |
631 |
}% |
632 |
#8}% |
633 |
}{% |
634 |
\def\@svsechd{% |
635 |
#6{% |
636 |
\@ifundefined{@runin@to@#1}{\@runin@to}{\csname @runin@to@#1\endcsname}% |
637 |
{\hskip#3\relax\H@svsec}{\@svsec}{#8}% |
638 |
}% |
639 |
\@ifundefined{#1mark}{\@gobble}{\csname #1mark\endcsname}{#7}% |
640 |
\addcontentsline{toc}{#1}{% |
641 |
\@ifnum{#2>\c@secnumdepth}{% |
642 |
\protect\numberline{}% |
643 |
}{% |
644 |
\protect\numberline{\csname the#1\endcsname}% |
645 |
}% |
646 |
#8}% |
647 |
}% |
648 |
}% |
649 |
\@xsect{#5}% |
650 |
}% |
651 |
\def\@hang@from#1#2#3{\@hangfrom{#1#2}#3}% |
652 |
\def\@runin@to #1#2#3{#1#2#3}% |
653 |
\def\@ssect@ltx#1#2#3#4#5#6[#7]#8{% |
654 |
\def\H@svsec{\phantomsection}% |
655 |
\@tempskipa #5\relax |
656 |
\@ifdim{\@tempskipa>\z@}{% |
657 |
\begingroup |
658 |
\interlinepenalty \@M |
659 |
#6{% |
660 |
\@ifundefined{@hangfroms@#1}{\@hang@froms}{\csname @hangfroms@#1\endcsname}% |
661 |
{\hskip#3\relax\H@svsec}{#8}% |
662 |
}% |
663 |
\@@par |
664 |
\endgroup |
665 |
\@ifundefined{#1smark}{\@gobble}{\csname #1smark\endcsname}{#7}% |
666 |
\addcontentsline{toc}{#1}{\protect\numberline{}#8}% |
667 |
}{% |
668 |
\def\@svsechd{% |
669 |
#6{% |
670 |
\@ifundefined{@runin@tos@#1}{\@runin@tos}{\csname @runin@tos@#1\endcsname}% |
671 |
{\hskip#3\relax\H@svsec}{#8}% |
672 |
}% |
673 |
\@ifundefined{#1smark}{\@gobble}{\csname #1smark\endcsname}{#7}% |
674 |
\addcontentsline{toc}{#1}{\protect\numberline{}#8}% |
675 |
}% |
676 |
}% |
677 |
\@xsect{#5}% |
678 |
}% |
679 |
\def\@hang@froms#1#2{#1#2}% |
680 |
\def\@runin@tos #1#2{#1#2}% |
681 |
\appdef\init@documenthook{% |
682 |
\providecommand\phantomsection{}% |
683 |
\providecommand\hyper@anchor[1]{}% |
684 |
\providecommand\hyper@last{}% |
685 |
\providecommand\Hy@raisedlink[1]{#1}% |
686 |
\providecommand\hyper@anchorstart[1]{}% |
687 |
\providecommand\hyper@anchorend{}% |
688 |
\providecommand\hyper@linkstart[2]{}% |
689 |
\providecommand\hyper@linkend{}% |
690 |
}% |
691 |
\let\H@refstepcounter\refstepcounter |
692 |
\def\sec@upcase#1{\relax{#1}}% |
693 |
\appdef\class@documenthook{% |
694 |
\@ifpackageloaded{array}{\switch@array}{\switch@tabular}% |
695 |
\prepdef\endtabular{\endtabular@hook}% |
696 |
\@provide\endtabular@hook{}% |
697 |
\prepdef\endarray{\endarray@hook}% |
698 |
\@provide\endarray@hook{}% |
699 |
\providecommand\array@hook{}% |
700 |
\prepdef\@tabular{\tabular@hook}% |
701 |
\@provide\tabular@hook{}% |
702 |
}% |
703 |
\def\switch@tabular{% |
704 |
\let\@array@sw\@array@sw@array |
705 |
\@ifx{\@array\@array@LaTeX}{% |
706 |
\@ifx{\multicolumn\multicolumn@LaTeX}{% |
707 |
\@ifx{\@tabular\@tabular@LaTeX}{% |
708 |
\@ifx{\@tabarray\@tabarray@LaTeX}{% |
709 |
\@ifx{\array\array@LaTeX}{% |
710 |
\@ifx{\endarray\endarray@LaTeX}{% |
711 |
\@ifx{\endtabular\endtabular@LaTeX}{% |
712 |
\@ifx{\@mkpream\@mkpream@LaTeX}{% |
713 |
\@ifx{\@addamp\@addamp@LaTeX}{% |
714 |
\@ifx{\@arrayacol\@arrayacol@LaTeX}{% |
715 |
\@ifx{\@tabacol\@tabacol@LaTeX}{% |
716 |
\@ifx{\@arrayclassz\@arrayclassz@LaTeX}{% |
717 |
\@ifx{\@tabclassiv\@tabclassiv@LaTeX}{% |
718 |
\@ifx{\@arrayclassiv\@arrayclassiv@LaTeX}{% |
719 |
\@ifx{\@tabclassz\@tabclassz@LaTeX}{% |
720 |
\@ifx{\@classv\@classv@LaTeX}{% |
721 |
\@ifx{\hline\hline@LaTeX}{% |
722 |
\@ifx{\@tabularcr\@tabularcr@LaTeX}{% |
723 |
\@ifx{\@xtabularcr\@xtabularcr@LaTeX}{% |
724 |
\@ifx{\@xargarraycr\@xargarraycr@LaTeX}{% |
725 |
\@ifx{\@yargarraycr\@yargarraycr@LaTeX}{% |
726 |
\true@sw |
727 |
}{% |
728 |
\false@sw |
729 |
}% |
730 |
}{% |
731 |
\false@sw |
732 |
}% |
733 |
}{% |
734 |
\false@sw |
735 |
}% |
736 |
}{% |
737 |
\false@sw |
738 |
}% |
739 |
}{% |
740 |
\false@sw |
741 |
}% |
742 |
}{% |
743 |
\false@sw |
744 |
}% |
745 |
}{% |
746 |
\false@sw |
747 |
}% |
748 |
}{% |
749 |
\false@sw |
750 |
}% |
751 |
}{% |
752 |
\false@sw |
753 |
}% |
754 |
}{% |
755 |
\false@sw |
756 |
}% |
757 |
}{% |
758 |
\false@sw |
759 |
}% |
760 |
}{% |
761 |
\false@sw |
762 |
}% |
763 |
}{% |
764 |
\false@sw |
765 |
}% |
766 |
}{% |
767 |
\false@sw |
768 |
}% |
769 |
}{% |
770 |
\false@sw |
771 |
}% |
772 |
}{% |
773 |
\false@sw |
774 |
}% |
775 |
}{% |
776 |
\false@sw |
777 |
}% |
778 |
}{% |
779 |
\false@sw |
780 |
}% |
781 |
}{% |
782 |
\false@sw |
783 |
}% |
784 |
}{% |
785 |
\false@sw |
786 |
}% |
787 |
}{% |
788 |
\false@sw |
789 |
}% |
790 |
{% |
791 |
\class@info{Patching LaTeX tabular.}% |
792 |
}{% |
793 |
\class@info{Unrecognized LaTeX tabular. Please update this document class! (Proceeding with fingers crossed.)}% |
794 |
}% |
795 |
\let\@array\@array@ltx |
796 |
\let\multicolumn\multicolumn@ltx |
797 |
\let\@tabular\@tabular@ltx |
798 |
\let\@tabarray\@tabarray@ltx |
799 |
\let\array\array@ltx |
800 |
\let\endarray\endarray@ltx |
801 |
\let\endtabular\endtabular@ltx |
802 |
\let\@mkpream\@mkpream@ltx |
803 |
\let\@addamp\@addamp@ltx |
804 |
\let\@arrayacol\@arrayacol@ltx |
805 |
\let\@tabacol\@tabacol@ltx |
806 |
\let\@arrayclassz\@arrayclassz@ltx |
807 |
\let\@tabclassiv\@tabclassiv@ltx |
808 |
\let\@arrayclassiv\@arrayclassiv@ltx |
809 |
\let\@tabclassz\@tabclassz@ltx |
810 |
\let\@classv\@classv@ltx |
811 |
\let\hline\hline@ltx |
812 |
\let\@tabularcr\@tabularcr@ltx |
813 |
\let\@xtabularcr\@xtabularcr@ltx |
814 |
\let\@xargarraycr\@xargarraycr@ltx |
815 |
\let\@yargarraycr\@yargarraycr@ltx |
816 |
}% |
817 |
\def\switch@array{% |
818 |
\let\@array@sw\@array@sw@LaTeX |
819 |
\@ifx{\@array\@array@array}{% |
820 |
\@ifx{\@tabular\@tabular@array}{% |
821 |
\@ifx{\@tabarray\@tabarray@array}{% |
822 |
\@ifx{\array\array@array}{% |
823 |
\@ifx{\endarray\endarray@array}{% |
824 |
\@ifx{\endtabular\endtabular@array}{% |
825 |
\@ifx{\@mkpream\@mkpream@array}{% |
826 |
\@ifx{\@classx\@classx@array}{% |
827 |
\@ifx{\insert@column\insert@column@array}{% |
828 |
\@ifx{\@arraycr\@arraycr@array}{% |
829 |
\@ifx{\@xarraycr\@xarraycr@array}{% |
830 |
\@ifx{\@xargarraycr\@xargarraycr@array}{% |
831 |
\@ifx{\@yargarraycr\@yargarraycr@array}{% |
832 |
\true@sw |
833 |
}{% |
834 |
\false@sw |
835 |
}% |
836 |
}{% |
837 |
\false@sw |
838 |
}% |
839 |
}{% |
840 |
\false@sw |
841 |
}% |
842 |
}{% |
843 |
\false@sw |
844 |
}% |
845 |
}{% |
846 |
\false@sw |
847 |
}% |
848 |
}{% |
849 |
\false@sw |
850 |
}% |
851 |
}{% |
852 |
\false@sw |
853 |
}% |
854 |
}{% |
855 |
\false@sw |
856 |
}% |
857 |
}{% |
858 |
\false@sw |
859 |
}% |
860 |
}{% |
861 |
\false@sw |
862 |
}% |
863 |
}{% |
864 |
\false@sw |
865 |
}% |
866 |
}{% |
867 |
\false@sw |
868 |
}% |
869 |
}{% |
870 |
\false@sw |
871 |
}{% |
872 |
\class@info{Patching array package.}% |
873 |
}{% |
874 |
\class@info{Unrecognized array package. Please update this document class! (Proceeding with fingers crossed.)}% |
875 |
}% |
876 |
\let\@array \@array@array@new |
877 |
\let\@@array \@array % Cosi fan tutti |
878 |
\let\@tabular \@tabular@array@new |
879 |
\let\@tabarray \@tabarray@array@new |
880 |
\let\array \array@array@new |
881 |
\let\endarray \endarray@array@new |
882 |
\let\endtabular\endtabular@array@new |
883 |
\let\@mkpream \@mkpream@array@new |
884 |
\let\@classx \@classx@array@new |
885 |
\let\@arrayacol\@arrayacol@ltx |
886 |
\let\@tabacol \@tabacol@ltx |
887 |
\let\insert@column\insert@column@array@new |
888 |
\expandafter\let\csname endtabular*\endcsname\endtabular % Cosi fan tutti |
889 |
\let\@arraycr \@arraycr@new |
890 |
\let\@xarraycr \@xarraycr@new |
891 |
\let\@xargarraycr\@xargarraycr@new |
892 |
\let\@yargarraycr\@yargarraycr@new |
893 |
}% |
894 |
\def\@array@sw@LaTeX{\@ifx{\\\@tabularcr}}% |
895 |
\def\@array@sw@array{\@ifx{\d@llarbegin\begingroup}}% |
896 |
\def\@tabular@LaTeX{% |
897 |
\leavevmode |
898 |
\hbox\bgroup$% |
899 |
\let\@acol\@tabacol |
900 |
\let\@classz\@tabclassz |
901 |
\let\@classiv\@tabclassiv |
902 |
\let\\\@tabularcr |
903 |
\@tabarray |
904 |
}% |
905 |
\def\@tabular@ltx{% |
906 |
\let\@acoll\@tabacoll |
907 |
\let\@acolr\@tabacolr |
908 |
\let\@acol\@tabacol |
909 |
\let\@classz\@tabclassz |
910 |
\let\@classiv\@tabclassiv |
911 |
\let\\\@tabularcr |
912 |
\@tabarray |
913 |
}% |
914 |
\def\@tabular@array{% |
915 |
\leavevmode |
916 |
\hbox\bgroup$% |
917 |
\col@sep\tabcolsep |
918 |
\let\d@llarbegin\begingroup |
919 |
\let\d@llarend\endgroup |
920 |
\@tabarray |
921 |
}% |
922 |
\def\@tabular@array@new{% |
923 |
\let\@acoll\@tabacoll |
924 |
\let\@acolr\@tabacolr |
925 |
\let\@acol\@tabacol |
926 |
\let\col@sep\@undefined |
927 |
\let\d@llarbegin\begingroup |
928 |
\let\d@llarend\endgroup |
929 |
\@tabarray |
930 |
}% |
931 |
\def\@tabarray@LaTeX{% |
932 |
\m@th\@ifnextchar[\@array{\@array[c]}% |
933 |
}% |
934 |
\def\@tabarray@ltx{% |
935 |
\m@th\@ifnextchar[\@array{\expandafter\@array\expandafter[\array@default]}% |
936 |
}% |
937 |
\def\@tabarray@array{% |
938 |
\@ifnextchar[{\@@array}{\@@array[c]}% |
939 |
}% |
940 |
\def\@tabarray@array@new{% |
941 |
\@ifnextchar[{\@@array}{\expandafter\@@array\expandafter[\array@default]}% |
942 |
}% |
943 |
\newcount\intertabularlinepenalty |
944 |
\intertabularlinepenalty=100 |
945 |
\newcount\@tbpen |
946 |
\appdef\samepage{\intertabularlinepenalty\@M}% |
947 |
\def\@tabularcr@LaTeX{{\ifnum 0=`}\fi \@ifstar \@xtabularcr \@xtabularcr}% |
948 |
\def\@tabularcr@ltx{{\ifnum 0=`}\fi \@ifstar {\global \@tbpen \@M \@xtabularcr }{\global \@tbpen \intertabularlinepenalty \@xtabularcr }}% |
949 |
\def\@xtabularcr@LaTeX{\@ifnextchar [\@argtabularcr {\ifnum 0=`{\fi }\cr }}% |
950 |
\def\@xtabularcr@ltx{\@ifnextchar [\@argtabularcr {\ifnum 0=`{\fi }\cr \noalign {\penalty \@tbpen }}}% |
951 |
\def\@xargarraycr@LaTeX#1{\@tempdima #1\advance \@tempdima \dp \@arstrutbox \vrule \@height \z@ \@depth \@tempdima \@width \z@ \cr}% |
952 |
\def\@xargarraycr@ltx#1{\@tempdima #1\advance \@tempdima \dp \@arstrutbox \vrule \@height \z@ \@depth \@tempdima \@width \z@ \cr \noalign {\penalty \@tbpen }}% |
953 |
\def\@yargarraycr@LaTeX#1{\cr \noalign {\vskip #1}}% |
954 |
\def\@yargarraycr@ltx#1{\cr \noalign {\penalty \@tbpen \vskip #1}}% |
955 |
\def\@arraycr@array{% |
956 |
\relax |
957 |
\iffalse{\fi\ifnum 0=`}\fi |
958 |
\@ifstar \@xarraycr \@xarraycr |
959 |
}% |
960 |
\def\@arraycr@new{% |
961 |
\relax |
962 |
\iffalse{\fi\ifnum 0=`}\fi |
963 |
\@ifstar {\global \@tbpen \@M \@xarraycr }{\global \@tbpen \intertabularlinepenalty \@xarraycr }% |
964 |
}% |
965 |
\def\@xarraycr@array{% |
966 |
\@ifnextchar [%] |
967 |
\@argarraycr {\ifnum 0=`{}\fi\cr}% |
968 |
}% |
969 |
\def\@xarraycr@new{% |
970 |
\@ifnextchar [%] |
971 |
\@argarraycr {\ifnum 0=`{}\fi\cr \noalign {\penalty \@tbpen }}% |
972 |
}% |
973 |
\def\@xargarraycr@array#1{% |
974 |
\unskip |
975 |
\@tempdima #1\advance\@tempdima \dp\@arstrutbox |
976 |
\vrule \@depth\@tempdima \@width\z@ |
977 |
\cr |
978 |
}% |
979 |
\def\@xargarraycr@new#1{% |
980 |
\unskip |
981 |
\@tempdima #1\advance\@tempdima \dp\@arstrutbox |
982 |
\vrule \@depth\@tempdima \@width\z@ |
983 |
\cr |
984 |
\noalign {\penalty \@tbpen }% |
985 |
}% |
986 |
\def\@yargarraycr@array#1{% |
987 |
\cr |
988 |
\noalign{\vskip #1}% |
989 |
}% |
990 |
\def\@yargarraycr@new#1{% |
991 |
\cr |
992 |
\noalign{\penalty \@tbpen \vskip #1}% |
993 |
}% |
994 |
\def\array@LaTeX{% |
995 |
\let\@acol\@arrayacol |
996 |
\let\@classz\@arrayclassz |
997 |
\let\@classiv\@arrayclassiv |
998 |
\let\\\@arraycr |
999 |
\let\@halignto\@empty |
1000 |
\@tabarray |
1001 |
}% |
1002 |
\def\array@ltx{% |
1003 |
\@ifmmode{}{\@badmath$}% |
1004 |
\let\@acoll\@arrayacol |
1005 |
\let\@acolr\@arrayacol |
1006 |
\let\@acol\@arrayacol |
1007 |
\let\@classz\@arrayclassz |
1008 |
\let\@classiv\@arrayclassiv |
1009 |
\let\\\@arraycr |
1010 |
\let\@halignto\@empty |
1011 |
\@tabarray |
1012 |
}% |
1013 |
\def\array@array{% |
1014 |
\col@sep\arraycolsep |
1015 |
\def\d@llarbegin{$}\let\d@llarend\d@llarbegin\gdef\@halignto{}% |
1016 |
\@tabarray |
1017 |
} |
1018 |
\def\array@array@new{% |
1019 |
\@ifmmode{}{\@badmath$}% |
1020 |
\let\@acoll\@arrayacol |
1021 |
\let\@acolr\@arrayacol |
1022 |
\let\@acol\@arrayacol |
1023 |
\let\col@sep\@undefined |
1024 |
\def\d@llarbegin{$}% |
1025 |
\let\d@llarend\d@llarbegin |
1026 |
\gdef\@halignto{}% |
1027 |
\@tabarray |
1028 |
}% |
1029 |
\def\@array@LaTeX[#1]#2{% |
1030 |
\if #1t\vtop \else \if#1b\vbox \else \vcenter \fi\fi |
1031 |
\bgroup |
1032 |
\setbox\@arstrutbox\hbox{% |
1033 |
\vrule \@height\arraystretch\ht\strutbox |
1034 |
\@depth\arraystretch \dp\strutbox |
1035 |
\@width\z@}% |
1036 |
\@mkpream{#2}% |
1037 |
\edef\@preamble{% |
1038 |
\ialign \noexpand\@halignto |
1039 |
\bgroup \@arstrut \@preamble \tabskip\z@skip \cr}% |
1040 |
\let\@startpbox\@@startpbox \let\@endpbox\@@endpbox |
1041 |
\let\tabularnewline\\% |
1042 |
\let\par\@empty |
1043 |
\let\@sharp##% |
1044 |
\set@typeset@protect |
1045 |
\lineskip\z@skip\baselineskip\z@skip |
1046 |
\ifhmode \@preamerr\z@ \@@par\fi |
1047 |
\@preamble |
1048 |
}% |
1049 |
\def\@array@ltx[#1]#2{% |
1050 |
\@nameuse{@array@align@#1}% |
1051 |
\set@arstrutbox |
1052 |
\@mkpream{#2}% |
1053 |
\prepdef\@preamble{% |
1054 |
\tabskip\tabmid@skip |
1055 |
\@arstrut |
1056 |
}% |
1057 |
\appdef\@preamble{% |
1058 |
\tabskip\tabright@skip |
1059 |
\cr |
1060 |
\array@row@pre |
1061 |
}% |
1062 |
\let\tabularnewline\\% |
1063 |
\let\par\@empty |
1064 |
\let\@sharp##% |
1065 |
\set@typeset@protect |
1066 |
\lineskip\z@skip\baselineskip\z@skip |
1067 |
\tabskip\tableft@skip\relax |
1068 |
\ifhmode \@preamerr\z@ \@@par\fi |
1069 |
\everycr{}% |
1070 |
\expandafter\halign\expandafter\@halignto\expandafter\bgroup\@preamble |
1071 |
}% |
1072 |
\def\set@arstrutbox{% |
1073 |
\setbox\@arstrutbox\hbox{% |
1074 |
\vrule \@height\arraystretch\ht\strutbox |
1075 |
\@depth\arraystretch \dp\strutbox |
1076 |
\@width\z@ |
1077 |
}% |
1078 |
}% |
1079 |
\def\@array@array[#1]#2{% |
1080 |
\@tempdima \ht \strutbox |
1081 |
\advance \@tempdima by\extrarowheight |
1082 |
\setbox \@arstrutbox \hbox{\vrule |
1083 |
\@height \arraystretch \@tempdima |
1084 |
\@depth \arraystretch \dp \strutbox |
1085 |
\@width \z@}% |
1086 |
\begingroup |
1087 |
\@mkpream{#2}% |
1088 |
\xdef\@preamble{\noexpand \ialign \@halignto |
1089 |
\bgroup \@arstrut \@preamble |
1090 |
\tabskip \z@ \cr}% |
1091 |
\endgroup |
1092 |
\@arrayleft |
1093 |
\if #1t\vtop \else \if#1b\vbox \else \vcenter \fi \fi |
1094 |
\bgroup |
1095 |
\let \@sharp ##\let \protect \relax |
1096 |
\lineskip \z@ |
1097 |
\baselineskip \z@ |
1098 |
\m@th |
1099 |
\let\\\@arraycr \let\tabularnewline\\\let\par\@empty \@preamble |
1100 |
}% |
1101 |
\def\@array@array@new[#1]#2{% |
1102 |
\@tempdima\ht\strutbox |
1103 |
\advance\@tempdima by\extrarowheight |
1104 |
\setbox\@arstrutbox\hbox{% |
1105 |
\vrule \@height\arraystretch\@tempdima |
1106 |
\@depth \arraystretch\dp\strutbox |
1107 |
\@width \z@ |
1108 |
}% |
1109 |
\begingroup |
1110 |
\@mkpream{#2}% |
1111 |
\xdef\@preamble{\@preamble}% |
1112 |
\endgroup |
1113 |
\prepdef\@preamble{% |
1114 |
\tabskip\tabmid@skip |
1115 |
\@arstrut |
1116 |
}% |
1117 |
\appdef\@preamble{% |
1118 |
\tabskip\tabright@skip |
1119 |
\cr |
1120 |
\array@row@pre |
1121 |
}% |
1122 |
\@arrayleft |
1123 |
\@nameuse{@array@align@#1}% |
1124 |
\m@th |
1125 |
\let\\\@arraycr |
1126 |
\let\tabularnewline\\% |
1127 |
\let\par\@empty |
1128 |
\let\@sharp##% |
1129 |
\set@typeset@protect |
1130 |
\lineskip\z@\baselineskip\z@ |
1131 |
\tabskip\tableft@skip |
1132 |
\everycr{}% |
1133 |
\expandafter\halign\expandafter\@halignto\expandafter\bgroup\@preamble |
1134 |
}% |
1135 |
\def\endarray@LaTeX{% |
1136 |
\crcr\egroup\egroup |
1137 |
}% |
1138 |
\def\endarray@ltx{% |
1139 |
\crcr\array@row@pst\egroup\egroup |
1140 |
}% |
1141 |
\def\endarray@array{% |
1142 |
\crcr \egroup \egroup \@arrayright \gdef\@preamble{}% |
1143 |
}% |
1144 |
\def\endarray@array@new{% |
1145 |
\crcr\array@row@pst\egroup\egroup % Same as \endarray@ltx |
1146 |
\@arrayright |
1147 |
\global\let\@preamble\@empty |
1148 |
}% |
1149 |
\def\endtabular@LaTeX{% |
1150 |
\crcr\egroup\egroup $\egroup |
1151 |
}% |
1152 |
\def\endtabular@ltx{% |
1153 |
\endarray |
1154 |
}% |
1155 |
\def\endtabular@array{% |
1156 |
\endarray $\egroup |
1157 |
}% |
1158 |
\def\endtabular@array@new{% |
1159 |
\endarray |
1160 |
}% |
1161 |
\@namedef{endtabular*}{\endtabular}% |
1162 |
\long\def\multicolumn@LaTeX#1#2#3{% |
1163 |
\multispan{#1}\begingroup |
1164 |
\@mkpream{#2}% |
1165 |
\def\@sharp{#3}\set@typeset@protect |
1166 |
\let\@startpbox\@@startpbox\let\@endpbox\@@endpbox |
1167 |
\@arstrut \@preamble\hbox{}\endgroup\ignorespaces |
1168 |
}% |
1169 |
\long\def\multicolumn@ltx#1#2#3{% |
1170 |
\multispan{#1}% |
1171 |
\begingroup |
1172 |
\@mkpream{#2}% |
1173 |
\def\@sharp{#3}% |
1174 |
\set@typeset@protect |
1175 |
%\let\@startpbox\@@startpbox\let\@endpbox\@@endpbox |
1176 |
\@arstrut |
1177 |
\@preamble |
1178 |
\hbox{}% |
1179 |
\endgroup |
1180 |
\ignorespaces |
1181 |
}% |
1182 |
\def\@array@align@t{\leavevmode\vtop\bgroup}% |
1183 |
\def\@array@align@b{\leavevmode\vbox\bgroup}% |
1184 |
\def\@array@align@c{\leavevmode\@ifmmode{\vcenter\bgroup}{$\vcenter\bgroup\aftergroup$\aftergroup\relax}}% |
1185 |
\def\@array@align@v{% |
1186 |
\@ifmmode{% |
1187 |
\@badmath |
1188 |
\vcenter\bgroup |
1189 |
}{% |
1190 |
\@ifinner{% |
1191 |
$\vcenter\bgroup\aftergroup$ |
1192 |
}{% |
1193 |
\@@par\bgroup |
1194 |
}% |
1195 |
}% |
1196 |
}% |
1197 |
\def\array@default{c}% |
1198 |
\def\array@row@rst{% |
1199 |
\let\@array@align@v\@array@align@c |
1200 |
}% |
1201 |
\def\array@row@pre{}% |
1202 |
\def\array@row@pst{}% |
1203 |
\newcommand\toprule{\tab@rule{\column@font}{\column@fil}{\frstrut}}% |
1204 |
\newcommand\colrule{\unskip\lrstrut\\\tab@rule{\body@font}{}{\frstrut}}% |
1205 |
\newcommand\botrule{\unskip\lrstrut\\\noalign{\hline@rule}{}}% |
1206 |
\def\hline@LaTeX{% |
1207 |
\noalign{\ifnum0=`}\fi\hrule \@height \arrayrulewidth \futurelet |
1208 |
\reserved@a\@xhline |
1209 |
}% |
1210 |
\def\hline@ltx{% |
1211 |
\noalign{% |
1212 |
\ifnum0=`}\fi |
1213 |
\hline@rule |
1214 |
\futurelet\reserved@a\@xhline |
1215 |
% \noalign ended in \@xhline |
1216 |
}% |
1217 |
\def\@xhline@unneeded{% |
1218 |
\say\reserved@a |
1219 |
\ifx\reserved@a\hline |
1220 |
\vskip\doublerulesep |
1221 |
\vskip-\arrayrulewidth |
1222 |
\fi |
1223 |
\ifnum0=`{\fi}% |
1224 |
}% |
1225 |
\def\tab@rule#1#2#3{% |
1226 |
\crcr |
1227 |
\noalign{% |
1228 |
\hline@rule |
1229 |
\gdef\@arstrut@hook{% |
1230 |
\global\let\@arstrut@hook\@empty |
1231 |
#3% |
1232 |
}% |
1233 |
\gdef\cell@font{#1}% |
1234 |
\gdef\cell@fil{#2}% |
1235 |
}% |
1236 |
}% |
1237 |
\def\column@font{}% |
1238 |
\def\column@fil{}% |
1239 |
\def\body@font{}% |
1240 |
\def\cell@font{}% |
1241 |
\def\frstrut{}% |
1242 |
\def\lrstrut{}% |
1243 |
\def\@arstrut@hline{% |
1244 |
\relax |
1245 |
\@ifmmode{\copy}{\unhcopy}\@arstrutbox@hline |
1246 |
\@arstrut@hook |
1247 |
}% |
1248 |
\let\@arstrut@org\@arstrut |
1249 |
\def\@arstrut@hook{% |
1250 |
\global\let\@arstrut\@arstrut@org |
1251 |
}% |
1252 |
\newbox\@arstrutbox@hline |
1253 |
\appdef\set@arstrutbox{% |
1254 |
\setbox\@arstrutbox@hline\hbox{% |
1255 |
\setbox\z@\hbox{$0^{0}_{}$}% |
1256 |
\dimen@\ht\z@\advance\dimen@\@arstrut@hline@clnc |
1257 |
\@ifdim{\dimen@<\arraystretch\ht\strutbox}{\dimen@=\arraystretch\ht\strutbox}{}% |
1258 |
\vrule \@height\dimen@ |
1259 |
\@depth\arraystretch \dp\strutbox |
1260 |
\@width\z@ |
1261 |
}% |
1262 |
}% |
1263 |
\def\hline@rule{% |
1264 |
\hrule \@height \arrayrulewidth |
1265 |
\global\let\@arstrut\@arstrut@hline |
1266 |
}% |
1267 |
\def\@arstrut@hline@clnc{2\p@}% % Klootch: magic number |
1268 |
\def\tableft@skip{\z@skip}% |
1269 |
\def\tabmid@skip{\z@skip}%\@flushglue |
1270 |
\def\tabright@skip{\z@skip}% |
1271 |
\def\tableftsep{\tabcolsep}% |
1272 |
\def\tabmidsep{\tabcolsep}% |
1273 |
\def\tabrightsep{\tabcolsep}% |
1274 |
\def\cell@fil{}% |
1275 |
\def\pbox@hook{}% |
1276 |
\appdef\@arstrut{\@arstrut@hook}% |
1277 |
\let\@arstrut@hook\@empty |
1278 |
\def\@addtopreamble{\appdef\@preamble}% |
1279 |
\def\@mkpream@LaTeX#1{% |
1280 |
\@firstamptrue\@lastchclass6 |
1281 |
\let\@preamble\@empty |
1282 |
\let\protect\@unexpandable@protect |
1283 |
\let\@sharp\relax |
1284 |
\let\@startpbox\relax\let\@endpbox\relax |
1285 |
\@expast{#1}% |
1286 |
\expandafter\@tfor \expandafter |
1287 |
\@nextchar \expandafter:\expandafter=\reserved@a\do |
1288 |
{\@testpach\@nextchar |
1289 |
\ifcase \@chclass \@classz \or \@classi \or \@classii \or \@classiii |
1290 |
\or \@classiv \or\@classv \fi\@lastchclass\@chclass}% |
1291 |
\ifcase \@lastchclass \@acol |
1292 |
\or \or \@preamerr \@ne\or \@preamerr \tw@\or \or \@acol \fi |
1293 |
}% |
1294 |
\def\@mkpream@ltx#1{% |
1295 |
\@firstamptrue |
1296 |
\@lastchclass6 |
1297 |
\let\@preamble\@empty |
1298 |
\let\protect\@unexpandable@protect |
1299 |
\let\@sharp\relax |
1300 |
\@expast{#1}% |
1301 |
\expandafter\@tfor\expandafter\@nextchar\expandafter:\expandafter=\reserved@a |
1302 |
\do{% |
1303 |
\expandafter\@testpach\expandafter{\@nextchar}% |
1304 |
\ifcase\@chclass |
1305 |
\@classz |
1306 |
\or |
1307 |
\@classi |
1308 |
\or |
1309 |
\@classii |
1310 |
\or |
1311 |
\@classiii |
1312 |
\or |
1313 |
\@classiv |
1314 |
\or |
1315 |
\@classv |
1316 |
\fi |
1317 |
\@lastchclass\@chclass |
1318 |
}% |
1319 |
\ifcase\@lastchclass |
1320 |
\@acolr % right-hand column |
1321 |
\or |
1322 |
\or |
1323 |
\@preamerr\@ne |
1324 |
\or |
1325 |
\@preamerr\tw@ |
1326 |
\or |
1327 |
\or |
1328 |
\@acolr % right-hand column |
1329 |
\fi |
1330 |
}% |
1331 |
\def\insert@column@array{% |
1332 |
\the@toks \the \@tempcnta |
1333 |
\ignorespaces \@sharp \unskip |
1334 |
\the@toks \the \count@ \relax |
1335 |
}% |
1336 |
\def\insert@column@array@new{% |
1337 |
\the@toks\the\@tempcnta |
1338 |
\array@row@rst\cell@font |
1339 |
\ignorespaces\@sharp\unskip |
1340 |
\the@toks\the\count@ |
1341 |
\relax |
1342 |
}% |
1343 |
\def\@mkpream@relax{% |
1344 |
\let\tableftsep\relax |
1345 |
\let\tabmidsep\relax |
1346 |
\let\tabrightsep\relax |
1347 |
\let\array@row@rst\relax |
1348 |
\let\cell@font\relax |
1349 |
\let\@startpbox\relax |
1350 |
}% |
1351 |
\def\@mkpream@array#1{% |
1352 |
\gdef\@preamble{}\@lastchclass 4 \@firstamptrue |
1353 |
\let\@sharp\relax \let\@startpbox\relax \let\@endpbox\relax |
1354 |
\@temptokena{#1}\@tempswatrue |
1355 |
\@whilesw\if@tempswa\fi{\@tempswafalse\the\NC@list}% |
1356 |
\count@\m@ne |
1357 |
\let\the@toks\relax |
1358 |
\prepnext@tok |
1359 |
\expandafter \@tfor \expandafter \@nextchar |
1360 |
\expandafter :\expandafter =\the\@temptokena \do |
1361 |
{\@testpach |
1362 |
\ifcase \@chclass \@classz \or \@classi \or \@classii |
1363 |
\or \save@decl \or \or \@classv \or \@classvi |
1364 |
\or \@classvii \or \@classviii |
1365 |
\or \@classx |
1366 |
\or \@classx \fi |
1367 |
\@lastchclass\@chclass}% |
1368 |
\ifcase\@lastchclass |
1369 |
\@acol \or |
1370 |
\or |
1371 |
\@acol \or |
1372 |
\@preamerr \thr@@ \or |
1373 |
\@preamerr \tw@ \@addtopreamble\@sharp \or |
1374 |
\or |
1375 |
\else \@preamerr \@ne \fi |
1376 |
\def\the@toks{\the\toks}% |
1377 |
}% |
1378 |
\def\@mkpream@array@new#1{% |
1379 |
\gdef\@preamble{}% |
1380 |
\@lastchclass\f@ur |
1381 |
\@firstamptrue |
1382 |
\let\@sharp\relax |
1383 |
\@mkpream@relax |
1384 |
\@temptokena{#1}\@tempswatrue |
1385 |
\@whilesw\if@tempswa\fi{\@tempswafalse\the\NC@list}% |
1386 |
\count@\m@ne |
1387 |
\let\the@toks\relax |
1388 |
\prepnext@tok |
1389 |
\expandafter\@tfor\expandafter\@nextchar\expandafter:\expandafter=\the\@temptokena |
1390 |
\do{% |
1391 |
\@testpach |
1392 |
\ifcase\@chclass |
1393 |
\@classz |
1394 |
\or |
1395 |
\@classi |
1396 |
\or |
1397 |
\@classii |
1398 |
\or |
1399 |
\save@decl |
1400 |
\or |
1401 |
\or |
1402 |
\@classv |
1403 |
\or |
1404 |
\@classvi |
1405 |
\or |
1406 |
\@classvii |
1407 |
\or |
1408 |
\@classviii |
1409 |
\or |
1410 |
\@classx |
1411 |
\or |
1412 |
\@classx |
1413 |
\fi |
1414 |
\@lastchclass\@chclass |
1415 |
}% |
1416 |
\ifcase\@lastchclass |
1417 |
\@acolr % right-hand column |
1418 |
\or |
1419 |
\or |
1420 |
\@acolr % right-hand column |
1421 |
\or |
1422 |
\@preamerr\thr@@ |
1423 |
\or |
1424 |
\@preamerr\tw@\@addtopreamble\@sharp |
1425 |
\or |
1426 |
\or |
1427 |
\else |
1428 |
\@preamerr\@ne |
1429 |
\fi |
1430 |
\def\the@toks{\the\toks}% |
1431 |
}% |
1432 |
\def\@addamp@LaTeX{% |
1433 |
\if@firstamp\@firstampfalse\else\edef\@preamble{\@preamble &}\fi |
1434 |
}% |
1435 |
\def\@addamp@ltx{% |
1436 |
\if@firstamp\@firstampfalse\else\@addtopreamble{&}\fi |
1437 |
}% |
1438 |
\def\@arrayacol@LaTeX{% |
1439 |
\edef\@preamble{\@preamble \hskip \arraycolsep}% |
1440 |
}% |
1441 |
\def\@arrayacol@ltx{% |
1442 |
\@addtopreamble{\hskip\arraycolsep}% |
1443 |
}% |
1444 |
\def\@tabacoll{% |
1445 |
\@addtopreamble{\hskip\tableftsep\relax}% |
1446 |
}% |
1447 |
\def\@tabacol@LaTeX{% |
1448 |
\edef\@preamble{\@preamble \hskip \tabcolsep}% |
1449 |
}% |
1450 |
\def\@tabacol@ltx{% |
1451 |
\@addtopreamble{\hskip\tabmidsep\relax}% |
1452 |
}% |
1453 |
\def\@tabacolr{% |
1454 |
\@addtopreamble{\hskip\tabrightsep\relax}% |
1455 |
}% |
1456 |
\def\@arrayclassz@LaTeX{% |
1457 |
\ifcase \@lastchclass \@acolampacol \or \@ampacol \or |
1458 |
\or \or \@addamp \or |
1459 |
\@acolampacol \or \@firstampfalse \@acol \fi |
1460 |
\edef\@preamble{\@preamble |
1461 |
\ifcase \@chnum |
1462 |
\hfil$\relax\@sharp$\hfil \or $\relax\@sharp$\hfil |
1463 |
\or \hfil$\relax\@sharp$\fi}% |
1464 |
}% |
1465 |
\def\@arrayclassz@ltx{% |
1466 |
\ifcase\@lastchclass |
1467 |
\@acolampacol |
1468 |
\or |
1469 |
\@ampacol |
1470 |
\or |
1471 |
\or |
1472 |
\or |
1473 |
\@addamp |
1474 |
\or |
1475 |
\@acolampacol |
1476 |
\or |
1477 |
\@firstampfalse\@acoll |
1478 |
\fi |
1479 |
\ifcase\@chnum |
1480 |
\@addtopreamble{% |
1481 |
\hfil\array@row@rst$\relax\@sharp$\hfil |
1482 |
}% |
1483 |
\or |
1484 |
\@addtopreamble{% |
1485 |
\array@row@rst$\relax\@sharp$\hfil |
1486 |
}% |
1487 |
\or |
1488 |
\@addtopreamble{% |
1489 |
\hfil\array@row@rst$\relax\@sharp$% |
1490 |
}% |
1491 |
\fi |
1492 |
}% |
1493 |
\def\@tabclassz@LaTeX{% |
1494 |
\ifcase\@lastchclass |
1495 |
\@acolampacol |
1496 |
\or |
1497 |
\@ampacol |
1498 |
\or |
1499 |
\or |
1500 |
\or |
1501 |
\@addamp |
1502 |
\or |
1503 |
\@acolampacol |
1504 |
\or |
1505 |
\@firstampfalse\@acol |
1506 |
\fi |
1507 |
\edef\@preamble{% |
1508 |
\@preamble{% |
1509 |
\ifcase\@chnum |
1510 |
\hfil\ignorespaces\@sharp\unskip\hfil |
1511 |
\or |
1512 |
\hskip1sp\ignorespaces\@sharp\unskip\hfil |
1513 |
\or |
1514 |
\hfil\hskip1sp\ignorespaces\@sharp\unskip |
1515 |
\fi}}% |
1516 |
}% |
1517 |
\def\@tabclassz@ltx{% |
1518 |
\ifcase\@lastchclass |
1519 |
\@acolampacol |
1520 |
\or |
1521 |
\@ampacol |
1522 |
\or |
1523 |
\or |
1524 |
\or |
1525 |
\@addamp |
1526 |
\or |
1527 |
\@acolampacol |
1528 |
\or |
1529 |
\@firstampfalse\@acoll |
1530 |
\fi |
1531 |
\ifcase\@chnum |
1532 |
\@addtopreamble{% |
1533 |
{\hfil\array@row@rst\cell@font\ignorespaces\@sharp\unskip\hfil}% |
1534 |
}% |
1535 |
\or |
1536 |
\@addtopreamble{% |
1537 |
{\cell@fil\hskip1sp\array@row@rst\cell@font\ignorespaces\@sharp\unskip\hfil}% |
1538 |
}% |
1539 |
\or |
1540 |
\@addtopreamble{% |
1541 |
{\hfil\hskip1sp\array@row@rst\cell@font\ignorespaces\@sharp\unskip\cell@fil}% |
1542 |
}% |
1543 |
\fi |
1544 |
}% |
1545 |
\def\@tabclassiv@LaTeX{% |
1546 |
\@addtopreamble\@nextchar |
1547 |
}% |
1548 |
\def\@tabclassiv@ltx{% |
1549 |
\expandafter\@addtopreamble\expandafter{\@nextchar}% |
1550 |
}% |
1551 |
\def\@arrayclassiv@LaTeX{% |
1552 |
\@addtopreamble{$\@nextchar$}% |
1553 |
}% |
1554 |
\def\@arrayclassiv@ltx{% |
1555 |
\expandafter\@addtopreamble\expandafter{\expandafter$\@nextchar$}% |
1556 |
}% |
1557 |
\def\@classv@LaTeX{% |
1558 |
\@addtopreamble{\@startpbox{\@nextchar}\ignorespaces |
1559 |
\@sharp\@endpbox}% |
1560 |
}% |
1561 |
\def\@classv@ltx{% |
1562 |
\expandafter\@addtopreamble |
1563 |
\expandafter{% |
1564 |
\expandafter \@startpbox |
1565 |
\expandafter {\@nextchar}% |
1566 |
\pbox@hook\array@row@rst\cell@font\ignorespaces\@sharp\@endpbox |
1567 |
}% |
1568 |
}% |
1569 |
\def\@classx@array{% |
1570 |
\ifcase \@lastchclass |
1571 |
\@acolampacol \or |
1572 |
\@addamp \@acol \or |
1573 |
\@acolampacol \or |
1574 |
\or |
1575 |
\@acol \@firstampfalse \or |
1576 |
\@addamp |
1577 |
\fi |
1578 |
}% |
1579 |
\def\@classx@array@new{% |
1580 |
\ifcase \@lastchclass |
1581 |
\@acolampacol |
1582 |
\or |
1583 |
\@addamp \@acol |
1584 |
\or |
1585 |
\@acolampacol |
1586 |
\or |
1587 |
\or |
1588 |
\@firstampfalse\@acoll |
1589 |
\or |
1590 |
\@addamp |
1591 |
\fi |
1592 |
}% |
1593 |
\def\@xbitor@LaTeX #1{\@tempcntb \count#1 |
1594 |
\ifnum \@tempcnta =\z@ |
1595 |
\else |
1596 |
\divide\@tempcntb\@tempcnta |
1597 |
\ifodd\@tempcntb \@testtrue\fi |
1598 |
\fi}% |
1599 |
\def\@xbitor@ltx#1{% |
1600 |
\@tempcntb\count#1% |
1601 |
\@ifnum{\@tempcnta=\z@}{}{% |
1602 |
\divide\@tempcntb\@tempcnta |
1603 |
\@ifodd\@tempcntb{\@testtrue}{}% |
1604 |
}% |
1605 |
}% |
1606 |
\@ifx{\@xbitor\@xbitor@LaTeX}{% |
1607 |
\class@info{Repairing broken LaTeX \string\@xbitor}% |
1608 |
}{% |
1609 |
\class@info{Unrecognized LaTeX \string\@xbitor. Please update this document class! (Proceeding with fingers crossed.)}% |
1610 |
}% |
1611 |
\let\@xbitor\@xbitor@ltx |
1612 |
\newcommand*\@gobble@opt@one[2][]{}% |
1613 |
\def\@starttoc#1{% |
1614 |
\begingroup |
1615 |
\toc@pre |
1616 |
\makeatletter |
1617 |
\@input{\jobname.#1}% |
1618 |
\if@filesw |
1619 |
\expandafter\newwrite\csname tf@#1\endcsname |
1620 |
\immediate\openout \csname tf@#1\endcsname \jobname.#1\relax |
1621 |
\fi |
1622 |
\@nobreakfalse |
1623 |
\toc@post |
1624 |
\endgroup |
1625 |
}% |
1626 |
\def\toc@pre{}% |
1627 |
\def\toc@post{}% |
1628 |
\def\toc@@font{}%{\footnotesize\rmfamily}% |
1629 |
\def\@dotsep{\z@}%{5.5pt}% |
1630 |
\let\tocdim@section \leftmargini |
1631 |
\let\tocdim@subsection \leftmarginii |
1632 |
\let\tocdim@subsubsection \leftmarginiii |
1633 |
\let\tocdim@paragraph \leftmarginiv |
1634 |
\let\tocdim@appendix \leftmarginv |
1635 |
\let\tocdim@pagenum \leftmarginvi |
1636 |
\def\toc@pre@auto{% |
1637 |
\toc@@font |
1638 |
\@tempdima\z@ |
1639 |
\toc@setindent\@tempdima{section}% |
1640 |
\toc@setindent\@tempdima{subsection}% |
1641 |
\toc@setindent\@tempdima{subsubsection}% |
1642 |
\toc@setindent\@tempdima{paragraph}% |
1643 |
\toc@letdimen{appendix}% |
1644 |
\toc@letdimen{pagenum}% |
1645 |
}% |
1646 |
\def\toc@post@auto{% |
1647 |
\if@filesw |
1648 |
\begingroup |
1649 |
\toc@writedimen{section}% |
1650 |
\toc@writedimen{subsection}% |
1651 |
\toc@writedimen{subsubsection}% |
1652 |
\toc@writedimen{paragraph}% |
1653 |
\toc@writedimen{appendix}% |
1654 |
\toc@writedimen{pagenum}% |
1655 |
\endgroup |
1656 |
\fi |
1657 |
}% |
1658 |
\def\toc@setindent#1#2{% |
1659 |
\csname tocdim@#2\endcsname\tocdim@min\relax |
1660 |
\@ifundefined{tocmax@#2}{\@namedef{tocmax@#2}{\z@}}{}% |
1661 |
\advance#1\@nameuse{tocmax@#2}\relax |
1662 |
\expandafter\edef\csname tocleft@#2\endcsname{\the#1}% |
1663 |
}% |
1664 |
\def\toc@letdimen#1{% |
1665 |
\csname tocdim@#1\endcsname\tocdim@min\relax |
1666 |
\@ifundefined{tocmax@#1}{\@namedef{tocmax@#1}{\z@}}{}% |
1667 |
\expandafter\let\csname tocleft@#1\expandafter\endcsname\csname tocmax@#1\endcsname |
1668 |
}% |
1669 |
\def\toc@writedimen#1{% |
1670 |
\immediate\write\@auxout{% |
1671 |
\gdef\expandafter\string\csname tocmax@#1\endcsname{% |
1672 |
\expandafter\the\csname tocdim@#1\endcsname |
1673 |
}% |
1674 |
}% |
1675 |
}% |
1676 |
\def\l@@sections#1#2#3#4{% |
1677 |
% #1 - superior section |
1678 |
% #2 - this section |
1679 |
% #3 - content, including possible \numberline |
1680 |
% #4 - page number |
1681 |
\begingroup |
1682 |
\everypar{}% |
1683 |
\set@tocdim@pagenum{#4}% |
1684 |
\global\@tempdima\csname tocdim@#2\endcsname |
1685 |
\leftskip\csname tocleft@#2\endcsname\relax |
1686 |
\dimen@\csname tocleft@#1\endcsname\relax |
1687 |
\parindent-\leftskip\advance\parindent\dimen@ |
1688 |
\rightskip\tocleft@pagenum plus 1fil\relax |
1689 |
\skip@\parfillskip\parfillskip\z@ |
1690 |
\let\numberline\numberline@@sections |
1691 |
\@nameuse{l@f@#2}% |
1692 |
\ignorespaces#3\unskip\nobreak\hskip\skip@ |
1693 |
\hb@xt@\rightskip{\hfil\unhbox\@tempboxa}\hskip-\rightskip\hskip\z@skip |
1694 |
\par |
1695 |
\expandafter\aftergroup\csname tocdim@#2\endcsname\expandafter |
1696 |
\endgroup\the\@tempdima\relax |
1697 |
}% |
1698 |
\def\set@tocdim@pagenum#1{% |
1699 |
\setbox\@tempboxa\hbox{\ignorespaces#1}% |
1700 |
\@ifdim{\tocdim@pagenum<\wd\z@}{\global\tocdim@pagenum\wd\z@}{}% |
1701 |
}% |
1702 |
\def\numberline@@sections#1{% |
1703 |
\leavevmode\hb@xt@-\parindent{% |
1704 |
\hfil |
1705 |
\@if@empty{#1}{}{% |
1706 |
\setbox\z@\hbox{#1.\kern\@dotsep}% |
1707 |
\@ifdim{\@tempdima<\wd\z@}{\global\@tempdima\wd\z@}{}% |
1708 |
\unhbox\z@ |
1709 |
}% |
1710 |
}% |
1711 |
\ignorespaces |
1712 |
}% |
1713 |
\def\tocdim@min{\z@}% |
1714 |
\def\list#1#2{% |
1715 |
\ifnum \@listdepth >5\relax |
1716 |
\@toodeep |
1717 |
\else |
1718 |
\global\advance\@listdepth\@ne |
1719 |
\fi |
1720 |
\rightmargin\z@ |
1721 |
\listparindent\z@ |
1722 |
\itemindent\z@ |
1723 |
\csname @list\romannumeral\the\@listdepth\endcsname |
1724 |
\def\@itemlabel{#1}% |
1725 |
\let\makelabel\@mklab |
1726 |
\@nmbrlistfalse |
1727 |
#2\relax |
1728 |
\@trivlist |
1729 |
\parskip\parsep |
1730 |
\set@listindent |
1731 |
\ignorespaces |
1732 |
}% |
1733 |
\def\set@listindent@parshape{% |
1734 |
\parindent\listparindent |
1735 |
\advance\@totalleftmargin\leftmargin |
1736 |
\advance\linewidth-\rightmargin |
1737 |
\advance\linewidth-\leftmargin |
1738 |
\parshape\@ne\@totalleftmargin\linewidth |
1739 |
}% |
1740 |
\def\set@listindent@{% |
1741 |
\parindent\listparindent |
1742 |
\advance\@totalleftmargin\leftmargin |
1743 |
\advance\rightskip\rightmargin |
1744 |
\advance\leftskip\@totalleftmargin |
1745 |
}% |
1746 |
\let\set@listindent\set@listindent@parshape |
1747 |
\typeout{% |
1748 |
ltxgrid: portions licensed from W. E. Baxter (web@superscript.com)% |
1749 |
}% |
1750 |
\newcounter{linecount} |
1751 |
\def\lineloop#1{% |
1752 |
\loop |
1753 |
\ifnum\c@linecount<#1\relax |
1754 |
\global\advance\c@linecount\@ne |
1755 |
\par |
1756 |
\hb@xt@\hsize{% |
1757 |
\ifnum\c@linecount<100 0\fi\ifnum\c@linecount<10 0\fi\number\c@linecount |
1758 |
\vrule depth2.5\p@ |
1759 |
\leaders\hrule\hfil |
1760 |
}% |
1761 |
\penalty\interlinepenalty |
1762 |
\repeat |
1763 |
}% |
1764 |
\let\@@mark\mark |
1765 |
\let\@@topmark\topmark |
1766 |
\let\@@firstmark\firstmark |
1767 |
\let\@@botmark\botmark |
1768 |
\let\@@splitfirstmark\splitfirstmark |
1769 |
\let\@@splitbotmark\splitbotmark |
1770 |
\def\@themark{{}{}{}{}}% |
1771 |
\def\nul@mark{{}{}{}{}\@@nul}% |
1772 |
\def\set@mark@netw@#1#2#3#4#5#6#7{\gdef#1{{#6}{#7}{#4}{#5}}\do@mark}% |
1773 |
\def\set@marktw@#1#2#3#4#5#6{\gdef#1{{#2}{#6}{#4}{#5}}\do@mark}% |
1774 |
\def\set@markthr@@#1#2#3#4#5#6{\gdef#1{{#2}{#3}{#6}{#5}}\do@mark}% |
1775 |
\def\get@mark@@ne#1#2#3#4#5\@@nul{#1}% |
1776 |
\def\get@mark@tw@#1#2#3#4#5\@@nul{#2}% |
1777 |
\def\get@mark@thr@@#1#2#3#4#5\@@nul{#3}% |
1778 |
\def\get@mark@f@ur#1#2#3#4#5\@@nul{#4}% |
1779 |
\def\mark@netw@{\expandafter\set@mark@netw@\expandafter\@themark\@themark}% |
1780 |
\def\marktw@{\expandafter\set@marktw@\expandafter\@themark\@themark}% |
1781 |
\def\markthr@@{\expandafter\set@markthr@@\expandafter\@themark\@themark}% |
1782 |
\def\do@mark{\do@@mark\@themark\nobreak@mark}% |
1783 |
\def\do@@mark#1{% |
1784 |
\begingroup |
1785 |
\let@mark |
1786 |
\@@mark{#1}% |
1787 |
\endgroup |
1788 |
}% |
1789 |
\def\let@mark{% |
1790 |
\let\protect\@unexpandable@protect |
1791 |
\let\label\relax |
1792 |
\let\index\relax |
1793 |
\let\glossary\relax |
1794 |
}% |
1795 |
\def\nobreak@mark{% |
1796 |
\@if@sw\if@nobreak\fi{\@ifvmode{\nobreak}{}}{}% |
1797 |
}% |
1798 |
\def\mark@envir{\markthr@@}% |
1799 |
\def\bot@envir{% |
1800 |
\expandafter\expandafter |
1801 |
\expandafter\get@mark@thr@@ |
1802 |
\expandafter\@@botmark |
1803 |
\nul@mark |
1804 |
}% |
1805 |
\def\markboth{\mark@netw@}% |
1806 |
\def\markright{\marktw@}% |
1807 |
\def\leftmark{% |
1808 |
\expandafter\expandafter |
1809 |
\expandafter\get@mark@@ne |
1810 |
\expandafter\saved@@botmark |
1811 |
\nul@mark |
1812 |
}% |
1813 |
\def\rightmark{% |
1814 |
\expandafter\expandafter |
1815 |
\expandafter\get@mark@tw@ |
1816 |
\expandafter\saved@@firstmark |
1817 |
\nul@mark |
1818 |
}% |
1819 |
\let\primitive@output\output |
1820 |
\long\def\@tempa#1\@@nil{#1}% |
1821 |
\toks@ |
1822 |
\expandafter\expandafter |
1823 |
\expandafter{% |
1824 |
\expandafter \@tempa |
1825 |
\the\output |
1826 |
\@@nil |
1827 |
}% |
1828 |
\newtoks\output |
1829 |
\output\expandafter{\the\toks@}% |
1830 |
\primitive@output{\dispatch@output}% |
1831 |
\def\dispatch@output{% |
1832 |
\let\par\@@par |
1833 |
\expandafter\let\expandafter\@tempa\csname output@\the\outputpenalty\endcsname |
1834 |
\outputdebug@sw{% |
1835 |
\saythe\badness |
1836 |
\saythe\outputpenalty |
1837 |
\saythe\holdinginserts |
1838 |
\say\thepagegrid |
1839 |
\saythe\pagegrid@col |
1840 |
\saythe\pagegrid@cur |
1841 |
%\say\bot@envir |
1842 |
\saythe\insertpenalties |
1843 |
%\say\@@topmark |
1844 |
%\say\saved@@topmark |
1845 |
%\say\@@firstmark |
1846 |
%\say\saved@@firstmark |
1847 |
\say\@@botmark |
1848 |
%\say\saved@@botmark |
1849 |
\saythe\pagegoal |
1850 |
\saythe\pagetotal |
1851 |
\saythe{\badness\@cclv}% |
1852 |
\expandafter\@ifx\expandafter{\csname output@-\the\execute@message@pen\endcsname\@tempa}{% |
1853 |
\say\@message@saved |
1854 |
}{% |
1855 |
\expandafter\say\csname output@\the\outputpenalty\endcsname |
1856 |
}% |
1857 |
\say\@toplist |
1858 |
\say\@botlist |
1859 |
\say\@dbltoplist |
1860 |
\say\@deferlist |
1861 |
{\tracingall\scrollmode |
1862 |
\showbox\@cclv |
1863 |
\showbox\@cclv@saved |
1864 |
\showbox\pagesofar |
1865 |
\showbox\footbox |
1866 |
\showbox\footins@saved |
1867 |
\showbox\footins |
1868 |
\showlists |
1869 |
}% |
1870 |
}{}% |
1871 |
\@ifnotrelax\@tempa{\@tempa}{\the\output}% |
1872 |
}% |
1873 |
\@ifxundefined{\outputdebug@sw}{% |
1874 |
\@booleanfalse\outputdebug@sw |
1875 |
}{}% |
1876 |
\output={\toggle@insert\output@holding\output@moving}% |
1877 |
\def\output@holding{% |
1878 |
\csname output@init@\bot@envir\endcsname |
1879 |
\@if@exceed@pagegoal{\unvcopy\@cclv}{% |
1880 |
\setbox\z@\vbox{\unvcopy\@cclv}% |
1881 |
\outputdebug@sw{{\tracingall\scrollmode\showbox\z@}}{}% |
1882 |
\dimen@\ht\@cclv\advance\dimen@-\ht\z@ |
1883 |
\dead@cycle@repair\dimen@ |
1884 |
}{% |
1885 |
\dead@cycle |
1886 |
}% |
1887 |
}% |
1888 |
\def\@if@exceed@pagegoal#1{% |
1889 |
\begingroup |
1890 |
\setbox\z@\vbox{#1}% |
1891 |
\dimen@\ht\z@\advance\dimen@\dp\z@ |
1892 |
\outputdebug@sw{\saythe\dimen@}{}% |
1893 |
\@ifdim{\dimen@>\pagegoal}{% |
1894 |
\setbox\z@\vbox{\@@mark{}\unvbox\z@}% |
1895 |
\splittopskip\topskip |
1896 |
\splitmaxdepth\maxdepth |
1897 |
\vbadness\@M |
1898 |
\vfuzz\maxdimen |
1899 |
\setbox\tw@\vsplit\z@ to\pagegoal |
1900 |
\outputdebug@sw{{\tracingall\scrollmode\showbox\tw@\showbox\z@}}{}% |
1901 |
\setbox\tw@\vbox{\unvbox\tw@}% |
1902 |
\@ifdim{\ht\tw@=\z@}{% |
1903 |
\ltxgrid@info{Found overly large chunk while preparing to move insertions. Attempting repairs}% |
1904 |
\aftergroup\true@sw |
1905 |
}{% |
1906 |
\aftergroup\false@sw |
1907 |
}% |
1908 |
}{% |
1909 |
\aftergroup\false@sw |
1910 |
}% |
1911 |
\endgroup |
1912 |
}% |
1913 |
%% \item |
1914 |
%% Put down the same interrupts as for the non-trivial case above. |
1915 |
\def\output@moving{% |
1916 |
\set@top@firstmark |
1917 |
\@ifnum{\outputpenalty=\do@newpage@pen}{% |
1918 |
\setbox\@cclv\vbox{% |
1919 |
\unvbox\@cclv |
1920 |
\setbox\z@\lastbox |
1921 |
\@ifdim{\ht\z@=\ht\@protection@box}{\box\lastbox}{\unskip}% |
1922 |
}% |
1923 |
}{}% |
1924 |
\@cclv@nontrivial@sw{% |
1925 |
\csname output@prep@\bot@envir \endcsname |
1926 |
\@makecol\csname output@column@\thepagegrid\endcsname |
1927 |
\protect@penalty\do@startcolumn@pen |
1928 |
\clearpage@sw{% |
1929 |
\protect@penalty\do@endpage@pen |
1930 |
}{}% |
1931 |
\csname output@post@\bot@envir \endcsname |
1932 |
}{% |
1933 |
{\setbox\z@\box\@cclv}% |
1934 |
}% |
1935 |
\set@colroom |
1936 |
\global\@mparbottom\z@ |
1937 |
\global\@textfloatsheight\z@ %FIXME: this legacy LaTeX variable is set, but never queried! |
1938 |
}% |
1939 |
\def\@cclv@nontrivial@sw{% |
1940 |
\@ifx@empty\@toplist{% |
1941 |
\@ifx@empty\@botlist{% |
1942 |
\@ifvoid\footins{% |
1943 |
\@ifvoid\@cclv{% |
1944 |
\false@sw |
1945 |
}{% |
1946 |
\setbox\z@\vbox{\unvcopy\@cclv}% |
1947 |
\@ifdim{\ht\z@=\topskip}{% |
1948 |
\setbox\z@\vbox{% |
1949 |
\unvbox\z@ |
1950 |
\setbox\z@\lastbox\dimen@\lastskip\unskip |
1951 |
\@ifdim{\ht\z@=\ht\@protection@box}{% |
1952 |
\advance\dimen@\ht\z@ |
1953 |
\@ifdim{\dimen@=\topskip}{% |
1954 |
\aftergroup\true@sw |
1955 |
}{% |
1956 |
\aftergroup\false@sw |
1957 |
}% |
1958 |
}{% |
1959 |
\aftergroup\false@sw |
1960 |
}% |
1961 |
}% |
1962 |
{% |
1963 |
\false@sw % Normal for \clearpage |
1964 |
}{% |
1965 |
\true@sw |
1966 |
}% |
1967 |
}{% |
1968 |
\@ifdim{\ht\z@=\z@}{% |
1969 |
\ltxgrid@info{Found trivial column. Discarding it}% |
1970 |
\outputdebug@sw{{\tracingall\scrollmode\showbox\@cclv}}{}% |
1971 |
\false@sw |
1972 |
}{% |
1973 |
\true@sw |
1974 |
}% |
1975 |
}% |
1976 |
}% |
1977 |
}{% |
1978 |
\true@sw |
1979 |
}% |
1980 |
}{% |
1981 |
\true@sw |
1982 |
}% |
1983 |
}{% |
1984 |
\true@sw |
1985 |
}% |
1986 |
}% |
1987 |
\def\protect@penalty#1{\protection@box\penalty-#1\relax}% |
1988 |
\newbox\@protection@box |
1989 |
\setbox\@protection@box\vbox to1986sp{\vfil}% |
1990 |
\def\protection@box{\nointerlineskip\copy\@protection@box}% |
1991 |
\def\dead@cycle@repair#1{% |
1992 |
\expandafter\do@@mark |
1993 |
\expandafter{% |
1994 |
\@@botmark |
1995 |
}% |
1996 |
\unvbox\@cclv |
1997 |
\nointerlineskip |
1998 |
\vbox to#1{\vss}% |
1999 |
\@ifnum{\outputpenalty<\@M}{\penalty\outputpenalty}{}% |
2000 |
}% |
2001 |
\def\dead@cycle@repair@protected#1{% |
2002 |
\expandafter\do@@mark |
2003 |
\expandafter{% |
2004 |
\@@botmark |
2005 |
}% |
2006 |
\begingroup |
2007 |
\unvbox\@cclv |
2008 |
\setbox\z@\lastbox % Remove protection box |
2009 |
\nointerlineskip |
2010 |
\advance#1-\ht\@protection@box |
2011 |
\vbox to#1{\vss}% |
2012 |
\protection@box % Reinsert protection box |
2013 |
\@ifnum{\outputpenalty<\@M}{\penalty\outputpenalty}{}% |
2014 |
\endgroup |
2015 |
}% |
2016 |
\def\dead@cycle{% |
2017 |
\expandafter\do@@mark |
2018 |
\expandafter{% |
2019 |
\@@botmark |
2020 |
}% |
2021 |
\unvbox\@cclv |
2022 |
\@ifnum{\outputpenalty<\@M}{\penalty\outputpenalty}{}% |
2023 |
}% |
2024 |
\def\output@init@document{% |
2025 |
\@ifvoid\footbox{}{% |
2026 |
\global\advance\vsize-\ht\footbox |
2027 |
\global\advance\vsize-\dp\footbox |
2028 |
}% |
2029 |
}% |
2030 |
\def\output@prep@document{% |
2031 |
\@ifvoid\footbox{}{% |
2032 |
\setbox\footins\vbox{\unvbox\footbox\unvbox\footins}% |
2033 |
}% |
2034 |
}% |
2035 |
\def\output@post@document{}% |
2036 |
\let\@opcol\@undefined |
2037 |
\def\@makecol{% |
2038 |
\setbox\@outputbox\vbox{% |
2039 |
\boxmaxdepth\@maxdepth |
2040 |
\@tempdima\dp\@cclv |
2041 |
\unvbox\@cclv |
2042 |
\vskip-\@tempdima |
2043 |
}% |
2044 |
\xdef\@freelist{\@freelist\@midlist}\global\let\@midlist\@empty |
2045 |
\@combinefloats |
2046 |
\@combineinserts\@outputbox\footins |
2047 |
\set@adj@colht\dimen@ |
2048 |
\count@\vbadness |
2049 |
\vbadness\@M |
2050 |
\setbox\@outputbox\vbox to\dimen@{% |
2051 |
\@texttop |
2052 |
\dimen@\dp\@outputbox |
2053 |
\unvbox\@outputbox |
2054 |
\vskip-\dimen@ |
2055 |
\@textbottom |
2056 |
}% |
2057 |
\vbadness\count@ |
2058 |
\global\maxdepth\@maxdepth |
2059 |
}% |
2060 |
\let\@makespecialcolbox\@undefined |
2061 |
\def\@combineinserts#1#2{% |
2062 |
\setbox#1\vbox{% |
2063 |
\unvbox#1% |
2064 |
\vbox{% |
2065 |
\@ifvoid#2{}{% |
2066 |
\vskip\skip\footins |
2067 |
\color@begingroup |
2068 |
\normalcolor |
2069 |
\footnoterule |
2070 |
\nointerlineskip |
2071 |
\box#2% |
2072 |
\color@endgroup |
2073 |
}{}% |
2074 |
}% |
2075 |
}% |
2076 |
}% |
2077 |
\appdef\@floatplacement{% |
2078 |
\global\@fpmin\@fpmin |
2079 |
}% |
2080 |
\mathchardef\pagebreak@pen=\@M |
2081 |
\expandafter\let\csname output@-\the\pagebreak@pen\endcsname\relax |
2082 |
\mathchardef\do@startcolumn@pen=10005 |
2083 |
\@namedef{output@-\the\do@startcolumn@pen}{\do@startcolumn}% |
2084 |
\def\do@startcolumn{% |
2085 |
\setbox\@cclv\vbox{\unvbox\@cclv\setbox\z@\lastbox\unskip}% |
2086 |
\clearpage@sw{\@clearfloatplacement}{\@floatplacement}% |
2087 |
\set@colroom |
2088 |
\@booleanfalse\pfloat@avail@sw |
2089 |
\begingroup |
2090 |
\@colht\@colroom |
2091 |
\@booleanfalse\float@avail@sw |
2092 |
\@tryfcolumn\test@colfloat |
2093 |
\float@avail@sw{\aftergroup\@booleantrue\aftergroup\pfloat@avail@sw}{}% |
2094 |
\endgroup |
2095 |
\fcolmade@sw{% |
2096 |
\setbox\@cclv\vbox{\unvbox\@outputbox\unvbox\@cclv}% |
2097 |
\outputpenalty-\pagebreak@pen % ask for a return visit, this time with insertions and all. |
2098 |
\dead@cycle |
2099 |
}{% |
2100 |
\begingroup |
2101 |
\let\@elt\@scolelt |
2102 |
\let\reserved@b\@deferlist\global\let\@deferlist\@empty\reserved@b |
2103 |
\endgroup |
2104 |
\clearpage@sw{% |
2105 |
\outputpenalty\@M |
2106 |
}{% |
2107 |
\outputpenalty\do@newpage@pen |
2108 |
}% |
2109 |
\dead@cycle |
2110 |
}% |
2111 |
\check@deferlist@stuck\do@startcolumn |
2112 |
\set@vsize |
2113 |
}% |
2114 |
\def\@scolelt#1{\def\@currbox{#1}\@addtonextcol}% |
2115 |
\def\test@colfloat#1{% |
2116 |
\csname @floatselect@sw@\thepagegrid\endcsname#1{}{\@testtrue}% |
2117 |
\@if@sw\if@test\fi{}{\aftergroup\@booleantrue\aftergroup\float@avail@sw}% |
2118 |
}% |
2119 |
\def\@addtonextcol{% |
2120 |
\begingroup |
2121 |
\@insertfalse |
2122 |
\@setfloattypecounts |
2123 |
\csname @floatselect@sw@\thepagegrid\endcsname\@currbox{% |
2124 |
\@ifnum{\@fpstype=8 }{}{% |
2125 |
\@ifnum{\@fpstype=24 }{}{% |
2126 |
\@flsettextmin |
2127 |
\@reqcolroom \ht\@currbox |
2128 |
\advance \@reqcolroom \@textmin |
2129 |
\advance \@reqcolroom \vsize % take into account split insertions |
2130 |
\advance \@reqcolroom -\pagegoal |
2131 |
\@ifdim{\@colroom>\@reqcolroom}{% |
2132 |
\@flsetnum \@colnum |
2133 |
\@ifnum{\@colnum>\z@}{% |
2134 |
\@bitor\@currtype\@deferlist |
2135 |
\@if@sw\if@test\fi{}{% |
2136 |
\@addtotoporbot |
2137 |
}% |
2138 |
}{}% |
2139 |
}{}% |
2140 |
}% |
2141 |
}% |
2142 |
}{}% |
2143 |
\@if@sw\if@insert\fi{}{% |
2144 |
\@cons\@deferlist\@currbox |
2145 |
}% |
2146 |
\endgroup |
2147 |
}% |
2148 |
\mathchardef\do@startpage@pen=10006 |
2149 |
\@namedef{output@-\the\do@startpage@pen}{\do@startpage}% |
2150 |
\def\do@startpage{% |
2151 |
\setbox\@cclv\vbox{\unvbox\@cclv\setbox\z@\lastbox\unskip}% |
2152 |
\clearpage@sw{\@clearfloatplacement}{\@dblfloatplacement}% |
2153 |
\set@colht |
2154 |
\@booleanfalse\pfloat@avail@sw |
2155 |
\begingroup |
2156 |
\@booleanfalse\float@avail@sw |
2157 |
\@tryfcolumn\test@dblfloat |
2158 |
\float@avail@sw{\aftergroup\@booleantrue\aftergroup\pfloat@avail@sw}{}% |
2159 |
\endgroup |
2160 |
\fcolmade@sw{% |
2161 |
\global\setbox\pagesofar\vbox{\unvbox\pagesofar\unvbox\@outputbox}% |
2162 |
\@combinepage |
2163 |
\@combinedblfloats |
2164 |
\@outputpage |
2165 |
\global\pagegrid@cur\@ne |
2166 |
\protect@penalty\do@startpage@pen |
2167 |
}{% |
2168 |
\begingroup |
2169 |
\@booleanfalse\float@avail@sw |
2170 |
\let\@elt\@sdblcolelt |
2171 |
\let\reserved@b\@deferlist\global\let\@deferlist\@empty\reserved@b |
2172 |
\endgroup |
2173 |
\@ifdim{\@colht=\textheight}{% No luck... |
2174 |
\pfloat@avail@sw{% ...but a float *was* available! |
2175 |
\forcefloats@sw{% |
2176 |
\ltxgrid@warn{Forced dequeueing of floats stalled}% |
2177 |
}{% |
2178 |
\ltxgrid@warn{Dequeueing of floats stalled}% |
2179 |
}% |
2180 |
}{}% |
2181 |
}{}% |
2182 |
\outputpenalty\@M |
2183 |
\dead@cycle |
2184 |
}% |
2185 |
\check@deferlist@stuck\do@startpage |
2186 |
\set@colht |
2187 |
}% |
2188 |
\def\@sdblcolelt#1{\def\@currbox{#1}\@addtodblcol}% |
2189 |
\def\test@dblfloat#1{% |
2190 |
\@if@notdblfloat{#1}{\@testtrue}{}% |
2191 |
\@if@sw\if@test\fi{}{\aftergroup\@booleantrue\aftergroup\float@avail@sw}% |
2192 |
}% |
2193 |
\def\@if@notdblfloat#1{\@ifdim{\wd#1<\textwidth}}% |
2194 |
\@booleanfalse\forcefloats@sw |
2195 |
\def\@addtodblcol{% |
2196 |
\begingroup |
2197 |
\@if@notdblfloat{\@currbox}{% |
2198 |
\false@sw |
2199 |
}{% |
2200 |
\@setfloattypecounts |
2201 |
\@getfpsbit \tw@ |
2202 |
\@bitor \@currtype \@deferlist |
2203 |
\@if@sw\if@test\fi{% |
2204 |
\false@sw |
2205 |
}{% |
2206 |
\@ifodd\@tempcnta{% |
2207 |
\aftergroup\@booleantrue\aftergroup\float@avail@sw |
2208 |
\@flsetnum \@dbltopnum |
2209 |
\@ifnum{\@dbltopnum>\z@}{% |
2210 |
\@ifdim{\@dbltoproom>\ht\@currbox}{% |
2211 |
\true@sw |
2212 |
}{% |
2213 |
\@ifnum{\@fpstype<\sixt@@n}{% |
2214 |
\begingroup |
2215 |
\advance \@dbltoproom \@textmin |
2216 |
\@ifdim{\@dbltoproom>\ht\@currbox}{% |
2217 |
\endgroup\true@sw |
2218 |
}{% |
2219 |
\endgroup\false@sw |
2220 |
}% |
2221 |
}{% |
2222 |
\false@sw |
2223 |
}% |
2224 |
}% |
2225 |
}{% |
2226 |
\false@sw |
2227 |
}% |
2228 |
}{% |
2229 |
\false@sw |
2230 |
}% |
2231 |
}% |
2232 |
}% |
2233 |
{% |
2234 |
\@tempdima -\ht\@currbox |
2235 |
\advance\@tempdima |
2236 |
-\@ifx{\@dbltoplist\@empty}{\dbltextfloatsep}{\dblfloatsep}% |
2237 |
\global \advance \@dbltoproom \@tempdima |
2238 |
\global \advance \@colht \@tempdima |
2239 |
\global \advance \@dbltopnum \m@ne |
2240 |
\@cons \@dbltoplist \@currbox |
2241 |
}{% |
2242 |
\@cons \@deferlist \@currbox |
2243 |
}% |
2244 |
\endgroup |
2245 |
}% |
2246 |
\def\@tryfcolumn#1{% |
2247 |
\global\@booleanfalse\fcolmade@sw |
2248 |
\@ifx@empty\@deferlist{}{% |
2249 |
\global\let\@trylist\@deferlist |
2250 |
\global\let\@failedlist\@empty |
2251 |
\begingroup |
2252 |
\dimen@\vsize\advance\dimen@-\pagegoal\@ifdim{\dimen@>\z@}{% |
2253 |
\advance\@fpmin-\dimen@ |
2254 |
}{}% |
2255 |
\def\@elt{\@xtryfc#1}\@trylist |
2256 |
\endgroup |
2257 |
\fcolmade@sw{% |
2258 |
\global\setbox\@outputbox\vbox{\vskip \@fptop}% |
2259 |
\let \@elt \@wtryfc \@flsucceed |
2260 |
\global\setbox\@outputbox\vbox{\unvbox\@outputbox |
2261 |
\unskip \vskip \@fpbot |
2262 |
}% |
2263 |
\let \@elt \relax |
2264 |
\xdef\@deferlist{\@failedlist\@flfail}% |
2265 |
\xdef\@freelist{\@freelist\@flsucceed}% |
2266 |
}{}% |
2267 |
}% |
2268 |
}% |
2269 |
\def\@wtryfc #1{% |
2270 |
\global\setbox\@outputbox\vbox{\unvbox\@outputbox |
2271 |
\box #1\vskip\@fpsep |
2272 |
}% |
2273 |
}% |
2274 |
\def\@xtryfc#1#2{% |
2275 |
\@next\reserved@a\@trylist{}{}% trim \@trylist. Ugly! |
2276 |
\@currtype \count #2% |
2277 |
\divide\@currtype\@xxxii\multiply\@currtype\@xxxii |
2278 |
\@bitor \@currtype \@failedlist |
2279 |
\@testfp #2% |
2280 |
#1#2% |
2281 |
\@ifdim{\ht #2>\@colht }{\@testtrue}{}% |
2282 |
\@if@sw\if@test\fi{% |
2283 |
\@cons\@failedlist #2% |
2284 |
}{% |
2285 |
\begingroup |
2286 |
\gdef\@flsucceed{\@elt #2}% |
2287 |
\global\let\@flfail\@empty |
2288 |
\@tempdima\ht #2% |
2289 |
\def \@elt {\@ztryfc#1}\@trylist |
2290 |
\@ifdim{\@tempdima >\@fpmin}{% |
2291 |
\global\@booleantrue\fcolmade@sw |
2292 |
}{% |
2293 |
\@cons\@failedlist #2% |
2294 |
}% |
2295 |
\endgroup |
2296 |
\fcolmade@sw{% |
2297 |
\let \@elt \@gobble |
2298 |
}{}% |
2299 |
}% |
2300 |
}% |
2301 |
\def\@ztryfc #1#2{% |
2302 |
\@tempcnta \count#2% |
2303 |
\divide\@tempcnta\@xxxii\multiply\@tempcnta\@xxxii |
2304 |
\@bitor \@tempcnta {\@failedlist \@flfail}% |
2305 |
\@testfp #2% |
2306 |
#1#2% |
2307 |
\@tempdimb\@tempdima |
2308 |
\advance\@tempdimb \ht#2\advance\@tempdimb\@fpsep |
2309 |
\@ifdim{\@tempdimb >\@colht}{% |
2310 |
\@testtrue |
2311 |
}{}% |
2312 |
\@if@sw\if@test\fi{% |
2313 |
\@cons\@flfail #2% |
2314 |
}{% |
2315 |
\@cons\@flsucceed #2% |
2316 |
\@tempdima\@tempdimb |
2317 |
}% |
2318 |
}% |
2319 |
\def\newpage@prep{% |
2320 |
\if@noskipsec |
2321 |
\ifx \@nodocument\relax |
2322 |
\leavevmode |
2323 |
\global \@noskipsecfalse |
2324 |
\fi |
2325 |
\fi |
2326 |
\if@inlabel |
2327 |
\leavevmode |
2328 |
\global \@inlabelfalse |
2329 |
\fi |
2330 |
\if@nobreak \@nobreakfalse \everypar{}\fi |
2331 |
\par |
2332 |
}% |
2333 |
\def \newpage {% |
2334 |
\newpage@prep |
2335 |
\do@output@MVL{% |
2336 |
\vfil |
2337 |
\penalty-\pagebreak@pen |
2338 |
}% |
2339 |
}% |
2340 |
\def\clearpage{% |
2341 |
\newpage@prep |
2342 |
\do@output@MVL{% |
2343 |
\vfil |
2344 |
\penalty-\pagebreak@pen |
2345 |
\global\@booleantrue\clearpage@sw |
2346 |
\protect@penalty\do@startcolumn@pen |
2347 |
\protect@penalty\do@endpage@pen |
2348 |
}% |
2349 |
\do@output@MVL{% |
2350 |
\global\@booleanfalse\clearpage@sw |
2351 |
}% |
2352 |
}% |
2353 |
\def\cleardoublepage{% |
2354 |
\clearpage |
2355 |
\@if@sw\if@twoside\fi{% |
2356 |
\@ifodd\c@page{}{% |
2357 |
\null\clearpage |
2358 |
}% |
2359 |
}{}% |
2360 |
}% |
2361 |
\@booleanfalse\clearpage@sw |
2362 |
\mathchardef\do@endpage@pen=10007 |
2363 |
\@namedef{output@-\the\do@endpage@pen}{% |
2364 |
\csname end@column@\thepagegrid\endcsname |
2365 |
}% |
2366 |
\mathchardef\do@newpage@pen=10001 |
2367 |
\expandafter\let\csname output@-\the\do@newpage@pen\endcsname\relax |
2368 |
\def\@clearfloatplacement{% |
2369 |
\global\@topnum \maxdimen % \c@topnumber |
2370 |
\global\@toproom \maxdimen % \topfraction\@colht |
2371 |
\global\@botnum \maxdimen % \c@bottomnumber |
2372 |
\global\@botroom \maxdimen % \bottomfraction\@colht |
2373 |
\global\@colnum \maxdimen % \c@totalnumber |
2374 |
\global\@dbltopnum \maxdimen % \c@dbltopnumber |
2375 |
\global\@dbltoproom \maxdimen % \dbltopfraction\@colht |
2376 |
\global\@textmin \z@ % \@colht\advance \@textmin -\@dbltoproom |
2377 |
\global\@fpmin \z@ % \dblfloatpagefraction\textheight |
2378 |
\let\@testfp\@gobble |
2379 |
\appdef\@setfloattypecounts{\@fpstype16\advance\@fpstype\m@ne}% |
2380 |
}% |
2381 |
\let\@doclearpage\@undefined |
2382 |
\let\@makefcolumn\@undefined |
2383 |
\def\clr@top@firstmark{% |
2384 |
\global\let\saved@@topmark\@undefined |
2385 |
\global\let\saved@@firstmark\@empty |
2386 |
\global\let\saved@@botmark\@empty |
2387 |
}% |
2388 |
\clr@top@firstmark |
2389 |
\def\set@top@firstmark{% |
2390 |
\@ifxundefined\saved@@topmark{\expandafter\gdef\expandafter\saved@@topmark\expandafter{\@@topmark}}{}% |
2391 |
\@if@empty\saved@@firstmark{\expandafter\gdef\expandafter\saved@@firstmark\expandafter{\@@firstmark}}{}% |
2392 |
\@if@empty\@@botmark{}{\expandafter\gdef\expandafter\saved@@botmark\expandafter{\@@botmark}}% |
2393 |
}% |
2394 |
\appdef\@outputpage{% |
2395 |
\clr@top@firstmark |
2396 |
}% |
2397 |
\def\@float#1{% |
2398 |
\@ifnextchar[{%}]{%Brace-matching klootch |
2399 |
\@yfloat\width@float{#1}% |
2400 |
}{% |
2401 |
\@ifxundefined@cs{fps@#1}{% |
2402 |
\edef\reserved@a{\noexpand\@yfloat\noexpand\width@float{#1}[\csname fps@\endcsname]}\reserved@a |
2403 |
}{% |
2404 |
\edef\reserved@a{\noexpand\@yfloat\noexpand\width@float{#1}[\csname fps@#1\endcsname]}\reserved@a |
2405 |
}% |
2406 |
}% |
2407 |
}% |
2408 |
\def\@dblfloat#1{% |
2409 |
\@ifnum{\pagegrid@col=\@ne}{% |
2410 |
\@float{#1}% |
2411 |
}{% |
2412 |
\@ifnextchar[{%}]{%Brace-matching klootch |
2413 |
\@yfloat\widthd@float{#1}% |
2414 |
}{% |
2415 |
\@ifxundefined@cs{fpsd@#1}{% |
2416 |
\edef\reserved@a{\noexpand\@yfloat\noexpand\widthd@float{#1}[\csname fpsd@\endcsname]}\reserved@a |
2417 |
}{% |
2418 |
\edef\reserved@a{\noexpand\@yfloat\noexpand\widthd@float{#1}[\csname fpsd@#1\endcsname]}\reserved@a |
2419 |
}% |
2420 |
}% |
2421 |
}% |
2422 |
}% |
2423 |
\def\@yfloat#1#2[#3]{% |
2424 |
\@xfloat{#2}[#3]% |
2425 |
\hsize#1\linewidth\hsize |
2426 |
\minipagefootnote@init |
2427 |
}% |
2428 |
\def\fps@{tbp}% |
2429 |
\def\fpsd@{tp}% |
2430 |
\def\width@float{\columnwidth}% |
2431 |
\def\widthd@float{\textwidth}% |
2432 |
\def\end@float{% |
2433 |
\end@@float{% |
2434 |
\check@currbox@count |
2435 |
}% |
2436 |
}% |
2437 |
\def\end@dblfloat{% |
2438 |
\@ifnum{\pagegrid@col=\@ne}{% |
2439 |
\end@float |
2440 |
}{% |
2441 |
\end@@float{% |
2442 |
\@boxfpsbit\@currbox{1}\@ifodd\@tempcnta{\global\advance\count\@currbox\m@ne}{}% |
2443 |
\@boxfpsbit\@currbox{4}\@ifodd\@tempcnta{\global\advance\count\@currbox-4\relax}{}% |
2444 |
\global\wd\@currbox\textwidth % Klootch |
2445 |
\check@currbox@count |
2446 |
}% |
2447 |
}% |
2448 |
}% |
2449 |
\def\end@@float#1{% |
2450 |
\minipagefootnote@here |
2451 |
\@endfloatbox |
2452 |
#1% |
2453 |
\@ifnum{\@floatpenalty <\z@}{% |
2454 |
\@largefloatcheck |
2455 |
\@cons\@currlist\@currbox |
2456 |
\@ifnum{\@floatpenalty <-\@Mii}{% |
2457 |
\do@output@cclv{\@add@float}% |
2458 |
}{% |
2459 |
\vadjust{\do@output@cclv{\@add@float}}% |
2460 |
\@Esphack |
2461 |
}% |
2462 |
}{}% |
2463 |
}% |
2464 |
\def\check@currbox@count{% |
2465 |
\@ifnum{\count\@currbox>\z@}{% |
2466 |
\count@\count\@currbox\divide\count@\sixt@@n\multiply\count@\sixt@@n |
2467 |
\@tempcnta\count\@currbox\advance\@tempcnta-\count@ |
2468 |
\@ifnum{\@tempcnta=\z@}{% |
2469 |
\ltxgrid@warn{Float cannot be placed}% |
2470 |
}{}% |
2471 |
}{% |
2472 |
% Is a \marginpar |
2473 |
}% |
2474 |
}% |
2475 |
\providecommand\minipagefootnote@init{}% |
2476 |
\providecommand\minipagefootnote@here{}% |
2477 |
\let\@specialoutput\@undefined |
2478 |
\def\@add@float{% |
2479 |
\@pageht\ht\@cclv\@pagedp\dp\@cclv |
2480 |
\unvbox\@cclv |
2481 |
\@next\@currbox\@currlist{% |
2482 |
\csname @floatselect@sw@\thepagegrid\endcsname\@currbox{% |
2483 |
\@ifnum{\count\@currbox>\z@}{% |
2484 |
\advance \@pageht \@pagedp |
2485 |
\advance \@pageht \vsize \advance \@pageht -\pagegoal % do not assume \holdinginserts is cleared! |
2486 |
\@addtocurcol % Commit an h float |
2487 |
}{% |
2488 |
\@addmarginpar |
2489 |
}% |
2490 |
}{% |
2491 |
\@resethfps |
2492 |
\@cons\@deferlist\@currbox |
2493 |
}% |
2494 |
}{\@latexbug}% |
2495 |
\@ifnum{\outputpenalty<\z@}{% |
2496 |
\@if@sw\if@nobreak\fi{% |
2497 |
\nobreak |
2498 |
}{% |
2499 |
\addpenalty \interlinepenalty |
2500 |
}% |
2501 |
}{}% |
2502 |
\set@vsize |
2503 |
}% |
2504 |
\let\@reinserts\@undefined |
2505 |
\def \@addtocurcol {% |
2506 |
\@insertfalse |
2507 |
\@setfloattypecounts |
2508 |
\ifnum \@fpstype=8 |
2509 |
\else |
2510 |
\ifnum \@fpstype=24 |
2511 |
\else |
2512 |
\@flsettextmin |
2513 |
\advance \@textmin \@textfloatsheight |
2514 |
\@reqcolroom \@pageht |
2515 |
\ifdim \@textmin>\@reqcolroom |
2516 |
\@reqcolroom \@textmin |
2517 |
\fi |
2518 |
\advance \@reqcolroom \ht\@currbox |
2519 |
\ifdim \@colroom>\@reqcolroom |
2520 |
\@flsetnum \@colnum |
2521 |
\ifnum \@colnum>\z@ |
2522 |
\@bitor\@currtype\@deferlist |
2523 |
\if@test |
2524 |
\else |
2525 |
\@bitor\@currtype\@botlist |
2526 |
\if@test |
2527 |
\@addtobot |
2528 |
\else |
2529 |
\ifodd \count\@currbox |
2530 |
\advance \@reqcolroom \intextsep |
2531 |
\ifdim \@colroom>\@reqcolroom |
2532 |
\global \advance \@colnum \m@ne |
2533 |
\global \advance \@textfloatsheight \ht\@currbox |
2534 |
\global \advance \@textfloatsheight 2\intextsep |
2535 |
\@cons \@midlist \@currbox |
2536 |
\if@nobreak |
2537 |
\nobreak |
2538 |
\@nobreakfalse |
2539 |
\everypar{}% |
2540 |
\else |
2541 |
\addpenalty \interlinepenalty |
2542 |
\fi |
2543 |
\vskip \intextsep |
2544 |
\unvbox\@currbox %AO |
2545 |
\penalty\interlinepenalty |
2546 |
\vskip\intextsep |
2547 |
\ifnum\outputpenalty <-\@Mii \vskip -\parskip\fi |
2548 |
\outputpenalty \z@ |
2549 |
\@inserttrue |
2550 |
\fi |
2551 |
\fi |
2552 |
\if@insert |
2553 |
\else |
2554 |
\@addtotoporbot |
2555 |
\fi |
2556 |
\fi |
2557 |
\fi |
2558 |
\fi |
2559 |
\fi |
2560 |
\fi |
2561 |
\fi |
2562 |
\if@insert |
2563 |
\else |
2564 |
\@resethfps |
2565 |
\@cons\@deferlist\@currbox |
2566 |
\fi |
2567 |
}% |
2568 |
\@twocolumnfalse |
2569 |
\let\@twocolumntrue\@twocolumnfalse |
2570 |
\def\@addmarginpar{% |
2571 |
\@next\@marbox\@currlist{% |
2572 |
\@cons\@freelist\@marbox\@cons\@freelist\@currbox |
2573 |
}\@latexbug |
2574 |
\setbox\@marbox\hb@xt@\columnwidth{% |
2575 |
\csname @addmarginpar@\thepagegrid\endcsname{% |
2576 |
\hskip-\marginparsep\hskip-\marginparwidth |
2577 |
\box\@currbox |
2578 |
}{% |
2579 |
\hskip\columnwidth\hskip\marginparsep |
2580 |
\box\@marbox |
2581 |
}% |
2582 |
\hss |
2583 |
}% |
2584 |
\setbox\z@\box\@currbox |
2585 |
\@tempdima\@mparbottom |
2586 |
\advance\@tempdima -\@pageht |
2587 |
\advance\@tempdima\ht\@marbox |
2588 |
\@ifdim{\@tempdima >\z@}{% |
2589 |
\@latex@warning@no@line {Marginpar on page \thepage\space moved}% |
2590 |
}{% |
2591 |
\@tempdima\z@ |
2592 |
}% |
2593 |
\global\@mparbottom\@pageht |
2594 |
\global\advance\@mparbottom\@tempdima |
2595 |
\global\advance\@mparbottom\dp\@marbox |
2596 |
\global\advance\@mparbottom\marginparpush |
2597 |
\advance\@tempdima -\ht\@marbox |
2598 |
\global\setbox \@marbox |
2599 |
\vbox {\vskip \@tempdima |
2600 |
\box \@marbox}% |
2601 |
\global \ht\@marbox \z@ |
2602 |
\global \dp\@marbox \z@ |
2603 |
\kern -\@pagedp |
2604 |
\nointerlineskip |
2605 |
\box\@marbox |
2606 |
\nointerlineskip |
2607 |
\hbox{\vrule \@height\z@ \@width\z@ \@depth\@pagedp}% |
2608 |
}% |
2609 |
\newenvironment{turnpage}{% |
2610 |
\def\width@float{\textheight}% |
2611 |
\def\widthd@float{\textheight}% |
2612 |
\appdef\@endfloatbox{% |
2613 |
\@ifxundefined\@currbox{% |
2614 |
\ltxgrid@warn{Cannot rotate! Not a float}% |
2615 |
}{% |
2616 |
\setbox\@currbox\vbox to\textwidth{\vfil\unvbox\@currbox\vfil}% |
2617 |
\global\setbox\@currbox\vbox{\rotatebox{90}{\box\@currbox}}% |
2618 |
}% |
2619 |
}% |
2620 |
}{% |
2621 |
}% |
2622 |
\def\rotatebox@dummy#1#2{% |
2623 |
\ltxgrid@warn{You must load the graphics or graphicx package in order to use the turnpage environment}% |
2624 |
#2% |
2625 |
}% |
2626 |
\AtBeginDocument{% |
2627 |
\@ifxundefined\rotatebox{\let\rotatebox\rotatebox@dummy}{}% |
2628 |
}% |
2629 |
\@namedef{output@-1073741824}{%"40000000 |
2630 |
\deadcycles\z@ |
2631 |
\setbox\z@\box\@cclv |
2632 |
}% |
2633 |
\mathchardef\save@column@pen=10016 |
2634 |
\@namedef{output@-\the\save@column@pen}{\save@column}% |
2635 |
\let \@cclv@saved \@holdpg |
2636 |
\let \@holdpg \@undefined |
2637 |
\def\save@column{% |
2638 |
\@ifvoid\@cclv@saved{% |
2639 |
\set@top@firstmark |
2640 |
\global\@topmark@saved\expandafter{\@@topmark}% |
2641 |
}{}% |
2642 |
\global\setbox\@cclv@saved\vbox{% |
2643 |
\@ifvoid\@cclv@saved{}{% |
2644 |
\unvbox\@cclv@saved |
2645 |
\marry@baselines |
2646 |
}% |
2647 |
\unvbox\@cclv |
2648 |
\lose@breaks |
2649 |
\setbox\z@\lastbox |
2650 |
}% |
2651 |
}% |
2652 |
\newtoks\@topmark@saved |
2653 |
\def\prep@cclv{% |
2654 |
\setbox\z@\box\@cclv |
2655 |
\setbox\@cclv\box\@cclv@saved |
2656 |
\vbadness\@M |
2657 |
}% |
2658 |
\mathchardef\save@column@insert@pen=10017 |
2659 |
\@namedef{output@-\the\save@column@insert@pen}{\toggle@insert\savecolumn@holding\savecolumn@moving}% |
2660 |
\def\savecolumn@holding{% |
2661 |
\@if@exceed@pagegoal{\unvcopy\@cclv\setbox\z@\lastbox}{% |
2662 |
\setbox\z@\vbox{\unvcopy\@cclv\setbox\z@\lastbox}% |
2663 |
\outputdebug@sw{{\tracingall\scrollmode\showbox\z@}}{}% |
2664 |
\dimen@\ht\@cclv\advance\dimen@-\ht\z@ |
2665 |
\dead@cycle@repair@protected\dimen@ |
2666 |
}{% |
2667 |
\dead@cycle |
2668 |
}% |
2669 |
}% |
2670 |
\def\savecolumn@moving{% |
2671 |
\@cclv@nontrivial@sw{% |
2672 |
\save@column |
2673 |
}{% |
2674 |
{\setbox\z@\box\@cclv}% |
2675 |
}% |
2676 |
\@ifvoid\footins{}{% |
2677 |
\outputdebug@sw{{\tracingall\scrollmode\showbox\footins}}{}% |
2678 |
\global\setbox\footins@saved\vbox{\unvbox\footins@saved\marry@baselines\unvbox\footins}% |
2679 |
\protect@penalty\save@column@insert@pen |
2680 |
}% |
2681 |
}% |
2682 |
\newbox\footins@saved |
2683 |
\mathchardef\save@message@pen=10018 |
2684 |
\@namedef{output@-\the\save@message@pen}{\save@message}% |
2685 |
\def\save@message{% |
2686 |
\setbox\z@\box\@cclv %FIXME: what if \box\@cclv is not empty? |
2687 |
\toks@\expandafter{\@@firstmark}% |
2688 |
\expandafter\gdef\expandafter\@message@saved\expandafter{\the\toks@}% |
2689 |
\expandafter\do@@mark\expandafter{\the\@topmark@saved}% |
2690 |
}% |
2691 |
\gdef\@message@saved{}% |
2692 |
\mathchardef\execute@message@pen=10019 |
2693 |
\@namedef{output@-\the\execute@message@pen}{\@message@saved}% |
2694 |
\def\execute@message{% |
2695 |
\@execute@message\save@column@pen %Implicit #2 |
2696 |
}% |
2697 |
\def\execute@message@insert#1{% |
2698 |
\@execute@message\save@column@insert@pen{\setbox\footins\box\footins@saved#1}% |
2699 |
}% |
2700 |
\long\def\@execute@message#1#2{% |
2701 |
\begingroup |
2702 |
\dimen@\prevdepth\@ifdim{\dimen@<\z@}{\dimen@\z@}{}% |
2703 |
\setbox\z@\vbox{% |
2704 |
\protect@penalty#1% |
2705 |
\protection@box |
2706 |
\toks@{\prep@cclv#2}% |
2707 |
\@@mark{\the\toks@}% |
2708 |
\penalty-\save@message@pen |
2709 |
\setbox\z@\null\dp\z@\dimen@\ht\z@-\dimen@ |
2710 |
\nointerlineskip\box\z@ |
2711 |
\penalty-\execute@message@pen |
2712 |
}\unvbox\z@ |
2713 |
\endgroup |
2714 |
}% |
2715 |
\def\do@output@cclv{\execute@message}% |
2716 |
\def\do@output@MVL#1{% |
2717 |
\@ifvmode{% |
2718 |
\begingroup\execute@message{\unvbox\@cclv#1}\endgroup |
2719 |
}{% |
2720 |
\@ifhmode{% |
2721 |
\vadjust{\execute@message{\unvbox\@cclv#1}}% |
2722 |
}{% |
2723 |
\@latexerr{\string\do@output@MVL\space cannot be executed in this mode!}\@eha |
2724 |
}% |
2725 |
}% |
2726 |
}% |
2727 |
\def\lose@breaks{% |
2728 |
\loopwhile{% |
2729 |
\count@\lastpenalty |
2730 |
\@ifnum{\count@=\@M}{% 10000 is a TeX magic number! |
2731 |
\unpenalty\true@sw |
2732 |
}{% |
2733 |
\false@sw |
2734 |
}% |
2735 |
}% |
2736 |
}% |
2737 |
\def\removestuff{\do@output@MVL{\unskip\unpenalty}}% |
2738 |
\def\removephantombox{% |
2739 |
\vadjust{% |
2740 |
\execute@message{% |
2741 |
\unvbox\@cclv |
2742 |
\setbox\z@\lastbox |
2743 |
\unskip |
2744 |
\unskip |
2745 |
\unpenalty |
2746 |
\penalty\predisplaypenalty |
2747 |
\vskip\abovedisplayskip |
2748 |
}% |
2749 |
}% |
2750 |
}% |
2751 |
\def\addstuff#1#2{\edef\@tempa{\noexpand\do@output@MVL{\noexpand\@addstuff{#1}{#2}}}\@tempa}% |
2752 |
\def\@addstuff#1#2{% |
2753 |
\skip@\lastskip\unskip |
2754 |
\count@\lastpenalty\unpenalty |
2755 |
\@if@empty{#1}{}{\penalty#1\relax}% |
2756 |
\@ifnum{\count@=\z@}{}{\penalty\count@}% |
2757 |
\vskip\skip@ |
2758 |
\@if@empty{#2}{}{\vskip#2\relax}% |
2759 |
}% |
2760 |
\def\replacestuff#1#2{\edef\@tempa{\noexpand\do@output@MVL{\noexpand\@replacestuff{#1}{#2}}}\@tempa}% |
2761 |
\def\@replacestuff#1#2{% |
2762 |
\skip@\lastskip\unskip |
2763 |
\count@\lastpenalty\unpenalty |
2764 |
\@if@empty{#1}{}{% |
2765 |
\@ifnum{\count@>\@M}{}{% |
2766 |
\@ifnum{\count@=\z@}{\count@=#1\relax}{% |
2767 |
\@ifnum{\count@<#1\relax}{}{% |
2768 |
\count@=#1\relax |
2769 |
}% |
2770 |
}% |
2771 |
}% |
2772 |
}% |
2773 |
\@ifnum{\count@=\z@}{}{\penalty\count@}% |
2774 |
\@if@empty{#2}{}{% |
2775 |
\@tempskipa#2\relax |
2776 |
\@ifdim{\z@>\@tempskipa}{% |
2777 |
\advance\skip@-\@tempskipa |
2778 |
}{% |
2779 |
\@ifdim{\skip@>\@tempskipa}{}{% |
2780 |
\skip@\@tempskipa |
2781 |
}% |
2782 |
}% |
2783 |
}% |
2784 |
\vskip\skip@ |
2785 |
}% |
2786 |
\def\move@insertions{\global\holdinginserts\z@}% |
2787 |
\def\hold@insertions{\global\holdinginserts\@ne}% |
2788 |
\hold@insertions |
2789 |
\def\move@insert@sw{\@ifnum{\holdinginserts=\z@}}% |
2790 |
\def\toggle@insert#1#2{% |
2791 |
\@ifnum{\holdinginserts=\z@}{\hold@insertions#2}{\move@insertions#1}% |
2792 |
}% |
2793 |
\def\do@columngrid#1#2{% |
2794 |
\par |
2795 |
\expandafter\let\expandafter\@tempa\csname open@column@#1\endcsname |
2796 |
\@ifx{\relax\@tempa}{% |
2797 |
\ltxgrid@warn{Unknown page grid #1. No action taken}% |
2798 |
}{% |
2799 |
\do@output@MVL{\start@column{#1}{#2}}% |
2800 |
}% |
2801 |
}% |
2802 |
\def\start@column#1#2{% |
2803 |
\def\@tempa{#1}\@ifx{\@tempa\thepagegrid}{% |
2804 |
\ltxgrid@info{Already in page grid \thepagegrid. No action taken}% |
2805 |
}{% |
2806 |
\expandafter\execute@message@insert |
2807 |
\expandafter{% |
2808 |
\csname shut@column@\thepagegrid\expandafter\endcsname |
2809 |
\csname open@column@#1\endcsname{#2}% |
2810 |
\set@vsize |
2811 |
}% |
2812 |
}% |
2813 |
}% |
2814 |
\def\thepagegrid{one}% |
2815 |
\newbox\pagesofar |
2816 |
\newbox\footbox |
2817 |
\newcommand\onecolumngrid{\do@columngrid{one}{\@ne}}% |
2818 |
\let\onecolumn\@undefined |
2819 |
\def\open@column@one#1{% |
2820 |
\unvbox\pagesofar |
2821 |
\gdef\thepagegrid{one}% |
2822 |
\global\pagegrid@col#1% |
2823 |
\global\pagegrid@cur\@ne |
2824 |
\set@colht |
2825 |
\set@column@hsize\pagegrid@col |
2826 |
}% |
2827 |
\def\shut@column@one{% |
2828 |
\@makecol |
2829 |
\global\setbox\pagesofar\vbox{\unvbox\@outputbox\recover@footins}% |
2830 |
\set@colht |
2831 |
}% |
2832 |
\def\float@column@one{% |
2833 |
\@makecol |
2834 |
\@outputpage |
2835 |
}% |
2836 |
\def\end@column@one{% |
2837 |
\unvbox\@cclv\setbox\z@\lastbox |
2838 |
\protect@penalty\do@newpage@pen |
2839 |
}% |
2840 |
\def\output@column@one{% |
2841 |
\@outputpage |
2842 |
}% |
2843 |
\def\@addmarginpar@one{% |
2844 |
\@if@sw\if@mparswitch\fi{% |
2845 |
\@ifodd\c@page{\false@sw}{\true@sw}% |
2846 |
}{\false@sw}{% |
2847 |
\@if@sw\if@reversemargin\fi{\false@sw}{\true@sw}% |
2848 |
}{% |
2849 |
\@if@sw\if@reversemargin\fi{\true@sw}{\false@sw}% |
2850 |
}% |
2851 |
}% |
2852 |
\def\@floatselect@sw@one#1{\true@sw}% |
2853 |
\def\onecolumngrid@push{% |
2854 |
\do@output@MVL{% |
2855 |
\@ifnum{\pagegrid@col=\@ne}{% |
2856 |
\global\let\restorecolumngrid\@empty |
2857 |
}{% |
2858 |
\xdef\restorecolumngrid{% |
2859 |
\noexpand\start@column{\thepagegrid}{\the\pagegrid@col}% |
2860 |
}% |
2861 |
\start@column{one}{\@ne}% |
2862 |
}% |
2863 |
}% |
2864 |
}% |
2865 |
\def\onecolumngrid@pop{% |
2866 |
\do@output@MVL{\restorecolumngrid}% |
2867 |
}% |
2868 |
\newcommand\twocolumngrid{\do@columngrid{mlt}{\tw@}}% |
2869 |
\let\twocolumn\@undefined |
2870 |
\let\@topnewpage\@undefined |
2871 |
\def\open@column@mlt#1{% |
2872 |
\gdef\thepagegrid{mlt}% |
2873 |
\global\pagegrid@col#1% |
2874 |
\global\pagegrid@cur\@ne |
2875 |
\set@column@hsize\pagegrid@col |
2876 |
\set@colht |
2877 |
}% |
2878 |
\def\shut@column@mlt{% |
2879 |
\@cclv@nontrivial@sw{% |
2880 |
\@makecol |
2881 |
\@ifnum{\pagegrid@cur<\pagegrid@col}{% |
2882 |
\expandafter\global\expandafter\setbox\csname col@\the\pagegrid@cur\endcsname\box\@outputbox |
2883 |
\global\advance\pagegrid@cur\@ne |
2884 |
}{}% |
2885 |
}{% |
2886 |
{\setbox\z@\box\@cclv}% |
2887 |
}% |
2888 |
\@ifnum{\pagegrid@cur>\@ne}{% |
2889 |
\csname balance@\the\pagegrid@col\endcsname |
2890 |
\grid@column{}% |
2891 |
\@combinepage |
2892 |
\@combinedblfloats |
2893 |
\global\setbox\pagesofar\box\@outputbox |
2894 |
}{}% |
2895 |
\set@colht |
2896 |
}% |
2897 |
\def\float@column@mlt{% |
2898 |
\@combinepage |
2899 |
\@combinedblfloats |
2900 |
\@outputpage |
2901 |
\global\pagegrid@cur\@ne |
2902 |
\protect@penalty\do@startpage@pen |
2903 |
}% |
2904 |
\def\end@column@mlt{% |
2905 |
\@ifx@empty\@toplist{% |
2906 |
\@ifx@empty\@botlist{% |
2907 |
\@ifx@empty\@dbltoplist{% |
2908 |
\@ifx@empty\@deferlist{% |
2909 |
\@ifnum{\pagegrid@cur=\@ne}{% |
2910 |
\false@sw |
2911 |
}{% |
2912 |
\true@sw |
2913 |
}% |
2914 |
}{% |
2915 |
\true@sw |
2916 |
}% |
2917 |
}{% |
2918 |
\true@sw |
2919 |
}% |
2920 |
}{% |
2921 |
\true@sw |
2922 |
}% |
2923 |
}{% |
2924 |
\true@sw |
2925 |
}% |
2926 |
% true = kick out a column and try again |
2927 |
{% |
2928 |
\@cclv@nontrivial@sw{% |
2929 |
\unvbox\@cclv\setbox\z@\lastbox |
2930 |
}{% |
2931 |
\unvbox\@cclv\setbox\z@\lastbox\unskip\null |
2932 |
}% |
2933 |
\protect@penalty\do@newpage@pen |
2934 |
\protect@penalty\do@endpage@pen |
2935 |
}{% |
2936 |
\unvbox\@cclv\setbox\z@\lastbox |
2937 |
}% |
2938 |
}% |
2939 |
\def\output@column@mlt{% |
2940 |
\@ifnum{\pagegrid@cur<\pagegrid@col}{% |
2941 |
\expandafter\global\expandafter\setbox\csname col@\the\pagegrid@cur\endcsname\box\@outputbox |
2942 |
\global\advance\pagegrid@cur\@ne |
2943 |
}{% |
2944 |
\set@adj@colht\dimen@ |
2945 |
\grid@column{}%{\dimen@}% |
2946 |
\@combinepage |
2947 |
\@combinedblfloats |
2948 |
\@outputpage |
2949 |
\global\pagegrid@cur\@ne |
2950 |
\protect@penalty\do@startpage@pen |
2951 |
}% |
2952 |
}% |
2953 |
\let\@outputdblcol\@undefined |
2954 |
\def\@floatselect@sw@mlt#1{\@if@notdblfloat{#1}}% |
2955 |
\def\@addmarginpar@mlt{% emits a boolean |
2956 |
\@ifnum{\pagegrid@cur=\@ne}% |
2957 |
}% |
2958 |
\let\pagegrid@cur\col@number |
2959 |
\let\col@number\@undefined |
2960 |
\newcount\pagegrid@col |
2961 |
\pagegrid@cur\@ne |
2962 |
\expandafter\let\csname col@\the\pagegrid@cur\endcsname\@leftcolumn |
2963 |
\let\@leftcolumn\@undefined |
2964 |
\pagegrid@col\tw@ |
2965 |
\def\pagegrid@init{% |
2966 |
\advance\pagegrid@cur\@ne |
2967 |
\@ifnum{\pagegrid@cur<\pagegrid@col}{% |
2968 |
\csname newbox\expandafter\endcsname\csname col@\the\pagegrid@cur\endcsname |
2969 |
\pagegrid@init |
2970 |
}{% |
2971 |
}% |
2972 |
}% |
2973 |
\appdef\class@documenthook{% |
2974 |
\pagegrid@init |
2975 |
}% |
2976 |
\def\grid@column#1{% |
2977 |
\global\setbox\@outputbox\vbox{% |
2978 |
\hb@xt@\textwidth{% |
2979 |
\vrule\@height\z@\@width\z@\@if@empty{#1}{}{\@depth#1}% |
2980 |
\pagegrid@cur\@ne |
2981 |
\append@column |
2982 |
\box@column\@outputbox |
2983 |
}% |
2984 |
\vskip\z@skip % FIXME: page depth! |
2985 |
}% |
2986 |
}% |
2987 |
\def\append@column{% |
2988 |
\@ifnum{\pagegrid@cur<\pagegrid@col}{% |
2989 |
\expandafter\box@column\csname col@\the\pagegrid@cur\endcsname |
2990 |
\hfil |
2991 |
\vrule \@width\columnseprule |
2992 |
\hfil |
2993 |
\advance\pagegrid@cur\@ne |
2994 |
\append@column |
2995 |
}{% |
2996 |
}% |
2997 |
}% |
2998 |
\def\box@column#1{% |
2999 |
\raise\topskip |
3000 |
\hb@xt@\columnwidth{% |
3001 |
\dimen@\ht#1\@ifdim{\dimen@>\@colht}{\dimen@\@colht}{}% |
3002 |
\count@\vbadness\vbadness\@M |
3003 |
\dimen@ii\vfuzz\vfuzz\maxdimen |
3004 |
\outputdebug@sw{\saythe\@colht\saythe\dimen@}{}% |
3005 |
\vtop to\dimen@ |
3006 |
{\hrule\@height\z@ |
3007 |
\unvbox#1% |
3008 |
\raggedcolumn@skip |
3009 |
}% |
3010 |
\vfuzz\dimen@ii |
3011 |
\vbadness\count@ |
3012 |
\hss |
3013 |
}% |
3014 |
}% |
3015 |
\def\marry@baselines{% |
3016 |
\vskip\marry@skip\relax |
3017 |
}% |
3018 |
\gdef\marry@skip{\z@skip}% |
3019 |
\def\set@marry@skip{% |
3020 |
\begingroup |
3021 |
\skip@\baselineskip\advance\skip@-\topskip |
3022 |
\@ifdim{\skip@>\z@}{% |
3023 |
\xdef\marry@skip{\the\skip@}% |
3024 |
}{}% |
3025 |
\endgroup |
3026 |
}% |
3027 |
\AtBeginDocument{% |
3028 |
\@ifxundefined\raggedcolumn@sw{\@booleanfalse\raggedcolumn@sw}{}% |
3029 |
}% |
3030 |
\def\raggedcolumn@skip{% |
3031 |
\vskip\z@\raggedcolumn@sw{\@plus.0001fil\@minus.0001fil}{}\relax |
3032 |
}% |
3033 |
\def\@combinepage{% |
3034 |
\@ifvoid\pagesofar{}{% |
3035 |
\setbox\@outputbox\vbox{% |
3036 |
\unvbox\pagesofar |
3037 |
\marry@baselines |
3038 |
\unvbox\@outputbox |
3039 |
}% |
3040 |
}% |
3041 |
\@ifvoid\footbox{}{% |
3042 |
\setbox\@outputbox\vbox{% |
3043 |
\unvbox\@outputbox |
3044 |
\marry@baselines |
3045 |
\unvbox\footbox |
3046 |
}% |
3047 |
}% |
3048 |
}% |
3049 |
\def\@combinedblfloats{% |
3050 |
\@ifx@empty\@dbltoplist{}{% |
3051 |
\setbox\@tempboxa\vbox{}% |
3052 |
\let\@elt\@comdblflelt\@dbltoplist |
3053 |
\let\@elt\relax\xdef\@freelist{\@freelist\@dbltoplist}% |
3054 |
\global\let\@dbltoplist\@empty |
3055 |
\setbox\@outputbox\vbox{% |
3056 |
%\boxmaxdepth\maxdepth %% probably not needed, CAR |
3057 |
\unvbox\@tempboxa\unskip |
3058 |
\@ifnum{\@dbltopnum>\m@ne}{\dblfigrule}{}%FIXME: how is \@dbltopnum maintained? |
3059 |
\vskip\dbltextfloatsep |
3060 |
\unvbox\@outputbox |
3061 |
}% |
3062 |
}% |
3063 |
}% |
3064 |
\def\set@column@hsize#1{% |
3065 |
\pagegrid@col#1% |
3066 |
\global\columnwidth\textwidth |
3067 |
\global\advance\columnwidth\columnsep |
3068 |
\global\divide\columnwidth\pagegrid@col |
3069 |
\global\advance\columnwidth-\columnsep |
3070 |
\global\hsize\columnwidth |
3071 |
\global\linewidth\columnwidth |
3072 |
\skip@\baselineskip\advance\skip@-\topskip |
3073 |
\@ifnum{\pagegrid@col>\@ne}{\set@marry@skip}{}% |
3074 |
}% |
3075 |
\def\set@colht{% |
3076 |
\set@adj@textheight\@colht |
3077 |
\global\let\enlarge@colroom\@empty |
3078 |
\set@colroom |
3079 |
}% |
3080 |
\def\set@adj@textheight#1{% |
3081 |
#1\textheight |
3082 |
\def\@elt{\adj@page#1}% |
3083 |
\@booleantrue\firsttime@sw\@dbltoplist |
3084 |
\let\@elt\relax |
3085 |
\global#1#1\relax |
3086 |
\outputdebug@sw{\saythe#1}{}% |
3087 |
}% |
3088 |
\def\set@colroom{% |
3089 |
\set@adj@colht\@colroom |
3090 |
\@if@empty\enlarge@colroom{}{% |
3091 |
\global\advance\@colroom\enlarge@colroom\relax |
3092 |
}% |
3093 |
\outputdebug@sw{\saythe\@colroom}{}% |
3094 |
\@ifdim{\@colroom>\topskip}{}{% |
3095 |
\ltxgrid@info{Not enough room: \string\@colroom=\the\@colroom; increasing to \the\topskip}% |
3096 |
\@colroom\topskip |
3097 |
}% |
3098 |
\global\@colroom\@colroom |
3099 |
\set@vsize |
3100 |
}% |
3101 |
\def\set@vsize{% |
3102 |
\global\vsize\@colroom |
3103 |
\outputdebug@sw{\saythe\vsize}{}% |
3104 |
}% |
3105 |
\def\set@adj@colht#1{% |
3106 |
#1\@colht |
3107 |
\@ifvoid\pagesofar{}{% |
3108 |
\advance#1-\ht\pagesofar\advance#1-\dp\pagesofar |
3109 |
}% |
3110 |
\@ifvoid\footbox{}{% |
3111 |
\advance#1-\ht\footbox\advance#1-\dp\footbox |
3112 |
}% |
3113 |
\def\@elt{\adj@column#1}% |
3114 |
\@booleantrue\firsttime@sw\@toplist |
3115 |
\@booleantrue\firsttime@sw\@botlist |
3116 |
\let\@elt\relax |
3117 |
\outputdebug@sw{\saythe#1}{}% |
3118 |
}% |
3119 |
\def\adj@column#1#2{% |
3120 |
\advance#1-\ht#2% |
3121 |
\advance#1-\firsttime@sw{\textfloatsep\@booleanfalse\firsttime@sw}{\floatsep}% |
3122 |
}% |
3123 |
\def\adj@page#1#2{% |
3124 |
\advance#1-\ht#2% |
3125 |
\advance#1-\firsttime@sw{\dbltextfloatsep\@booleanfalse\firsttime@sw}{\dblfloatsep}% |
3126 |
}% |
3127 |
\appdef\@outputpage{% |
3128 |
\set@colht % FIXME: needed? |
3129 |
\@floatplacement % FIXME: needed? |
3130 |
\@dblfloatplacement % FIXME: needed? |
3131 |
}% |
3132 |
\@namedef{balance@2}{% |
3133 |
\expandafter\balance@two\csname col@1\endcsname\@outputbox |
3134 |
% Avoid a bug by preventing a restore when leaving this group |
3135 |
\global\setbox\csname col@1\endcsname\box\csname col@1\endcsname |
3136 |
\@ifvoid\footbox{}{% |
3137 |
\global\setbox\footbox\vbox{% |
3138 |
\setbox\z@\box\@tempboxa |
3139 |
\let\recover@footins\relax |
3140 |
\balance@two\footbox\@tempboxa |
3141 |
\hb@xt@\textwidth{\box\footbox\hfil\box\@tempboxa}% |
3142 |
}% |
3143 |
}% |
3144 |
}% |
3145 |
\def\balance@two#1#2{% |
3146 |
\outputdebug@sw{{\tracingall\scrollmode\showbox#1\showbox#2}}{}% |
3147 |
\setbox\@ne\vbox{% |
3148 |
\@ifvoid#1{}{% |
3149 |
\unvcopy#1\recover@footins |
3150 |
\@ifvoid#2{}{\marry@baselines}% |
3151 |
}% |
3152 |
\@ifvoid#2{}{% |
3153 |
\unvcopy#2\recover@footins |
3154 |
}% |
3155 |
}% |
3156 |
\dimen@\ht\@ne\divide\dimen@\tw@ |
3157 |
\dimen@i\dimen@ |
3158 |
\vbadness\@M |
3159 |
\vfuzz\maxdimen |
3160 |
\loopwhile{% |
3161 |
\dimen@i=.5\dimen@i |
3162 |
\outputdebug@sw{\saythe\dimen@\saythe\dimen@i\saythe\dimen@ii}{}% |
3163 |
\setbox\z@\copy\@ne\setbox\tw@\vsplit\z@ to\dimen@ |
3164 |
\setbox\z@ \vbox{% |
3165 |
\unvcopy\z@ |
3166 |
\setbox\z@\vbox{\unvbox\z@ \setbox\z@\lastbox\aftergroup\vskip\aftergroup-\expandafter}\the\dp\z@\relax |
3167 |
}% |
3168 |
\setbox\tw@\vbox{% |
3169 |
\unvcopy\tw@ |
3170 |
\setbox\z@\vbox{\unvbox\tw@\setbox\z@\lastbox\aftergroup\vskip\aftergroup-\expandafter}\the\dp\z@\relax |
3171 |
}% |
3172 |
\dimen@ii\ht\tw@\advance\dimen@ii-\ht\z@ |
3173 |
\@ifdim{\dimen@i>.5\p@}{% |
3174 |
\advance\dimen@\@ifdim{\dimen@ii<\z@}{}{-}\dimen@i |
3175 |
\true@sw |
3176 |
}{% |
3177 |
\@ifdim{\dimen@ii<\z@}{% |
3178 |
\advance\dimen@\tw@\dimen@i |
3179 |
\true@sw |
3180 |
}{% |
3181 |
\false@sw |
3182 |
}% |
3183 |
}% |
3184 |
}% |
3185 |
\outputdebug@sw{\saythe\dimen@\saythe\dimen@i\saythe\dimen@ii}{}% |
3186 |
\@ifdim{\ht\z@=\z@}{% |
3187 |
\@ifdim{\ht\tw@=\z@}{% |
3188 |
\true@sw |
3189 |
}{% |
3190 |
\false@sw |
3191 |
}% |
3192 |
}{% |
3193 |
\true@sw |
3194 |
}% |
3195 |
{% |
3196 |
}{% |
3197 |
\ltxgrid@info{Unsatifactorily balanced columns: giving up}% |
3198 |
\setbox\tw@\box#1% |
3199 |
\setbox\z@ \box#2% |
3200 |
}% |
3201 |
\setbox\tw@\vbox{\unvbox\tw@\vskip\z@skip}% |
3202 |
\setbox\z@ \vbox{\unvbox\z@ \vskip\z@skip}% |
3203 |
\set@colroom |
3204 |
\dimen@\ht\z@\@ifdim{\dimen@<\ht\tw@}{\dimen@\ht\tw@}{}% |
3205 |
\@ifdim{\dimen@>\@colroom}{\dimen@\@colroom}{}% |
3206 |
\outputdebug@sw{\saythe{\ht\z@}\saythe{\ht\tw@}\saythe\@colroom\saythe\dimen@}{}% |
3207 |
\setbox#1\vbox to\dimen@{\unvbox\tw@\unskip\raggedcolumn@skip}% |
3208 |
\setbox#2\vbox to\dimen@{\unvbox\z@ \unskip\raggedcolumn@skip}% |
3209 |
\outputdebug@sw{{\tracingall\scrollmode\showbox#1\showbox#2}}{}% |
3210 |
}% |
3211 |
\def\recover@footins{% |
3212 |
\skip\z@ \lastskip\unskip |
3213 |
\skip\@ne\lastskip\unskip |
3214 |
\setbox\z@\lastbox |
3215 |
\@ifvbox\z@{% |
3216 |
\setbox\z@\vbox{% |
3217 |
\unvbox\z@ |
3218 |
\setbox\z@\lastbox |
3219 |
\@ifvoid\z@{}{% |
3220 |
\global\setbox\footbox\vbox{% |
3221 |
\unvbox\footbox |
3222 |
\@ifvbox\z@{% |
3223 |
\unvbox\z@ |
3224 |
}{% |
3225 |
\box\z@ |
3226 |
}% |
3227 |
}% |
3228 |
}% |
3229 |
}% |
3230 |
}{}% |
3231 |
\outputdebug@sw{{\tracingall\scrollmode\showbox\footbox}}{}% |
3232 |
}% |
3233 |
\prepdef\@begindocumenthook{% |
3234 |
\open@column@one\@ne |
3235 |
\set@colht |
3236 |
\@floatplacement |
3237 |
\@dblfloatplacement |
3238 |
}% |
3239 |
\def\longtable@longtable{% |
3240 |
\par |
3241 |
\ifx\multicols\@undefined\else\ifnum\col@number>\@ne\@twocolumntrue\fi\fi |
3242 |
\if@twocolumn\LT@err{longtable not in 1-column mode}\@ehc\fi |
3243 |
\begingroup |
3244 |
\@ifnextchar[\LT@array{\LT@array[x]}% |
3245 |
}% |
3246 |
\def\longtable@new{% |
3247 |
\par |
3248 |
\@ifnextchar[\LT@array{\LT@array[x]}% |
3249 |
}% |
3250 |
\def\endlongtable@longtable{% |
3251 |
\crcr |
3252 |
\noalign{% |
3253 |
\let\LT@entry\LT@entry@chop |
3254 |
\xdef\LT@save@row{\LT@save@row}}% |
3255 |
\LT@echunk |
3256 |
\LT@start |
3257 |
\unvbox\z@ |
3258 |
\LT@get@widths |
3259 |
\if@filesw |
3260 |
{\let\LT@entry\LT@entry@write\immediate\write\@auxout{% |
3261 |
\gdef\expandafter\noexpand |
3262 |
\csname LT@\romannumeral\c@LT@tables\endcsname |
3263 |
{\LT@save@row}}}% |
3264 |
\fi |
3265 |
\ifx\LT@save@row\LT@@save@row |
3266 |
\else |
3267 |
\LT@warn{Column \@width s have changed\MessageBreak |
3268 |
in table \thetable}% |
3269 |
\LT@final@warn |
3270 |
\fi |
3271 |
\endgraf\penalty -\LT@end@pen |
3272 |
\endgroup |
3273 |
\global\@mparbottom\z@ |
3274 |
\pagegoal\vsize |
3275 |
\endgraf\penalty\z@\addvspace\LTpost |
3276 |
\ifvoid\footins\else\insert\footins{}\fi |
3277 |
}% |
3278 |
\def\endlongtable@new{% |
3279 |
\crcr |
3280 |
\noalign{% |
3281 |
\let\LT@entry\LT@entry@chop |
3282 |
\xdef\LT@save@row{\LT@save@row}% |
3283 |
}% |
3284 |
\LT@echunk |
3285 |
\LT@start |
3286 |
\unvbox\z@ |
3287 |
\LT@get@widths |
3288 |
\@if@sw\if@filesw\fi{% |
3289 |
{% |
3290 |
\let\LT@entry\LT@entry@write |
3291 |
\immediate\write\@auxout{% |
3292 |
\gdef\expandafter\noexpand\csname LT@\romannumeral\c@LT@tables\endcsname |
3293 |
{\LT@save@row}% |
3294 |
}% |
3295 |
}% |
3296 |
}{}% |
3297 |
\@ifx\LT@save@row\LT@@save@row{}{% |
3298 |
\LT@warn{% |
3299 |
Column \@width s have changed\MessageBreak in table \thetable |
3300 |
}\LT@final@warn |
3301 |
}% |
3302 |
\endgraf |
3303 |
\nobreak |
3304 |
\box\@ifvoid\LT@lastfoot{\LT@foot}{\LT@lastfoot}% |
3305 |
\global\@mparbottom\z@ |
3306 |
\endgraf |
3307 |
\LT@post |
3308 |
}% |
3309 |
\def\LT@start@longtable{% |
3310 |
\let\LT@start\endgraf |
3311 |
\endgraf |
3312 |
\penalty\z@ |
3313 |
\vskip\LTpre |
3314 |
\dimen@\pagetotal |
3315 |
\advance\dimen@ \ht\ifvoid\LT@firsthead\LT@head\else\LT@firsthead\fi |
3316 |
\advance\dimen@ \dp\ifvoid\LT@firsthead\LT@head\else\LT@firsthead\fi |
3317 |
\advance\dimen@ \ht\LT@foot |
3318 |
\dimen@ii\vfuzz\vfuzz\maxdimen |
3319 |
\setbox\tw@\copy\z@ |
3320 |
\setbox\tw@\vsplit\tw@ to \ht\@arstrutbox |
3321 |
\setbox\tw@\vbox{\unvbox\tw@}% |
3322 |
\vfuzz\dimen@ii |
3323 |
\advance\dimen@ \ht |
3324 |
\ifdim\ht\@arstrutbox>\ht\tw@\@arstrutbox\else\tw@\fi |
3325 |
\advance\dimen@\dp |
3326 |
\ifdim\dp\@arstrutbox>\dp\tw@\@arstrutbox\else\tw@\fi |
3327 |
\advance\dimen@ -\pagegoal |
3328 |
\ifdim \dimen@>\z@\vfil\break\fi |
3329 |
\global\@colroom\@colht |
3330 |
\ifvoid\LT@foot\else |
3331 |
\advance\vsize-\ht\LT@foot |
3332 |
\global\advance\@colroom-\ht\LT@foot |
3333 |
\dimen@\pagegoal\advance\dimen@-\ht\LT@foot\pagegoal\dimen@ |
3334 |
\maxdepth\z@ |
3335 |
\fi |
3336 |
\ifvoid\LT@firsthead\copy\LT@head\else\box\LT@firsthead\fi |
3337 |
\output{\LT@output}% |
3338 |
}% |
3339 |
\def\LT@start@new{% |
3340 |
\let\LT@start\endgraf |
3341 |
\endgraf |
3342 |
\markthr@@{}% |
3343 |
\LT@pre |
3344 |
\@ifvoid\LT@firsthead{\LT@top}{\box\LT@firsthead\nobreak}% |
3345 |
\mark@envir{longtable}% |
3346 |
}% |
3347 |
\def\LT@end@hd@ft@longtable#1{% |
3348 |
\LT@echunk |
3349 |
\ifx\LT@start\endgraf |
3350 |
\LT@err{Longtable head or foot not at start of table}{Increase LTchunksize}% |
3351 |
\fi |
3352 |
\setbox#1\box\z@ |
3353 |
\LT@get@widths\LT@bchunk |
3354 |
}% |
3355 |
\def\LT@end@hd@ft@new#1{% |
3356 |
\LT@echunk |
3357 |
\@ifx{\LT@start\endgraf}{% |
3358 |
\LT@err{Longtable head or foot not at start of table}{Increase LTchunksize}% |
3359 |
}% |
3360 |
\global\setbox#1\box\z@ |
3361 |
\LT@get@widths |
3362 |
\LT@bchunk |
3363 |
}% |
3364 |
\def\LT@array@longtable[#1]#2{% |
3365 |
\refstepcounter{table}\stepcounter{LT@tables}% |
3366 |
\if l#1% |
3367 |
\LTleft\z@ \LTright\fill |
3368 |
\else\if r#1% |
3369 |
\LTleft\fill \LTright\z@ |
3370 |
\else\if c#1% |
3371 |
\LTleft\fill \LTright\fill |
3372 |
\fi\fi\fi |
3373 |
\let\LT@mcol\multicolumn |
3374 |
\let\LT@@tabarray\@tabarray |
3375 |
\let\LT@@hl\hline |
3376 |
\def\@tabarray{% |
3377 |
\let\hline\LT@@hl |
3378 |
\LT@@tabarray}% |
3379 |
\let\\\LT@tabularcr\let\tabularnewline\\% |
3380 |
\def\newpage{\noalign{\break}}% |
3381 |
\def\pagebreak{\noalign{\ifnum`}=0\fi\@testopt{\LT@no@pgbk-}4}% |
3382 |
\def\nopagebreak{\noalign{\ifnum`}=0\fi\@testopt\LT@no@pgbk4}% |
3383 |
\let\hline\LT@hline \let\kill\LT@kill\let\caption\LT@caption |
3384 |
\@tempdima\ht\strutbox |
3385 |
\let\@endpbox\LT@endpbox |
3386 |
\ifx\extrarowheight\@undefined |
3387 |
\let\@acol\@tabacol |
3388 |
\let\@classz\@tabclassz \let\@classiv\@tabclassiv |
3389 |
\def\@startpbox{\vtop\LT@startpbox}% |
3390 |
\let\@@startpbox\@startpbox |
3391 |
\let\@@endpbox\@endpbox |
3392 |
\let\LT@LL@FM@cr\@tabularcr |
3393 |
\else |
3394 |
\advance\@tempdima\extrarowheight |
3395 |
\col@sep\tabcolsep |
3396 |
\let\@startpbox\LT@startpbox\let\LT@LL@FM@cr\@arraycr |
3397 |
\fi |
3398 |
\setbox\@arstrutbox\hbox{\vrule |
3399 |
\@height \arraystretch \@tempdima |
3400 |
\@depth \arraystretch \dp \strutbox |
3401 |
\@width \z@}% |
3402 |
\let\@sharp##\let\protect\relax |
3403 |
\begingroup |
3404 |
\@mkpream{#2}% |
3405 |
\xdef\LT@bchunk{% |
3406 |
\global\advance\c@LT@chunks\@ne |
3407 |
\global\LT@rows\z@\setbox\z@\vbox\bgroup |
3408 |
\LT@setprevdepth |
3409 |
\tabskip\LTleft\halign to\hsize\bgroup |
3410 |
\tabskip\z@ \@arstrut \@preamble \tabskip\LTright \cr}% |
3411 |
\endgroup |
3412 |
\expandafter\LT@nofcols\LT@bchunk&\LT@nofcols |
3413 |
\LT@make@row |
3414 |
\m@th\let\par\@empty |
3415 |
\everycr{}\lineskip\z@\baselineskip\z@ |
3416 |
\LT@bchunk |
3417 |
}% |
3418 |
\def\LT@LR@l{\LTleft\z@ \LTright\fill}% |
3419 |
\def\LT@LR@r{\LTleft\fill \LTright\z@ }% |
3420 |
\def\LT@LR@c{\LTleft\fill \LTright\fill}% |
3421 |
\def\LT@array@new[#1]#2{% |
3422 |
\refstepcounter{table}\stepcounter{LT@tables}% |
3423 |
\table@hook |
3424 |
\LTleft\fill \LTright\fill |
3425 |
\csname LT@LR@#1\endcsname |
3426 |
\let\LT@mcol\multicolumn |
3427 |
\let\LT@@hl\hline |
3428 |
\prepdef\@tabarray{\let\hline\LT@@hl}% |
3429 |
\let\\\LT@tabularcr |
3430 |
\let\tabularnewline\\% |
3431 |
\def\newpage{\noalign{\break}}% |
3432 |
\def\pagebreak{\noalign{\ifnum`}=0\fi\@testopt{\LT@no@pgbk-}4}% |
3433 |
\def\nopagebreak{\noalign{\ifnum`}=0\fi\@testopt\LT@no@pgbk4}% |
3434 |
\let\hline\LT@hline |
3435 |
\let\kill\LT@kill |
3436 |
\let\caption\LT@caption |
3437 |
\@tempdima\ht\strutbox |
3438 |
\let\@endpbox\LT@endpbox |
3439 |
\@ifxundefined\extrarowheight{% |
3440 |
\let\@acol\@tabacol |
3441 |
\let\@classz\@tabclassz |
3442 |
\let\@classiv\@tabclassiv |
3443 |
\def\@startpbox{\vtop\LT@startpbox}% |
3444 |
\let\@@startpbox\@startpbox |
3445 |
\let\@@endpbox\@endpbox |
3446 |
\let\LT@LL@FM@cr\@tabularcr |
3447 |
}{% |
3448 |
\advance\@tempdima\extrarowheight |
3449 |
\col@sep\tabcolsep |
3450 |
\let\@startpbox\LT@startpbox |
3451 |
\let\LT@LL@FM@cr\@arraycr |
3452 |
}% |
3453 |
\let\@acoll\@tabacoll |
3454 |
\let\@acolr\@tabacolr |
3455 |
\let\@acol\@tabacol |
3456 |
\setbox\@arstrutbox\hbox{% |
3457 |
\vrule |
3458 |
\@height \arraystretch \@tempdima |
3459 |
\@depth \arraystretch \dp \strutbox |
3460 |
\@width \z@ |
3461 |
}% |
3462 |
\let\@sharp##% |
3463 |
\let\protect\relax |
3464 |
\begingroup |
3465 |
\@mkpream{#2}% |
3466 |
\@mkpream@relax |
3467 |
\edef\@preamble{\@preamble}% |
3468 |
\prepdef\@preamble{% |
3469 |
\global\advance\c@LT@chunks\@ne |
3470 |
\global\LT@rows\z@ |
3471 |
\setbox\z@\vbox\bgroup |
3472 |
\LT@setprevdepth |
3473 |
\tabskip\LTleft |
3474 |
\halign to\hsize\bgroup |
3475 |
\tabskip\z@ |
3476 |
\@arstrut |
3477 |
}% |
3478 |
\appdef\@preamble{% |
3479 |
\tabskip\LTright |
3480 |
\cr |
3481 |
}% |
3482 |
\global\let\LT@bchunk\@preamble |
3483 |
\endgroup |
3484 |
\expandafter\LT@nofcols\LT@bchunk&\LT@nofcols |
3485 |
\LT@make@row |
3486 |
\m@th |
3487 |
\let\par\@empty |
3488 |
\everycr{}% |
3489 |
\lineskip\z@ |
3490 |
\baselineskip\z@ |
3491 |
\LT@bchunk |
3492 |
}% |
3493 |
\appdef\table@hook{}% |
3494 |
%% Note that it is not enough to define the environment itself; we also have to create the corresponding |
3495 |
%% \cmd\output\ routine procedures, which provide for continued footers and headers |
3496 |
%% (the very feature of \env{longtable} requiring support in the output routine). |
3497 |
%% This same consideration would arise in defining any syntactic extension to \env{longtable}, because |
3498 |
%% the environment name itself is exposed in the output routine. |
3499 |
\def\switch@longtable{% |
3500 |
\@ifpackageloaded{longtable}{% |
3501 |
\@ifx{\longtable\longtable@longtable}{% |
3502 |
\@ifx{\endlongtable\endlongtable@longtable}{% |
3503 |
\@ifx{\LT@start\LT@start@longtable}{% |
3504 |
\@ifx{\LT@end@hd@ft\LT@end@hd@ft@longtable}{% |
3505 |
\@ifx{\LT@array\LT@array@longtable}{% |
3506 |
\true@sw |
3507 |
}{\false@sw}% |
3508 |
}{\false@sw}% |
3509 |
}{\false@sw}% |
3510 |
}{\false@sw}% |
3511 |
}{\false@sw}% |
3512 |
{% |
3513 |
\class@info{Patching longtable package}% |
3514 |
}{% |
3515 |
\class@info{Patching unrecognized longtable package. (Proceeding with fingers crossed)}% |
3516 |
}% |
3517 |
\let\longtable\longtable@new |
3518 |
\let\endlongtable\endlongtable@new |
3519 |
\let\LT@start\LT@start@new |
3520 |
\let\LT@end@hd@ft\LT@end@hd@ft@new |
3521 |
\let\LT@array\LT@array@new |
3522 |
\newenvironment{longtable*}{% |
3523 |
\onecolumngrid@push |
3524 |
\longtable |
3525 |
}{% |
3526 |
\endlongtable |
3527 |
\onecolumngrid@pop |
3528 |
}% |
3529 |
}{}% |
3530 |
}% |
3531 |
\def\LT@pre{\penalty\z@\vskip\LTpre}% |
3532 |
\def\LT@bot{\nobreak\copy\LT@foot\vfil}% |
3533 |
\def\LT@top{\copy\LT@head\nobreak}% |
3534 |
\def\LT@post{\penalty\z@\addvspace\LTpost\mark@envir{\curr@envir}}% |
3535 |
\def\LT@adj{% |
3536 |
\setbox\z@\vbox{\null}\dimen@-\ht\z@ |
3537 |
\setbox\z@\vbox{\unvbox\z@\LT@bot}\advance\dimen@\ht\z@ |
3538 |
\global\advance\vsize-\dimen@ |
3539 |
}% |
3540 |
\def\output@init@longtable{\LT@adj}% |
3541 |
\def\output@prep@longtable{\setbox\@cclv\vbox{\unvbox\@cclv\LT@bot}}% |
3542 |
\def\output@post@longtable{\LT@top}% |
3543 |
\let\output@init@theindex\@empty |
3544 |
\let\output@prep@theindex\@empty |
3545 |
\def\output@post@theindex{% |
3546 |
\@ifodd\c@page{}{% |
3547 |
\@ifnum{\pagegrid@cur=\@ne}{% we have the leftmost column of a verso page |
3548 |
% insert the current top-level continued head |
3549 |
}% |
3550 |
}% |
3551 |
}% |
3552 |
\def\check@aux{\do@output@MVL{\do@check@aux}}% |
3553 |
\def\check@deferlist@stuck#1{% |
3554 |
\@ifx{\@deferlist@postshipout\@empty}{}{% |
3555 |
\@ifx{\@deferlist@postshipout\@deferlist}{% |
3556 |
\@fltstk |
3557 |
\clearpage@sw{% |
3558 |
\ltxgrid@warn{Deferred float stuck during \string\clearpage\space processing}% |
3559 |
}{% |
3560 |
\force@deferlist@stuck#1% |
3561 |
}% |
3562 |
}{% |
3563 |
%Successfully committed float(s) |
3564 |
}% |
3565 |
\global\let\@deferlist@postshipout\@empty |
3566 |
}% |
3567 |
}% |
3568 |
\def\@fltstk{% |
3569 |
\@latex@warning{A float is stuck (cannot be placed without \string\clearpage)}% |
3570 |
}% |
3571 |
\appdef\@outputpage{% |
3572 |
\global\let\@deferlist@postshipout\@deferlist |
3573 |
}% |
3574 |
\def\@next#1#2{% |
3575 |
\@ifx{#2\@empty}{\false@sw}{% |
3576 |
\expandafter\@xnext#2\@@#1#2% |
3577 |
\true@sw |
3578 |
}% |
3579 |
}% |
3580 |
\def\@xnext\@elt#1#2\@@#3#4{% |
3581 |
\def#3{#1}% |
3582 |
\gdef#4{#2}% |
3583 |
\def\@tempa{#4}\def\@tempb{\@freelist}% |
3584 |
\@ifx{\@tempa\@tempb}{% |
3585 |
\@ifx{#4\@empty}{% |
3586 |
\force@deferlist@empty%{Float register pool exhausted}% |
3587 |
}{}% |
3588 |
}{}% |
3589 |
}% |
3590 |
\def\force@deferlist@stuck#1{% |
3591 |
\force@deferlist@sw{% |
3592 |
\@booleantrue\clearpage@sw |
3593 |
\@booleantrue\forcefloats@sw |
3594 |
#1% |
3595 |
}{% |
3596 |
}% |
3597 |
}% |
3598 |
\def\force@deferlist@empty{% |
3599 |
\force@deferlist@sw{% |
3600 |
\penalty-\pagebreak@pen |
3601 |
\protect@penalty\do@forcecolumn@pen |
3602 |
}{% |
3603 |
}% |
3604 |
}% |
3605 |
\@booleanfalse\force@deferlist@sw |
3606 |
\mathchardef\do@forcecolumn@pen=10009 |
3607 |
\@namedef{output@-\the\do@forcecolumn@pen}{\do@forcecolumn}% |
3608 |
\def\do@forcecolumn{% |
3609 |
\@booleantrue\clearpage@sw |
3610 |
\@booleantrue\forcefloats@sw |
3611 |
\do@startcolumn |
3612 |
}% |
3613 |
\def\enlargethispage{% |
3614 |
\@ifstar{% |
3615 |
\@enlargethispage{}% |
3616 |
}{% |
3617 |
\@enlargethispage{}% |
3618 |
}% |
3619 |
}% |
3620 |
\def\@enlargethispage#1#2{% |
3621 |
\begingroup |
3622 |
\dimen@#2\relax |
3623 |
\edef\@tempa{#1}% |
3624 |
\edef\@tempa{\noexpand\@@enlargethispage{\@tempa}{\the\dimen@}}% |
3625 |
\expandafter\do@output@MVL\expandafter{\@tempa}% |
3626 |
\endgroup |
3627 |
}% |
3628 |
\def\@@enlargethispage#1#2{% |
3629 |
\def\@tempa{one}% |
3630 |
\@ifx{\thepagegrid\@tempa}{% |
3631 |
\true@sw |
3632 |
}{% |
3633 |
\def\@tempa{mlt}% |
3634 |
\@ifx{\thepagegrid\@tempa}{% |
3635 |
\@ifnum{\pagegrid@cur=\@ne}{% OK to adjust this page |
3636 |
\gdef\enlarge@colroom{#2}% |
3637 |
\true@sw |
3638 |
}{% Can only adjust this column; give up |
3639 |
\ltxgrid@warn{Too late to enlarge this page; move the command to the first column.}% |
3640 |
\false@sw |
3641 |
}% |
3642 |
}{% Unknown page grid |
3643 |
\ltxgrid@warn{Unable to enlarge a page of this kind.}% |
3644 |
\false@sw |
3645 |
}% |
3646 |
}% |
3647 |
{% |
3648 |
\class@info{Enlarging page \thepage\space by #2}% |
3649 |
\global\advance\@colroom#2\relax |
3650 |
\set@vsize |
3651 |
}{% |
3652 |
% Could not adjust this page |
3653 |
}% |
3654 |
}% |
3655 |
\let\enlarge@colroom\@empty |
3656 |
\let\@kludgeins\@undefined |
3657 |
\@booleantrue\textheight@sw |
3658 |
\prepdef\@outputpage{% |
3659 |
\textheight@sw{% |
3660 |
\count@\vbadness\vbadness\@M |
3661 |
\dimen@\vfuzz\vfuzz\maxdimen |
3662 |
\setbox\@outputbox\vbox to\textheight{\unvbox\@outputbox}% |
3663 |
\vfuzz\dimen@ |
3664 |
\vbadness\count@ |
3665 |
}{}% |
3666 |
}% |
3667 |
\def\ltxgrid@info{% |
3668 |
\ltxgrid@info@sw{\class@info}{\@gobble}% |
3669 |
}% |
3670 |
\@booleanfalse\ltxgrid@info@sw |
3671 |
\def\ltxgrid@warn{% |
3672 |
\ltxgrid@warn@sw{\class@warn}{\@gobble}% |
3673 |
}% |
3674 |
\@booleantrue\ltxgrid@warn@sw |
3675 |
%% Source File: textcase.dtx |
3676 |
%% Copyright 1997 1998 David Carlisle |
3677 |
%% |
3678 |
%% This file may be distributed under the terms of the LPPL. |
3679 |
%% See 00readme.txt for details. |
3680 |
\NeedsTeXFormat{LaTeX2e} |
3681 |
\ProvidesPackage{textcase} |
3682 |
[1998/11/12 v0.06 Text only upper/lower case changing (DPC)] |
3683 |
\def\@uclcnotmath#1#2#3#4{\begingroup |
3684 |
#1% |
3685 |
\def\({$}\let\)\(% |
3686 |
\def\NoCaseChange##1{\noexpand\NoCaseChange{\noexpand##1}}% |
3687 |
\@nonchangecase\label |
3688 |
\@nonchangecase\ref |
3689 |
\@nonchangecase\ensuremath |
3690 |
\def\cite##1##{\toks@{\noexpand\cite##1}\@citex}% |
3691 |
\def\@citex##1{\NoCaseChange{\the\toks@{##1}}}% |
3692 |
\def\reserved@a##1##2{\let#2\reserved@a}% |
3693 |
\expandafter\reserved@a\@uclclist\reserved@b{\reserved@b\@gobble}% |
3694 |
\protected@edef\reserved@a{\endgroup |
3695 |
\noexpand\@skipmath#3#4$\valign$}% |
3696 |
\reserved@a} |
3697 |
\def\@nonchangecase#1{\def#1##1{\NoCaseChange{#1{##1}}}} |
3698 |
\let\NoCaseChange\@firstofone |
3699 |
\def\@skipmath#1#2$#3${% |
3700 |
\@skip@nonchangecase#1#2\NoCaseChange\valign |
3701 |
\ifx\valign#3% |
3702 |
\else |
3703 |
$#3$% |
3704 |
\expandafter\@skipmath\expandafter#1% |
3705 |
\fi} |
3706 |
\def\@skip@nonchangecase#1#2\NoCaseChange#3{% |
3707 |
#1{#2}% |
3708 |
\ifx\valign#3% |
3709 |
\else |
3710 |
#3% |
3711 |
\expandafter\@skip@nonchangecase\expandafter#1% |
3712 |
\fi} |
3713 |
\DeclareRobustCommand\MakeTextUppercase{% |
3714 |
\@uclcnotmath{\def\i{I}\def\j{J}}{##1##2}\uppercase} |
3715 |
\protected@edef\MakeTextUppercase#1{\MakeTextUppercase{#1}} |
3716 |
\DeclareRobustCommand\MakeTextLowercase{% |
3717 |
\@uclcnotmath{}{##2##1}\lowercase} |
3718 |
\protected@edef\MakeTextLowercase#1{\MakeTextLowercase{#1}} |
3719 |
\DeclareOption{overload}{% |
3720 |
\expandafter\let\csname MakeUppercase \expandafter\endcsname |
3721 |
\csname MakeTextUppercase \endcsname |
3722 |
\expandafter\let\csname MakeLowercase \expandafter\endcsname |
3723 |
\csname MakeTextLowercase \endcsname} |
3724 |
\ProcessOptions |
3725 |
\let\ProvidesPackage\ProvidesPackage@latex |
3726 |
\let\ProcessOptions\ProcessOptions@latex |
3727 |
\let\DeclareOption\DeclareOption@latex |
3728 |
\expandafter |
3729 |
\let\csname MakeUppercase \expandafter\endcsname |
3730 |
\csname MakeTextUppercase \endcsname |
3731 |
\expandafter |
3732 |
\let\csname MakeLowercase \expandafter\endcsname |
3733 |
\csname MakeTextLowercase \endcsname |
3734 |
\appdef\class@documenthook{% |
3735 |
\switch@longtable |
3736 |
}% |
3737 |
\appdef\class@documenthook{% |
3738 |
\expandafter\@ifnotrelax\csname boldmath \endcsname{}{% |
3739 |
\expandafter\let\csname boldmath \endcsname\boldmath |
3740 |
\expandafter\def\expandafter\boldmath\expandafter{\expandafter\protect\csname boldmath \endcsname}% |
3741 |
}% |
3742 |
}% |
3743 |
\appdef\class@documenthook{% |
3744 |
\class@inithook |
3745 |
}% |
3746 |
\def\class@inithook{}% |
3747 |
\appdef\class@inithook{% |
3748 |
\@ifxundefined\twocolumn@sw{\@booleanfalse\twocolumn@sw}{}% |
3749 |
}% |
3750 |
\appdef\class@inithook{% |
3751 |
\@ifxundefined\footinbib@sw{\@booleanfalse\footinbib@sw}{}% |
3752 |
}% |
3753 |
\appdef\class@inithook{% |
3754 |
\@ifxundefined\preprintsty@sw{\@booleanfalse\preprintsty@sw}{}% |
3755 |
}% |
3756 |
\appdef\class@inithook{% |
3757 |
\@ifxundefined\preprint@sw{\@booleanfalse\preprint@sw}{}% |
3758 |
\preprintsty@sw{\@booleantrue\preprint@sw}{}% |
3759 |
}% |
3760 |
\appdef\class@inithook{% |
3761 |
\@ifxundefined\galley@sw{\@booleanfalse\galley@sw}{}% |
3762 |
}% |
3763 |
\appdef\class@inithook{% |
3764 |
\@ifxundefined\showPACS@sw{\@booleanfalse\showPACS@sw}{}% |
3765 |
\@ifxundefined\showKEYS@sw{\@booleanfalse\showKEYS@sw}{}% |
3766 |
}% |
3767 |
\appdef\class@inithook{% |
3768 |
\@ifxundefined\twoside@sw{\@booleanfalse\twoside@sw}{}% |
3769 |
\twoside@sw{\@twosidetrue}{\@twosidefalse}% |
3770 |
}% |
3771 |
\appdef\class@inithook{% |
3772 |
\@ifxundefined\draft@sw{\@booleanfalse\draft@sw}{}% |
3773 |
\draft@sw{\overfullrule 5\p@}{\overfullrule\z@}% |
3774 |
}% |
3775 |
\appdef\class@inithook{% |
3776 |
\@ifxundefined\tightenlines@sw{\@booleanfalse\tightenlines@sw}{}% |
3777 |
}% |
3778 |
\appdef\class@inithook{% |
3779 |
\@ifxundefined\lengthcheck@sw{\@booleanfalse\lengthcheck@sw}{}% |
3780 |
}% |
3781 |
\appdef\class@inithook{% |
3782 |
\@ifxundefined\eqsecnum@sw{\@booleanfalse\eqsecnum@sw}{}% |
3783 |
\eqsecnum@sw{% |
3784 |
\@addtoreset{equation}{section}% |
3785 |
\def\theequation@prefix{\arabic{section}.}% |
3786 |
}{}% |
3787 |
}% |
3788 |
\appdef\class@inithook{% |
3789 |
\@ifxundefined\byrevtex@sw{\@booleanfalse\byrevtex@sw}{}% |
3790 |
}% |
3791 |
\DeclareOption{checkin}{% |
3792 |
\@booleantrue\dateinRH@sw |
3793 |
\@booleantrue\preprintsty@sw |
3794 |
\def\@pointsize{12}% |
3795 |
\@booleantrue\showPACS@sw |
3796 |
\@booleantrue\showKEYS@sw |
3797 |
\def\fp@proc@h{\allow@breaking@tables}% |
3798 |
\def\fp@proc@H{\allow@breaking@tables}% |
3799 |
}% |
3800 |
\@booleanfalse\dateinRH@sw |
3801 |
\def\checkindate{\dateinRH@sw{{\tiny(\today)}}{}}% |
3802 |
\def\allow@breaking@tables{% |
3803 |
\def\array@default{v}% tabular can break over pages |
3804 |
\@booleanfalse\floats@sw % table can break over pages |
3805 |
}% |
3806 |
\DeclareOption{preprint}{% |
3807 |
\@booleantrue\preprintsty@sw |
3808 |
\def\@pointsize{12}% |
3809 |
}% |
3810 |
\DeclareOption{manuscript}{% |
3811 |
\class@warn{Document class option manuscript is obsolete; use preprint instead}% |
3812 |
\ExecuteOptions{preprint}% |
3813 |
}% |
3814 |
\DeclareOption{showpacs}{% |
3815 |
\@booleantrue\showPACS@sw |
3816 |
}% |
3817 |
\DeclareOption{noshowpacs}{% |
3818 |
\@booleanfalse\showPACS@sw |
3819 |
}% |
3820 |
\DeclareOption{showkeys}{% |
3821 |
\@booleantrue\showKEYS@sw |
3822 |
}% |
3823 |
\DeclareOption{noshowkeys}{% |
3824 |
\@booleanfalse\showKEYS@sw |
3825 |
}% |
3826 |
\DeclareOption{balancelastpage}{% |
3827 |
\@booleantrue\balancelastpage@sw |
3828 |
}% |
3829 |
\DeclareOption{nobalancelastpage}{% |
3830 |
\@booleanfalse\balancelastpage@sw |
3831 |
}% |
3832 |
\appdef\class@inithook{% |
3833 |
\@ifxundefined\balancelastpage@sw{% |
3834 |
\@booleantrue\balancelastpage@sw |
3835 |
}{}% |
3836 |
}% |
3837 |
\DeclareOption{nopreprintnumbers}{\@booleanfalse\preprint@sw}% |
3838 |
\DeclareOption{preprintnumbers}{\@booleantrue\preprint@sw}% |
3839 |
\DeclareOption{hyperref}{% |
3840 |
\class@warn{Class option "hyperref" is no longer supported.^^JEmploy \string\usepackage{hyperref} instead}% |
3841 |
}% |
3842 |
\DeclareOption{10pt}{\def\@pointsize{10}} |
3843 |
\DeclareOption{11pt}{\def\@pointsize{11}} |
3844 |
\DeclareOption{12pt}{\def\@pointsize{12}} |
3845 |
\DeclareOption{a4paper} |
3846 |
{\setlength\paperheight {297mm}% |
3847 |
\setlength\paperwidth {210mm}} |
3848 |
\DeclareOption{a5paper} |
3849 |
{\setlength\paperheight {210mm}% |
3850 |
\setlength\paperwidth {148mm}} |
3851 |
\DeclareOption{b5paper} |
3852 |
{\setlength\paperheight {250mm}% |
3853 |
\setlength\paperwidth {176mm}} |
3854 |
\DeclareOption{letterpaper} |
3855 |
{\setlength\paperheight {11in}% |
3856 |
\setlength\paperwidth {8.5in}} |
3857 |
\DeclareOption{legalpaper} |
3858 |
{\setlength\paperheight {14in}% |
3859 |
\setlength\paperwidth {8.5in}} |
3860 |
\DeclareOption{executivepaper} |
3861 |
{\setlength\paperheight {10.5in}% |
3862 |
\setlength\paperwidth {7.25in}} |
3863 |
\DeclareOption{landscape} |
3864 |
{\setlength\@tempdima {\paperheight}% |
3865 |
\setlength\paperheight {\paperwidth}% |
3866 |
\setlength\paperwidth {\@tempdima}} |
3867 |
\DeclareOption{bibnotes}{\@booleantrue\bibnotes@sw}% |
3868 |
\DeclareOption{nobibnotes}{\@booleanfalse\bibnotes@sw}% |
3869 |
\appdef\class@enddocumenthook{\auto@bib}% |
3870 |
\appdef\class@inithook{% |
3871 |
\@ifxundefined\bibnotes@sw{\@booleanfalse\bibnotes@sw}{}% |
3872 |
\bibnotes@sw{% |
3873 |
\let\frontmatter@footnote@produce\frontmatter@footnote@produce@endnote |
3874 |
}{% |
3875 |
\let\frontmatter@footnote@produce\frontmatter@footnote@produce@footnote |
3876 |
}% |
3877 |
}% |
3878 |
\DeclareOption{footinbib}{\@booleantrue\footinbib@sw} |
3879 |
\DeclareOption{nofootinbib}{\@booleanfalse\footinbib@sw} |
3880 |
\DeclareOption{altaffilletter}{\@booleantrue\altaffilletter@sw}% |
3881 |
\DeclareOption{altaffilsymbol}{\@booleanfalse\altaffilletter@sw}% |
3882 |
\appdef\class@inithook{% |
3883 |
\@ifxundefined\altaffilletter@sw{\@booleanfalse\altaffilletter@sw}{}% |
3884 |
}% |
3885 |
\DeclareOption{superbib}{% |
3886 |
\def\place@bibnumber{\place@bibnumber@sup}% |
3887 |
}% |
3888 |
\DeclareOption{citeautoscript}{% |
3889 |
\@booleantrue\citeautoscript@sw |
3890 |
}% |
3891 |
\@booleanfalse\citeautoscript@sw |
3892 |
\DeclareOption{twoside}{\@booleantrue\twoside@sw \@mparswitchfalse} |
3893 |
\DeclareOption{oneside}{\@booleanfalse\twoside@sw\@mparswitchtrue} |
3894 |
\AtEndOfClass{% |
3895 |
\def\clear@document{% |
3896 |
\close@column |
3897 |
}% |
3898 |
\appdef\class@inithook{% |
3899 |
\@ifxundefined\close@column{% |
3900 |
\let\close@column\close@column@default |
3901 |
}{}% |
3902 |
}% |
3903 |
}% |
3904 |
\DeclareOption{twocolumn}{% |
3905 |
\@booleantrue\twocolumn@sw |
3906 |
}% |
3907 |
\DeclareOption{onecolumn}{% |
3908 |
\@booleanfalse\twocolumn@sw |
3909 |
}% |
3910 |
\DeclareOption{galley}{% |
3911 |
\ExecuteOptions{onecolumn}% |
3912 |
\@booleantrue\galley@sw |
3913 |
\appdef\set@pica@hook{% |
3914 |
\advance\textwidth-\columnsep |
3915 |
\textwidth.5\textwidth |
3916 |
}% |
3917 |
}% |
3918 |
\DeclareOption{raggedbottom}{\@booleantrue\raggedcolumn@sw} |
3919 |
\DeclareOption{flushbottom}{\@booleanfalse\raggedcolumn@sw} |
3920 |
\DeclareOption{tightenlines}{\@booleantrue\tightenlines@sw} |
3921 |
\DeclareOption{lengthcheck}{% |
3922 |
\@booleantrue\lengthcheck@sw |
3923 |
\@booleantrue\twoside@sw |
3924 |
\@booleantrue\twocolumn@sw |
3925 |
}% |
3926 |
\DeclareOption{draft}{% |
3927 |
\@booleantrue\draft@sw |
3928 |
}% |
3929 |
\DeclareOption{final}{% |
3930 |
\@booleanfalse\draft@sw |
3931 |
}% |
3932 |
\DeclareOption{eqsecnum}{\@booleantrue\eqsecnum@sw} |
3933 |
\DeclareOption{secnumarabic}{\@booleantrue\secnumarabic@sw} |
3934 |
\DeclareOption{fleqn}{\input{fleqn.clo}} |
3935 |
\DeclareOption{floats}{\@booleantrue\floats@sw\@booleanfalse\floatp@sw} |
3936 |
\DeclareOption{endfloats}{\@booleanfalse\floats@sw\@booleanfalse\floatp@sw} |
3937 |
\DeclareOption{endfloats*}{\@booleanfalse\floats@sw\@booleantrue\floatp@sw} |
3938 |
\appdef\class@inithook{% |
3939 |
\@ifxundefined\floats@sw{\@booleantrue\floats@sw}{}% |
3940 |
\@ifxundefined\floatp@sw{\@booleantrue\floatp@sw}{}% |
3941 |
}% |
3942 |
\DeclareOption{titlepage}{\@booleantrue\titlepage@sw} |
3943 |
\DeclareOption{notitlepage}{\@booleanfalse\titlepage@sw} |
3944 |
\appdef\defaults@hook{% |
3945 |
\@ifxundefined\titlepage@sw{\@booleanfalse\titlepage@sw}{}% |
3946 |
}% |
3947 |
\def\change@society#1{% |
3948 |
\def\@tempa{#1}% |
3949 |
\@ifxundefined\@society{}{% |
3950 |
\@ifx{\@tempa\@society}{}{% |
3951 |
\class@warn{Conflicting society \@tempa<>\@society.}% |
3952 |
}% |
3953 |
}% |
3954 |
\let\@society\@tempa |
3955 |
}% |
3956 |
\DeclareOption{aps}{\change@society{aps}\def\@journal{}}% |
3957 |
\DeclareOption{pra}{\change@society{aps}\def\@journal{pra}}% |
3958 |
\DeclareOption{prb}{\change@society{aps}\def\@journal{prb}}% |
3959 |
\DeclareOption{prc}{\change@society{aps}\def\@journal{prc}}% |
3960 |
\DeclareOption{prd}{\change@society{aps}\def\@journal{prd}}% |
3961 |
\DeclareOption{pre}{\change@society{aps}\def\@journal{pre}}% |
3962 |
\DeclareOption{prl}{\change@society{aps}\def\@journal{prl}}% |
3963 |
\DeclareOption{prstab}{\change@society{aps}\def\@journal{prstab}}% |
3964 |
\DeclareOption{rmp}{\change@society{aps}\def\@journal{rmp}}% |
3965 |
\DeclareOption{osa}{\change@society{osa}\def\@journal{}}% |
3966 |
\DeclareOption{osameet}{\change@society{osa}\def\@journal{osameet}}% |
3967 |
\DeclareOption{opex}{\change@society{osa}\def\@journal{opex}}% |
3968 |
\DeclareOption{tops}{\change@society{osa}\def\@journal{tops}}% |
3969 |
\DeclareOption{josa}{\change@society{osa}\def\@journal{josa}}% |
3970 |
\DeclareOption{amsfonts}{% |
3971 |
\def\class@amsfonts{\RequirePackage{amsfonts}}% |
3972 |
}% |
3973 |
\DeclareOption{noamsfonts}{% |
3974 |
\let\class@amsfonts\@empty |
3975 |
}% |
3976 |
\AtEndOfClass{% |
3977 |
\@ifxundefined\class@amsfonts{}{\class@amsfonts}% |
3978 |
}% |
3979 |
\DeclareOption{amssymb}{% |
3980 |
\def\class@amssymb{\RequirePackage{amssymb}}% |
3981 |
}% |
3982 |
\DeclareOption{noamssymb}{% |
3983 |
\let\class@amssymb\@empty |
3984 |
}% |
3985 |
\AtEndOfClass{% |
3986 |
\@ifxundefined\class@amssymb{}{\class@amssymb}% |
3987 |
}% |
3988 |
\DeclareOption{amsmath}{% |
3989 |
\def\class@amsmath{\RequirePackage{amsmath}[\ver@amsmath@prefer]}% |
3990 |
}% |
3991 |
\DeclareOption{noamsmath}{% |
3992 |
\let\class@amsmath\@empty |
3993 |
}% |
3994 |
\AtEndOfClass{% |
3995 |
\preserve@LaTeX |
3996 |
\@ifxundefined\class@amsmath{}{\class@amsmath}% |
3997 |
\appdef\class@enddocumenthook{\test@amsmath@ver}% |
3998 |
}% |
3999 |
\appdef\preserve@LaTeX{% |
4000 |
\let\@ifl@aded@LaTeX\@ifl@aded |
4001 |
\let\@ifpackageloaded@LaTeX\@ifpackageloaded |
4002 |
\let\@pkgextension@LaTeX\@pkgextension |
4003 |
\let\@ifpackagelater@LaTeX\@ifpackagelater |
4004 |
\let\@ifl@ter@LaTeX\@ifl@ter |
4005 |
\let\@ifl@t@r@LaTeX\@ifl@t@r |
4006 |
\let\@parse@version@LaTeX\@parse@version |
4007 |
}% |
4008 |
\appdef\restore@LaTeX{% |
4009 |
\let\@ifl@aded\@ifl@aded@LaTeX |
4010 |
\let\@ifpackageloaded\@ifpackageloaded@LaTeX |
4011 |
\let\@pkgextension\@pkgextension@LaTeX |
4012 |
\let\@ifpackagelater\@ifpackagelater@LaTeX |
4013 |
\let\@ifl@ter\@ifl@ter@LaTeX |
4014 |
\let\@ifl@t@r\@ifl@t@r@LaTeX |
4015 |
\let\@parse@version\@parse@version@LaTeX |
4016 |
}% |
4017 |
\def\test@amsmath@ver{% |
4018 |
\begingroup |
4019 |
\restore@LaTeX |
4020 |
\@ifpackageloaded{amsmath}{% |
4021 |
\@ifpackagelater{amsmath}{\ver@amsmath@prefer}{}{% |
4022 |
\class@warn{% |
4023 |
You have loaded amsmath, version "\csname ver@amsmath.sty\endcsname",\MessageBreak |
4024 |
but this class requires version "\ver@amsmath@prefer", or later.\MessageBreak |
4025 |
Please update your LaTeX installation. |
4026 |
}% |
4027 |
}% |
4028 |
}{% |
4029 |
}% |
4030 |
\endgroup |
4031 |
}% |
4032 |
\def\ver@amsmath@prefer{2000/01/15 v2.05 AMS math features}% |
4033 |
\DeclareOption{groupedaddress}{\clo@groupedaddress}% |
4034 |
\def\clo@groupedaddress{% |
4035 |
\@booleantrue\groupauthors@sw |
4036 |
\@booleantrue\@affils@sw |
4037 |
\@booleanfalse\runinaddress@sw |
4038 |
}% |
4039 |
\appdef\class@inithook{% |
4040 |
\@ifxundefined\groupauthors@sw{\clo@groupedaddress}{}% |
4041 |
}% |
4042 |
\DeclareOption{unsortedaddress}{\clo@unsortedaddress}% |
4043 |
\def\clo@unsortedaddress{% |
4044 |
\@booleantrue\groupauthors@sw |
4045 |
\@booleanfalse\@affils@sw |
4046 |
\@booleanfalse\runinaddress@sw |
4047 |
}% |
4048 |
\DeclareOption{runinaddress}{\clo@runinaddress}% |
4049 |
\def\clo@runinaddress{% |
4050 |
\@booleantrue\groupauthors@sw |
4051 |
\@booleantrue\@affils@sw |
4052 |
\@booleantrue\runinaddress@sw |
4053 |
}% |
4054 |
\DeclareOption{superscriptaddress}{\clo@superscriptaddress}% |
4055 |
\def\clo@superscriptaddress{% |
4056 |
\@booleanfalse\groupauthors@sw |
4057 |
\@booleantrue\@affils@sw |
4058 |
\@booleanfalse\runinaddress@sw |
4059 |
}% |
4060 |
\DeclareOption{byrevtex}{\@booleantrue\byrevtex@sw}% |
4061 |
\DeclareOption{floatfix}{\@booleantrue\force@deferlist@sw}% |
4062 |
\DeclareOption{nofloatfix}{\@booleanfalse\force@deferlist@sw}% |
4063 |
\appdef\class@inithook{% |
4064 |
\@ifxundefined\force@deferlist@sw{\@booleanfalse\force@deferlist@sw}{}% |
4065 |
}% |
4066 |
\gdef\@fltovf{% |
4067 |
\@latex@error{% |
4068 |
Too many unprocessed floats% |
4069 |
\force@deferlist@sw{}{; try class option [floatfix]}% |
4070 |
}\@ehb |
4071 |
}% |
4072 |
\def\@fltstk{% |
4073 |
\@latex@warning{% |
4074 |
A float is stuck (cannot be placed)% |
4075 |
\force@deferlist@sw{}{; try class option [floatfix]}% |
4076 |
}% |
4077 |
}% |
4078 |
\DeclareOption{ltxgridinfo}{\@booleantrue\ltxgrid@info@sw}% |
4079 |
\DeclareOption{outputdebug}{\@booleantrue\outputdebug@sw}% |
4080 |
\DeclareOption{raggedfooter}{\@booleanfalse\textheight@sw}% |
4081 |
\DeclareOption{noraggedfooter}{\@booleantrue\textheight@sw}% |
4082 |
\DeclareOption{newabstract}{\@booleanfalse\oldabstract@sw}% |
4083 |
\DeclareOption{oldabstract}{\@booleantrue \oldabstract@sw}% |
4084 |
\appdef\class@inithook{% |
4085 |
\@ifxundefined\oldabstract@sw{\@booleanfalse\oldabstract@sw}{}% |
4086 |
\oldabstract@sw{% |
4087 |
\let@environment{abstract}{abstract-old}% |
4088 |
}{}% |
4089 |
}% |
4090 |
\DeclareOption*{% |
4091 |
\IfFileExists{\CurrentOption\substyle@ext}{% |
4092 |
\expandafter\change@society\expandafter{\CurrentOption}% |
4093 |
}{% |
4094 |
\OptionNotUsed |
4095 |
}% |
4096 |
}% |
4097 |
\def\substyle@ext{.rtx}% |
4098 |
\AtEndOfClass{% |
4099 |
\@ifxundefined\@society{% |
4100 |
\class@warn{No Society specified, using generic APS style}% |
4101 |
\def\@society{aps}\def\@journal{}% |
4102 |
}{}% |
4103 |
\expandafter\input\expandafter{\@society\substyle@ext}% |
4104 |
}% |
4105 |
\ExecuteOptions{10pt} |
4106 |
\ProcessOptions\relax |
4107 |
\def\ps@headings{% |
4108 |
\let\@oddfoot\@empty\let\@evenfoot\@empty |
4109 |
\def\@evenhead{\thepage\hfil\slshape\leftmark}% |
4110 |
\def\@oddhead{{\slshape\rightmark}\hfil\thepage}% |
4111 |
\let\@mkboth\markboth |
4112 |
\def\sectionmark##1{% |
4113 |
\markboth {\MakeUppercase{% |
4114 |
\ifnum \c@secnumdepth >\z@ |
4115 |
\thesection\quad |
4116 |
\fi |
4117 |
##1}}{}}% |
4118 |
\def\subsectionmark##1{% |
4119 |
\markright {% |
4120 |
\ifnum \c@secnumdepth >\@ne |
4121 |
\thesubsection\quad |
4122 |
\fi |
4123 |
##1}}}% |
4124 |
\def\ps@myheadings{% |
4125 |
\let\@oddfoot\@empty\let\@evenfoot\@empty |
4126 |
\def\@evenhead{\thepage\hfil\slshape\leftmark}% |
4127 |
\def\@oddhead{{\slshape\rightmark}\hfil\thepage}% |
4128 |
\let\@mkboth\@gobbletwo |
4129 |
\let\sectionmark\@gobble |
4130 |
\let\subsectionmark\@gobble |
4131 |
}% |
4132 |
\def\ps@article{% |
4133 |
\@provide\@evenhead{\let\\\heading@cr\thepage\quad\checkindate\hfil{\leftmark}}% |
4134 |
\@provide\@oddhead{\let\\\heading@cr{\rightmark}\hfil\checkindate\quad\thepage}% |
4135 |
\@provide\@oddfoot{}% |
4136 |
\@provide\@evenfoot{}% |
4137 |
\let\@mkboth\markboth |
4138 |
\let\sectionmark\@gobble |
4139 |
\let\subsectionmark\@gobble |
4140 |
}% |
4141 |
\def\ps@article@final{% |
4142 |
\@provide\@evenhead{\let\\\heading@cr\thepage\quad\checkindate\hfil{\leftmark}}% |
4143 |
\@provide\@oddhead{\let\\\heading@cr{\rightmark}\hfil\checkindate\quad\thepage}% |
4144 |
\@provide\@oddfoot{}% |
4145 |
\@provide\@evenfoot{}% |
4146 |
\let\@mkboth\markboth |
4147 |
\def\sectionmark##1{% |
4148 |
\markboth{% |
4149 |
\MakeTextUppercase{% |
4150 |
\@ifnum{\c@secnumdepth >\z@}{\thesection\hskip 1em\relax}{}% |
4151 |
##1% |
4152 |
}% |
4153 |
}{}% |
4154 |
}% |
4155 |
\def\subsectionmark##1{% |
4156 |
\markright {% |
4157 |
\@ifnum{\c@secnumdepth >\@ne}{\thesubsection\hskip 1em\relax}{}% |
4158 |
##1% |
4159 |
}% |
4160 |
}% |
4161 |
}% |
4162 |
\appdef\class@inithook{% |
4163 |
}% |
4164 |
\def\heading@cr{\unskip\space\ignorespaces}% |
4165 |
\def\ps@preprint{% |
4166 |
\@provide\@oddfoot{\hfil\thepage\quad\checkindate\hfil}% |
4167 |
\@provide\@evenfoot{\hfil\thepage\quad\checkindate\hfil}% |
4168 |
\@provide\@oddhead{}% |
4169 |
\@provide\@evenhead{}% |
4170 |
\let\@mkboth\@gobbletwo |
4171 |
\let\sectionmark\@gobble |
4172 |
\let\subsectionmark\@gobble |
4173 |
}% |
4174 |
\let\@oddhead\@undefined |
4175 |
\let\@evenhead\@undefined |
4176 |
\let\@oddfoot\@undefined |
4177 |
\let\@evenfoot\@undefined |
4178 |
\AtEndOfClass{% |
4179 |
\appdef\class@documenthook{% |
4180 |
\@provide\@oddhead{}% |
4181 |
\@provide\@evenhead{}% |
4182 |
\@provide\@oddfoot{}% |
4183 |
\@provide\@evenfoot{}% |
4184 |
}% |
4185 |
}% |
4186 |
\def\lastpage@putlabel{% |
4187 |
\if@filesw |
4188 |
\begingroup |
4189 |
\advance\c@page\m@ne |
4190 |
\immediate\write\@auxout{\string\newlabel{LastPage}{{}{\thepage}}}% |
4191 |
\endgroup |
4192 |
\fi |
4193 |
}% |
4194 |
\AtEndOfClass{% |
4195 |
\appdef\clear@document{% |
4196 |
\clearpage |
4197 |
\lastpage@putlabel |
4198 |
}% |
4199 |
}% |
4200 |
\RequirePackage{url}% |
4201 |
\appdef\class@inithook{% |
4202 |
\incompatible@package{cite}% |
4203 |
\incompatible@package{multicol}% |
4204 |
}% |
4205 |
\renewcommand\title[2][]{% |
4206 |
\def\@title{#2}% |
4207 |
\def\@shorttitle{#1}% |
4208 |
\let\@AF@join\@title@join |
4209 |
}% |
4210 |
\appdef\class@inithook{% |
4211 |
\def\@title{\class@warn{No title}}% |
4212 |
\let\@shorttitle\@empty |
4213 |
\let\@title@aux\@title@aux@cleared |
4214 |
}% |
4215 |
\def\@title@join{\expandafter\@title@join@\@title@aux}% |
4216 |
\def\@title@join@#1#2{% |
4217 |
\def\@title@aux{{\@join{\@separator}{#1}{#2}}}% |
4218 |
}% |
4219 |
\def\@title@aux@cleared{{}}% |
4220 |
\newcounter{affil} |
4221 |
\renewcommand\author{% implicit #1 |
4222 |
\@author@def{}% implicit #2 |
4223 |
}% |
4224 |
\def\collaboration{% implicit #1 |
4225 |
\groupauthors@sw{% |
4226 |
\class@warn{% |
4227 |
\string\collaboration\space is only allowed with superscriptaddress option. |
4228 |
Use superscriptaddress in place of groupedaddress, unsortedaddress, or runinaddress% |
4229 |
}% |
4230 |
}{}% |
4231 |
\@author@def{\@booleantrue\collaboration@sw}% implicit #2 |
4232 |
}% |
4233 |
\def\@author@cleared{{}{}}% |
4234 |
\def\@author@init{% |
4235 |
\let\@author\@author@cleared |
4236 |
}% |
4237 |
\def\@authorclear@sw{\@ifx{\@author\@author@cleared}}% |
4238 |
\appdef\class@inithook{% |
4239 |
\@author@init |
4240 |
}% |
4241 |
\def\@author@def#1#2{% |
4242 |
\move@AU\move@AF\move@AUAF |
4243 |
\let\@AF@join\@author@join |
4244 |
#1% |
4245 |
\def\@author{{#2}{}}% |
4246 |
}% |
4247 |
\def\@author@join@#1#2#3{% |
4248 |
\def\@author{{#1}{\@join{\@separator}{#2}{#3}}}% |
4249 |
}% |
4250 |
\def\@author@join{\expandafter\@author@join@\@author}% |
4251 |
\def\@author@gobble#1#2{}% |
4252 |
\def\move@AU{% |
4253 |
\@authorclear@sw{}{% |
4254 |
\collaboration@sw{% |
4255 |
\expandafter\appdef |
4256 |
\expandafter\AU@grp |
4257 |
\expandafter{% |
4258 |
\expandafter \CO@opr |
4259 |
\@author |
4260 |
}% |
4261 |
}{% |
4262 |
\expandafter\appdef |
4263 |
\expandafter\AU@grp |
4264 |
\expandafter{% |
4265 |
\expandafter \AU@opr |
4266 |
\@author |
4267 |
}% |
4268 |
}% |
4269 |
}% |
4270 |
\@author@init |
4271 |
\@booleanfalse\collaboration@sw |
4272 |
}% |
4273 |
\def\@author@finish{% |
4274 |
\move@AU\move@AF |
4275 |
\@ifx{\AU@grp\@empty}{}{% |
4276 |
\@ifx{\AF@grp\@empty}{% |
4277 |
\begingroup |
4278 |
\let\href\@secondoftwo |
4279 |
\let\AU@opr\@firstoftwo |
4280 |
\let\CO@opr\@firstoftwo |
4281 |
\class@warn{Assuming \string\noaffiliation\space for \AU@grp}% |
4282 |
\endgroup |
4283 |
\begingroup\@affiliation{\blankaffiliation}%\endgroup in \@affiliation |
4284 |
\move@AF |
4285 |
}{}% |
4286 |
}% |
4287 |
\move@AUAF |
4288 |
}% |
4289 |
\def\@join#1#2#3{% |
4290 |
\@if@empty{#2}{#3}{#2#1#3}% |
4291 |
}% |
4292 |
\def\@separator{;\space}% |
4293 |
\let\surname\@firstofone |
4294 |
\let\firstname\@firstofone |
4295 |
\let\AU@grp\@empty |
4296 |
\renewcommand\and{\class@err{\protect\and\space is not supported}} |
4297 |
\def\cat@comma@active{\catcode`\,\active}% |
4298 |
{\cat@comma@active\gdef,{\active@comma}}% |
4299 |
\def\active@comma{,\penalty-300\relax}% |
4300 |
\newcommand\affiliation{% |
4301 |
\move@AU\move@AF |
4302 |
\begingroup |
4303 |
\cat@comma@active |
4304 |
\@affiliation |
4305 |
}% |
4306 |
\def\@affiliation#1{% |
4307 |
\endgroup |
4308 |
\let\@AF@join\@affil@join |
4309 |
\@affil@def{#1}% |
4310 |
}% |
4311 |
\newcommand\noaffiliation{% |
4312 |
\move@AU\move@AF |
4313 |
\begingroup\@affiliation{\blankaffiliation}% |
4314 |
}% |
4315 |
\def\blankaffiliation{}% |
4316 |
\def\@affil@cleared{{}{}}% |
4317 |
\def\@affil@init{% |
4318 |
\let\@affil\@affil@cleared |
4319 |
}% |
4320 |
\def\@affilclear@sw{\@ifx{\@affil\@affil@cleared}}% |
4321 |
\appdef\class@inithook{% |
4322 |
\@affil@init |
4323 |
}% |
4324 |
\def\@affil@def#1{\def\@affil{{#1}{}}}% |
4325 |
\def\@affil@join@#1#2#3{% |
4326 |
\def\@affil{{#1}{\@join{\@separator}{#2}{#3}}}% |
4327 |
}% |
4328 |
\def\@affil@join{\expandafter\@affil@join@\@affil}% |
4329 |
\def\move@AF{% |
4330 |
\@affilclear@sw{}{% |
4331 |
\@booleanfalse\temp@sw |
4332 |
\let\@tempd\@empty |
4333 |
\@affils@sw{% |
4334 |
\expandafter\@firstoftwodef\expandafter\@tempa\@affil |
4335 |
\def\AFF@opr{\@affil@match\@tempa}% |
4336 |
\@AFF@list |
4337 |
}{}\temp@sw |
4338 |
{% |
4339 |
\expandafter\@secondoftwodef\expandafter\@tempb\@affil |
4340 |
\@ifx{\@tempb\@empty}{}{% |
4341 |
\@ifx{\@tempb\@tempd}{}{% |
4342 |
\class@warn{% |
4343 |
Ancillary information for \@tempa\space must not be different! |
4344 |
Please put it on the first instance% |
4345 |
}% |
4346 |
}% |
4347 |
}% |
4348 |
\appdef@eval\AF@grp\@tempc |
4349 |
}% |
4350 |
{% |
4351 |
\@if@empty{\expandafter\@firstoftwo\@affil}{% |
4352 |
\edef\@tempc{\z@}% |
4353 |
}{% |
4354 |
\stepcounter{affil}% |
4355 |
\edef\@tempc{\theaffil}% |
4356 |
}% |
4357 |
\appdef \@AFF@list{\AFF@opr}% |
4358 |
\appdef@eval\@AFF@list\@tempc |
4359 |
\appdef@e \@AFF@list{\@affil}% |
4360 |
\appdef@eval\AF@grp\@tempc |
4361 |
}% |
4362 |
\@affil@init |
4363 |
}% |
4364 |
}% |
4365 |
\def\@firstoftwodef#1#2#3{% |
4366 |
\def#1{#2}% |
4367 |
}% |
4368 |
\def\@secondoftwodef#1#2#3{% |
4369 |
\def#1{#3}% |
4370 |
}% |
4371 |
\def\move@AUAF{% |
4372 |
\@ifx{\AF@grp\@empty}% |
4373 |
{}{% |
4374 |
\appdef \@AAC@list{\AF@opr}% |
4375 |
\appdef@eval\@AAC@list{\AF@grp}% |
4376 |
\appdef@e \@AAC@list{\AU@grp}% |
4377 |
\@ifx{\@empty\AU@grp}{}{% |
4378 |
\@ifx{\@empty\AF@grp}{}{% |
4379 |
\@booleanfalse\temp@sw |
4380 |
\def\AFS@opr{\x@match\AF@grp}% |
4381 |
\@AFG@list |
4382 |
\temp@sw{}{% |
4383 |
\appdef \@AFG@list{\AFS@opr}% |
4384 |
\appdef@eval\@AFG@list{\AF@grp}% |
4385 |
}% |
4386 |
}% |
4387 |
}% |
4388 |
\let\AU@grp\@empty |
4389 |
\let\AF@grp\@empty |
4390 |
}% |
4391 |
}% |
4392 |
\appdef\class@inithook{% |
4393 |
\let\@AAC@list\@empty |
4394 |
}% |
4395 |
\appdef\class@inithook{% |
4396 |
\let\@AFG@list\@empty |
4397 |
}% |
4398 |
\appdef\class@inithook{% |
4399 |
\let\@AFF@list\@empty |
4400 |
}% |
4401 |
\let\AF@grp\@empty |
4402 |
\def\@affil@match#1#2#3#4{% |
4403 |
\temp@sw{}{% |
4404 |
\def\@tempifx{#3}% |
4405 |
\@ifx{\@tempifx#1}{% |
4406 |
\@booleantrue\temp@sw |
4407 |
\def\@tempc{#2}% |
4408 |
\def\@tempd{#4}% |
4409 |
}{% |
4410 |
}% |
4411 |
}% |
4412 |
}% |
4413 |
\appdef\class@inithook{% |
4414 |
\let\@AF@join\@AF@join@error |
4415 |
}% |
4416 |
\def\@AF@join@error#1{% |
4417 |
\class@warn{% |
4418 |
\string\email, \string\homepage, \string\thanks, or \string\altaffiliation\space |
4419 |
appears in wrong context. |
4420 |
}% |
4421 |
}% |
4422 |
\def\sanitize@url{% |
4423 |
\@makeother\%% |
4424 |
\@makeother\~% |
4425 |
\@makeother\_% |
4426 |
}% |
4427 |
\newcommand*\email[1][Electronic address: ]{\begingroup\sanitize@url\@email{#1}}% |
4428 |
\def\@email#1#2{% |
4429 |
\endgroup |
4430 |
\@AF@join{#1\href{mailto:#2}{#2}}% |
4431 |
}% |
4432 |
\newcommand*\homepage[1][URL:~]{\begingroup\sanitize@url\@homepage{#1}}% |
4433 |
\def\@homepage#1#2{% |
4434 |
\endgroup |
4435 |
\@AF@join{#1\url{#2}}% |
4436 |
}% |
4437 |
\appdef\class@documenthook{% |
4438 |
\providecommand\url{\texttt}% |
4439 |
\providecommand\href[2]{\url{#2}}% |
4440 |
}% |
4441 |
\def\thanks{% implicit #1 |
4442 |
\@AF@join |
4443 |
}% |
4444 |
\newcommand*\altaffiliation[2][]{% |
4445 |
\@AF@join{#1#2}% |
4446 |
}% |
4447 |
\def\set@listcomma@list#1{% |
4448 |
\expandafter\@reset@ac\expandafter#1#1{0}\@reset@ac{% |
4449 |
\let\@listcomma\relax |
4450 |
}{% |
4451 |
\let\@listcomma\@listcomma@comma |
4452 |
}% |
4453 |
}% |
4454 |
\def\set@listcomma@count#1{% |
4455 |
\@ifnum{#1=\tw@}{% |
4456 |
\let\@listcomma\relax |
4457 |
}{% |
4458 |
\let\@listcomma\@listcomma@comma |
4459 |
}% |
4460 |
}% |
4461 |
\def\@reset@ac#1#2#3\@reset@ac{% |
4462 |
\def#1{#3}% |
4463 |
\@tempcnta#2\relax |
4464 |
\@ifnum{#2=\tw@}% |
4465 |
}% |
4466 |
\def\@listand{\@ifnum{\@tempcnta=\tw@}{\andname\space}{}}% |
4467 |
\def\@listcomma@comma{\@ifnum{\@tempcnta>\@ne}{,}{}}% |
4468 |
\def\@listcomma@comma@UK{\@ifnum{\@tempcnta>\tw@}{,}{}}% |
4469 |
\def\@collaboration@err#1#2{% |
4470 |
}% |
4471 |
\def\doauthor#1#2#3{% |
4472 |
\ignorespaces#1\unskip\@listcomma |
4473 |
\def\@tempifx{#3}% |
4474 |
\@ifx{\@tempifx\@empty}{% |
4475 |
\def\@tempifx{#2}% |
4476 |
\@ifx{\@tempifx\@empty}{}{\frontmatter@footnote{#2}}% |
4477 |
}{% |
4478 |
#3% |
4479 |
\def\@tempifx{#2}% |
4480 |
\@ifx{\@tempifx\@empty}{}{\comma@space\frontmatter@footnote{#2}}% |
4481 |
}% |
4482 |
\space \@listand |
4483 |
}% |
4484 |
\def\@thanks{\comma@space\footnote} |
4485 |
\def\x@match#1#2{% |
4486 |
\temp@sw{}{% |
4487 |
\def\@tempifx{#2}% |
4488 |
\@ifx{\@tempifx#1}{% |
4489 |
\@booleantrue\temp@sw |
4490 |
}{% |
4491 |
}% |
4492 |
}% |
4493 |
}% |
4494 |
\def\y@match#1#2#3{% |
4495 |
\temp@sw{}{% |
4496 |
\def\@tempifx{#3}% |
4497 |
\@ifx{\@tempifx#1}{% |
4498 |
\@booleantrue\temp@sw |
4499 |
\def\@tempb{#2}% |
4500 |
}{% |
4501 |
}% |
4502 |
}% |
4503 |
}% |
4504 |
\def\frontmatter@footnote#1{% |
4505 |
\begingroup |
4506 |
\@booleanfalse\temp@sw |
4507 |
\def\@tempa{#1}% |
4508 |
\let\@tempb\@empty |
4509 |
\def\@TBN@opr{\y@match\@tempa}% |
4510 |
\@FMN@list |
4511 |
\temp@sw{% |
4512 |
\expandafter\frontmatter@footnotemark |
4513 |
\expandafter{\@tempb}% |
4514 |
}{% |
4515 |
\stepcounter\@mpfn |
4516 |
\protected@xdef\@tempb{\the\csname c@\@mpfn\endcsname}% |
4517 |
\expandafter\frontmatter@footnotemark |
4518 |
\expandafter{\@tempb}% |
4519 |
\expandafter\g@addto@macro |
4520 |
\expandafter\@FMN@list |
4521 |
\expandafter{% |
4522 |
\expandafter \@TBN@opr |
4523 |
\expandafter {\@tempb}{#1}% |
4524 |
}% |
4525 |
}% |
4526 |
\endgroup |
4527 |
}% |
4528 |
\appdef\class@inithook{% |
4529 |
\global\let\@FMN@list\@empty |
4530 |
}% |
4531 |
\def\frontmatter@footnotemark#1{% |
4532 |
\leavevmode |
4533 |
\ifhmode\edef\@x@sf{\the\spacefactor}\nobreak\fi |
4534 |
\begingroup |
4535 |
\hyper@linkstart {link}{frontmatter@#1}% |
4536 |
\csname c@\@mpfn\endcsname#1\relax |
4537 |
\def\@thefnmark{\thempfn}% |
4538 |
\@makefnmark |
4539 |
\hyper@linkend |
4540 |
\endgroup |
4541 |
\ifhmode\spacefactor\@x@sf\fi |
4542 |
\relax |
4543 |
}% |
4544 |
\def\keywords#1{% |
4545 |
\aftermaketitle@chk{\keywords}% |
4546 |
\gdef\@keywords{#1}% |
4547 |
}% |
4548 |
\def\@keywords{}% |
4549 |
\renewcommand*\date[2][\Dated@name]{\def\@date{#1#2}}% |
4550 |
\def\@date{}% |
4551 |
\newcommand*\received[2][\Received@name]{\def\@received{#1#2}}% |
4552 |
\def\@received{}% |
4553 |
\newcommand*\revised[2][\Revised@name]{\def\@revised{#1#2}}% |
4554 |
\def\@revised{}% |
4555 |
\newcommand*\accepted[2][\Accepted@name]{\def\@accepted{#1#2}}% |
4556 |
\def\@accepted{}% |
4557 |
\newcommand*\published[2][\Published@name]{\def\@published{#1#2}}% |
4558 |
\def\@published{}% |
4559 |
\def\pacs#1{% |
4560 |
\aftermaketitle@chk{\pacs}% |
4561 |
\gdef\@pacs{#1}% |
4562 |
}% |
4563 |
\def\@pacs{}%{\class@warn{No PACS numbers}}% |
4564 |
\def\preprint#1{\gappdef\@preprint{\preprint{#1}}}% |
4565 |
\let\@preprint\@empty |
4566 |
\newbox\absbox |
4567 |
\newenvironment{abstract}{% |
4568 |
\aftermaketitle@chk{\begin{abstract}}% |
4569 |
\global\setbox\absbox\vbox\bgroup |
4570 |
\color@begingroup |
4571 |
\columnwidth\textwidth |
4572 |
\hsize\columnwidth |
4573 |
\@parboxrestore |
4574 |
\def\@mpfn{mpfootnote}\def\thempfn{\thempfootnote}\c@mpfootnote\z@ |
4575 |
\let\@footnotetext\frontmatter@footnotetext |
4576 |
\minipagefootnote@init |
4577 |
\let\@listdepth\@mplistdepth \@mplistdepth\z@ |
4578 |
\@minipagerestore |
4579 |
\@setminipage |
4580 |
\frontmatter@abstractheading |
4581 |
\frontmatter@abstractfont |
4582 |
\let\footnote\mini@note |
4583 |
}{% |
4584 |
\par |
4585 |
\unskip |
4586 |
\minipagefootnote@here |
4587 |
\@minipagefalse %% added 24 May 89 |
4588 |
\color@endgroup |
4589 |
\egroup |
4590 |
}% |
4591 |
\long\def\frontmatter@footnotetext#1{% |
4592 |
\minipagefootnote@pick |
4593 |
\reset@font\footnotesize |
4594 |
\interlinepenalty \interfootnotelinepenalty |
4595 |
\splittopskip \footnotesep |
4596 |
\splitmaxdepth \dp \strutbox |
4597 |
\set@footnotewidth |
4598 |
\@parboxrestore |
4599 |
\protected@edef\@currentlabel{\csname p@mpfootnote\endcsname\@thefnmark}% |
4600 |
\color@begingroup |
4601 |
\frontmatter@makefntext{% |
4602 |
\rule\z@\footnotesep\ignorespaces#1\@finalstrut\strutbox |
4603 |
}% |
4604 |
\color@endgroup |
4605 |
\minipagefootnote@drop |
4606 |
}% |
4607 |
\def\frontmatter@abstractheading{% |
4608 |
\begingroup |
4609 |
\centering\large |
4610 |
\abstractname |
4611 |
\par |
4612 |
\endgroup |
4613 |
}% |
4614 |
\def\frontmatter@abstractfont{}% |
4615 |
\def\frontmatter@abstractwidth{\textwidth} |
4616 |
\def\frontmatter@abstract@produce{% |
4617 |
\par |
4618 |
\preprintsty@sw{% |
4619 |
\do@output@MVL{% |
4620 |
\vskip\frontmatter@preabstractspace |
4621 |
\vskip200\p@\@plus1fil |
4622 |
\penalty-200\relax |
4623 |
\vskip-200\p@\@plus-1fil |
4624 |
}% |
4625 |
}{% |
4626 |
\addvspace{\frontmatter@preabstractspace}% |
4627 |
}% |
4628 |
\begingroup |
4629 |
\dimen@\baselineskip |
4630 |
\setbox\z@\vtop{\unvcopy\absbox}% |
4631 |
\advance\dimen@-\ht\z@\advance\dimen@-\prevdepth |
4632 |
\@ifdim{\dimen@>\z@}{\vskip\dimen@}{}% |
4633 |
\endgroup |
4634 |
\unvbox\absbox |
4635 |
\@ifx{\@empty\mini@notes}{}{\mini@notes\par}% |
4636 |
\addvspace\frontmatter@postabstractspace |
4637 |
}% |
4638 |
\def\frontmatter@preabstractspace{.5\baselineskip} |
4639 |
\def\frontmatter@postabstractspace{.5\baselineskip} |
4640 |
\newenvironment{titlepage}{% |
4641 |
\twocolumn@sw{\onecolumngrid}{\newpage}% |
4642 |
\thispagestyle{titlepage}% |
4643 |
\setcounter{page}\@ne |
4644 |
}{% |
4645 |
\twocolumn@sw{\twocolumngrid}{\newpage}% |
4646 |
\twoside@sw{}{% |
4647 |
\setcounter{page}\@ne |
4648 |
}% |
4649 |
}% |
4650 |
\def\maketitle{% |
4651 |
\@author@finish |
4652 |
\title@column\titleblock@produce |
4653 |
\suppressfloats[t]% |
4654 |
\let\and\relax |
4655 |
\let\affiliation\@gobble |
4656 |
\let\author\@gobble |
4657 |
\let\@AAC@list\@empty |
4658 |
\let\@AFF@list\@empty |
4659 |
\let\@AFG@list\@empty |
4660 |
\let\@AF@join\@AF@join@error |
4661 |
\let\email\@gobble |
4662 |
\let\@address\@empty |
4663 |
\let\maketitle\relax |
4664 |
\let\thanks\@gobble |
4665 |
\titlepage@sw{% |
4666 |
\vfil |
4667 |
\clearpage |
4668 |
}{}% |
4669 |
}% |
4670 |
\def\titleblock@produce{% |
4671 |
\begingroup |
4672 |
\let\footnote\footnote@latex |
4673 |
\let\@makefnmark\@makefnmark@latex |
4674 |
\let\@footnotemark\@footnotemark@latex |
4675 |
\let\thefootnote\frontmatter@thefootnote |
4676 |
\global\c@footnote\z@ |
4677 |
\let\@makefnmark\frontmatter@makefnmark |
4678 |
\frontmatter@setup |
4679 |
\thispagestyle{titlepage}\label{FirstPage}% |
4680 |
\frontmatter@title@produce |
4681 |
\groupauthors@sw{% |
4682 |
\frontmatter@author@produce@group |
4683 |
}{% |
4684 |
\frontmatter@author@produce@script |
4685 |
}% |
4686 |
\frontmatter@RRAPformat{% |
4687 |
\expandafter\produce@RRAP\expandafter{\@date}% |
4688 |
\expandafter\produce@RRAP\expandafter{\@received}% |
4689 |
\expandafter\produce@RRAP\expandafter{\@revised}% |
4690 |
\expandafter\produce@RRAP\expandafter{\@accepted}% |
4691 |
\expandafter\produce@RRAP\expandafter{\@published}% |
4692 |
}% |
4693 |
\frontmatter@abstract@produce |
4694 |
\@pacs@produce\@pacs |
4695 |
\@keywords@produce\@keywords |
4696 |
\par |
4697 |
\frontmatter@finalspace |
4698 |
\endgroup |
4699 |
}% |
4700 |
\def\frontmatter@title@produce{% |
4701 |
\begingroup |
4702 |
\frontmatter@title@above |
4703 |
\frontmatter@title@format |
4704 |
\@title |
4705 |
\@ifx{\@title@aux\@title@aux@cleared}{}{% |
4706 |
\expandafter\frontmatter@footnote\expandafter{\@title@aux}% |
4707 |
}% |
4708 |
\par |
4709 |
%% \class@warn{Unused short title ignored}% |
4710 |
\frontmatter@title@below |
4711 |
\endgroup |
4712 |
}% |
4713 |
\appdef\let@mark{\let\\\relax}% |
4714 |
\def\frontmatter@title@above{}% |
4715 |
\def\frontmatter@title@format{}% |
4716 |
\def\frontmatter@title@below{\addvspace{\baselineskip}}% |
4717 |
\def\frontmatter@author@produce@script{% |
4718 |
\begingroup |
4719 |
\let\@author@present\@author@present@script |
4720 |
\let\AU@temp\@empty |
4721 |
\@tempcnta\z@ |
4722 |
\let\AF@opr \@gobble |
4723 |
\def\AU@opr{\@author@count\@tempcnta}% |
4724 |
\def\CO@opr{\@collaboration@count\AU@temp\@tempcnta}% |
4725 |
\@AAC@list |
4726 |
\expandafter\CO@opr\@author@cleared |
4727 |
\begingroup |
4728 |
\frontmatter@authorformat |
4729 |
\let\AF@opr \@affilID@def |
4730 |
\let\AU@opr \@author@present |
4731 |
\def\CO@opr{\@collaboration@present\AU@temp}% |
4732 |
\set@listcomma@list\AU@temp |
4733 |
\@AAC@list |
4734 |
\unskip\unskip |
4735 |
\par |
4736 |
\endgroup |
4737 |
\begingroup |
4738 |
\frontmatter@above@affiliation@script |
4739 |
\let\AFF@opr \@affil@script |
4740 |
\@AFF@list |
4741 |
\frontmatter@footnote@produce |
4742 |
\par |
4743 |
\endgroup |
4744 |
\endgroup |
4745 |
}% |
4746 |
\def\@author@count#1{\advance#1\@ne\@author@gobble}% |
4747 |
\def\@collaboration@present#1#2#3{% |
4748 |
\par |
4749 |
\begingroup |
4750 |
\frontmatter@collaboration@above |
4751 |
\@author@present{(\ignorespaces#2\unskip)}{#3}% |
4752 |
\par |
4753 |
\endgroup |
4754 |
\set@listcomma@list#1% |
4755 |
}% |
4756 |
\def\frontmatter@collaboration@above{}% |
4757 |
\def\@collaboration@count#1#2{% |
4758 |
\appdef@eval#1{\the#2}#2\z@ |
4759 |
\@author@gobble |
4760 |
}% |
4761 |
\def\@affilID@def{\def\@affilID@temp}% |
4762 |
\let\@affilID@temp\@empty |
4763 |
\def\affil@script#1#2#3{% |
4764 |
\def\@tempifx{#1}\@ifx{\@tempifx\@tempa}{% |
4765 |
\@if@empty{#2}{}{% |
4766 |
\par |
4767 |
\begingroup |
4768 |
\textsuperscript{\normalfont#1}% |
4769 |
#2% |
4770 |
\@if@empty{#3}{}{\frontmatter@footnote{#3}}% |
4771 |
\par |
4772 |
\endgroup |
4773 |
}% |
4774 |
}{}% |
4775 |
}% |
4776 |
\def\@affil@script#1#2#3{% |
4777 |
\@ifnum{#1=\z@}{}{% |
4778 |
\par |
4779 |
\begingroup |
4780 |
\frontmatter@affiliationfont |
4781 |
\textsuperscript{#1}% |
4782 |
#2% |
4783 |
\@if@empty{#3}{}{\frontmatter@footnote{#3}}% |
4784 |
\par |
4785 |
\endgroup |
4786 |
}% |
4787 |
}% |
4788 |
\def\@author@present@script#1#2{% |
4789 |
\begingroup |
4790 |
\gdef\comma@space{\textsuperscript{,\,}}% |
4791 |
\doauthor{#1}{#2}{% |
4792 |
\let\@tempa\@empty |
4793 |
\expandafter\@affil@present@script\@affilID@temp\relax |
4794 |
}% |
4795 |
\endgroup |
4796 |
\advance\@tempcnta\m@ne |
4797 |
}% |
4798 |
\def\@affilcomma#1#2{% |
4799 |
\@ifx{\z@#1}{% |
4800 |
\@ifx{\relax#2}{}{% |
4801 |
\@affilcomma{#2}% |
4802 |
}% |
4803 |
}{% |
4804 |
#1% |
4805 |
\@ifx{\relax#2}{}{% |
4806 |
\@ifx{\z@#2}{% |
4807 |
\@affilcomma |
4808 |
}{% |
4809 |
,\,\@affilcomma{#2}% |
4810 |
}% |
4811 |
}% |
4812 |
}% |
4813 |
}% |
4814 |
\def\@affil@present@script#1{% |
4815 |
\@ifx{\relax#1}{% |
4816 |
\@ifx{\@tempa\@empty}{}{% |
4817 |
\textsuperscript{\expandafter\@affilcomma\@tempa\relax\relax}% |
4818 |
}% |
4819 |
}{% |
4820 |
\@ifx{\z@#1}{}{\appdef\@tempa{{#1}}}% |
4821 |
\@affil@present@script |
4822 |
}% |
4823 |
}% |
4824 |
\@provide\@author@parskip{\z@skip}% |
4825 |
\def\frontmatter@author@produce@group{% |
4826 |
\begingroup |
4827 |
\let\@author@present\@author@present@group |
4828 |
\frontmatter@authorformat |
4829 |
\let\AFS@opr \affils@present@group |
4830 |
\let\@listcomma\relax |
4831 |
\@AFG@list |
4832 |
\frontmatter@footnote@produce |
4833 |
\par |
4834 |
\endgroup |
4835 |
\frontmatter@authorbelow |
4836 |
}% |
4837 |
\@provide\frontmatter@authorbelow{}% |
4838 |
\def\affils@present@group#1{% |
4839 |
\begingroup |
4840 |
\def\AF@temp{#1}% % 0B13 |
4841 |
\@tempcnta\z@ |
4842 |
\let\AU@opr \undefined % 0B13 |
4843 |
\let\CO@opr \undefined % 0B13 |
4844 |
\def\AF@opr{\@affilID@count\AF@temp\@tempcnta}% 0B13 |
4845 |
\@AAC@list |
4846 |
\@ifnum{\@tempcnta=\z@}{}{% |
4847 |
\begingroup |
4848 |
\frontmatter@above@affilgroup |
4849 |
\set@listcomma@count\@tempcnta |
4850 |
\let\AU@opr \undefined % 0B13 |
4851 |
\let\CO@opr \undefined % 0B13 |
4852 |
\def\AF@opr{\@affilID@match\AF@temp}% |
4853 |
\@AAC@list |
4854 |
\endgroup |
4855 |
\begingroup |
4856 |
\par |
4857 |
\frontmatter@above@affiliation |
4858 |
\frontmatter@affiliationfont |
4859 |
\let\\\frontmatter@addressnewline |
4860 |
\@tempcnta\z@ |
4861 |
\@tfor\AF@temp:=#1\do{% |
4862 |
\expandafter\@ifx\expandafter{\z@\AF@temp}{}{% |
4863 |
\advance\@tempcnta\@ne |
4864 |
}% |
4865 |
}% |
4866 |
\@ifnum{\@tempcnta=\tw@}{% |
4867 |
\let\@listcomma\relax |
4868 |
}{}% |
4869 |
\def\after@address{\@listcomma\ \@listand}% |
4870 |
\runinaddress@sw{% |
4871 |
}{% |
4872 |
\tightenlines@sw{% |
4873 |
}{% |
4874 |
\parskip\z@ %space between affilations in grouped mode |
4875 |
}% |
4876 |
\appdef\after@address\par |
4877 |
}% |
4878 |
\let\AFF@opr \@affil@group |
4879 |
\do@affil@fromgroup\@AFF@list#1\relax |
4880 |
\endgroup |
4881 |
}% |
4882 |
\par |
4883 |
\endgroup |
4884 |
}% |
4885 |
\def\@affilID@count#1#2#3{% |
4886 |
\def\@tempifx{#3}% |
4887 |
\@ifx{\@tempifx#1}{% |
4888 |
\def\AU@opr{\@author@count#2}% |
4889 |
}{% |
4890 |
\let\AU@opr \@author@gobble |
4891 |
}% |
4892 |
\let\CO@opr \@collaboration@err |
4893 |
}% |
4894 |
\def\@affilID@match#1#2{% |
4895 |
\def\@tempifx{#2}% |
4896 |
\@ifx{\@tempifx#1}{% |
4897 |
\let\AU@opr \@author@present |
4898 |
}{% |
4899 |
\let\AU@opr \@author@gobble |
4900 |
}% |
4901 |
\let\CO@opr \@collaboration@err |
4902 |
}% |
4903 |
\def\do@affil@fromgroup#1#2{% |
4904 |
\@ifx{\relax#2}{}{% |
4905 |
\count@#2\relax |
4906 |
\@ifnum{\count@=\z@}{}{#1}% |
4907 |
\do@affil@fromgroup#1% |
4908 |
}% |
4909 |
}% |
4910 |
\def\@affil@group#1#2#3{% |
4911 |
\@ifnum{\count@=#1\relax}{% |
4912 |
\@ifx{#2\blankaffiliation}{}{% |
4913 |
#2% |
4914 |
\@if@empty{#3}{}{% |
4915 |
\frontmatter@footnote{#3}% |
4916 |
}% |
4917 |
\after@address |
4918 |
}% |
4919 |
\advance\@tempcnta\m@ne |
4920 |
}{}% |
4921 |
}% |
4922 |
\def\@author@present@group#1#2{% |
4923 |
\gdef\comma@space{\gdef\comma@space{\textsuperscript{,\,}}}% |
4924 |
\doauthor{#1}{#2}{}% |
4925 |
\advance\@tempcnta\m@ne |
4926 |
}% |
4927 |
\def\@pacs@produce#1{% |
4928 |
\showPACS@sw{% |
4929 |
\begingroup |
4930 |
\frontmatter@PACS@format |
4931 |
\@pacs@name#1\par |
4932 |
\endgroup |
4933 |
}{% |
4934 |
\@if@empty{#1}{}{% |
4935 |
\class@warn{\PACS@warn}% |
4936 |
}% |
4937 |
}% |
4938 |
}% |
4939 |
\def\PACS@warn{If you want your PACS to appear in your output, use document class option showpacs}% |
4940 |
\def\@keywords@produce#1{% |
4941 |
\showKEYS@sw{% |
4942 |
\begingroup |
4943 |
\frontmatter@keys@format |
4944 |
\@keys@name#1\par |
4945 |
\endgroup |
4946 |
}{% |
4947 |
\@if@empty{#1}{}{% |
4948 |
\class@warn{If you want your keywords to appear in your output, use document class option showkeys}% |
4949 |
}% |
4950 |
}% |
4951 |
}% |
4952 |
\def\frontmatter@footnote@produce@footnote{% |
4953 |
\let\@TBN@opr\present@FM@footnote |
4954 |
\@FMN@list |
4955 |
\global\let\@FMN@list\@empty |
4956 |
}% |
4957 |
\def\present@FM@footnote#1#2{% |
4958 |
\begingroup |
4959 |
\csname c@\@mpfn\endcsname#1\relax |
4960 |
\def\@thefnmark{\thempfn}% |
4961 |
\frontmatter@footnotetext{#2}% |
4962 |
\endgroup |
4963 |
}% |
4964 |
\def\frontmatter@footnote@produce@endnote{% |
4965 |
}% |
4966 |
\def\frontmatter@thefootnote{% |
4967 |
\altaffilletter@sw{\@alph}{\@fnsymbol}\c@footnote |
4968 |
}% |
4969 |
\def\frontmatter@makefnmark{% |
4970 |
\@textsuperscript{% |
4971 |
\normalfont\@thefnmark |
4972 |
}% |
4973 |
}% |
4974 |
\long\def\frontmatter@makefntext#1{% |
4975 |
\parindent 1em |
4976 |
\noindent |
4977 |
\Hy@raisedlink{\hyper@anchorstart{frontmatter@\the\c@footnote}\hyper@anchorend}% |
4978 |
\@makefnmark |
4979 |
#1% |
4980 |
}% |
4981 |
\def\frontmatter@setup{}% |
4982 |
\def\frontmatter@RRAPformat#1{% |
4983 |
\removelastskip |
4984 |
\begingroup |
4985 |
\frontmatter@RRAP@format |
4986 |
#1\par |
4987 |
\endgroup |
4988 |
}% |
4989 |
\def\punct@RRAP{; }% |
4990 |
\def\produce@RRAP#1{% |
4991 |
\@if@empty{#1}{}{% |
4992 |
\@ifvmode{\leavevmode}{\unskip\punct@RRAP\ignorespaces}% |
4993 |
#1% |
4994 |
}% |
4995 |
}% |
4996 |
\def\frontmatter@authorformat{}% |
4997 |
\def\frontmatter@above@affilgroup{}% |
4998 |
\def\frontmatter@above@affiliation{}% |
4999 |
\def\frontmatter@above@affiliation@script{}% |
5000 |
\def\frontmatter@affiliationfont{}% |
5001 |
\def\frontmatter@RRAP@format{}% |
5002 |
\def\frontmatter@PACS@format{}% |
5003 |
\def\frontmatter@keys@format{}% |
5004 |
\def\frontmatter@finalspace{\addvspace{18\p@}} |
5005 |
\def\frontmatter@addressnewline{% |
5006 |
\@ifhmode{\skip@\lastskip\unskip\unpenalty\break\hskip\skip@}{}% |
5007 |
% was: \vskip-.5ex |
5008 |
}% |
5009 |
\def\frontmatter@preabstractspace{5.5\p@} |
5010 |
\def\frontmatter@postabstractspace{6.5\p@} |
5011 |
\def\aftermaketitle@chk#1{% |
5012 |
\@ifx{\maketitle\relax}{% |
5013 |
\class@err{\protect#1 must be used before \protect\maketitle}% |
5014 |
}{}% |
5015 |
}% |
5016 |
\def\ps@titlepage{\ps@empty}% |
5017 |
\def\volumeyear#1{\gdef\@volumeyear{#1}}% |
5018 |
\def\@volumeyear{}% |
5019 |
\def\volumenumber#1{\gdef\@volumenumber{#1}}% |
5020 |
\def\@volumenumber{}% |
5021 |
\def\issuenumber#1{\gdef\@issuenumber{#1}}% |
5022 |
\def\@issuenumber{}% |
5023 |
\def\eid#1{\gdef\@eid{#1}}% |
5024 |
\def\@eid{}% |
5025 |
\def\startpage#1{\gdef\@startpage{#1}\c@page#1\relax}% |
5026 |
\def\@startpage{\pageref{FirstPage}}% |
5027 |
\def\endpage#1{\gdef\@endpage{#1}}% |
5028 |
\def\@endpage{\pageref{LastPage}}% |
5029 |
\def\print@toc#1{% |
5030 |
\begingroup |
5031 |
\expandafter\section |
5032 |
\expandafter*% |
5033 |
\expandafter{% |
5034 |
\csname#1name\endcsname |
5035 |
}% |
5036 |
\let\appendix\appendix@toc |
5037 |
\@starttoc{#1}% |
5038 |
\endgroup |
5039 |
}% |
5040 |
\def\appendix@toc{}% |
5041 |
\def\labelenumi{\theenumi.} |
5042 |
\def\theenumi{\arabic{enumi}} |
5043 |
\def\labelenumii{(\theenumii)} |
5044 |
\def\theenumii{\alph{enumii}} |
5045 |
\def\p@enumii{\theenumi} |
5046 |
\def\labelenumiii{\theenumiii.} |
5047 |
\def\theenumiii{\roman{enumiii}} |
5048 |
\def\p@enumiii{\theenumi(\theenumii)} |
5049 |
\def\labelenumiv{\theenumiv.} |
5050 |
\def\theenumiv{\Alph{enumiv}} |
5051 |
\def\p@enumiv{\p@enumiii\theenumiii} |
5052 |
\def\labelitemi{\textbullet} |
5053 |
\def\labelitemii{\normalfont\bfseries\textendash} |
5054 |
\def\labelitemiii{\textasteriskcentered} |
5055 |
\def\labelitemiv{\textperiodcentered} |
5056 |
\pagenumbering{arabic} |
5057 |
\setcounter{topnumber}{2} |
5058 |
\def\topfraction{.9} |
5059 |
\setcounter{bottomnumber}{1} |
5060 |
\def\bottomfraction{.9} |
5061 |
\setcounter{totalnumber}{3} |
5062 |
\def\textfraction{.1} |
5063 |
\def\floatpagefraction{.9} |
5064 |
\setcounter{dbltopnumber}{2} |
5065 |
\def\dbltopfraction{.9} |
5066 |
\def\dblfloatpagefraction{.9} |
5067 |
\newenvironment{verse}{% |
5068 |
\let\\=\@centercr |
5069 |
\list{}{% |
5070 |
\itemsep\z@ \itemindent -1.5em\listparindent \itemindent |
5071 |
\rightmargin\leftmargin\advance\leftmargin 1.5em}\item[]% |
5072 |
}{% |
5073 |
\endlist |
5074 |
}% |
5075 |
\newenvironment{quotation}{% |
5076 |
\list{}{% |
5077 |
\listparindent 1.5em |
5078 |
\itemindent\listparindent |
5079 |
\rightmargin\leftmargin \parsep \z@ \@plus\p@}\item[]% |
5080 |
}{% |
5081 |
\endlist |
5082 |
}% |
5083 |
\newenvironment{quote}{% |
5084 |
\list{}{% |
5085 |
\rightmargin\leftmargin}\item[]% |
5086 |
}{% |
5087 |
\endlist |
5088 |
}% |
5089 |
\def\descriptionlabel#1{% |
5090 |
\hspace\labelsep \normalfont\bfseries #1% |
5091 |
}% |
5092 |
\newenvironment{description}{% |
5093 |
\list{}{% |
5094 |
\labelwidth\z@ \itemindent-\leftmargin |
5095 |
\let\makelabel\descriptionlabel |
5096 |
}% |
5097 |
}{% |
5098 |
\endlist |
5099 |
}% |
5100 |
\newcounter{part} |
5101 |
\newcounter{section} |
5102 |
\newcounter{subsection}[section] |
5103 |
\newcounter{subsubsection}[subsection] |
5104 |
\newcounter{paragraph}[subsubsection] |
5105 |
\newcounter{subparagraph}[paragraph] |
5106 |
\def\thepart {\Roman{part}} % |
5107 |
\def\thesection {\Roman{section}} |
5108 |
\def\p@section {} |
5109 |
\def\thesubsection {\Alph{subsection}} |
5110 |
\def\p@subsection {\thesection\,} |
5111 |
\def\thesubsubsection {\arabic{subsubsection}} |
5112 |
\def\p@subsubsection {\thesection\,\thesubsection\,} |
5113 |
\def\theparagraph {\alph{paragraph}} |
5114 |
\def\p@paragraph {\thesection\,\thesubsection\,\thesubsubsection\,} |
5115 |
\def\thesubparagraph {\arabic{subparagraph}} |
5116 |
\def\p@subparagraph {\thesection\,\thesubsection\,\thesubsubsection\,\theparagraph\,} |
5117 |
\newenvironment{acknowledgments}{% |
5118 |
\acknowledgments@sw{% |
5119 |
\section*{\acknowledgmentsname}% |
5120 |
}{% |
5121 |
\par |
5122 |
\phantomsection |
5123 |
\addcontentsline{toc}{section}{\protect\numberline{}\acknowledgmentsname}% |
5124 |
}% |
5125 |
}{% |
5126 |
\par |
5127 |
}% |
5128 |
\@booleantrue\acknowledgments@sw |
5129 |
\newenvironment{acknowledgements}{% |
5130 |
\replace@environment{acknowledgements}{acknowledgments}% |
5131 |
}{% |
5132 |
\endacknowledgments |
5133 |
}% |
5134 |
\def\part{\par |
5135 |
\addvspace{4ex}% |
5136 |
\@afterindentfalse |
5137 |
\secdef\@part\@spart}% |
5138 |
\def\@part[#1]#2{% |
5139 |
\@ifnum{\c@secnumdepth >\m@ne}{% |
5140 |
\refstepcounter{part}% |
5141 |
\addcontentsline{toc}{part}{\thepart\hspace{1em}#1}% |
5142 |
}{% |
5143 |
\addcontentsline{toc}{part}{#1}% |
5144 |
}% |
5145 |
\begingroup |
5146 |
\parindent \z@ \raggedright |
5147 |
\interlinepenalty\@M |
5148 |
\@ifnum{\c@secnumdepth >\m@ne}{% |
5149 |
\Large \bf \partname~\thepart% |
5150 |
\par\nobreak |
5151 |
}{}% |
5152 |
\huge \bf |
5153 |
#2% |
5154 |
\markboth{}{}\par |
5155 |
\endgroup |
5156 |
\nobreak |
5157 |
\vskip 3ex |
5158 |
\@afterheading |
5159 |
}% |
5160 |
\def\@spart#1{{\parindent \z@ \raggedright |
5161 |
\interlinepenalty\@M |
5162 |
\huge \bf |
5163 |
#1\par} |
5164 |
\nobreak |
5165 |
\vskip 3ex |
5166 |
\@afterheading} |
5167 |
\def\section{% |
5168 |
\@startsection |
5169 |
{section}% |
5170 |
{1}% |
5171 |
{\z@}% |
5172 |
{0.8cm \@plus1ex \@minus .2ex}% |
5173 |
{0.5cm}% |
5174 |
{\normalfont\small\bfseries}% |
5175 |
}% |
5176 |
\def\subsection{% |
5177 |
\@startsection |
5178 |
{subsection}% |
5179 |
{2}% |
5180 |
{\z@}% |
5181 |
{.8cm \@plus1ex \@minus .2ex}% |
5182 |
{.5cm}% |
5183 |
{\normalfont\small\bfseries}% |
5184 |
}% |
5185 |
\def\subsubsection{% |
5186 |
\@startsection |
5187 |
{subsubsection}% |
5188 |
{3}% |
5189 |
{\z@}% |
5190 |
{.8cm \@plus1ex \@minus .2ex}% |
5191 |
{.5cm}% |
5192 |
{\normalfont\small\itshape}% |
5193 |
}% |
5194 |
\def\paragraph{% |
5195 |
\@startsection |
5196 |
{paragraph}% |
5197 |
{4}% |
5198 |
{\parindent}% |
5199 |
{\z@}% |
5200 |
{-1em}% |
5201 |
{\normalfont\normalsize\itshape}% |
5202 |
}% |
5203 |
\def\subparagraph{% |
5204 |
\@startsection |
5205 |
{subparagraph}% |
5206 |
{5}% |
5207 |
{\parindent}% |
5208 |
{3.25ex \@plus1ex \@minus .2ex}% |
5209 |
{-1em}% |
5210 |
{\normalfont\normalsize\bfseries}% |
5211 |
}% |
5212 |
\def\theequation{% |
5213 |
\theequation@prefix\arabic{equation}% |
5214 |
}% |
5215 |
\def\theequation@prefix{}% |
5216 |
\AtEndOfClass{% |
5217 |
\expandafter\input\expandafter{\@pointsize pt\substyle@ext}% |
5218 |
}% |
5219 |
\setcounter{secnumdepth}{4} |
5220 |
\lineskip 1pt |
5221 |
\normallineskip 1pt |
5222 |
\def\baselinestretch{1}% |
5223 |
\@lowpenalty 51 |
5224 |
\@medpenalty 151 |
5225 |
\@highpenalty 301 |
5226 |
\@beginparpenalty -\@lowpenalty |
5227 |
\@endparpenalty -\@lowpenalty |
5228 |
\@itempenalty -\@lowpenalty |
5229 |
\arraycolsep 3pt |
5230 |
\tabcolsep 2pt |
5231 |
\arrayrulewidth .4pt |
5232 |
\doublerulesep 2pt |
5233 |
\skip\@mpfootins = 0pt |
5234 |
\fboxsep = 3.0pt |
5235 |
\fboxrule = 0.4pt |
5236 |
\newenvironment{figure} |
5237 |
{\@float{figure}} |
5238 |
{\end@float} |
5239 |
\newenvironment{figure*} |
5240 |
{\@dblfloat{figure}} |
5241 |
{\end@dblfloat} |
5242 |
\newlength\abovecaptionskip |
5243 |
\newlength\belowcaptionskip |
5244 |
\setlength\abovecaptionskip{10\p@} |
5245 |
\setlength\belowcaptionskip{2\p@} |
5246 |
\long\def\@makecaption#1#2{% |
5247 |
\par |
5248 |
\vskip\abovecaptionskip |
5249 |
\begingroup |
5250 |
\small\rmfamily |
5251 |
\sbox\@tempboxa{% |
5252 |
\let\\\heading@cr |
5253 |
#1: #2% |
5254 |
}% |
5255 |
\@ifdim{\wd\@tempboxa >\hsize}{% |
5256 |
\begingroup |
5257 |
\samepage |
5258 |
\flushing |
5259 |
\let\footnote\@footnotemark@gobble |
5260 |
#1: #2\par |
5261 |
\endgroup |
5262 |
}{% |
5263 |
\global \@minipagefalse |
5264 |
\hb@xt@\hsize{\hfil\unhbox\@tempboxa\hfil}% |
5265 |
}% |
5266 |
\endgroup |
5267 |
\vskip\belowcaptionskip |
5268 |
}% |
5269 |
\def\@footnotemark@gobble{% |
5270 |
\@footnotemark |
5271 |
\@ifnextchar[{\@gobble@opt@i}{\@gobble}% |
5272 |
}% |
5273 |
\def\@gobble@opt@i[#1]#2{}% |
5274 |
\def\@mpmakefntext#1{% |
5275 |
\flushing |
5276 |
\parindent=1em |
5277 |
\noindent |
5278 |
\hb@xt@1em{\hss\@makefnmark}% |
5279 |
#1% |
5280 |
}% |
5281 |
\newcounter{figure} |
5282 |
\renewcommand \thefigure {\@arabic\c@figure} |
5283 |
\def\fps@figure{tbp} |
5284 |
\def\ftype@figure{1} |
5285 |
\def\ext@figure{lof} |
5286 |
\def\fnum@figure{\figurename~\thefigure} |
5287 |
\appdef\class@documenthook{% |
5288 |
\do@if@floats{figure}{.fgx}% |
5289 |
}% |
5290 |
\appdef\class@enddocumenthook{% |
5291 |
\printfigures\relax |
5292 |
}% |
5293 |
\newcommand\printfigures{% |
5294 |
\@ifstar{\true@sw}{\floatp@sw{\true@sw}{\false@sw}}% |
5295 |
{% |
5296 |
\print@float{figure}{\oneapage}% |
5297 |
}{% |
5298 |
\print@float{figure}{}% |
5299 |
}% |
5300 |
}% |
5301 |
\appdef\@xfloat@prep{% |
5302 |
\appdef\@parboxrestore{\centering}% |
5303 |
\let\@makefnmark\@makefnmark@latex |
5304 |
\let\@footnotemark\@footnotemark@latex |
5305 |
}% |
5306 |
\newenvironment{table} |
5307 |
{\@float{table}} |
5308 |
{\end@float} |
5309 |
\newenvironment{table*} |
5310 |
{\@dblfloat{table}} |
5311 |
{\end@dblfloat} |
5312 |
\newcounter{table} |
5313 |
\renewcommand\thetable{\@Roman\c@table} |
5314 |
\def\fps@table{tbp} |
5315 |
\def\ftype@table{2} |
5316 |
\def\ext@table{lot} |
5317 |
\def\fnum@table{\tablename~\thetable} |
5318 |
\def\table@hook{\small}% |
5319 |
\def\squeezetable{\def\table@hook{\scriptsize}}% |
5320 |
\appdef\@floatboxreset{\table@hook}% |
5321 |
\appdef\class@documenthook{% |
5322 |
\floats@sw{}{% |
5323 |
\let@environment{longtable@float}{longtable}% |
5324 |
\let@environment{longtable}{longtable@write}% |
5325 |
\let@environment{longtable*@float}{longtable*}% |
5326 |
\let@environment{longtable*}{longtable*@write}% |
5327 |
\let@environment{turnpage@float}{turnpage}% |
5328 |
\let@environment{turnpage}{turnpage@write}% |
5329 |
}% |
5330 |
\do@if@floats{table}{.tbx}% |
5331 |
}% |
5332 |
\appdef\class@enddocumenthook{% |
5333 |
\printtables\relax |
5334 |
}% |
5335 |
\newenvironment{longtable@write}{% |
5336 |
\write@@float{longtable}{table}% |
5337 |
}{% |
5338 |
\endwrite@float |
5339 |
}% |
5340 |
\newenvironment{longtable*@write}{% |
5341 |
\write@@float{longtable*}{table}% |
5342 |
}{% |
5343 |
\endwrite@float |
5344 |
}% |
5345 |
\newenvironment{turnpage@write}{% |
5346 |
\immediate\write\tablewrite{\string\begin{turnpage}}% |
5347 |
}{% |
5348 |
\immediate\write\tablewrite{\string\end{turnpage}}% |
5349 |
}% |
5350 |
\newcommand\printtables{% |
5351 |
\begingroup |
5352 |
\let@environment{longtable}{longtable@float}% |
5353 |
\let@environment{longtable*}{longtable*@float}% |
5354 |
\let@environment{turnpage}{turnpage@anchored}% |
5355 |
\prepdef\longtable{\trigger@float@par}% |
5356 |
\expandafter\prepdef\csname longtable*\endcsname{\trigger@float@par}% |
5357 |
\expandafter\prepdef\csname table@floats\endcsname{% |
5358 |
\onecolumngrid@push |
5359 |
}% |
5360 |
\expandafter\appdef\csname endtable@floats\endcsname{% |
5361 |
\onecolumngrid@pop |
5362 |
}% |
5363 |
\@ifstar{\true@sw}{\floatp@sw{\true@sw}{\false@sw}}% |
5364 |
{% |
5365 |
\print@float{table}{\oneapage}% |
5366 |
}{% |
5367 |
\print@float{table}{}% |
5368 |
}% |
5369 |
\endgroup |
5370 |
}% |
5371 |
\newenvironment{turnpage@anchored}{% |
5372 |
\onecolumngrid@push |
5373 |
\setbox\z@\vbox to\textwidth\bgroup |
5374 |
\columnwidth\textheight |
5375 |
}{% |
5376 |
\vfil |
5377 |
\egroup |
5378 |
\rotatebox{90}{\box\z@}% |
5379 |
\onecolumngrid@pop |
5380 |
}% |
5381 |
\def\endtabular@hook{}% |
5382 |
\appdef\class@documenthook{% |
5383 |
\@ifpackageloaded{dcolumn}{% |
5384 |
\newcolumntype{d}{D{.}{.}{-1}}% |
5385 |
}{}% |
5386 |
}% |
5387 |
\def\toprule{\hline\hline}% |
5388 |
\def\colrule{\hline}% |
5389 |
\def\botrule{\hline\hline}% |
5390 |
\newenvironment{ruledtabular}{% |
5391 |
\def\array@default{v}% |
5392 |
\appdef\tabular@hook{\def\@halignto{to\hsize}}% |
5393 |
\let\tableft@skip@default\tableft@skip |
5394 |
\let\tableft@skip\tableft@skip@float |
5395 |
\let\tabmid@skip@default\tabmid@skip |
5396 |
\let\tabmid@skip\tabmid@skip@float |
5397 |
\let\tabright@skip@default\tabright@skip |
5398 |
\let\tabright@skip\tabright@skip@float |
5399 |
\let\array@row@pre@default\array@row@pre |
5400 |
\let\array@row@pre\array@row@pre@float |
5401 |
\let\array@row@pst@default\array@row@pst |
5402 |
\let\array@row@pst\array@row@pst@float |
5403 |
\appdef\array@row@rst{% |
5404 |
\let\array@row@pre\array@row@pre@default |
5405 |
\let\array@row@pst\array@row@pst@default |
5406 |
\let\tableft@skip\tableft@skip@default |
5407 |
\let\tabmid@skip\tabmid@skip@default |
5408 |
\let\tabright@skip\tabright@skip@default |
5409 |
\appdef\tabular@hook{\let\@halignto\@empty}% |
5410 |
}% |
5411 |
}{% |
5412 |
}% |
5413 |
\def\@makefntext#1{% |
5414 |
\def\baselinestretch{1}% |
5415 |
\reset@font\footnotesize |
5416 |
\parindent 1em% |
5417 |
\noindent |
5418 |
\hb@xt@1.8em{% |
5419 |
\Hy@raisedlink{\hyper@anchorstart{footnote@\the\c@footnote}\hyper@anchorend}% |
5420 |
\hss\@makefnmark |
5421 |
}% |
5422 |
#1\par |
5423 |
}% |
5424 |
\newenvironment{thebibliography}{}{}% |
5425 |
\let\@listi\@empty |
5426 |
\RequirePackage[sort&compress]{natbib}[1999/05/28 7.0]% |
5427 |
\let\NAT@thebibliography\thebibliography |
5428 |
\let\NAT@endthebibliography\endthebibliography |
5429 |
\let\bibliographystyle@latex\bibliographystyle |
5430 |
\renewcommand\NAT@citesuper[3]{% |
5431 |
\ifNAT@swa |
5432 |
\leavevmode |
5433 |
\unskip |
5434 |
\textsuperscript{#1}% |
5435 |
\if*#3*\else\ (#3)\fi |
5436 |
\else |
5437 |
#1% |
5438 |
\fi |
5439 |
\endgroup |
5440 |
}% |
5441 |
\def\@makefnmark@cite{\begingroup\NAT@swatrue\@cite{{\@thefnmark}}{}{}}% |
5442 |
\let\bibliographystyle@latex\bibliographystyle |
5443 |
\def\bibliographystyle{\def\@bibstyle}% |
5444 |
\def\bibsection{% |
5445 |
\@ifx@empty\refname{% |
5446 |
\par |
5447 |
}{% |
5448 |
\let\@hangfroms@section\@hang@froms |
5449 |
\section*{\refname}% |
5450 |
\@nobreaktrue |
5451 |
}% |
5452 |
}% |
5453 |
\let\NATx@bibsetnum\NAT@bibsetnum |
5454 |
\def\NAT@bibsetnum#1{% |
5455 |
\setlength{\topsep}{\z@}% |
5456 |
\NATx@bibsetnum{\ref{LastBibItem}}% |
5457 |
}% |
5458 |
\let\NATx@bibsetup\NAT@bibsetup |
5459 |
\def\NAT@bibsetup{% |
5460 |
\setlength{\labelwidth}{\z@}% |
5461 |
\setlength{\labelsep}{\z@}% |
5462 |
\setlength{\itemindent}{\z@}% |
5463 |
\setlength{\listparindent}{\z@}% |
5464 |
\setlength{\topsep}{\z@}% |
5465 |
\setlength{\parsep}{\z@}% |
5466 |
\NATx@bibsetup |
5467 |
}% |
5468 |
\let\bibpreamble\@empty |
5469 |
\def\newblock{\ }% |
5470 |
\let\NATx@bibnumfmt\bibnumfmt |
5471 |
\def\bibnumfmt{\place@bibnumber}% |
5472 |
\AtEndOfClass{% |
5473 |
\appdef\class@documenthook{% |
5474 |
\@ifxundefined\place@bibnumber{% |
5475 |
\let\place@bibnumber\NATx@bibnumfmt |
5476 |
}{}% |
5477 |
}% |
5478 |
}% |
5479 |
\let\NAT@citeyear\citeyear |
5480 |
\def\NAT@onlinecite#1{% |
5481 |
\begingroup |
5482 |
\let\@cite\NAT@citenum |
5483 |
\let\NAT@mbox\mbox |
5484 |
\let\citeyear\NAT@citeyear |
5485 |
\def\NAT@space{ }% |
5486 |
\cite{#1}% |
5487 |
\endgroup |
5488 |
}% |
5489 |
\appdef\class@inithook{% |
5490 |
\@ifxundefined\@onlinecite{\def\@onlinecite{\citealp}}{}% |
5491 |
\@ifxundefined\@textcite{\def\@textcite{\citet}}{}% |
5492 |
}% |
5493 |
\DeclareRobustCommand\onlinecite{\@onlinecite}% |
5494 |
\DeclareRobustCommand\textcite{\@textcite}% |
5495 |
\renewenvironment{thebibliography}[1]{% |
5496 |
\NAT@thebibliography{#1}% |
5497 |
\@clubpenalty\clubpenalty |
5498 |
\let\@TBN@opr\present@bibnote |
5499 |
\@FMN@list |
5500 |
}{% |
5501 |
\@endnotesinbib |
5502 |
\edef\@currentlabel{\arabic{NAT@ctr}}% |
5503 |
\label{LastBibItem}% |
5504 |
\NAT@endthebibliography |
5505 |
\global\let\auto@bib\@empty |
5506 |
}% |
5507 |
\def\present@bibnote#1#2{% |
5508 |
\item[% |
5509 |
\textsuperscript{% |
5510 |
\normalfont |
5511 |
\Hy@raisedlink{\hyper@anchorstart{frontmatter@#1}\hyper@anchorend}% |
5512 |
\begingroup |
5513 |
\c@footnote#1\relax |
5514 |
\frontmatter@thefootnote |
5515 |
\endgroup |
5516 |
}% |
5517 |
]#2\par |
5518 |
}% |
5519 |
\def\place@bibnumber@sup#1{\textsuperscript{#1}}% |
5520 |
\def\place@bibnumber@inl#1{[#1]}% |
5521 |
%% \begin{macro}{\@cite} |
5522 |
%% \begin{macro}{\nocite} |
5523 |
%% For the sake of Bib\TeX, we must execute the \cmd\bibliographystyle\ command |
5524 |
%% (putting a \cmd\bibstyle\ command into the auxiliary file) |
5525 |
%% somewhere before the first \cmd\cite\ command (or any other like command), |
5526 |
%% which puts a \cmd\citation\ command into the auxiliary file. |
5527 |
%% |
5528 |
%% Therefore, we headpatch the two procedures in \classname{natbib} that can result in |
5529 |
%% the appearance in the auxiliary file of a \cmd\citation\ command. |
5530 |
%% These two procedures are \cmd\@cite\ and \cmd\nocite. |
5531 |
%% |
5532 |
%% Not! |
5533 |
\def\write@bibliographystyle{% |
5534 |
\@ifxundefined\@bibstyle{}{% |
5535 |
\expandafter\bibliographystyle@latex\expandafter{\@bibstyle}% |
5536 |
}% |
5537 |
\global\let\write@bibliographystyle\relax |
5538 |
}% |
5539 |
\AtEndDocument{\write@bibliographystyle}% |
5540 |
%% \end{macro} |
5541 |
%% \end{macro} |
5542 |
\def\super@cite[#1][#2]#3{% |
5543 |
\leavevmode |
5544 |
\skip@\lastskip |
5545 |
\unskip |
5546 |
\begingroup |
5547 |
\def\@tempa{[#1][#2]{#3}}% |
5548 |
\super@cite@ |
5549 |
}% |
5550 |
\def\super@cite@{% |
5551 |
\futurelet\@let@token\super@cite@@ |
5552 |
}% |
5553 |
\long\def\super@cite@@#1{% |
5554 |
\@ifx{\@let@token\@sptoken}{% |
5555 |
\aftergroup\@sptoken\false@sw |
5556 |
}{% |
5557 |
\@ifx{\@let@token.}{\true@sw}{% |
5558 |
\@ifx{\@let@token,}{\true@sw}{% |
5559 |
\@ifx{\@let@token'}{\true@sw}{% |
5560 |
\@ifx{\@let@token)}{\true@sw}{% |
5561 |
\false@sw |
5562 |
}% |
5563 |
}% |
5564 |
}% |
5565 |
}% |
5566 |
}% |
5567 |
{% |
5568 |
#1% |
5569 |
\super@cite@ |
5570 |
}{% |
5571 |
\expandafter\@citex@NAT\@tempa\endgroup |
5572 |
#1% |
5573 |
}% |
5574 |
}% |
5575 |
\AtBeginDocument{% |
5576 |
\citeautoscript@sw{% |
5577 |
\@ifx{\place@bibnumber\place@bibnumber@sup}{% |
5578 |
\let\@citex@NAT\@citex\let\@citex\super@cite |
5579 |
}{}% |
5580 |
}{}% |
5581 |
}% |
5582 |
\@ifx{\chapter\relax}{\let\chapter\@undefined}{}% |
5583 |
\def\mini@note{\save@note\mini@notes}%Implicit #1 |
5584 |
\def\save@note#1#2{% |
5585 |
\stepcounter{footnote}% |
5586 |
\protected@xdef\@thefnmark{\the\c@footnote}% |
5587 |
\@footnotemark |
5588 |
\expandafter\g@addto@macro |
5589 |
\expandafter#1% |
5590 |
\expandafter{% |
5591 |
\expandafter \@@footnotetext |
5592 |
\expandafter {\@thefnmark}{#2}% |
5593 |
}% |
5594 |
}% |
5595 |
\long\def\@@footnotetext#1{\def\@thefnmark{#1}\@footnotetext}% |
5596 |
\let\mini@notes\@empty |
5597 |
\def\endnote{% |
5598 |
\begingroup |
5599 |
\aftergroup\@footnotemark |
5600 |
\aftergroup\@endnotetext |
5601 |
\@ifnextchar[{% |
5602 |
\@xendnote |
5603 |
}{% |
5604 |
\stepcounter{footnote}% |
5605 |
\protected@xdef\@tempa{\thefootnote}% |
5606 |
\expandafter\@xendnote\expandafter[\@tempa]% |
5607 |
}% |
5608 |
}% |
5609 |
\def\@xendnote[#1]{% |
5610 |
\begingroup |
5611 |
\c@footnote#1\relax |
5612 |
\unrestored@protected@xdef\@thefnmark{endnote\thefootnote}% |
5613 |
\endgroup |
5614 |
\endgroup |
5615 |
}% |
5616 |
\def\@endnotemark{% |
5617 |
\expandafter\cite\expandafter{\@thefnmark}% |
5618 |
}% |
5619 |
\def\endnote@ext{.end}% |
5620 |
\long\def\@endnotetext#1{% |
5621 |
\@ifxundefined\@endnoteout{% |
5622 |
\newwrite\@endnoteout |
5623 |
\gdef\endnote@stream{\jobname\endnote@ext}% |
5624 |
\immediate\openout\@endnoteout\endnote@stream\relax |
5625 |
}{}% |
5626 |
\begingroup |
5627 |
\let\label\relax \let\index\relax \let\glossary\relax |
5628 |
\let\cite \relax \let\ref \relax \let\pageref \relax |
5629 |
\let\( \relax \let\) \relax \let\\ \relax |
5630 |
\let \protect \@unexpandable@protect |
5631 |
\newlinechar`\^^M% |
5632 |
\immediate\write\@endnoteout{\string\@doendnote{\@thefnmark}{#1}}% |
5633 |
\endgroup |
5634 |
}% |
5635 |
\def\endnotetext{% |
5636 |
\@ifnextchar[{% |
5637 |
\@xendnotenext |
5638 |
}{% |
5639 |
\protected@xdef\@thefnmark{\thefootnote}% |
5640 |
\@endnotetext |
5641 |
}% |
5642 |
}% |
5643 |
\def\@xendnotenext[#1]{% |
5644 |
\begingroup |
5645 |
\c@footnote#1\relax |
5646 |
\unrestored@protected@xdef\@thefnmark{\thefootnote}% |
5647 |
\endgroup |
5648 |
\@endnotetext |
5649 |
}% |
5650 |
\def\printendnotes{% |
5651 |
\@ifx{\@endnoteout\@undefined}{}{% |
5652 |
\begingroup |
5653 |
\c@secnumdepth-\maxdimen |
5654 |
\section{% |
5655 |
\notesname |
5656 |
}% |
5657 |
\immediate\closeout\@endnoteout |
5658 |
\global\let\@endnoteout\@undefined |
5659 |
\begin{enumerate}% |
5660 |
\makeatletter |
5661 |
\input{\endnote@stream}% |
5662 |
\end{enumerate}% |
5663 |
\endgroup |
5664 |
}% |
5665 |
}% |
5666 |
\appdef\class@enddocumenthook{% |
5667 |
\printendnotes |
5668 |
}% |
5669 |
\mathchardef\firstnote@num\z@ |
5670 |
\appdef\class@documenthook{% |
5671 |
\global\c@footnote\firstnote@num |
5672 |
\appdef\maketitle{\global\c@footnote\firstnote@num}% |
5673 |
}% |
5674 |
\def\set@firstnote#1{% |
5675 |
\@ifnum{\firstnote@num=#1\relax}{}{% |
5676 |
\class@warn@end{Endnote numbers changed: rerun LaTeX}% |
5677 |
}% |
5678 |
\immediate\write\@mainaux{% |
5679 |
\global\chardef\string\firstnote@num#1\relax |
5680 |
}% |
5681 |
}% |
5682 |
\def\@endnotesinbib{% |
5683 |
\set@firstnote\z@ |
5684 |
}% |
5685 |
\def\@endnotesinbibliography{% |
5686 |
\expandafter\set@firstnote\expandafter{\the\c@NAT@ctr}% |
5687 |
\@ifx{\@endnoteout\@undefined}{}{% |
5688 |
\immediate\closeout\@endnoteout |
5689 |
\global\let\@endnoteout\@undefined |
5690 |
\makeatletter |
5691 |
\input{\endnote@stream}% |
5692 |
}% |
5693 |
}% |
5694 |
\appdef\class@documenthook{% |
5695 |
\let\@makefnmark@latex\@makefnmark |
5696 |
\let\@footnotemark@latex\@footnotemark |
5697 |
\footinbib@sw{% |
5698 |
\let\footnote\endnote |
5699 |
\let\@footnotemark\@endnotemark |
5700 |
\let\@makefnmark\@makefnmark@cite |
5701 |
\let\@endnotesinbib\@endnotesinbibliography |
5702 |
\appdef\class@enddocumenthook{\auto@bib}% |
5703 |
\let\printendnotes\relax |
5704 |
}{}% |
5705 |
}% |
5706 |
\def\auto@bib{% |
5707 |
\@ifx@empty\@FMN@list{% |
5708 |
\@ifxundefined\@endnoteout{% |
5709 |
\false@sw |
5710 |
}{% |
5711 |
\true@sw |
5712 |
}% |
5713 |
}{% |
5714 |
\true@sw |
5715 |
}{% |
5716 |
\begin{thebibliography}{}\end{thebibliography}% |
5717 |
}% |
5718 |
}% |
5719 |
\def\@doendnote#1#2{\bibitem{#1}#2} |
5720 |
\appdef\class@documenthook{% |
5721 |
\@ifxundefined\@evenhead{% |
5722 |
\@ifxundefined\@oddhead{% |
5723 |
\@ifxundefined\@oddfoot{% |
5724 |
\@ifxundefined\@evenfoot{% |
5725 |
\preprintsty@sw{% |
5726 |
\ps@preprint |
5727 |
}{% |
5728 |
\ps@article |
5729 |
}% |
5730 |
}{}% |
5731 |
}{}% |
5732 |
}{}% |
5733 |
}{}% |
5734 |
\pagenumbering{arabic}% |
5735 |
\normalsize |
5736 |
\tabbingsep \labelsep |
5737 |
\leftmargin\leftmargini |
5738 |
\labelwidth\leftmargin\advance\labelwidth-\labelsep |
5739 |
\let\@listi\@listI |
5740 |
\@listi |
5741 |
\def\curr@envir{document}% |
5742 |
\mark@envir{\curr@envir}% |
5743 |
\twocolumn@sw{% |
5744 |
\open@column@mlt\tw@ |
5745 |
\set@colht |
5746 |
\@floatplacement |
5747 |
\@dblfloatplacement |
5748 |
\sloppy |
5749 |
\@booleanfalse\raggedcolumn@sw |
5750 |
\let\set@listindent\set@listindent@ |
5751 |
}{% |
5752 |
\open@column@one\@ne |
5753 |
\set@colht |
5754 |
\@floatplacement |
5755 |
\@dblfloatplacement |
5756 |
\sloppy |
5757 |
\let\set@listindent\set@listindent@parshape |
5758 |
}% |
5759 |
}% |
5760 |
\def\appendix{% |
5761 |
\par |
5762 |
\setcounter{section}\z@ |
5763 |
\setcounter{subsection}\z@ |
5764 |
\setcounter{subsubsection}\z@ |
5765 |
\def\thesubsection{\arabic{subsection}}% |
5766 |
\def\thesubsubsection{\alph{subsubsection}}% |
5767 |
\@addtoreset{equation}{section}% |
5768 |
\def\theequation@prefix{\thesection}% |
5769 |
\addtocontents{toc}{\protect\appendix}% |
5770 |
\@ifstar{% |
5771 |
\def\thesection{\unskip}% |
5772 |
\def\theequation@prefix{A.}% |
5773 |
}{% |
5774 |
\def\thesection{\Alph{section}}% |
5775 |
}% |
5776 |
}% |
5777 |
\def\title@column@default#1{% |
5778 |
\minipagefootnote@init |
5779 |
#1% |
5780 |
\minipagefootnote@foot |
5781 |
}% |
5782 |
\def\close@column@default{% |
5783 |
\newpage |
5784 |
}% |
5785 |
\def\galley@outdent{\rightmargin-\columnwidth\advance\rightmargin-\columnsep}% |
5786 |
\let\widetext@outdent\@empty |
5787 |
\newenvironment{widetext@galley}{% |
5788 |
\list{}{% |
5789 |
\topsep \z@skip |
5790 |
\listparindent \parindent |
5791 |
\itemindent \parindent |
5792 |
\leftmargin \z@ |
5793 |
\parsep \z@\@plus\p@ |
5794 |
\widetext@outdent |
5795 |
\relax |
5796 |
}% |
5797 |
\item\relax |
5798 |
}{ |
5799 |
\endlist |
5800 |
}% |
5801 |
\def\title@column@grid#1{% |
5802 |
\minipagefootnote@init |
5803 |
\onecolumngrid |
5804 |
\begingroup |
5805 |
\let\@footnotetext\frontmatter@footnotetext |
5806 |
\let\set@footnotewidth\set@footnotewidth@ii |
5807 |
#1% |
5808 |
\endgroup |
5809 |
\twocolumngrid |
5810 |
\minipagefootnote@foot |
5811 |
}% |
5812 |
\def\close@column@grid{% |
5813 |
\balancelastpage@sw{% |
5814 |
\onecolumngrid |
5815 |
}{}% |
5816 |
}% |
5817 |
\newenvironment{widetext@grid}{% |
5818 |
\par\ignorespaces |
5819 |
\setbox\widetext@top\vbox{% |
5820 |
\vskip15\p@ |
5821 |
\hb@xt@\hsize{% |
5822 |
\leaders\hrule\hfil |
5823 |
\vrule\@height6\p@ |
5824 |
}% |
5825 |
\vskip6\p@ |
5826 |
}% |
5827 |
\setbox\widetext@bot\hb@xt@\hsize{% |
5828 |
\vrule\@depth6\p@ |
5829 |
\leaders\hrule\hfil |
5830 |
}% |
5831 |
\onecolumngrid |
5832 |
\dimen@\ht\widetext@top\advance\dimen@\dp\widetext@top |
5833 |
\cleaders\box\widetext@top\vskip\dimen@ |
5834 |
\let\set@footnotewidth\set@footnotewidth@ii |
5835 |
}{% |
5836 |
\par |
5837 |
\setbox\widetext@bot\vbox{% |
5838 |
\hb@xt@\hsize{\hfil\box\widetext@bot}% |
5839 |
\vskip14\p@ |
5840 |
}% |
5841 |
\dimen@\ht\widetext@bot\advance\dimen@\dp\widetext@bot |
5842 |
\cleaders\box\widetext@bot\vskip\dimen@ |
5843 |
\twocolumngrid\global\@ignoretrue |
5844 |
\@endpetrue |
5845 |
}% |
5846 |
\newbox\widetext@top |
5847 |
\newbox\widetext@bot |
5848 |
\appdef\class@documenthook{% |
5849 |
\twocolumn@sw{% |
5850 |
\let@environment{widetext}{widetext@grid}% |
5851 |
\let\title@column\title@column@grid |
5852 |
\let\close@column\close@column@grid |
5853 |
}{% |
5854 |
\let@environment{widetext}{widetext@galley}% |
5855 |
\preprintsty@sw{% |
5856 |
}{% |
5857 |
\galley@sw{% |
5858 |
\let\widetext@outdent\galley@outdent |
5859 |
}{% |
5860 |
}% |
5861 |
}% |
5862 |
}% |
5863 |
}% |
5864 |
\appdef\class@inithook{% |
5865 |
\@ifxundefined\title@column{% |
5866 |
\let\title@column\title@column@default |
5867 |
}{}% |
5868 |
}% |
5869 |
\DeclareOldFontCommand{\rm}{\normalfont\rmfamily}{\mathrm} |
5870 |
\DeclareOldFontCommand{\sf}{\normalfont\sffamily}{\mathsf} |
5871 |
\DeclareOldFontCommand{\tt}{\normalfont\ttfamily}{\mathtt} |
5872 |
\DeclareOldFontCommand{\bf}{\normalfont\bfseries}{\mathbf} |
5873 |
\DeclareOldFontCommand{\it}{\normalfont\itshape}{\mathit} |
5874 |
\DeclareOldFontCommand{\sl}{\normalfont\slshape}{\@nomath\sl} |
5875 |
\DeclareOldFontCommand{\sc}{\normalfont\scshape}{\@nomath\sc} |
5876 |
\DeclareRobustCommand*\cal{\@fontswitch\relax\mathcal} |
5877 |
\DeclareRobustCommand*\mit{\@fontswitch\relax\mathnormal} |
5878 |
\def\today{\ifcase\month\or |
5879 |
January\or February\or March\or April\or May\or June\or |
5880 |
July\or August\or September\or October\or November\or December\fi |
5881 |
\space\number\day, \number\year} |
5882 |
\def\notesname{Notes} |
5883 |
\def\partname{Part} |
5884 |
\def\tocname{Contents} |
5885 |
\def\lofname{List of Figures} |
5886 |
\def\lotname{List of Tables} |
5887 |
\def\refname{References} |
5888 |
\def\indexname{Index} |
5889 |
\def\figurename{FIG.} |
5890 |
\def\figuresname{Figures}% |
5891 |
\def\tablename{TABLE} |
5892 |
\def\tablesname{Tables}% |
5893 |
\def\abstractname{Abstract} |
5894 |
\def\appendixesname{Appendixes}% |
5895 |
\def\appendixname{Appendix}% |
5896 |
\def\acknowledgmentsname{Acknowledgments} |
5897 |
\def\journalname{??} |
5898 |
\def\copyrightname{??} |
5899 |
\def\andname{and} |
5900 |
\def\@pacs@name{PACS numbers: }% |
5901 |
\def\@keys@name{Keywords: }% |
5902 |
\def\ppname{pp} |
5903 |
\def\numbername{number} |
5904 |
\def\volumename{volume} |
5905 |
\def\Dated@name{Dated: }% |
5906 |
\def\Received@name{Received }% |
5907 |
\def\Revised@name{Revised }% |
5908 |
\def\Accepted@name{Accepted }% |
5909 |
\def\Published@name{Published }% |
5910 |
\def\address{\replace@command\address\affiliation}% |
5911 |
\def\altaddress{\replace@command\altaddress\altaffiliation}% |
5912 |
\newenvironment{references}{% |
5913 |
\class@warn@end{The references environment is not supported; use thebibliography instead.} |
5914 |
\gdef\references{\thebibliography{}}\references |
5915 |
}{% |
5916 |
\endthebibliography |
5917 |
}% |
5918 |
\def\draft{% |
5919 |
\class@warn@end{Command \string\draft\space is obsolete;^^JInvoke option draft instead.}% |
5920 |
\@booleantrue\draft@sw |
5921 |
}% |
5922 |
\def\tighten{% |
5923 |
\class@warn@end{Command \string\tighten\space is obsolete;^^JInvoke option tightenlines instead.}% |
5924 |
\@booleantrue\tightenlines@sw |
5925 |
}% |
5926 |
\def\tableline{% |
5927 |
\noalign{% |
5928 |
\class@warn@end{Command \string\tableline\space is obsolete;^^JUse \string\colrule\space instead.}% |
5929 |
\global\let\tableline\colrule |
5930 |
}% |
5931 |
\tableline |
5932 |
}% |
5933 |
\def\case{\replace@command\case\frac}% |
5934 |
\def\slantfrac{\replace@command\slantfrac\frac}% |
5935 |
\def\tablenote{\replace@command\tablenote\footnote}% |
5936 |
\def\tablenotemark{\replace@command\tablenotemark\footnotemark}% |
5937 |
\def\tablenotetext{\replace@command\tablenotetext\footnotetext}% |
5938 |
\DeclareRobustCommand\REV@text[1]{% |
5939 |
\relax |
5940 |
\ifmmode |
5941 |
\mathchoice |
5942 |
{\hbox{{\everymath{\displaystyle }#1}}}% |
5943 |
{\hbox{{\everymath{\textstyle }#1}}}% |
5944 |
{\hbox{{\everymath{\scriptstyle }\let\f@size\sf@size\selectfont#1}}}% |
5945 |
{\hbox{{\everymath{\scriptscriptstyle}\let\f@size\ssf@size\selectfont#1}}}% |
5946 |
\glb@settings |
5947 |
\else |
5948 |
\mbox{#1}% |
5949 |
\fi |
5950 |
}% |
5951 |
\DeclareRobustCommand\REV@bbox[1]{% |
5952 |
\relax |
5953 |
\ifmmode |
5954 |
\mathchoice |
5955 |
{\hbox{{\everymath{\displaystyle }\boldmath$#1$}}}% |
5956 |
{\hbox{{\everymath{\textstyle }\boldmath$#1$}}}% |
5957 |
{\hbox{{\everymath{\scriptstyle }\boldmath$#1$}}}% |
5958 |
{\hbox{{\everymath{\scriptscriptstyle}\boldmath$#1$}}}% |
5959 |
\glb@settings |
5960 |
\else |
5961 |
\mbox{#1}% |
5962 |
\fi |
5963 |
}% |
5964 |
\DeclareRobustCommand\REV@bm[1]{% |
5965 |
\class@warn@end{To use \string\bm, please load the bm package!}% |
5966 |
\global\let\bm\relax |
5967 |
}% |
5968 |
\def\FL{\obsolete@command\FL}% |
5969 |
\def\FR{\obsolete@command\FR}% |
5970 |
\def\narrowtext{\obsolete@command\narrowtext}% |
5971 |
\def\mediumtext{\obsolete@command\mediumtext}% |
5972 |
\newenvironment{quasitable}{% |
5973 |
\let@environment{tabular}{longtable}% |
5974 |
}{% |
5975 |
}% |
5976 |
\appdef\class@inithook{% |
5977 |
\@ifxundefined\text{\let\text\REV@text}{}% |
5978 |
\@ifxundefined\bm{\let\bm\REV@bm}{}% |
5979 |
\providecommand\bibinfo[2]{#2}% |
5980 |
\providecommand\eprint[2][]{#2}% |
5981 |
\providecommand\url[1]{#1}% |
5982 |
}% |
5983 |
\def\bbox#1{% |
5984 |
\class@warn@end{\string\bbox\space is obsolete,^^Jload the bm package and use \string\bm\space instead.}% |
5985 |
\global\let\bbox\relax |
5986 |
}% |
5987 |
\newenvironment{mathletters}{% |
5988 |
\class@warn@end{Environment {mathletters} is obsolete;^^Jload the amsmath package and use {subequations}!}% |
5989 |
\global\let\mathletters\@empty |
5990 |
}{% |
5991 |
}% |
5992 |
\def\eqnum#1{% |
5993 |
\class@warn@end{\string\eqnum\space is obsolete, load the amsmath package and use \string\tag!}% |
5994 |
\global\let\eqnum\@gobble |
5995 |
}% |
5996 |
\RequirePackage{revsymb}% |
5997 |
\appdef\class@inithook{\revsymb@inithook}% |
5998 |
\AtEndOfClass{% |
5999 |
\InputIfFileExists{\jobname.rty}{}{}% |
6000 |
}% |
6001 |
\AtEndOfClass{% |
6002 |
\@ifxundefined\secnumarabic@sw{\@booleanfalse\secnumarabic@sw}{}% |
6003 |
\secnumarabic@sw{% |
6004 |
\def\p@section {}% |
6005 |
\def\thesection {\arabic{section}}% |
6006 |
\def\p@subsection {}% |
6007 |
\def\thesubsection {\thesection.\arabic{subsection}}% |
6008 |
\def\p@subsubsection {}% |
6009 |
\def\thesubsubsection {\thesubsection.\arabic{subsubsection}}% |
6010 |
}{}% |
6011 |
}% |
6012 |
\AtEndOfClass{% |
6013 |
\appdef\class@documenthook{% |
6014 |
\defaults@hook |
6015 |
}% |
6016 |
}% |
6017 |
\@ifxundefined\defaults@hook{\let\defaults@hook\@empty}{}% |
6018 |
\endinput |
6019 |
%% |
6020 |
%% End of file `revtex4.cls'. |