~i-taylor/maus/map-base

« back to all changes in this revision

Viewing changes to doc/doc_src/detectors/tracker/01-Current/99-Styles/revtex4-1/revtex4-1-tds/tex/latex/revtex/revtex4-1.cls

  • Committer: Ian Taylor
  • Date: 2013-10-22 15:26:19 UTC
  • mfrom: (912.1.93 merge)
  • Revision ID: i.taylor@warwick.ac.uk-20131022152619-bv3mfc3dd1tnyqoy
Merging with current merge branch.

Show diffs side-by-side

added added

removed removed

Lines of Context:
 
1
%%
 
2
%% This is file `revtex4-1.cls',
 
3
%% generated with the docstrip utility.
 
4
%%
 
5
%% The original source files were:
 
6
%%
 
7
%% revtex4-1.dtx  (with options: `kernel')
 
8
%% ltxutil.dtx  (with options: `kernel')
 
9
%% ltxfront.dtx  (with options: `kernel')
 
10
%% ltxgrid.dtx  (with options: `kernel')
 
11
%% revtex4-1.dtx  (with options: `options')
 
12
%% ltxutil.dtx  (with options: `options')
 
13
%% ltxfront.dtx  (with options: `options')
 
14
%% ltxgrid.dtx  (with options: `options')
 
15
%% revtex4-1.dtx  (with options: `package')
 
16
%% 
 
17
%% This file is part of the APS files in the REVTeX 4 distribution.
 
18
%% For the version number, search on the string 
 
19
%% Original version by David Carlisle
 
20
%% Modified by Arthur Ogawa (mailto:arthur_ogawa at sbcglobal dot net)
 
21
%% 
 
22
%% Copyright (c) 2009 The American Physical Society.
 
23
%% http://publish.aps.org/revtex4/
 
24
%% mailto:revtex4@aps.org
 
25
%% 
 
26
%% See the REVTeX 4 README file for restrictions and more information.
 
27
%% 
 
28
\NeedsTeXFormat{LaTeX2e}[1996/12/01]%
 
29
\ProvidesClass{revtex4-1}
 
30
 [2010/07/25/20:33:00 4.1r (http://publish.aps.org/revtex4/ for documentation)]% \fileversion
 
31
\let\class@name\@gtempa
 
32
\GenericInfo{}{\space
 
33
 Copyright (c) 2009 The American Physical Society.^^J
 
34
 mailto:revtex@aps.org^^J
 
35
 Licensed under the LPPL:^^Jhttp://www.ctan.org/tex-archive/macros/latex/base/lppl.txt^^J
 
36
 Arthur Ogawa <arthur_ogawa at sbcglobal dot net>^^J
 
37
 Based on work by David Carlisle <david at dcarlisle.demon.co.uk>%
 
38
 \@gobble
 
39
}%
 
40
\if@compatibility
 
41
  \edef\reserved@a{\errhelp{%
 
42
   Change your \string\documentstyle\space statement to
 
43
   \string\documentclass\space and rerun.
 
44
  }}\reserved@a
 
45
  \errmessage{You cannot run \class@name\space in compatability mode}%
 
46
  \expandafter\@@end
 
47
\fi
 
48
\typeout{%
 
49
ltxutil%
 
50
 [2010/07/25/20:33:00 4.1r utilities package (portions licensed from W. E. Baxter web at superscript.com)]% \fileversion
 
51
}%
 
52
\def\class@err#1{\ClassError{\class@name}{#1}\@eha}%
 
53
\def\class@warn#1{\ClassWarningNoLine{\class@name}{#1}}%
 
54
\def\class@info#1{\ClassInfo{\class@name}{#1}}%
 
55
\def\obsolete@command#1{%
 
56
 \class@warn@end{Command \string#1\space is obsolete.^^JPlease remove from your document}%
 
57
 \global\let#1\@empty
 
58
 #1%
 
59
}%
 
60
\def\replace@command#1#2{%
 
61
 \class@warn@end{Command \string#1\space is obsolete;^^JUse \string#2\space instead}%
 
62
 \global\let#1#2%
 
63
 #1%
 
64
}%
 
65
\def\replace@environment#1#2{%
 
66
 \class@warn@end{Environment #1 is obsolete;^^JUse #2 instead}%
 
67
 \glet@environment{#1}{#2}%
 
68
 \@nameuse{#1}%
 
69
}%
 
70
\def\incompatible@package#1{%
 
71
 \@ifpackageloaded{#1}{%
 
72
  \def\@tempa{I cannot continue. You must remove the \string\usepackage\ statement that caused that package to be loaded.}%
 
73
  \ClassError{\class@name}{The #1 package cannot be used with \class@name}%
 
74
  \@tempa\stop
 
75
 }{%
 
76
  \class@info{#1 was not loaded (OK!)}%
 
77
 }%
 
78
}%
 
79
\def\class@warn@end#1{%
 
80
 \gappdef\class@enddocumenthook{\class@warn{#1}}%
 
81
}%
 
82
\ifx\undefined\class@name
 
83
 \def\class@name{ltxutil}%
 
84
 \class@warn{You should define the class name before reading in this package. Using default}%
 
85
\fi
 
86
\def\t@{to}%
 
87
\dimendef\dimen@iii\thr@@
 
88
\def\halignt@{\halign\t@}%
 
89
\chardef\f@ur=4\relax
 
90
\chardef\cat@letter=11\relax
 
91
\chardef\other=12\relax
 
92
\def\let@environment#1#2{%
 
93
 \expandafter\let
 
94
 \csname#1\expandafter\endcsname\csname#2\endcsname
 
95
 \expandafter\let
 
96
 \csname end#1\expandafter\endcsname\csname end#2\endcsname
 
97
}%
 
98
\def\glet@environment#1#2{%
 
99
 \global\expandafter\let
 
100
 \csname#1\expandafter\endcsname\csname#2\endcsname
 
101
 \global\expandafter\let
 
102
 \csname end#1\expandafter\endcsname\csname end#2\endcsname
 
103
}%
 
104
\newcommand\tracingplain{%
 
105
 \tracingonline\z@\tracingcommands\z@\tracingstats\z@
 
106
 \tracingpages\z@\tracingoutput\z@\tracinglostchars\@ne
 
107
 \tracingmacros\z@\tracingparagraphs\z@\tracingrestores\z@
 
108
 \showboxbreadth5\showboxdepth3\relax %\errorstopmode
 
109
 }%
 
110
\newcommand\traceoutput{%
 
111
 \appdef\@resetactivechars{\showoutput}%
 
112
}%
 
113
\newcommand\say[1]{\typeout{<\noexpand#1=\meaning#1>}}%
 
114
\newcommand\saythe[1]{\typeout{<\noexpand#1=\the#1>}}%
 
115
\def\fullinterlineskip{\prevdepth\z@}%
 
116
\countdef\count@i\@ne
 
117
\countdef\count@ii\tw@
 
118
\long\def\prepdef#1#2{%
 
119
 \@ifxundefined#1{\toks@{}}{\toks@\expandafter{#1}}%
 
120
 \toks@ii{#2}%
 
121
 \edef#1{\the\toks@ii\the\toks@}%
 
122
}%
 
123
\long\def\appdef#1#2{%
 
124
 \@ifxundefined#1{\toks@{}}{\toks@\expandafter{#1}}%
 
125
 \toks@ii{#2}%
 
126
 \edef#1{\the\toks@\the\toks@ii}%
 
127
}%
 
128
\long\def\gappdef#1#2{%
 
129
 \@ifxundefined#1{\toks@{}}{\toks@\expandafter{#1}}%
 
130
 \toks@ii{#2}%
 
131
 \global\edef#1{\the\toks@\the\toks@ii}%
 
132
}%
 
133
\long\def\appdef@val#1#2{%
 
134
 \appdef#1{{#2}}%
 
135
}%
 
136
\long\def\appdef@e#1#2{%
 
137
 \expandafter\appdef
 
138
 \expandafter#1%
 
139
 \expandafter{#2}%
 
140
}%
 
141
\long\def\appdef@eval#1#2{%
 
142
 \expandafter\appdef@val
 
143
 \expandafter#1%
 
144
 \expandafter{#2}%
 
145
}%
 
146
\toksdef\toks@ii=\tw@
 
147
\long\def\@ifxundefined#1{\@ifx{\undefined#1}}%
 
148
\long\def\@ifnotrelax#1#2#3{\@ifx{\relax#1}{#3}{#2}}%
 
149
\long\def\@argswap#1#2{#2#1}%
 
150
\long\def\@argswap@val#1#2{#2{#1}}%
 
151
\def\@ifxundefined@cs#1{\expandafter\@ifx\expandafter{\csname#1\endcsname\relax}}%
 
152
\def\@boolean#1#2{%
 
153
  \long\def#1{%
 
154
    #2% \if<something>
 
155
      \expandafter\true@sw
 
156
    \else
 
157
      \expandafter\false@sw
 
158
    \fi
 
159
  }%
 
160
}%
 
161
\def\@boole@def#1#{\@boolean{#1}}% Implicit #2
 
162
\def\@booleantrue#1{\let#1\true@sw}%
 
163
\def\@booleanfalse#1{\let#1\false@sw}%
 
164
\@boole@def\@ifx#1{\ifx#1}%
 
165
\@boole@def\@ifx@empty#1{\ifx\@empty#1}%
 
166
\@boole@def\@if@empty#1{\if!#1!}%
 
167
\def\@if@sw#1#2{#1\expandafter\true@sw\else\expandafter\false@sw#2}%
 
168
\@boole@def\@ifdim#1{\ifdim#1}%
 
169
\@boole@def\@ifeof#1{\ifeof#1}%
 
170
\@boole@def\@ifhbox#1{\ifhbox#1}%
 
171
\@boole@def\@ifhmode{\ifhmode}%
 
172
\@boole@def\@ifinner{\ifinner}%
 
173
\@boole@def\@ifmmode{\ifmmode}%
 
174
\@boole@def\@ifnum#1{\ifnum#1}%
 
175
\@boole@def\@ifodd#1{\ifodd#1}%
 
176
\@boole@def\@ifvbox#1{\ifvbox#1}%
 
177
\@boole@def\@ifvmode{\ifvmode}%
 
178
\@boole@def\@ifvoid#1{\ifvoid#1}%
 
179
\long\def\true@sw#1#2{#1}%
 
180
\long\def\false@sw#1#2{#2}%
 
181
\long\def\loopuntil#1{#1{}{\loopuntil{#1}}}%
 
182
\long\def\loopwhile#1{#1{\loopwhile{#1}}{}}%
 
183
\def\@provide#1{%
 
184
 \@ifx{\undefined#1}{\true@sw}{\@ifx{\relax#1}{\true@sw}{\false@sw}}%
 
185
 {\def#1}{\def\j@nk}%
 
186
}%
 
187
\prepdef\document{%
 
188
 \endgroup
 
189
 \document@inithook
 
190
 \true@sw{}%
 
191
}%
 
192
\let\document@inithook\@empty
 
193
\appdef\document@inithook{%
 
194
 \AtBeginDocument{\class@documenthook}%
 
195
}%
 
196
\AtEndDocument{%
 
197
 \class@enddocumenthook
 
198
}%
 
199
\let\class@documenthook\@empty
 
200
\let\class@enddocumenthook\@empty
 
201
\def\enddocument{%
 
202
 \let\AtEndDocument\@firstofone
 
203
 \@enddocumenthook
 
204
 \@checkend{document}%
 
205
 \clear@document
 
206
 \check@aux
 
207
 \deadcycles\z@
 
208
 \@@end
 
209
}%
 
210
\def\check@aux{\do@check@aux}%
 
211
\def\do@check@aux{%
 
212
 \@if@sw\if@filesw\fi{%
 
213
  \immediate\closeout\@mainaux
 
214
  \let\@setckpt\@gobbletwo
 
215
  \let\@newl@bel\@testdef
 
216
  \@tempswafalse
 
217
  \makeatletter
 
218
  \input\jobname.aux\relax
 
219
 }{}%
 
220
 \@dofilelist
 
221
 \@ifdim{\font@submax >\fontsubfuzz\relax}{%
 
222
  \@font@warning{%
 
223
   Size substitutions with differences\MessageBreak
 
224
   up to \font@submax\space have occured.\@gobbletwo
 
225
  }%
 
226
 }{}%
 
227
 \@defaultsubs
 
228
 \@refundefined
 
229
 \@if@sw\if@filesw\fi{%
 
230
  \@ifx{\@multiplelabels\relax}{%
 
231
   \@if@sw\if@tempswa\fi{%
 
232
    \@latex@warning@no@line{%
 
233
     Label(s) may have changed.
 
234
     Rerun to get cross-references right
 
235
    }%
 
236
   }{}%
 
237
  }{%
 
238
    \@multiplelabels
 
239
  }%
 
240
 }{}%
 
241
}%
 
242
\def\clear@document{%
 
243
 \clearpage
 
244
 \do@output@cclv{%
 
245
  \Call@AfterLastShipout
 
246
 }%
 
247
}%
 
248
\appdef\class@documenthook{%
 
249
 \providecommand\Call@AfterLastShipout{}%
 
250
}%
 
251
\def\class@extension#1#2{%
 
252
 \IfFileExists{#1.#2}{%
 
253
  \expandafter\class@extensionfile\csname ver@\@currname.\@currext\endcsname{#1}#2%
 
254
 }{%
 
255
  \csname rtx@#1\endcsname
 
256
 }%
 
257
}%
 
258
\def\class@extensionfile#1#2#3{%
 
259
 \@pass@ptions#3\@unusedoptionlist{#2}%
 
260
 \global\let\@unusedoptionlist\@empty
 
261
 \expandafter\class@ext@hook\csname#2.#3-h@@k\endcsname#1{#2}#3%
 
262
}%
 
263
\def\class@ext@hook#1#2#3#4{%
 
264
 \@pushfilename@ltx
 
265
 \makeatletter
 
266
 \let\CurrentOption\@empty
 
267
 \@reset@ptions
 
268
 \let#1\@empty
 
269
 \xdef\@currname{#3}%
 
270
 \global\let\@currext#4%
 
271
 \global\let\@clsextension\@currext
 
272
 \input{#3.#4}%
 
273
 \@ifl@ter#4{#3}#2{%
 
274
  \class@info{Class extension later than: #2}%
 
275
 }{%
 
276
  \class@info{Class extension earlier: #2}%
 
277
  \@@end
 
278
 }%
 
279
 #1%
 
280
 \let#1\@undefined
 
281
 \expandafter\@p@pfilename@ltx\@currnamestack@ltx\@nil
 
282
 \@reset@ptions
 
283
}%
 
284
\def\@pushfilename@ltx{%
 
285
 \xdef\@currnamestack@ltx{%
 
286
  {\@currname}%
 
287
  {\@currext}%
 
288
  {\@clsextension}%
 
289
  {\the\catcode`\@}%
 
290
  \@currnamestack@ltx
 
291
 }%
 
292
}%
 
293
\def\@p@pfilename@ltx#1#2#3#4#5\@nil{%
 
294
 \gdef\@currname{#1}%
 
295
 \gdef\@currext{#2}%
 
296
 \gdef\@clsextension{#3}%
 
297
 \catcode`\@#4\relax
 
298
 \gdef\@currnamestack@ltx{#5}%
 
299
}%
 
300
\global\let\@currnamestack@ltx\@empty
 
301
\def\flushing{%
 
302
  \let\\\@normalcr
 
303
  \leftskip\z@skip
 
304
  \rightskip\z@skip
 
305
  \@rightskip\z@skip
 
306
  \parfillskip\@flushglue
 
307
}%
 
308
\expandafter\DeclareRobustCommand\expandafter\@centercr\expandafter{\@centercr}%
 
309
\def\eqnarray@LaTeX{%
 
310
   \stepcounter{equation}%
 
311
   \def\@currentlabel{\p@equation\theequation}%
 
312
   \global\@eqnswtrue
 
313
   \m@th
 
314
   \global\@eqcnt\z@
 
315
   \tabskip\@centering
 
316
   \let\\\@eqncr
 
317
   $$\everycr{}\halign to\displaywidth\bgroup
 
318
       \hskip\@centering$\displaystyle\tabskip\z@skip{##}$\@eqnsel
 
319
      &\global\@eqcnt\@ne\hskip \tw@\arraycolsep \hfil${##}$\hfil
 
320
      &\global\@eqcnt\tw@ \hskip \tw@\arraycolsep
 
321
         $\displaystyle{##}$\hfil\tabskip\@centering
 
322
      &\global\@eqcnt\thr@@ \hb@xt@\z@\bgroup\hss##\egroup
 
323
         \tabskip\z@skip
 
324
      \cr
 
325
}
 
326
\long\def\eqnarray@fleqn@fixed{%
 
327
 \stepcounter{equation}\def\@currentlabel{\p@equation\theequation}%
 
328
 \global\@eqnswtrue\m@th\global\@eqcnt\z@
 
329
 \tabskip\ltx@mathindent
 
330
 \let\\=\@eqncr
 
331
 \setlength\abovedisplayskip{\topsep}%
 
332
 \ifvmode\addtolength\abovedisplayskip{\partopsep}\fi
 
333
 \addtolength\abovedisplayskip{\parskip}%
 
334
 \setlength\belowdisplayskip{\abovedisplayskip}%
 
335
 \setlength\belowdisplayshortskip{\abovedisplayskip}%
 
336
 \setlength\abovedisplayshortskip{\abovedisplayskip}%
 
337
 $$%
 
338
 \everycr{}%
 
339
 \halignt@\linewidth\bgroup
 
340
  \hskip\@centering$\displaystyle\tabskip\z@skip{##}$\@eqnsel
 
341
  &\global\@eqcnt\@ne
 
342
   \hskip\tw@\eqncolsep
 
343
   \hfil${{}##{}}$\hfil
 
344
  &\global\@eqcnt\tw@
 
345
   \hskip\tw@\eqncolsep
 
346
   $\displaystyle{##}$\hfil\tabskip\@centering
 
347
  &\global\@eqcnt\thr@@\hb@xt@\z@\bgroup\hss##\egroup
 
348
   \tabskip\z@skip
 
349
  \cr
 
350
}%
 
351
\@ifx{\eqnarray\eqnarray@LaTeX}{%
 
352
 \class@info{Repairing broken LaTeX eqnarray}%
 
353
 \let\eqnarray\eqnarray@fleqn@fixed
 
354
 \newlength\eqncolsep
 
355
 \setlength\eqncolsep\z@
 
356
 \let\eqnarray@LaTeX\relax
 
357
 \let\eqnarray@fleqn@fixed\relax
 
358
}{}%
 
359
\def\ltx@mathindent{\@centering}%
 
360
\def\set@eqnarray@skips{}%
 
361
\def\prep@math{%
 
362
 \@ifvmode{\everypar{{\setbox\z@\lastbox}}}{}%
 
363
}%
 
364
\def\prep@math@patch{%
 
365
 \prepdef\equation{\prep@math}%
 
366
 \prepdef\eqnarray{\prep@math}%
 
367
}%
 
368
\def\footnote{\@ifnextchar[\ltx@xfootnote\ltx@yfootnote}%
 
369
\def\ltx@xfootnote[#1]{%
 
370
 \ltx@def@footproc\ltx@footmark[#1]%
 
371
 \expandafter\ltx@foottext\expandafter{\the\csname c@\@mpfn\endcsname}%
 
372
}%
 
373
\def\ltx@yfootnote{%
 
374
 \ltx@stp@footproc\ltx@footmark
 
375
 \expandafter\ltx@foottext\expandafter{\the\csname c@\@mpfn\endcsname}%
 
376
}%
 
377
\def\footnotemark{\@ifnextchar[\ltx@xfootmark\ltx@yfootmark}%
 
378
\def\ltx@xfootmark{\ltx@def@footproc\ltx@footmark}%
 
379
\def\ltx@yfootmark{\ltx@stp@footproc\ltx@footmark}%
 
380
\def\ltx@footmark#1{%
 
381
 \leavevmode
 
382
 \ifhmode\edef\@x@sf{\the\spacefactor}\nobreak\fi
 
383
 \begingroup
 
384
  \expandafter\ltx@make@current@footnote\expandafter{\@mpfn}{#1}%
 
385
  \expandafter\@argswap@val\expandafter{\Hy@footnote@currentHref}{\hyper@linkstart {link}}%
 
386
   \@makefnmark
 
387
  \hyper@linkend
 
388
 \endgroup
 
389
 \ifhmode\spacefactor\@x@sf\fi
 
390
 \relax
 
391
}%
 
392
\def\footnotetext{\@ifnextchar[\ltx@xfoottext\ltx@yfoottext}%
 
393
\def\ltx@xfoottext{\ltx@def@footproc\ltx@foottext}%
 
394
\def\ltx@yfoottext{\ltx@stp@footproc\ltx@foottext}%
 
395
\long\def\ltx@foottext#1#2{%
 
396
 \begingroup
 
397
  \expandafter\ltx@make@current@footnote\expandafter{\@mpfn}{#1}%
 
398
  \@footnotetext{#2}%
 
399
 \endgroup
 
400
}%
 
401
\def\ltx@def@footproc#1[#2]{%
 
402
 \begingroup
 
403
   \csname c@\@mpfn\endcsname #2\relax
 
404
   \unrestored@protected@xdef\@thefnmark{\thempfn}%
 
405
 \expandafter\endgroup
 
406
 \expandafter#1%
 
407
 \expandafter{\the\csname c@\@mpfn\endcsname}%
 
408
}%
 
409
\def\ltx@stp@footproc#1{%
 
410
 \expandafter\stepcounter\expandafter{\@mpfn}%
 
411
 \protected@xdef\@thefnmark{\thempfn}%
 
412
 \expandafter#1%
 
413
 \expandafter{\the\csname c@\@mpfn\endcsname}%
 
414
}%
 
415
\appdef\class@documenthook{%
 
416
 \let\footnote@latex\footnote
 
417
 \@ifpackageloaded{hyperref}{}{%
 
418
  \let\H@@footnotetext\@footnotetext
 
419
  \def\@footnotetext{\H@@footnotetext}%
 
420
  \let\H@@mpfootnotetext\@mpfootnotetext
 
421
  \def\@mpfootnotetext{\H@@mpfootnotetext}%
 
422
 }%
 
423
}%
 
424
\def\ltx@make@current@footnote#1#2{%
 
425
  \csname c@#1\endcsname#2\relax
 
426
  \protected@edef\Hy@footnote@currentHref{\@currentHref-#1.\csname the#1\endcsname}%
 
427
}%
 
428
\def\thempfootnote@latex{{\itshape \@alph \c@mpfootnote }}%
 
429
\def\ltx@thempfootnote{\@alph\c@mpfootnote}%
 
430
\@ifx{\thempfootnote\thempfootnote@latex}{%
 
431
 \class@info{Repairing hyperref-unfriendly LaTeX definition of \string\mpfootnote}%
 
432
 \let\thempfootnote\ltx@thempfootnote
 
433
}{}%
 
434
\def\@makefnmark{%
 
435
 \hbox{%
 
436
  \@textsuperscript{%
 
437
   \normalfont\itshape\@thefnmark
 
438
  }%
 
439
 }%
 
440
}%
 
441
\long\def\@footnotetext{%
 
442
 \insert\footins\bgroup
 
443
  \make@footnotetext
 
444
}%
 
445
\long\def\@mpfootnotetext{%
 
446
 \minipagefootnote@pick
 
447
  \make@footnotetext
 
448
}%
 
449
\long\def\make@footnotetext#1{%
 
450
  \set@footnotefont
 
451
  \set@footnotewidth
 
452
  \@parboxrestore
 
453
  \protected@edef\@currentlabel{%
 
454
   \csname p@\@mpfn\endcsname\@thefnmark
 
455
  }%
 
456
  \color@begingroup
 
457
   \@makefntext{%
 
458
    \rule\z@\footnotesep\ignorespaces#1%
 
459
    \@finalstrut\strutbox\vadjust{\vskip\z@skip}%
 
460
   }%
 
461
  \color@endgroup
 
462
 \minipagefootnote@drop
 
463
}%
 
464
\def\set@footnotefont{%
 
465
  \reset@font\footnotesize
 
466
  \interlinepenalty\interfootnotelinepenalty
 
467
  \splittopskip\footnotesep
 
468
  \splitmaxdepth\dp\strutbox
 
469
}%
 
470
\def\set@footnotewidth{\set@footnotewidth@one}%
 
471
\def\robustify@contents{%
 
472
 \let \label \@gobble
 
473
 \let \index \@gobble
 
474
 \let \glossary \@gobble
 
475
 \let\footnote \@gobble
 
476
 \def\({\string\(}%
 
477
 \def\){\string\)}%
 
478
 \def\\{\string\\}%
 
479
}%
 
480
\long\def\addtocontents#1#2{%
 
481
 \protected@write\@auxout{\robustify@contents}{\string \@writefile {#1}{#2}}%
 
482
}%
 
483
\def\addcontentsline#1#2#3{%
 
484
 \addtocontents{#1}{%
 
485
  \protect\contentsline{#2}{#3}{\thepage}{}%
 
486
 }%
 
487
}%
 
488
\def\label#1{%
 
489
 \@bsphack
 
490
  \protected@write\@auxout{}{%
 
491
   \string\newlabel{#1}{{\@currentlabel}{\thepage}{}{}{}}%
 
492
  }%
 
493
 \@esphack
 
494
}%
 
495
\def\ltx@contentsline#1{%
 
496
 \expandafter\@ifnotrelax\csname l@#1\endcsname{}{%
 
497
  \expandafter\let\csname l@#1\endcsname\@gobbletwo
 
498
 }%
 
499
 \contentsline@latex{#1}%
 
500
}%
 
501
\appdef\document@inithook{%
 
502
 \let\contentsline@latex\contentsline
 
503
 \let\contentsline\ltx@contentsline
 
504
}%
 
505
\appdef\class@documenthook{%
 
506
 \prepdef\caption{\minipagefootnote@here}%
 
507
}%
 
508
\def\minipagefootnote@init{%
 
509
 \setbox\@mpfootins\box\voidb@x
 
510
}%
 
511
\def\minipagefootnote@pick{%
 
512
 \global\setbox\@mpfootins\vbox\bgroup
 
513
  \unvbox\@mpfootins
 
514
}%
 
515
\def\minipagefootnote@drop{%
 
516
 \egroup
 
517
}%
 
518
\def\minipagefootnote@here{%
 
519
    \par
 
520
    \@ifvoid\@mpfootins{}{%
 
521
      \vskip\skip\@mpfootins
 
522
      \fullinterlineskip
 
523
      \@ifinner{%
 
524
       \vtop{\unvcopy\@mpfootins}%
 
525
       {\setbox\z@\lastbox}%
 
526
      }{}%
 
527
      \unvbox\@mpfootins
 
528
    }%
 
529
}%
 
530
\def\minipagefootnote@foot{%
 
531
 \@ifvoid\@mpfootins{}{%
 
532
  \insert\footins\bgroup\unvbox\@mpfootins\egroup
 
533
 }%
 
534
}%
 
535
\def\endminipage{%
 
536
    \par
 
537
    \unskip
 
538
    \minipagefootnote@here
 
539
    \@minipagefalse   %% added 24 May 89
 
540
  \color@endgroup
 
541
  \egroup
 
542
  \expandafter\@iiiparbox\@mpargs{\unvbox\@tempboxa}%
 
543
}%
 
544
\@booleantrue\floats@sw
 
545
\let\@xfloat@LaTeX\@xfloat
 
546
\def\@xfloat#1[#2]{%
 
547
  \@xfloat@prep
 
548
  \@nameuse{fp@proc@#2}%
 
549
  \floats@sw{\@xfloat@LaTeX{#1}[#2]}{\@xfloat@anchored{#1}[]}%
 
550
}%
 
551
\def\@xfloat@prep{%
 
552
  \ltx@footnote@pop
 
553
  \def\@mpfn{mpfootnote}%
 
554
  \def\thempfn{\thempfootnote}%
 
555
  \c@mpfootnote\z@
 
556
  \let\H@@footnotetext\H@@mpfootnotetext
 
557
}%
 
558
\let\ltx@footnote@pop\@empty
 
559
\def\@xfloat@anchored#1[#2]{%
 
560
 \def\@captype{#1}%
 
561
 \begin@float@pagebreak
 
562
  \let\end@float\end@float@anchored
 
563
  \let\end@dblfloat\end@float@anchored
 
564
        \hsize\columnwidth
 
565
        \@parboxrestore
 
566
        \@floatboxreset
 
567
  \minipagefootnote@init
 
568
}%
 
569
\def\end@float@anchored{%
 
570
  \minipagefootnote@here
 
571
  \par\vskip\z@skip
 
572
 \par
 
573
 \end@float@pagebreak
 
574
}%
 
575
\def\begin@float@pagebreak{\par\addvspace\intextsep}%
 
576
\def\end@float@pagebreak{\par\addvspace\intextsep}%
 
577
\def\@mpmakefntext#1{%
 
578
 \parindent=1em
 
579
 \noindent
 
580
 \hb@xt@1em{\hss\@makefnmark}%
 
581
 #1%
 
582
}%
 
583
\def\do@if@floats#1#2{%
 
584
 \floats@sw{}{%
 
585
  \expandafter\newwrite
 
586
              \csname#1write\endcsname
 
587
  \expandafter\def
 
588
              \csname#1@stream\endcsname{\jobname#2}%
 
589
  \expandafter\immediate
 
590
  \expandafter\openout
 
591
              \csname#1write\endcsname
 
592
              \csname#1@stream\endcsname\relax
 
593
  \@ifxundefined\@float@LaTeX{%
 
594
   \let\@float@LaTeX\@float
 
595
   \let\@dblfloat@LaTeX\@dblfloat
 
596
   \let\@float\write@float
 
597
   \let\@dblfloat\write@floats
 
598
  }{}%
 
599
  \let@environment{#1@float}{#1}%
 
600
  \let@environment{#1@floats}{#1*}%
 
601
  \@ifxundefined@cs{#1@write}{}{%
 
602
   \let@environment{#1}{#1@write}%
 
603
  }%
 
604
 }%
 
605
}%
 
606
\def\triggerpar{\leavevmode\@@par}%
 
607
\def\oneapage{\def\begin@float@pagebreak{\newpage}\def\end@float@pagebreak{\newpage}}%
 
608
\def\print@float#1#2{%
 
609
 \lengthcheck@sw{%
 
610
  \total@float{#1}%
 
611
 }{}%
 
612
 \@ifxundefined@cs{#1write}{}{%
 
613
  \begingroup
 
614
   \@booleanfalse\floats@sw
 
615
   #2%
 
616
   \raggedbottom
 
617
   \def\array@default{v}% floats must
 
618
   \let\@float\@float@LaTeX
 
619
   \let\@dblfloat\@dblfloat@LaTeX
 
620
   \let\trigger@float@par\triggerpar
 
621
   \let@environment{#1}{#1@float}%
 
622
   \let@environment{#1*}{#1@floats}%
 
623
   \expandafter\prepdef\csname#1\endcsname{\trigger@float@par}%
 
624
   \expandafter\prepdef\csname#1*\endcsname{\trigger@float@par}%
 
625
   \@namedef{fps@#1}{h!}%
 
626
   \expandafter\immediate
 
627
   \expandafter\closeout
 
628
               \csname#1write\endcsname
 
629
   \everypar{%
 
630
    \global\let\trigger@float@par\relax
 
631
    \global\everypar{}\setbox\z@\lastbox
 
632
    \@ifxundefined@cs{#1sname}{}{%
 
633
     \begin@float@pagebreak
 
634
     \expandafter\section
 
635
     \expandafter*%
 
636
     \expandafter{%
 
637
                  \csname#1sname\endcsname
 
638
                 }%
 
639
    }%
 
640
   }%
 
641
   \input{\csname#1@stream\endcsname}%
 
642
  \endgroup
 
643
  \global\expandafter\let\csname#1write\endcsname\relax
 
644
 }%
 
645
}%
 
646
\chardef\@xvi=16\relax
 
647
\mathchardef\@twopowerfourteen="4000
 
648
\mathchardef\@twopowertwo="4
 
649
\def\tally@float#1{%
 
650
 \begingroup
 
651
  \@tempcnta\count\@currbox
 
652
  \divide\@tempcnta\@xxxii
 
653
  \multiply\@tempcnta\@xxxii
 
654
  \advance\count\@currbox-\@tempcnta
 
655
  \divide\@tempcnta\@xxxii
 
656
  \@ifnum{\count\@currbox>\@xvi}{%
 
657
   \advance\count\@currbox-\@xvi\@booleantrue\@temp@sw
 
658
  }{%
 
659
   \@booleanfalse\@temp@sw
 
660
  }%
 
661
  \show@box@size@sw{%
 
662
   \class@info{Float #1
 
663
    (\the\@tempcnta)[\@temp@sw{16+}{}\the\count\@currbox]^^J%
 
664
    (\the\ht\@currbox+\the\dp\@currbox)X\the\wd\@currbox
 
665
   }%
 
666
  }{}%
 
667
 \endgroup
 
668
 \expandafter\let
 
669
 \expandafter\@tempa
 
670
             \csname fbox@\csname ftype@#1\endcsname\endcsname
 
671
 \@ifnotrelax\@tempa{%
 
672
  \@ifhbox\@tempa{%
 
673
   \setbox\@tempboxa\vbox{\unvcopy\@currbox\hrule}%
 
674
   \dimen@\ht\@tempboxa
 
675
   \divide\dimen@\@twopowerfourteen
 
676
   \@ifdim{\wd\@tempboxa<\textwidth}{%
 
677
    \advance\dimen@\ht\@tempa
 
678
    \global\ht\@tempa\dimen@
 
679
   }{%
 
680
    \advance\dimen@\dp\@tempa
 
681
    \global\dp\@tempa\dimen@
 
682
   }%
 
683
  }{}%
 
684
 }{}%
 
685
}%
 
686
\def\total@float#1{%
 
687
 \expandafter\let
 
688
 \expandafter\@tempa
 
689
             \csname fbox@\csname ftype@#1\endcsname\endcsname
 
690
 \@ifnotrelax\@tempa{%
 
691
  \@ifhbox\@tempa{%
 
692
   \@tempdima\the\ht\@tempa\divide\@tempdima\@twopowertwo\@tempcnta\@tempdima
 
693
   \@tempdimb\the\dp\@tempa\divide\@tempdimb\@twopowertwo\@tempcntb\@tempdimb
 
694
   \class@info{Total #1: Column(\the\@tempcnta pt), Page(\the\@tempcnta pt)}%
 
695
  }{}%
 
696
 }{}%
 
697
}%
 
698
\def\write@float#1{\write@@float{#1}{#1}}%
 
699
\def\endwrite@float{\@Esphack}%
 
700
\def\write@floats#1{\write@@float{#1*}{#1}}%
 
701
\def\endwrite@floats{\@Esphack}%
 
702
\def\write@@float#1#2{%
 
703
  \ifhmode
 
704
     \@bsphack
 
705
  \fi
 
706
  \chardef\@tempc\csname#2write\endcsname
 
707
  \toks@{\begin{#1}}%
 
708
  \def\@tempb{#1}%
 
709
  \expandafter\let\csname end#1\endcsname\endwrite@float
 
710
  \catcode`\^^M\active
 
711
  \@makeother\{\@makeother\}\@makeother\%
 
712
  \write@floatline
 
713
}%
 
714
\begingroup
 
715
 \catcode`\[\the\catcode`\{\catcode`\]\the\catcode`\}\@makeother\{\@makeother\}%
 
716
 \gdef\float@end@tag#1\end{#2}#3\@nul[%
 
717
  \def\@tempa[#2]%
 
718
  \@ifx[\@tempa\@tempb][\end[#2]][\write@floatline]%
 
719
 ]%
 
720
 \obeylines%
 
721
 \gdef\write@floatline#1^^M[%
 
722
  \begingroup%
 
723
   \newlinechar`\^^M%
 
724
   \toks@\expandafter[\the\toks@#1]\immediate\write\@tempc[\the\toks@]%
 
725
  \endgroup%
 
726
  \toks@[]%
 
727
  \float@end@tag#1\end{}\@nul%
 
728
 ]%
 
729
\endgroup
 
730
\def\@alph#1{\ifcase#1\or a\or b\or c\or d\else\@ialph{#1}\fi}
 
731
\def\@ialph#1{\ifcase#1\or \or \or \or \or e\or f\or g\or h\or i\or j\or
 
732
  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
 
733
  y\or z\or aa\or bb\or cc\or dd\or ee\or ff\or gg\or hh\or ii\or jj\or
 
734
  kk\or ll\or mm\or nn\or oo\or pp\or qq\or rr\or ss\or tt\or uu\or
 
735
  vv\or ww\or xx\or yy\or zz\else\@ctrerr\fi}
 
736
\def\@startsection#1#2#3#4#5#6{%
 
737
 \@startsection@hook
 
738
 \if@noskipsec \leavevmode \fi
 
739
 \par
 
740
 \@tempskipa #4\relax
 
741
 \@afterindenttrue
 
742
 \ifdim \@tempskipa <\z@
 
743
  \@tempskipa -\@tempskipa \@afterindentfalse
 
744
 \fi
 
745
 \if@nobreak
 
746
  \everypar{}%
 
747
 \else
 
748
  \addpenalty\@secpenalty\addvspace\@tempskipa
 
749
 \fi
 
750
 \@ifstar
 
751
  {\@dblarg{\@ssect@ltx{#1}{#2}{#3}{#4}{#5}{#6}}}%
 
752
  {\@dblarg{\@sect@ltx {#1}{#2}{#3}{#4}{#5}{#6}}}%
 
753
}%
 
754
\def\@startsection@hook{}%
 
755
\class@info{Repairing broken LateX \string\@sect}%
 
756
\def\@sect@ltx#1#2#3#4#5#6[#7]#8{%
 
757
  \@ifnum{#2>\c@secnumdepth}{%
 
758
    \def\H@svsec{\phantomsection}%
 
759
    \let\@svsec\@empty
 
760
  }{%
 
761
    \H@refstepcounter{#1}%
 
762
    \def\H@svsec{%
 
763
     \phantomsection
 
764
    }%
 
765
    \protected@edef\@svsec{{#1}}%
 
766
    \@ifundefined{@#1cntformat}{%
 
767
     \prepdef\@svsec\@seccntformat
 
768
    }{%
 
769
     \expandafter\prepdef
 
770
     \expandafter\@svsec
 
771
                 \csname @#1cntformat\endcsname
 
772
    }%
 
773
  }%
 
774
  \@tempskipa #5\relax
 
775
  \@ifdim{\@tempskipa>\z@}{%
 
776
    \begingroup
 
777
      \interlinepenalty \@M
 
778
      #6{%
 
779
       \@ifundefined{@hangfrom@#1}{\@hang@from}{\csname @hangfrom@#1\endcsname}%
 
780
       {\hskip#3\relax\H@svsec}{\@svsec}{#8}%
 
781
      }%
 
782
      \@@par
 
783
    \endgroup
 
784
    \@ifundefined{#1mark}{\@gobble}{\csname #1mark\endcsname}{#7}%
 
785
    \addcontentsline{toc}{#1}{%
 
786
      \@ifnum{#2>\c@secnumdepth}{%
 
787
       \protect\numberline{}%
 
788
      }{%
 
789
       \protect\numberline{\csname the#1\endcsname}%
 
790
      }%
 
791
      #8}%
 
792
  }{%
 
793
    \def\@svsechd{%
 
794
      #6{%
 
795
       \@ifundefined{@runin@to@#1}{\@runin@to}{\csname @runin@to@#1\endcsname}%
 
796
       {\hskip#3\relax\H@svsec}{\@svsec}{#8}%
 
797
      }%
 
798
      \@ifundefined{#1mark}{\@gobble}{\csname #1mark\endcsname}{#7}%
 
799
      \addcontentsline{toc}{#1}{%
 
800
        \@ifnum{#2>\c@secnumdepth}{%
 
801
         \protect\numberline{}%
 
802
        }{%
 
803
         \protect\numberline{\csname the#1\endcsname}%
 
804
        }%
 
805
        #8}%
 
806
    }%
 
807
  }%
 
808
  \@xsect{#5}%
 
809
}%
 
810
\def\@hang@from#1#2#3{\@hangfrom{#1#2}#3}%
 
811
\def\@runin@to #1#2#3{#1#2#3}%
 
812
\def\@ssect@ltx#1#2#3#4#5#6[#7]#8{%
 
813
  \def\H@svsec{\phantomsection}%
 
814
  \@tempskipa #5\relax
 
815
  \@ifdim{\@tempskipa>\z@}{%
 
816
    \begingroup
 
817
      \interlinepenalty \@M
 
818
      #6{%
 
819
       \@ifundefined{@hangfroms@#1}{\@hang@froms}{\csname @hangfroms@#1\endcsname}%
 
820
       {\hskip#3\relax\H@svsec}{#8}%
 
821
      }%
 
822
      \@@par
 
823
    \endgroup
 
824
    \@ifundefined{#1smark}{\@gobble}{\csname #1smark\endcsname}{#7}%
 
825
    \addcontentsline{toc}{#1}{\protect\numberline{}#8}%
 
826
  }{%
 
827
    \def\@svsechd{%
 
828
      #6{%
 
829
       \@ifundefined{@runin@tos@#1}{\@runin@tos}{\csname @runin@tos@#1\endcsname}%
 
830
       {\hskip#3\relax\H@svsec}{#8}%
 
831
      }%
 
832
      \@ifundefined{#1smark}{\@gobble}{\csname #1smark\endcsname}{#7}%
 
833
      \addcontentsline{toc}{#1}{\protect\numberline{}#8}%
 
834
    }%
 
835
  }%
 
836
  \@xsect{#5}%
 
837
}%
 
838
\def\@hang@froms#1#2{#1#2}%
 
839
\def\@runin@tos #1#2{#1#2}%
 
840
\def\init@hyperref{%
 
841
 \providecommand\phantomsection{}%
 
842
 \providecommand\hyper@makecurrent[1]{}%
 
843
 \providecommand\Hy@raisedlink[1]{}%
 
844
 \providecommand\hyper@anchorstart[1]{}%
 
845
 \providecommand\hyper@anchorend{}%
 
846
 \providecommand\hyper@linkstart[2]{}%
 
847
 \providecommand\hyper@linkend{}%
 
848
 \providecommand\@currentHref{}%
 
849
}%
 
850
\let\H@refstepcounter\refstepcounter
 
851
\appdef\document@inithook{%
 
852
 \init@hyperref
 
853
}%
 
854
\def\sec@upcase#1{\relax{#1}}%
 
855
\appdef\document@inithook{%
 
856
 \@ifpackageloaded{array}{\switch@array}{\switch@tabular}%
 
857
 \prepdef\endtabular{\endtabular@hook}%
 
858
 \@provide\endtabular@hook{}%
 
859
 \prepdef\endarray{\endarray@hook}%
 
860
 \@provide\endarray@hook{}%
 
861
 \providecommand\array@hook{}%
 
862
 \prepdef\@tabular{\tabular@hook}%
 
863
 \@provide\tabular@hook{}%
 
864
}%
 
865
\def\switch@tabular{%
 
866
 \let\@array@sw\@array@sw@array
 
867
 \@ifx{\@array\@array@LaTeX}{%
 
868
  \@ifx{\multicolumn\multicolumn@LaTeX}{%
 
869
   \@ifx{\@tabular\@tabular@LaTeX}{%
 
870
    \@ifx{\@tabarray\@tabarray@LaTeX}{%
 
871
     \@ifx{\array\array@LaTeX}{%
 
872
      \@ifx{\endarray\endarray@LaTeX}{%
 
873
       \@ifx{\endtabular\endtabular@LaTeX}{%
 
874
        \@ifx{\@mkpream\@mkpream@LaTeX}{%
 
875
         \@ifx{\@addamp\@addamp@LaTeX}{%
 
876
          \@ifx{\@arrayacol\@arrayacol@LaTeX}{%
 
877
           \@ifx{\@tabacol\@tabacol@LaTeX}{%
 
878
            \@ifx{\@arrayclassz\@arrayclassz@LaTeX}{%
 
879
             \@ifx{\@tabclassiv\@tabclassiv@LaTeX}{%
 
880
              \@ifx{\@arrayclassiv\@arrayclassiv@LaTeX}{%
 
881
               \@ifx{\@tabclassz\@tabclassz@LaTeX}{%
 
882
                \@ifx{\@classv\@classv@LaTeX}{%
 
883
                 \@ifx{\hline\hline@LaTeX}{%
 
884
                  \@ifx{\@tabularcr\@tabularcr@LaTeX}{%
 
885
                   \@ifx{\@xtabularcr\@xtabularcr@LaTeX}{%
 
886
                    \@ifx{\@xargarraycr\@xargarraycr@LaTeX}{%
 
887
                     \@ifx{\@yargarraycr\@yargarraycr@LaTeX}{%
 
888
                      \true@sw
 
889
                     }{%
 
890
                      \false@sw
 
891
                     }%
 
892
                    }{%
 
893
                     \false@sw
 
894
                    }%
 
895
                   }{%
 
896
                    \false@sw
 
897
                   }%
 
898
                  }{%
 
899
                   \false@sw
 
900
                  }%
 
901
                 }{%
 
902
                  \false@sw
 
903
                 }%
 
904
                }{%
 
905
                 \false@sw
 
906
                }%
 
907
               }{%
 
908
                \false@sw
 
909
               }%
 
910
              }{%
 
911
               \false@sw
 
912
              }%
 
913
             }{%
 
914
              \false@sw
 
915
             }%
 
916
            }{%
 
917
             \false@sw
 
918
            }%
 
919
           }{%
 
920
            \false@sw
 
921
           }%
 
922
          }{%
 
923
           \false@sw
 
924
          }%
 
925
         }{%
 
926
          \false@sw
 
927
         }%
 
928
        }{%
 
929
         \false@sw
 
930
        }%
 
931
       }{%
 
932
        \false@sw
 
933
       }%
 
934
      }{%
 
935
       \false@sw
 
936
      }%
 
937
     }{%
 
938
      \false@sw
 
939
     }%
 
940
    }{%
 
941
     \false@sw
 
942
    }%
 
943
   }{%
 
944
    \false@sw
 
945
   }%
 
946
  }{%
 
947
   \false@sw
 
948
  }%
 
949
 }{%
 
950
  \false@sw
 
951
 }%
 
952
 {%
 
953
  \class@info{Patching LaTeX tabular.}%
 
954
 }{%
 
955
  \class@info{Unrecognized LaTeX tabular. Please update this document class! (Proceeding with fingers crossed.)}%
 
956
 }%
 
957
 \let\@array\@array@ltx
 
958
 \let\multicolumn\multicolumn@ltx
 
959
 \let\@tabular\@tabular@ltx
 
960
 \let\@tabarray\@tabarray@ltx
 
961
 \let\array\array@ltx
 
962
 \let\endarray\endarray@ltx
 
963
 \let\endtabular\endtabular@ltx
 
964
 \let\@mkpream\@mkpream@ltx
 
965
 \let\@addamp\@addamp@ltx
 
966
 \let\@arrayacol\@arrayacol@ltx
 
967
 \let\@tabacol\@tabacol@ltx
 
968
 \let\@arrayclassz\@arrayclassz@ltx
 
969
 \let\@tabclassiv\@tabclassiv@ltx
 
970
 \let\@arrayclassiv\@arrayclassiv@ltx
 
971
 \let\@tabclassz\@tabclassz@ltx
 
972
 \let\@classv\@classv@ltx
 
973
 \let\hline\hline@ltx
 
974
 \let\@tabularcr\@tabularcr@ltx
 
975
 \let\@xtabularcr\@xtabularcr@ltx
 
976
 \let\@xargarraycr\@xargarraycr@ltx
 
977
 \let\@yargarraycr\@yargarraycr@ltx
 
978
}%
 
979
\def\switch@array{%
 
980
 \@ifpackageloaded{colortbl}{\let\switch@array@info\colortbl@message}{\let\switch@array@info\array@message}%
 
981
 \let\@array@sw\@array@sw@LaTeX
 
982
 \@ifx{\@array\@array@array}{%
 
983
  \@ifx{\@tabular\@tabular@array}{%
 
984
   \@ifx{\@tabarray\@tabarray@array}{%
 
985
    \@ifx{\array\array@array}{%
 
986
     \@ifx{\endarray\endarray@array}{%
 
987
      \@ifx{\endtabular\endtabular@array}{%
 
988
       \@ifx{\@mkpream\@mkpream@array}{%
 
989
        \@ifx{\@classx\@classx@array}{%
 
990
         \@ifx{\insert@column\insert@column@array}{%
 
991
          \@ifx{\@arraycr\@arraycr@array}{%
 
992
           \@ifx{\@xarraycr\@xarraycr@array}{%
 
993
            \@ifx{\@xargarraycr\@xargarraycr@array}{%
 
994
             \@ifx{\@yargarraycr\@yargarraycr@array}{%
 
995
              \true@sw
 
996
             }{%
 
997
              \false@sw
 
998
             }%
 
999
            }{%
 
1000
             \false@sw
 
1001
            }%
 
1002
           }{%
 
1003
            \false@sw
 
1004
           }%
 
1005
          }{%
 
1006
           \false@sw
 
1007
          }%
 
1008
         }{%
 
1009
          \false@sw
 
1010
         }%
 
1011
        }{%
 
1012
         \false@sw
 
1013
        }%
 
1014
       }{%
 
1015
        \false@sw
 
1016
       }%
 
1017
      }{%
 
1018
       \false@sw
 
1019
      }%
 
1020
     }{%
 
1021
      \false@sw
 
1022
     }%
 
1023
    }{%
 
1024
     \false@sw
 
1025
    }%
 
1026
   }{%
 
1027
    \false@sw
 
1028
   }%
 
1029
  }{%
 
1030
   \false@sw
 
1031
  }%
 
1032
 }{%
 
1033
  \false@sw
 
1034
 }{%
 
1035
  \class@info{Patching array package.}%
 
1036
 }{%
 
1037
  \switch@array@info
 
1038
 }%
 
1039
 \let\@array    \@array@array@new
 
1040
 \let\@@array   \@array % Cosi fan tutti
 
1041
 \let\@tabular  \@tabular@array@new
 
1042
 \let\@tabarray \@tabarray@array@new
 
1043
 \let\array     \array@array@new
 
1044
 \let\endarray  \endarray@array@new
 
1045
 \let\endtabular\endtabular@array@new
 
1046
 \let\@mkpream  \@mkpream@array@new
 
1047
 \let\@classx   \@classx@array@new
 
1048
 \let\@arrayacol\@arrayacol@ltx
 
1049
 \let\@tabacol  \@tabacol@ltx
 
1050
 \let\insert@column\insert@column@array@new
 
1051
 \expandafter\let\csname endtabular*\endcsname\endtabular % Cosi fan tutti
 
1052
 \let\@arraycr  \@arraycr@new
 
1053
 \let\@xarraycr \@xarraycr@new
 
1054
 \let\@xargarraycr\@xargarraycr@new
 
1055
 \let\@yargarraycr\@yargarraycr@new
 
1056
}%
 
1057
\def\array@message{%
 
1058
 \class@info{Unrecognized array package. Please update this document class! (Proceeding with fingers crossed.)}%
 
1059
}%
 
1060
\def\colortbl@message{%
 
1061
 \class@info{colortbl package is loaded. (Proceeding with fingers crossed.)}%
 
1062
}%
 
1063
\def\@array@sw@LaTeX{\@ifx{\\\@tabularcr}}%
 
1064
\def\@array@sw@array{\@ifx{\d@llarbegin\begingroup}}%
 
1065
\def\@tabular@LaTeX{%
 
1066
 \leavevmode
 
1067
 \hbox\bgroup$%
 
1068
  \let\@acol\@tabacol
 
1069
  \let\@classz\@tabclassz
 
1070
  \let\@classiv\@tabclassiv
 
1071
  \let\\\@tabularcr
 
1072
  \@tabarray
 
1073
}%
 
1074
\def\@tabular@ltx{%
 
1075
  \let\@acoll\@tabacoll
 
1076
  \let\@acolr\@tabacolr
 
1077
  \let\@acol\@tabacol
 
1078
  \let\@classz\@tabclassz
 
1079
  \let\@classiv\@tabclassiv
 
1080
  \let\\\@tabularcr
 
1081
  \@tabarray
 
1082
}%
 
1083
\def\@tabular@array{%
 
1084
 \leavevmode
 
1085
 \hbox\bgroup$%
 
1086
  \col@sep\tabcolsep
 
1087
  \let\d@llarbegin\begingroup
 
1088
  \let\d@llarend\endgroup
 
1089
  \@tabarray
 
1090
}%
 
1091
\def\@tabular@array@new{%
 
1092
  \let\@acoll\@tabacoll
 
1093
  \let\@acolr\@tabacolr
 
1094
  \let\@acol\@tabacol
 
1095
  \let\d@llarbegin\begingroup
 
1096
  \let\d@llarend\endgroup
 
1097
  \@tabarray
 
1098
}%
 
1099
\def\@tabarray@LaTeX{%
 
1100
 \m@th\@ifnextchar[\@array{\@array[c]}%
 
1101
}%
 
1102
\def\@tabarray@ltx{%
 
1103
 \m@th\@ifnextchar[\@array{\expandafter\@array\expandafter[\array@default]}%
 
1104
}%
 
1105
\def\@tabarray@array{%
 
1106
 \@ifnextchar[{\@@array}{\@@array[c]}%
 
1107
}%
 
1108
\def\@tabarray@array@new{%
 
1109
 \@ifnextchar[{\@@array}{\expandafter\@@array\expandafter[\array@default]}%
 
1110
}%
 
1111
\newcount\intertabularlinepenalty
 
1112
\intertabularlinepenalty=100
 
1113
\newcount\@tbpen
 
1114
\appdef\samepage{\intertabularlinepenalty\@M}%
 
1115
\def\@tabularcr@LaTeX{{\ifnum 0=`}\fi \@ifstar \@xtabularcr \@xtabularcr}%
 
1116
\def\@tabularcr@ltx{{\ifnum 0=`}\fi \@ifstar {\global \@tbpen \@M \@xtabularcr }{\global \@tbpen \intertabularlinepenalty \@xtabularcr }}%
 
1117
\def\@xtabularcr@LaTeX{\@ifnextchar [\@argtabularcr {\ifnum 0=`{\fi }\cr }}%
 
1118
\def\@xtabularcr@ltx{\@ifnextchar [\@argtabularcr {\ifnum 0=`{\fi }\cr \noalign {\penalty \@tbpen }}}%
 
1119
\def\@xargarraycr@LaTeX#1{\@tempdima #1\advance \@tempdima \dp \@arstrutbox \vrule \@height \z@ \@depth \@tempdima \@width \z@ \cr}%
 
1120
\def\@xargarraycr@ltx#1{\@tempdima #1\advance \@tempdima \dp \@arstrutbox \vrule \@height \z@ \@depth \@tempdima \@width \z@ \cr \noalign {\penalty \@tbpen }}%
 
1121
\def\@yargarraycr@LaTeX#1{\cr \noalign {\vskip #1}}%
 
1122
\def\@yargarraycr@ltx#1{\cr \noalign {\penalty \@tbpen \vskip #1}}%
 
1123
\def\@arraycr@array{%
 
1124
 \relax
 
1125
 \iffalse{\fi\ifnum 0=`}\fi
 
1126
 \@ifstar \@xarraycr \@xarraycr
 
1127
}%
 
1128
\def\@arraycr@new{%
 
1129
 \relax
 
1130
 \iffalse{\fi\ifnum 0=`}\fi
 
1131
 \@ifstar {\global \@tbpen \@M \@xarraycr }{\global \@tbpen \intertabularlinepenalty \@xarraycr }%
 
1132
}%
 
1133
\def\@xarraycr@array{%
 
1134
 \@ifnextchar [%]
 
1135
 \@argarraycr {\ifnum 0=`{}\fi\cr}%
 
1136
}%
 
1137
\def\@xarraycr@new{%
 
1138
 \@ifnextchar [%]
 
1139
 \@argarraycr {\ifnum 0=`{}\fi\cr \noalign {\penalty \@tbpen }}%
 
1140
}%
 
1141
\def\@xargarraycr@array#1{%
 
1142
 \unskip
 
1143
 \@tempdima #1\advance\@tempdima \dp\@arstrutbox
 
1144
 \vrule \@depth\@tempdima \@width\z@
 
1145
 \cr
 
1146
}%
 
1147
\def\@xargarraycr@new#1{%
 
1148
 \unskip
 
1149
 \@tempdima #1\advance\@tempdima \dp\@arstrutbox
 
1150
 \vrule \@depth\@tempdima \@width\z@
 
1151
 \cr
 
1152
 \noalign {\penalty \@tbpen }%
 
1153
}%
 
1154
\def\@yargarraycr@array#1{%
 
1155
 \cr
 
1156
 \noalign{\vskip #1}%
 
1157
}%
 
1158
\def\@yargarraycr@new#1{%
 
1159
 \cr
 
1160
 \noalign{\penalty \@tbpen \vskip #1}%
 
1161
}%
 
1162
\def\array@LaTeX{%
 
1163
 \let\@acol\@arrayacol
 
1164
 \let\@classz\@arrayclassz
 
1165
 \let\@classiv\@arrayclassiv
 
1166
 \let\\\@arraycr
 
1167
 \let\@halignto\@empty
 
1168
 \@tabarray
 
1169
}%
 
1170
\def\array@ltx{%
 
1171
 \@ifmmode{}{\@badmath$}%
 
1172
 \let\@acoll\@arrayacol
 
1173
 \let\@acolr\@arrayacol
 
1174
 \let\@acol\@arrayacol
 
1175
 \let\@classz\@arrayclassz
 
1176
 \let\@classiv\@arrayclassiv
 
1177
 \let\\\@arraycr
 
1178
 \let\@halignto\@empty
 
1179
 \@tabarray
 
1180
}%
 
1181
\def\array@array{%
 
1182
 \col@sep\arraycolsep
 
1183
 \def\d@llarbegin{$}\let\d@llarend\d@llarbegin\gdef\@halignto{}%
 
1184
 \@tabarray
 
1185
}
 
1186
\def\array@array@new{%
 
1187
 \@ifmmode{}{\@badmath$}%
 
1188
 \let\@acoll\@arrayacol
 
1189
 \let\@acolr\@arrayacol
 
1190
 \let\@acol\@arrayacol
 
1191
 \def\d@llarbegin{$}%
 
1192
 \let\d@llarend\d@llarbegin
 
1193
 \gdef\@halignto{}%
 
1194
 \@tabarray
 
1195
}%
 
1196
\def\@array@LaTeX[#1]#2{%
 
1197
  \if #1t\vtop \else \if#1b\vbox \else \vcenter \fi\fi
 
1198
  \bgroup
 
1199
  \setbox\@arstrutbox\hbox{%
 
1200
    \vrule \@height\arraystretch\ht\strutbox
 
1201
           \@depth\arraystretch \dp\strutbox
 
1202
           \@width\z@}%
 
1203
  \@mkpream{#2}%
 
1204
  \edef\@preamble{%
 
1205
    \ialign \noexpand\@halignto
 
1206
      \bgroup \@arstrut \@preamble \tabskip\z@skip \cr}%
 
1207
  \let\@startpbox\@@startpbox \let\@endpbox\@@endpbox
 
1208
  \let\tabularnewline\\%
 
1209
    \let\par\@empty
 
1210
    \let\@sharp##%
 
1211
    \set@typeset@protect
 
1212
    \lineskip\z@skip\baselineskip\z@skip
 
1213
    \ifhmode \@preamerr\z@ \@@par\fi
 
1214
    \@preamble
 
1215
}%
 
1216
\def\@array@ltx[#1]#2{%
 
1217
 \@nameuse{@array@align@#1}%
 
1218
  \set@arstrutbox
 
1219
  \@mkpream{#2}%
 
1220
  \prepdef\@preamble{%
 
1221
    \tabskip\tabmid@skip
 
1222
    \@arstrut
 
1223
  }%
 
1224
  \appdef\@preamble{%
 
1225
    \tabskip\tabright@skip
 
1226
    \cr
 
1227
    \array@row@pre
 
1228
  }%
 
1229
  \let\tabularnewline\\%
 
1230
  \let\par\@empty
 
1231
  \let\@sharp##%
 
1232
  \set@typeset@protect
 
1233
  \lineskip\z@skip\baselineskip\z@skip
 
1234
  \tabskip\tableft@skip\relax
 
1235
  \ifhmode \@preamerr\z@ \@@par\fi
 
1236
  \everycr{}%
 
1237
  \expandafter\halign\expandafter\@halignto\expandafter\bgroup\@preamble
 
1238
}%
 
1239
\def\set@arstrutbox{%
 
1240
  \setbox\@arstrutbox\hbox{%
 
1241
    \vrule \@height\arraystretch\ht\strutbox
 
1242
           \@depth\arraystretch \dp\strutbox
 
1243
           \@width\z@
 
1244
  }%
 
1245
}%
 
1246
\def\@array@array[#1]#2{%
 
1247
  \@tempdima \ht \strutbox
 
1248
  \advance \@tempdima by\extrarowheight
 
1249
  \setbox \@arstrutbox \hbox{\vrule
 
1250
             \@height \arraystretch \@tempdima
 
1251
             \@depth \arraystretch \dp \strutbox
 
1252
             \@width \z@}%
 
1253
  \begingroup
 
1254
  \@mkpream{#2}%
 
1255
  \xdef\@preamble{\noexpand \ialign \@halignto
 
1256
                  \bgroup \@arstrut \@preamble
 
1257
                          \tabskip \z@ \cr}%
 
1258
  \endgroup
 
1259
  \@arrayleft
 
1260
  \if #1t\vtop \else \if#1b\vbox \else \vcenter \fi \fi
 
1261
  \bgroup
 
1262
  \let \@sharp ##\let \protect \relax
 
1263
  \lineskip \z@
 
1264
  \baselineskip \z@
 
1265
  \m@th
 
1266
  \let\\\@arraycr \let\tabularnewline\\\let\par\@empty \@preamble
 
1267
}%
 
1268
\def\@array@array@new[#1]#2{%
 
1269
  \@tempdima\ht\strutbox
 
1270
  \advance\@tempdima by\extrarowheight
 
1271
  \setbox\@arstrutbox\hbox{%
 
1272
   \vrule \@height\arraystretch\@tempdima
 
1273
          \@depth \arraystretch\dp\strutbox
 
1274
          \@width \z@
 
1275
  }%
 
1276
  \begingroup
 
1277
   \@mkpream{#2}%
 
1278
   \xdef\@preamble{\@preamble}%
 
1279
  \endgroup
 
1280
  \prepdef\@preamble{%
 
1281
   \tabskip\tabmid@skip
 
1282
    \@arstrut
 
1283
  }%
 
1284
  \appdef\@preamble{%
 
1285
   \tabskip\tabright@skip
 
1286
   \cr
 
1287
   \array@row@pre
 
1288
  }%
 
1289
  \@arrayleft
 
1290
  \@nameuse{@array@align@#1}%
 
1291
  \m@th
 
1292
  \let\\\@arraycr
 
1293
  \let\tabularnewline\\%
 
1294
  \let\par\@empty
 
1295
  \let\@sharp##%
 
1296
  \set@typeset@protect
 
1297
  \lineskip\z@\baselineskip\z@
 
1298
  \tabskip\tableft@skip
 
1299
  \everycr{}%
 
1300
  \expandafter\halign\expandafter\@halignto\expandafter\bgroup\@preamble
 
1301
}%
 
1302
\def\endarray@LaTeX{%
 
1303
 \crcr\egroup\egroup
 
1304
}%
 
1305
\def\endarray@ltx{%
 
1306
 \crcr\array@row@pst\egroup\egroup
 
1307
}%
 
1308
\def\endarray@array{%
 
1309
 \crcr \egroup \egroup \@arrayright \gdef\@preamble{}%
 
1310
}%
 
1311
\def\endarray@array@new{%
 
1312
 \crcr\array@row@pst\egroup\egroup % Same as \endarray@ltx
 
1313
 \@arrayright
 
1314
 \global\let\@preamble\@empty
 
1315
}%
 
1316
\def\endtabular@LaTeX{%
 
1317
 \crcr\egroup\egroup $\egroup
 
1318
}%
 
1319
\def\endtabular@ltx{%
 
1320
 \endarray
 
1321
}%
 
1322
\def\endtabular@array{%
 
1323
 \endarray $\egroup
 
1324
}%
 
1325
\def\endtabular@array@new{%
 
1326
 \endarray
 
1327
}%
 
1328
\@namedef{endtabular*}{\endtabular}%
 
1329
\long\def\multicolumn@LaTeX#1#2#3{%
 
1330
 \multispan{#1}\begingroup
 
1331
  \@mkpream{#2}%
 
1332
  \def\@sharp{#3}\set@typeset@protect
 
1333
  \let\@startpbox\@@startpbox\let\@endpbox\@@endpbox
 
1334
  \@arstrut \@preamble\hbox{}\endgroup\ignorespaces
 
1335
}%
 
1336
\long\def\multicolumn@ltx#1#2#3{%
 
1337
 \multispan{#1}%
 
1338
 \begingroup
 
1339
  \@mkpream{#2}%
 
1340
  \def\@sharp{#3}%
 
1341
  \set@typeset@protect
 
1342
 %\let\@startpbox\@@startpbox\let\@endpbox\@@endpbox
 
1343
  \@arstrut
 
1344
  \@preamble
 
1345
  \hbox{}%
 
1346
 \endgroup
 
1347
 \ignorespaces
 
1348
}%
 
1349
\def\@array@align@t{\leavevmode\vtop\bgroup}%
 
1350
\def\@array@align@b{\leavevmode\vbox\bgroup}%
 
1351
\def\@array@align@c{\leavevmode\@ifmmode{\vcenter\bgroup}{$\vcenter\bgroup\aftergroup$\aftergroup\relax}}%
 
1352
\def\@array@align@v{%
 
1353
 \@ifmmode{%
 
1354
  \@badmath
 
1355
  \vcenter\bgroup
 
1356
 }{%
 
1357
  \@ifinner{%
 
1358
   $\vcenter\bgroup\aftergroup$
 
1359
  }{%
 
1360
   \@@par\bgroup
 
1361
  }%
 
1362
 }%
 
1363
}%
 
1364
\def\array@default{c}%
 
1365
\def\array@row@rst{%
 
1366
 \let\@array@align@v\@array@align@c
 
1367
}%
 
1368
\def\array@row@pre{}%
 
1369
\def\array@row@pst{}%
 
1370
\newcommand\toprule{\tab@rule{\column@font}{\column@fil}{\frstrut}}%
 
1371
\newcommand\colrule{\unskip\lrstrut\\\tab@rule{\body@font}{}{\frstrut}}%
 
1372
\newcommand\botrule{\unskip\lrstrut\\\noalign{\hline@rule}{}}%
 
1373
\def\hline@LaTeX{%
 
1374
 \noalign{\ifnum0=`}\fi\hrule \@height \arrayrulewidth \futurelet
 
1375
   \reserved@a\@xhline
 
1376
}%
 
1377
\def\hline@ltx{%
 
1378
 \noalign{%
 
1379
  \ifnum0=`}\fi
 
1380
  \hline@rule
 
1381
  \futurelet\reserved@a\@xhline
 
1382
 % \noalign ended in \@xhline
 
1383
}%
 
1384
\def\@xhline@unneeded{%
 
1385
 \say\reserved@a
 
1386
 \ifx\reserved@a\hline
 
1387
  \vskip\doublerulesep
 
1388
  \vskip-\arrayrulewidth
 
1389
 \fi
 
1390
 \ifnum0=`{\fi}%
 
1391
}%
 
1392
\def\tab@rule#1#2#3{%
 
1393
 \crcr
 
1394
 \noalign{%
 
1395
  \hline@rule
 
1396
  \gdef\@arstrut@hook{%
 
1397
   \global\let\@arstrut@hook\@empty
 
1398
   #3%
 
1399
  }%
 
1400
  \gdef\cell@font{#1}%
 
1401
  \gdef\cell@fil{#2}%
 
1402
 }%
 
1403
}%
 
1404
\def\column@font{}%
 
1405
\def\column@fil{}%
 
1406
\def\body@font{}%
 
1407
\def\cell@font{}%
 
1408
\def\frstrut{}%
 
1409
\def\lrstrut{}%
 
1410
\def\@arstrut@hline{%
 
1411
 \relax
 
1412
 \@ifmmode{\copy}{\unhcopy}\@arstrutbox@hline
 
1413
 \@arstrut@hook
 
1414
}%
 
1415
\let\@arstrut@org\@arstrut
 
1416
\def\@arstrut@hook{%
 
1417
 \global\let\@arstrut\@arstrut@org
 
1418
}%
 
1419
\newbox\@arstrutbox@hline
 
1420
\appdef\set@arstrutbox{%
 
1421
  \setbox\@arstrutbox@hline\hbox{%
 
1422
    \setbox\z@\hbox{$0^{0}_{}$}%
 
1423
    \dimen@\ht\z@\advance\dimen@\@arstrut@hline@clnc
 
1424
    \@ifdim{\dimen@<\arraystretch\ht\strutbox}{\dimen@=\arraystretch\ht\strutbox}{}%
 
1425
    \vrule \@height\dimen@
 
1426
           \@depth\arraystretch \dp\strutbox
 
1427
           \@width\z@
 
1428
  }%
 
1429
}%
 
1430
\def\hline@rule{%
 
1431
 \hrule \@height \arrayrulewidth
 
1432
 \global\let\@arstrut\@arstrut@hline
 
1433
}%
 
1434
\def\@arstrut@hline@clnc{2\p@}% % Klootch: magic number
 
1435
\def\tableft@skip{\z@skip}%
 
1436
\def\tabmid@skip{\z@skip}%\@flushglue
 
1437
\def\tabright@skip{\z@skip}%
 
1438
\def\tableftsep{\tabcolsep}%
 
1439
\def\tabmidsep{\tabcolsep}%
 
1440
\def\tabrightsep{\tabcolsep}%
 
1441
\def\cell@fil{}%
 
1442
\def\pbox@hook{}%
 
1443
\appdef\@arstrut{\@arstrut@hook}%
 
1444
\let\@arstrut@hook\@empty
 
1445
\def\@addtopreamble{\appdef\@preamble}%
 
1446
\def\@mkpream@LaTeX#1{%
 
1447
  \@firstamptrue\@lastchclass6
 
1448
  \let\@preamble\@empty
 
1449
  \let\protect\@unexpandable@protect
 
1450
  \let\@sharp\relax
 
1451
  \let\@startpbox\relax\let\@endpbox\relax
 
1452
  \@expast{#1}%
 
1453
  \expandafter\@tfor \expandafter
 
1454
    \@nextchar \expandafter:\expandafter=\reserved@a\do
 
1455
       {\@testpach\@nextchar
 
1456
    \ifcase \@chclass \@classz \or \@classi \or \@classii \or \@classiii
 
1457
      \or \@classiv \or\@classv \fi\@lastchclass\@chclass}%
 
1458
  \ifcase \@lastchclass \@acol
 
1459
      \or \or \@preamerr \@ne\or \@preamerr \tw@\or \or \@acol \fi
 
1460
}%
 
1461
\def\@mkpream@ltx#1{%
 
1462
 \@firstamptrue
 
1463
 \@lastchclass6
 
1464
 \let\@preamble\@empty
 
1465
 \let\protect\@unexpandable@protect
 
1466
 \let\@sharp\relax
 
1467
 \@expast{#1}%
 
1468
 \expandafter\@tfor\expandafter\@nextchar\expandafter:\expandafter=\reserved@a
 
1469
 \do{%
 
1470
  \expandafter\@testpach\expandafter{\@nextchar}%
 
1471
  \ifcase\@chclass
 
1472
   \@classz
 
1473
  \or
 
1474
   \@classi
 
1475
  \or
 
1476
   \@classii
 
1477
  \or
 
1478
   \@classiii
 
1479
  \or
 
1480
   \@classiv
 
1481
  \or
 
1482
   \@classv
 
1483
  \fi
 
1484
  \@lastchclass\@chclass
 
1485
 }%
 
1486
 \ifcase\@lastchclass
 
1487
  \@acolr % right-hand column
 
1488
 \or
 
1489
 \or
 
1490
  \@preamerr\@ne
 
1491
 \or
 
1492
  \@preamerr\tw@
 
1493
 \or
 
1494
 \or
 
1495
  \@acolr % right-hand column
 
1496
 \fi
 
1497
}%
 
1498
\def\insert@column@array{%
 
1499
   \the@toks \the \@tempcnta
 
1500
   \ignorespaces \@sharp \unskip
 
1501
   \the@toks \the \count@ \relax
 
1502
}%
 
1503
\def\insert@column@array@new{%
 
1504
 \the@toks\the\@tempcnta
 
1505
 \array@row@rst\cell@font
 
1506
 \ignorespaces\@sharp\unskip
 
1507
 \the@toks\the\count@
 
1508
 \relax
 
1509
}%
 
1510
\def\@mkpream@relax{%
 
1511
 \let\tableftsep   \relax
 
1512
 \let\tabmidsep    \relax
 
1513
 \let\tabrightsep  \relax
 
1514
 \let\array@row@rst\relax
 
1515
 \let\cell@font    \relax
 
1516
 \let\@startpbox   \relax
 
1517
}%
 
1518
\def\@mkpream@array#1{%
 
1519
   \gdef\@preamble{}\@lastchclass 4 \@firstamptrue
 
1520
   \let\@sharp\relax \let\@startpbox\relax \let\@endpbox\relax
 
1521
   \@temptokena{#1}\@tempswatrue
 
1522
   \@whilesw\if@tempswa\fi{\@tempswafalse\the\NC@list}%
 
1523
   \count@\m@ne
 
1524
   \let\the@toks\relax
 
1525
   \prepnext@tok
 
1526
   \expandafter \@tfor \expandafter \@nextchar
 
1527
    \expandafter :\expandafter =\the\@temptokena \do
 
1528
   {\@testpach
 
1529
   \ifcase \@chclass \@classz \or \@classi \or \@classii
 
1530
     \or \save@decl \or \or \@classv \or \@classvi
 
1531
     \or \@classvii \or \@classviii
 
1532
     \or \@classx
 
1533
     \or \@classx \fi
 
1534
   \@lastchclass\@chclass}%
 
1535
   \ifcase\@lastchclass
 
1536
   \@acol \or
 
1537
   \or
 
1538
   \@acol \or
 
1539
   \@preamerr \thr@@ \or
 
1540
   \@preamerr \tw@ \@addtopreamble\@sharp \or
 
1541
   \or
 
1542
   \else  \@preamerr \@ne \fi
 
1543
   \def\the@toks{\the\toks}%
 
1544
}%
 
1545
\def\@mkpream@array@new#1{%
 
1546
 \gdef\@preamble{}%
 
1547
 \@lastchclass\f@ur
 
1548
 \@firstamptrue
 
1549
 \let\@sharp\relax
 
1550
 \@mkpream@relax
 
1551
 \@temptokena{#1}\@tempswatrue
 
1552
 \@whilesw\if@tempswa\fi{\@tempswafalse\the\NC@list}%
 
1553
 \count@\m@ne
 
1554
 \let\the@toks\relax
 
1555
 \prepnext@tok
 
1556
 \expandafter\@tfor\expandafter\@nextchar\expandafter:\expandafter=\the\@temptokena
 
1557
 \do{%
 
1558
  \@testpach
 
1559
  \ifcase\@chclass
 
1560
   \@classz
 
1561
  \or
 
1562
   \@classi
 
1563
  \or
 
1564
   \@classii
 
1565
  \or
 
1566
   \save@decl
 
1567
  \or
 
1568
  \or
 
1569
   \@classv
 
1570
  \or
 
1571
   \@classvi
 
1572
  \or
 
1573
   \@classvii
 
1574
  \or
 
1575
   \@classviii
 
1576
  \or
 
1577
   \@classx
 
1578
  \or
 
1579
   \@classx
 
1580
  \fi
 
1581
  \@lastchclass\@chclass
 
1582
 }%
 
1583
 \ifcase\@lastchclass
 
1584
  \@acolr % right-hand column
 
1585
 \or
 
1586
 \or
 
1587
  \@acolr % right-hand column
 
1588
 \or
 
1589
  \@preamerr\thr@@
 
1590
 \or
 
1591
  \@preamerr\tw@\@addtopreamble\@sharp
 
1592
 \or
 
1593
 \or
 
1594
 \else
 
1595
  \@preamerr\@ne
 
1596
 \fi
 
1597
 \def\the@toks{\the\toks}%
 
1598
}%
 
1599
\appdef\@mkpream@relax{%
 
1600
 \let\CT@setup       \relax
 
1601
 \let\CT@color       \relax
 
1602
 \let\CT@do@color    \relax
 
1603
 \let\color          \relax
 
1604
 \let\CT@column@color\relax
 
1605
 \let\CT@row@color   \relax
 
1606
 \let\CT@cell@color  \relax
 
1607
}%
 
1608
\def\@addamp@LaTeX{%
 
1609
  \if@firstamp\@firstampfalse\else\edef\@preamble{\@preamble &}\fi
 
1610
}%
 
1611
\def\@addamp@ltx{%
 
1612
 \if@firstamp\@firstampfalse\else\@addtopreamble{&}\fi
 
1613
}%
 
1614
\def\@arrayacol@LaTeX{%
 
1615
 \edef\@preamble{\@preamble \hskip \arraycolsep}%
 
1616
}%
 
1617
\def\@arrayacol@ltx{%
 
1618
 \@addtopreamble{\hskip\arraycolsep}%
 
1619
}%
 
1620
\def\@tabacoll{%
 
1621
 \@addtopreamble{\hskip\tableftsep\relax}%
 
1622
}%
 
1623
\def\@tabacol@LaTeX{%
 
1624
 \edef\@preamble{\@preamble \hskip \tabcolsep}%
 
1625
}%
 
1626
\def\@tabacol@ltx{%
 
1627
 \@addtopreamble{\hskip\tabmidsep\relax}%
 
1628
}%
 
1629
\def\@tabacolr{%
 
1630
 \@addtopreamble{\hskip\tabrightsep\relax}%
 
1631
}%
 
1632
\def\@arrayclassz@LaTeX{%
 
1633
 \ifcase \@lastchclass \@acolampacol \or \@ampacol \or
 
1634
   \or \or \@addamp \or
 
1635
   \@acolampacol \or \@firstampfalse \@acol \fi
 
1636
 \edef\@preamble{\@preamble
 
1637
  \ifcase \@chnum
 
1638
     \hfil$\relax\@sharp$\hfil \or $\relax\@sharp$\hfil
 
1639
    \or \hfil$\relax\@sharp$\fi}%
 
1640
}%
 
1641
\def\@arrayclassz@ltx{%
 
1642
 \ifcase\@lastchclass
 
1643
  \@acolampacol
 
1644
 \or
 
1645
  \@ampacol
 
1646
 \or
 
1647
 \or
 
1648
 \or
 
1649
  \@addamp
 
1650
 \or
 
1651
  \@acolampacol
 
1652
 \or
 
1653
  \@firstampfalse\@acoll
 
1654
 \fi
 
1655
 \ifcase\@chnum
 
1656
  \@addtopreamble{%
 
1657
   \hfil\array@row@rst$\relax\@sharp$\hfil
 
1658
  }%
 
1659
 \or
 
1660
  \@addtopreamble{%
 
1661
   \array@row@rst$\relax\@sharp$\hfil
 
1662
  }%
 
1663
 \or
 
1664
  \@addtopreamble{%
 
1665
   \hfil\array@row@rst$\relax\@sharp$%
 
1666
  }%
 
1667
 \fi
 
1668
}%
 
1669
\def\@tabclassz@LaTeX{%
 
1670
  \ifcase\@lastchclass
 
1671
    \@acolampacol
 
1672
  \or
 
1673
    \@ampacol
 
1674
  \or
 
1675
  \or
 
1676
  \or
 
1677
    \@addamp
 
1678
  \or
 
1679
    \@acolampacol
 
1680
  \or
 
1681
    \@firstampfalse\@acol
 
1682
  \fi
 
1683
  \edef\@preamble{%
 
1684
    \@preamble{%
 
1685
      \ifcase\@chnum
 
1686
        \hfil\ignorespaces\@sharp\unskip\hfil
 
1687
      \or
 
1688
        \hskip1sp\ignorespaces\@sharp\unskip\hfil
 
1689
      \or
 
1690
        \hfil\hskip1sp\ignorespaces\@sharp\unskip
 
1691
      \fi}}%
 
1692
}%
 
1693
\def\@tabclassz@ltx{%
 
1694
 \ifcase\@lastchclass
 
1695
  \@acolampacol
 
1696
 \or
 
1697
  \@ampacol
 
1698
 \or
 
1699
 \or
 
1700
 \or
 
1701
  \@addamp
 
1702
 \or
 
1703
  \@acolampacol
 
1704
 \or
 
1705
  \@firstampfalse\@acoll
 
1706
 \fi
 
1707
 \ifcase\@chnum
 
1708
  \@addtopreamble{%
 
1709
   {\hfil\array@row@rst\cell@font\ignorespaces\@sharp\unskip\hfil}%
 
1710
  }%
 
1711
 \or
 
1712
  \@addtopreamble{%
 
1713
   {\cell@fil\hskip1sp\array@row@rst\cell@font\ignorespaces\@sharp\unskip\hfil}%
 
1714
  }%
 
1715
 \or
 
1716
  \@addtopreamble{%
 
1717
   {\hfil\hskip1sp\array@row@rst\cell@font\ignorespaces\@sharp\unskip\cell@fil}%
 
1718
  }%
 
1719
 \fi
 
1720
}%
 
1721
\def\@tabclassiv@LaTeX{%
 
1722
 \@addtopreamble\@nextchar
 
1723
}%
 
1724
\def\@tabclassiv@ltx{%
 
1725
 \expandafter\@addtopreamble\expandafter{\@nextchar}%
 
1726
}%
 
1727
\def\@arrayclassiv@LaTeX{%
 
1728
 \@addtopreamble{$\@nextchar$}%
 
1729
}%
 
1730
\def\@arrayclassiv@ltx{%
 
1731
 \expandafter\@addtopreamble\expandafter{\expandafter$\@nextchar$}%
 
1732
}%
 
1733
\def\@classv@LaTeX{%
 
1734
 \@addtopreamble{\@startpbox{\@nextchar}\ignorespaces
 
1735
 \@sharp\@endpbox}%
 
1736
}%
 
1737
\def\@classv@ltx{%
 
1738
 \expandafter\@addtopreamble
 
1739
 \expandafter{%
 
1740
 \expandafter \@startpbox
 
1741
 \expandafter {\@nextchar}%
 
1742
 \pbox@hook\array@row@rst\cell@font\ignorespaces\@sharp\@endpbox
 
1743
 }%
 
1744
}%
 
1745
\def\@classx@array{%
 
1746
  \ifcase \@lastchclass
 
1747
  \@acolampacol \or
 
1748
  \@addamp \@acol \or
 
1749
  \@acolampacol \or
 
1750
  \or
 
1751
  \@acol \@firstampfalse \or
 
1752
  \@addamp
 
1753
  \fi
 
1754
}%
 
1755
\def\@classx@array@new{%
 
1756
 \ifcase \@lastchclass
 
1757
  \@acolampacol
 
1758
 \or
 
1759
  \@addamp \@acol
 
1760
 \or
 
1761
  \@acolampacol
 
1762
 \or
 
1763
 \or
 
1764
  \@firstampfalse\@acoll
 
1765
 \or
 
1766
  \@addamp
 
1767
 \fi
 
1768
}%
 
1769
\def\@xbitor@LaTeX #1{\@tempcntb \count#1
 
1770
   \ifnum \@tempcnta =\z@
 
1771
   \else
 
1772
     \divide\@tempcntb\@tempcnta
 
1773
     \ifodd\@tempcntb \@testtrue\fi
 
1774
   \fi}%
 
1775
\def\@xbitor@ltx#1{%
 
1776
 \@tempcntb\count#1\relax
 
1777
 \@ifnum{\@tempcnta=\z@}{}{%
 
1778
  \divide\@tempcntb\@tempcnta
 
1779
  \@ifodd\@tempcntb{\@testtrue}{}%
 
1780
 }%
 
1781
}%
 
1782
\@ifx{\@xbitor\@xbitor@LaTeX}{%
 
1783
  \class@info{Repairing broken LaTeX \string\@xbitor}%
 
1784
}{%
 
1785
  \class@info{Unrecognized LaTeX \string\@xbitor. Please update this document class! (Proceeding with fingers crossed.)}%
 
1786
}%
 
1787
\let\@xbitor\@xbitor@ltx
 
1788
\newcommand*\@gobble@opt@one[2][]{}%
 
1789
\def\@starttoc#1{%
 
1790
  \begingroup
 
1791
    \toc@pre
 
1792
    \makeatletter
 
1793
    \@input{\jobname.#1}%
 
1794
    \if@filesw
 
1795
      \expandafter\newwrite\csname tf@#1\endcsname
 
1796
      \immediate\openout \csname tf@#1\endcsname \jobname.#1\relax
 
1797
    \fi
 
1798
    \@nobreakfalse
 
1799
    \toc@post
 
1800
  \endgroup
 
1801
}%
 
1802
\def\toc@pre{}%
 
1803
\def\toc@post{}%
 
1804
\def\toc@@font{}%
 
1805
\def\ltxu@dotsep{\z@}%
 
1806
\let\tocdim@section       \leftmargini
 
1807
\let\tocdim@subsection    \leftmarginii
 
1808
\let\tocdim@subsubsection \leftmarginiii
 
1809
\let\tocdim@paragraph     \leftmarginiv
 
1810
\let\tocdim@appendix      \leftmarginv
 
1811
\let\tocdim@pagenum       \leftmarginvi
 
1812
\def\toc@pre@auto{%
 
1813
  \toc@@font
 
1814
  \@tempdima\z@
 
1815
  \toc@setindent\@tempdima{section}%
 
1816
  \toc@setindent\@tempdima{subsection}%
 
1817
  \toc@setindent\@tempdima{subsubsection}%
 
1818
  \toc@setindent\@tempdima{paragraph}%
 
1819
  \toc@letdimen{appendix}%
 
1820
  \toc@letdimen{pagenum}%
 
1821
}%
 
1822
\def\toc@post@auto{%
 
1823
  \if@filesw
 
1824
   \begingroup
 
1825
    \toc@writedimen{section}%
 
1826
    \toc@writedimen{subsection}%
 
1827
    \toc@writedimen{subsubsection}%
 
1828
    \toc@writedimen{paragraph}%
 
1829
    \toc@writedimen{appendix}%
 
1830
    \toc@writedimen{pagenum}%
 
1831
   \endgroup
 
1832
  \fi
 
1833
}%
 
1834
\def\toc@setindent#1#2{%
 
1835
 \csname tocdim@#2\endcsname\tocdim@min\relax
 
1836
 \@ifundefined{tocmax@#2}{\@namedef{tocmax@#2}{\z@}}{}%
 
1837
 \advance#1\@nameuse{tocmax@#2}\relax
 
1838
 \expandafter\edef\csname tocleft@#2\endcsname{\the#1}%
 
1839
}%
 
1840
\def\toc@letdimen#1{%
 
1841
 \csname tocdim@#1\endcsname\tocdim@min\relax
 
1842
 \@ifundefined{tocmax@#1}{\@namedef{tocmax@#1}{\z@}}{}%
 
1843
 \expandafter\let\csname tocleft@#1\expandafter\endcsname\csname tocmax@#1\endcsname
 
1844
}%
 
1845
\def\toc@writedimen#1{%
 
1846
 \immediate\write\@auxout{%
 
1847
  \gdef\expandafter\string\csname tocmax@#1\endcsname{%
 
1848
   \expandafter\the\csname tocdim@#1\endcsname
 
1849
  }%
 
1850
 }%
 
1851
}%
 
1852
\def\l@@sections#1#2#3#4{%
 
1853
 \begingroup
 
1854
  \everypar{}%
 
1855
  \set@tocdim@pagenum\@tempboxa{#4}%
 
1856
  \global\@tempdima\csname tocdim@#2\endcsname
 
1857
  \leftskip\csname tocleft@#2\endcsname\relax
 
1858
  \dimen@\csname tocleft@#1\endcsname\relax
 
1859
  \parindent-\leftskip\advance\parindent\dimen@
 
1860
  \rightskip\tocleft@pagenum plus 1fil\relax
 
1861
  \skip@\parfillskip\parfillskip\z@
 
1862
  \let\numberline\numberline@@sections
 
1863
  \@nameuse{l@f@#2}%
 
1864
  \ignorespaces#3\unskip\nobreak\hskip\skip@
 
1865
  \hb@xt@\rightskip{\hfil\unhbox\@tempboxa}\hskip-\rightskip\hskip\z@skip
 
1866
  \expandafter\par
 
1867
  \expandafter\aftergroup\csname tocdim@#2%
 
1868
  \expandafter\endcsname
 
1869
  \expandafter\endgroup
 
1870
              \the\@tempdima\relax
 
1871
}%
 
1872
\def\set@tocdim@pagenum#1#2{%
 
1873
 \setbox#1\hbox{\ignorespaces#2}%
 
1874
 \@ifdim{\tocdim@pagenum<\wd#1}{\global\tocdim@pagenum\wd#1}{}%
 
1875
}%
 
1876
\def\numberline@@sections#1{%
 
1877
 \leavevmode\hb@xt@-\parindent{%
 
1878
  \hfil
 
1879
  \@if@empty{#1}{}{%
 
1880
   \setbox\z@\hbox{#1.\kern\ltxu@dotsep}%
 
1881
   \@ifdim{\@tempdima<\wd\z@}{\global\@tempdima\wd\z@}{}%
 
1882
   \unhbox\z@
 
1883
  }%
 
1884
 }%
 
1885
 \ignorespaces
 
1886
}%
 
1887
\def\tocdim@min{\z@}%
 
1888
\def\list#1#2{%
 
1889
  \ifnum \@listdepth >5\relax
 
1890
    \@toodeep
 
1891
  \else
 
1892
    \global\advance\@listdepth\@ne
 
1893
  \fi
 
1894
  \rightmargin\z@
 
1895
  \listparindent\z@
 
1896
  \itemindent\z@
 
1897
  \csname @list\romannumeral\the\@listdepth\endcsname
 
1898
  \def\@itemlabel{#1}%
 
1899
  \let\makelabel\@mklab
 
1900
  \@nmbrlistfalse
 
1901
  #2\relax
 
1902
  \@trivlist
 
1903
  \parskip\parsep
 
1904
  \set@listindent
 
1905
  \ignorespaces
 
1906
}%
 
1907
\def\set@listindent@parshape{%
 
1908
 \parindent\listparindent
 
1909
 \advance\@totalleftmargin\leftmargin
 
1910
 \advance\linewidth-\rightmargin
 
1911
 \advance\linewidth-\leftmargin
 
1912
 \parshape\@ne\@totalleftmargin\linewidth
 
1913
}%
 
1914
\def\set@listindent@{%
 
1915
 \parindent\listparindent
 
1916
 \advance\@totalleftmargin\leftmargin
 
1917
 \advance\rightskip\rightmargin
 
1918
 \advance\leftskip\@totalleftmargin
 
1919
}%
 
1920
\let\set@listindent\set@listindent@parshape
 
1921
\providecommand\href[0]{\begingroup\@sanitize@url\@href}%
 
1922
\def\@href#1{\@@startlink{#1}\endgroup\@@href}%
 
1923
\def\@@href#1{#1\@@endlink}%
 
1924
\providecommand \url  [0]{\begingroup\@sanitize@url \@url }%
 
1925
\def \@url #1{\endgroup\@href {#1}{\URL@prefix#1}}%
 
1926
\providecommand \URL@prefix [0]{URL }%
 
1927
\providecommand\doi[0]{\begingroup\@sanitize@url\@doi}%
 
1928
\def\@doi#1{\endgroup\@@startlink{\doibase#1}doi:\discretionary {}{}{}#1\@@endlink }%
 
1929
\providecommand \doibase [0]{http://dx.doi.org/}%
 
1930
\providecommand \@sanitize@url[0]{\chardef\cat@space\the\catcode`\ \@sanitize\catcode`\ \cat@space}%
 
1931
\def\@@startlink#1{}%
 
1932
\def\@@endlink{}%
 
1933
\@ifxundefined \pdfoutput {\true@sw}{\@ifnum{\z@=\pdfoutput}{\true@sw}{\false@sw}}%
 
1934
{%
 
1935
 \def\@@startlink@hypertext#1{\leavevmode\special{html:<a href="#1">}}%
 
1936
 \def\@@endlink@hypertext{\special{html:</a>}}%
 
1937
}{%
 
1938
 \def\@@startlink@hypertext#1{%
 
1939
  \leavevmode
 
1940
  \pdfstartlink\pdfstartlink@attr
 
1941
   user{/Subtype/Link/A<</Type/Action/S/URI/URI(#1)>>}%
 
1942
  \relax
 
1943
 }%
 
1944
 \def\@@endlink@hypertext{\pdfendlink}%
 
1945
 \def\pdfstartlink@attr{attr{/Border[0 0 1 ]/H/I/C[0 1 1]}}%
 
1946
}%
 
1947
\def\hypertext@enable@ltx{%
 
1948
 \let\@@startlink\@@startlink@hypertext
 
1949
 \let\@@endlink\@@endlink@hypertext
 
1950
}%
 
1951
\def\href@Hy{\hyper@normalise \href@ }%
 
1952
\def\href@Hy@ltx{\@ifnextchar\bgroup\Hy@href{\hyper@normalise\href@}}%
 
1953
\def\Hy@href#{\hyper@normalise\href@}%
 
1954
\begingroup
 
1955
  \endlinechar=-1 %
 
1956
  \catcode`\^^A=14 %
 
1957
  \catcode`\^^M\active
 
1958
  \catcode`\%\active
 
1959
  \catcode`\#\active
 
1960
  \catcode`\_\active
 
1961
  \catcode`\$\active
 
1962
  \catcode`\&\active
 
1963
  \gdef\hyper@normalise@ltx{^^A
 
1964
    \begingroup
 
1965
    \catcode`\^^M\active
 
1966
    \def^^M{ }^^A
 
1967
    \catcode`\%\active
 
1968
    \let%\@percentchar
 
1969
    \let\%\@percentchar
 
1970
    \catcode`\#\active
 
1971
    \def#{\hyper@hash}^^A
 
1972
    \def\#{\hyper@hash}^^A
 
1973
    \@makeother\&^^A
 
1974
    \edef&{\string&}^^A
 
1975
    \edef\&{\string&}^^A
 
1976
    \edef\textunderscore{\string_}^^A
 
1977
    \let\_\textunderscore
 
1978
    \catcode`\_\active
 
1979
    \let_\textunderscore
 
1980
    \let~\hyper@tilde
 
1981
    \let\~\hyper@tilde
 
1982
    \let\textasciitilde\hyper@tilde
 
1983
    \let\\\@backslashchar
 
1984
    \edef${\string$}^^A
 
1985
    \Hy@safe@activestrue
 
1986
    \hyper@n@rmalise
 
1987
  }^^A
 
1988
  \catcode`\#=6 ^^A
 
1989
  \gdef\Hy@ActiveCarriageReturn@ltx{^^M}^^A
 
1990
  \gdef\hyper@n@rmalise@ltx#1#2{^^A
 
1991
    \def\Hy@tempa{#2}^^A
 
1992
    \ifx\Hy@tempa\Hy@ActiveCarriageReturn
 
1993
      \Hy@ReturnAfterElseFi{^^A
 
1994
        \hyper@@normalise{#1}^^A
 
1995
      }^^A
 
1996
    \else
 
1997
      \Hy@ReturnAfterFi{^^A
 
1998
        \hyper@@normalise{#1}{#2}^^A
 
1999
      }^^A
 
2000
    \fi
 
2001
  }^^A
 
2002
  \gdef\hyper@@normalise@ltx#1#2{^^A
 
2003
    \edef\Hy@tempa{^^A
 
2004
      \endgroup
 
2005
      \noexpand#1{\Hy@RemovePercentCr#2%^^M\@nil}^^A
 
2006
    }^^A
 
2007
    \Hy@tempa
 
2008
  }^^A
 
2009
  \gdef\Hy@RemovePercentCr@ltx#1%^^M#2\@nil{^^A
 
2010
    #1^^A
 
2011
    \ifx\limits#2\limits
 
2012
    \else
 
2013
      \Hy@ReturnAfterFi{^^A
 
2014
        \Hy@RemovePercentCr #2\@nil
 
2015
      }^^A
 
2016
    \fi
 
2017
  }^^A
 
2018
\endgroup
 
2019
\def\switch@hyperref@href{%
 
2020
 \expandafter\@ifx\expandafter{\csname href \endcsname\href@Hy}{
 
2021
  \class@info{Repairing hyperref 6.75r \string\href}%
 
2022
  \let\hyper@normalise\hyper@normalise@ltx
 
2023
  \let\hyper@@normalise\hyper@@normalise@ltx
 
2024
  \let\hyper@n@rmalise\hyper@n@rmalise@ltx
 
2025
  \let\Hy@ActiveCarriageReturn\Hy@ActiveCarriageReturn@ltx
 
2026
  \let\Hy@RemovePercentCr\Hy@RemovePercentCr@ltx
 
2027
  \let\href\href@Hy@ltx
 
2028
 }{}%
 
2029
}%
 
2030
\appdef\document@inithook{\switch@hyperref@href}%
 
2031
\def\typeout@org#1{%
 
2032
 \begingroup
 
2033
  \set@display@protect
 
2034
  \immediate\write\@unused{#1}%
 
2035
 \endgroup
 
2036
}%
 
2037
\long\def\typeout@ltx#1{%
 
2038
 \begingroup
 
2039
  \set@display@protect
 
2040
  \immediate\write\@unused{#1}%
 
2041
 \endgroup
 
2042
}%
 
2043
\@ifx{\typeout\typeout@org}{%
 
2044
 \class@info{Making \string\typeout\space \string\long}%
 
2045
 \let\typeout\typeout@ltx
 
2046
}{}%
 
2047
\typeout{%
 
2048
ltxfront%
 
2049
 [2010/07/25/20:33:00 4.1r frontmatter package (AO,DPC)]% \fileversion
 
2050
}%
 
2051
\appdef\class@documenthook{\frontmatter@init}%
 
2052
\let\frontmatter@init\@empty
 
2053
\newcommand\frontmatter@title[2][]{%
 
2054
 \def\@title{#2}%
 
2055
 \def\@shorttitle{#1}%
 
2056
 \let\@AF@join\@title@join
 
2057
}%
 
2058
\appdef\frontmatter@init{%
 
2059
 \def\@title{\class@warn{No title}}%
 
2060
 \let\@shorttitle\@empty
 
2061
 \let\@title@aux\@title@aux@cleared
 
2062
}%
 
2063
\def\@title@join{\expandafter\@title@join@\@title@aux}%
 
2064
\def\@title@join@#1#2{%
 
2065
 \def\@title@aux{{\@join{\@separator}{#1}{#2}}}%
 
2066
}%
 
2067
\def\@title@aux@cleared{{}}%
 
2068
\newcounter{affil}%
 
2069
\newcounter{collab}%
 
2070
\appdef\frontmatter@init{%
 
2071
 \c@affil\z@
 
2072
 \c@collab\z@
 
2073
}%
 
2074
\newcommand\frontmatter@author{% implicit #1
 
2075
 \@author@def{}% implicit #2
 
2076
}%
 
2077
\def\collaboration{% implicit #1
 
2078
 \@author@def{\@booleantrue\collaboration@sw}% implicit #2
 
2079
}%
 
2080
\appdef\frontmatter@init{%
 
2081
 \@booleanfalse\collaboration@sw
 
2082
}%
 
2083
\def\@author@cleared{{}{}{}}%
 
2084
\def\@author@gobble#1#2#3{}%
 
2085
\def\@author@init{%
 
2086
 \let\@author\@author@cleared
 
2087
 \@booleanfalse\collaboration@sw
 
2088
}%
 
2089
\def\@authorclear@sw{\@ifx{\@author\@author@cleared}}%
 
2090
\appdef\frontmatter@init{%
 
2091
 \@author@init
 
2092
}%
 
2093
\def\@author@def#1#2{%
 
2094
 \frontmatterverbose@sw{\typeout{\string\author\space\string\collaboration}}{}%
 
2095
 \move@AU\move@AF\move@AUAF
 
2096
 \let\@AF@join\@author@join
 
2097
 #1%
 
2098
 \def\@author{{#2}{}}%
 
2099
}%
 
2100
\def\@author@join@#1#2#3{%
 
2101
  \def\@author{{#1}{\@join{\@separator}{#2}{#3}}}%
 
2102
}%
 
2103
\def\@author@join{\expandafter\@author@join@\@author}%
 
2104
\def\move@AU{%
 
2105
 \@authorclear@sw{}{%
 
2106
  \collaboration@sw{%
 
2107
   \advance\c@collab\@ne
 
2108
   \@argswap{\CO@grp\CO@opr}%
 
2109
  }{%
 
2110
   \@argswap{\AU@grp\AU@opr}%
 
2111
  }%
 
2112
   {%
 
2113
    \expandafter\@argswap@val
 
2114
    \expandafter{\@author}%
 
2115
     {\expandafter\@argswap@val\expandafter{\the\c@collab}{\add@AUCO@grp}}%
 
2116
   }%
 
2117
 }%
 
2118
 \@author@init
 
2119
}%
 
2120
\def\add@AUCO@grp#1#2#3#4{%
 
2121
 \appdef#3{#4{#1}#2}%
 
2122
 \frontmatterverbose@sw{\say#3}{}%
 
2123
}%
 
2124
\def\@author@finish{%
 
2125
 \frontmatterverbose@sw{\typeout{\string\@author@finish}}{}%
 
2126
 \move@AU\move@AF
 
2127
 \@ifx{\AU@grp\@empty}{%
 
2128
  \@ifx{\CO@grp\@empty}%
 
2129
 }{%
 
2130
  \false@sw
 
2131
 }%
 
2132
 {}{%
 
2133
  \@ifx{\AF@grp\@empty}{%
 
2134
   \begingroup
 
2135
    \let\href\@secondoftwo
 
2136
    \let\AU@opr\@secondofthree
 
2137
    \let\CO@opr\@secondofthree
 
2138
    \let\footnote\@gobble
 
2139
    \@ifx{\CO@grp\@empty}{%
 
2140
     \class@warn{Assuming \string\noaffiliation\space for authors}%
 
2141
     \frontmatterverbose@sw{\say\AU@grp}%
 
2142
    }{%
 
2143
     \class@warn{Assuming \string\noaffiliation\space for collaboration}%
 
2144
     \frontmatterverbose@sw{\say\CO@grp}{}%
 
2145
    }%
 
2146
   \endgroup
 
2147
   \@affil@none\move@AF
 
2148
  }{}%
 
2149
 }%
 
2150
 \move@AUAF
 
2151
}%
 
2152
\def\@secondofthree#1#2#3{#2}%
 
2153
\def\@join#1#2#3{%
 
2154
  \@if@empty{#2}{#3}{#2#1#3}%
 
2155
}%
 
2156
\def\@separator{;\space}%
 
2157
\let\surname\@firstofone
 
2158
\let\firstname\@firstofone
 
2159
\newcommand\frontmatter@and{\class@err{\protect\and\space is not supported}}
 
2160
\def\cat@comma@active{\catcode`\,\active}%
 
2161
{\cat@comma@active\gdef,{\active@comma}}%
 
2162
\def\active@comma{,\penalty-300\relax}%
 
2163
\newcommand\affiliation{%
 
2164
 \frontmatterverbose@sw{\typeout{\string\affiliation}}{}%
 
2165
 \move@AU\move@AF
 
2166
 \begingroup
 
2167
  \cat@comma@active
 
2168
  \@affiliation
 
2169
}%
 
2170
\def\@affiliation#1{%
 
2171
 \endgroup
 
2172
 \let\@AF@join\@affil@join
 
2173
 \@affil@def{#1}%
 
2174
}%
 
2175
\newcommand\frontmatter@noaffiliation{%
 
2176
 \frontmatterverbose@sw{\typeout{\string\noaffiliation}}{}%
 
2177
 \move@AU\move@AF
 
2178
 \@affil@none\move@AF
 
2179
 \move@AUAF
 
2180
}%
 
2181
\def\blankaffiliation{{}}%
 
2182
\def\@affil@cleared{{{}}{}}%
 
2183
\def\@affil@nil{{\relax}{}}%
 
2184
\appdef\frontmatter@init{%
 
2185
 \@affil@init
 
2186
}%
 
2187
\def\@affil@none{%
 
2188
 \let\@affil\@affil@nil
 
2189
}%
 
2190
\def\@affil@init{%
 
2191
 \let\@affil\@affil@cleared
 
2192
}%
 
2193
\def\@affilclear@sw{\@ifx{\@affil\@affil@cleared}}%
 
2194
\def\@affil@def#1{%
 
2195
 \def\@affil{{#1}{}}%
 
2196
}%
 
2197
\def\@affil@join@#1#2#3{%
 
2198
  \def\@affil{{#1}{\@join{\@separator}{#2}{#3}}}%
 
2199
}%
 
2200
\def\@affil@join{\expandafter\@affil@join@\@affil}%
 
2201
\def\move@AF{%
 
2202
 \@affilclear@sw{}{%
 
2203
  \@booleanfalse\temp@sw
 
2204
  \let\@tempd\@empty
 
2205
  \@affils@sw{%
 
2206
    \expandafter\@affil@addr@def\expandafter\@tempa\@affil
 
2207
    \def\AFF@opr{\@affil@match\@tempa}%
 
2208
    \@AFF@list
 
2209
  }{}\temp@sw
 
2210
  {%
 
2211
   \expandafter\@affil@aux@def\expandafter\@tempb\@affil
 
2212
   \@ifx{\@tempb\@empty}{}{%
 
2213
    \@ifx{\@tempb\@tempd}{}{%
 
2214
     \class@warn{%
 
2215
      Ancillary information for \@tempa\space must not be different!
 
2216
      Please put all of it on the first instance%
 
2217
     }%
 
2218
    }%
 
2219
   }%
 
2220
  }%
 
2221
  {%
 
2222
   \@ifx{\@affil\@affil@nil}{%
 
2223
    \def\@tempc{0}%
 
2224
    \@argswap@val{0}%
 
2225
   }{%
 
2226
    \advance\c@affil\@ne
 
2227
    \expandafter\def\expandafter\@tempc\expandafter{\the\c@affil}%
 
2228
    \expandafter\@argswap@val\expandafter{\the\c@affil}%
 
2229
   }%
 
2230
   {%
 
2231
    \expandafter\@argswap@val\expandafter{\the\c@collab}{%
 
2232
     \expandafter\@argswap@val\expandafter{\@affil}{%
 
2233
      \add@list@val@val@val\@AFF@list\AFF@opr
 
2234
     }%
 
2235
    }%
 
2236
   }%
 
2237
  }%
 
2238
  \appdef@eval\AF@grp\@tempc
 
2239
  \frontmatterverbose@sw{\say\AF@grp}{}%
 
2240
  \@affil@init
 
2241
 }%
 
2242
}%
 
2243
\def\@affil@addr@def#1#2#3{%
 
2244
 \def#1{#2}%
 
2245
}%
 
2246
\def\@affil@aux@def#1#2#3{%
 
2247
 \def#1{#3}%
 
2248
}%
 
2249
\def\add@list@val@val@val#1#2#3#4#5{%
 
2250
 \appdef#1{#2{#5}{#4}#3}%
 
2251
 \frontmatterverbose@sw{\say#1}{}%
 
2252
}%
 
2253
\def\@affil@match#1#2#3#4#5{%
 
2254
 \temp@sw{}{%
 
2255
  \def\@tempifx{#4}%
 
2256
  \@ifx{\@tempifx#1}{%
 
2257
   \groupauthors@sw{%
 
2258
    \@ifnum{#3=\c@collab}{%
 
2259
     \true@sw
 
2260
    }{%
 
2261
     \false@sw
 
2262
    }%
 
2263
   }{%
 
2264
    \true@sw
 
2265
   }%
 
2266
  }{%
 
2267
   \false@sw
 
2268
  }%
 
2269
  {%
 
2270
   \@booleantrue\temp@sw
 
2271
   \def\@tempc{#2}%
 
2272
   \def\@tempd{#5}%
 
2273
  }{%
 
2274
  }%
 
2275
 }%
 
2276
}%
 
2277
\def\move@AUAF{%
 
2278
 \frontmatterverbose@sw{\say\AU@grp\say\AF@grp\say\CO@grp}{}%
 
2279
 \@ifx{\AF@grp\@empty}{%
 
2280
    \@ifx{\@empty\CO@grp}{%
 
2281
    }{%
 
2282
     \appdef     \@AAC@list{\AF@opr{{0}}}%
 
2283
     \appdef@e   \@AAC@list{\CO@grp}%
 
2284
     \appdef@e   \@AFG@list{\CO@grp}%
 
2285
     \let\CO@grp\@empty
 
2286
    }%
 
2287
 }{%
 
2288
      \appdef     \@AAC@list{\AF@opr}%
 
2289
      \appdef@eval\@AAC@list{\AF@grp}%
 
2290
      \appdef@e   \@AAC@list{\AU@grp}%
 
2291
    \@ifx{\@empty\AU@grp}{%
 
2292
     \@ifx{\@empty\CO@grp}%
 
2293
    }{%
 
2294
     \false@sw
 
2295
    }%
 
2296
    {%
 
2297
    }{%
 
2298
      \@booleanfalse\temp@sw
 
2299
      \def\AFG@opr{\x@match\AF@grp}%
 
2300
      \let\CO@opr\@author@gobble
 
2301
      \@AFG@list
 
2302
      \temp@sw{}{%
 
2303
        \appdef     \@AFG@list{\AFG@opr}%
 
2304
        \appdef@eval\@AFG@list{\AF@grp}%
 
2305
      }%
 
2306
     \@ifx{\@empty\CO@grp}{}{%
 
2307
       \appdef@e   \@AAC@list{\CO@grp}%
 
2308
       \appdef@e   \@AFG@list{\CO@grp}%
 
2309
       \let\CO@grp\@empty
 
2310
     }%
 
2311
    }%
 
2312
    \let\CO@grp\@empty
 
2313
    \let\AU@grp\@empty
 
2314
    \let\AF@grp\@empty
 
2315
 }%
 
2316
 \frontmatterverbose@sw{\say\@AAC@list\say\@AFG@list}{}%
 
2317
}%
 
2318
\appdef\frontmatter@init{%
 
2319
 \let\AU@grp\@empty
 
2320
 \let\CO@grp\@empty
 
2321
 \let\AF@grp\@empty
 
2322
 \let\@AAC@list\@empty
 
2323
 \let\@AFG@list\@empty
 
2324
 \let\@AFF@list\@empty
 
2325
}%
 
2326
\appdef\frontmatter@init{%
 
2327
 \let\@AF@join\@AF@join@error
 
2328
}%
 
2329
\def\@AF@join@error#1{%
 
2330
 \class@warn{%
 
2331
  \string\email, \string\homepage, \string\thanks, or \string\altaffiliation\space
 
2332
  appears in wrong context.
 
2333
 }%
 
2334
}%
 
2335
\def\sanitize@url{%
 
2336
 \@makeother\%%
 
2337
 \@makeother\~%
 
2338
 \@makeother\_%
 
2339
}%
 
2340
\newcommand*\email[1][]{\begingroup\sanitize@url\@email{#1}}%
 
2341
\def\@email#1#2{%
 
2342
 \endgroup
 
2343
 \@AF@join{#1\href{mailto:#2}{#2}}%
 
2344
}%
 
2345
\newcommand*\homepage[1][]{\begingroup\sanitize@url\@homepage{#1}}%
 
2346
\def\@homepage#1#2{%
 
2347
 \endgroup
 
2348
 \@AF@join{#1\href{#2}{#2}}%
 
2349
}%
 
2350
\appdef\class@documenthook{%
 
2351
 \providecommand\href[1]{}%
 
2352
}%
 
2353
\def\frontmatter@thanks{% implicit #1
 
2354
  \@AF@join
 
2355
}%
 
2356
\newcommand*\altaffiliation[2][]{%
 
2357
  \@AF@join{#1#2}%
 
2358
}%
 
2359
\def\set@listcomma@list#1{%
 
2360
  \expandafter\@reset@ac\expandafter#1#1{0}\@reset@ac{%
 
2361
   \let\@listcomma\relax
 
2362
  }{%
 
2363
   \let\@listcomma\@listcomma@comma
 
2364
  }%
 
2365
}%
 
2366
\def\set@listcomma@count#1{%
 
2367
  \@ifnum{#1=\tw@}{%
 
2368
    \let\@listcomma\relax
 
2369
  }{%
 
2370
    \let\@listcomma\@listcomma@comma
 
2371
  }%
 
2372
}%
 
2373
\def\@reset@ac#1#2#3\@reset@ac{%
 
2374
  \def#1{#3}%
 
2375
  \@tempcnta#2\relax
 
2376
  \@ifnum{#2=\tw@}%
 
2377
}%
 
2378
\def\@listand{\@ifnum{\@tempcnta=\tw@}{\andname\space}{}}%
 
2379
\def\@listcomma@comma{\@ifnum{\@tempcnta>\@ne}{,}{}}%
 
2380
\def\@listcomma@comma@UK{\@ifnum{\@tempcnta>\tw@}{,}{}}%
 
2381
\def\@collaboration@gobble#1#2#3{}%
 
2382
\def\doauthor#1#2#3{%
 
2383
  \ignorespaces#1\unskip\@listcomma
 
2384
  \begingroup
 
2385
   #3%
 
2386
  \@if@empty{#2}{\endgroup{}{}}{\endgroup{\comma@space}{}\frontmatter@footnote{#2}}%
 
2387
  \space \@listand
 
2388
}%
 
2389
\def\x@match#1#2{%
 
2390
 \temp@sw{}{%
 
2391
  \def\@tempifx{#2}%
 
2392
  \@ifx{\@tempifx#1}{%
 
2393
    \@booleantrue\temp@sw
 
2394
  }{%
 
2395
  }%
 
2396
 }%
 
2397
}%
 
2398
\def\y@match#1#2#3{%
 
2399
 \temp@sw{}{%
 
2400
  \def\@tempifx{#3}%
 
2401
  \@ifx{\@tempifx#1}{%
 
2402
    \@booleantrue\temp@sw
 
2403
    \def\@tempb{#2}%
 
2404
  }{%
 
2405
  }%
 
2406
 }%
 
2407
}%
 
2408
\def\frontmatter@footnote#1{%
 
2409
 \begingroup
 
2410
  \@booleanfalse\temp@sw
 
2411
  \def\@tempa{#1}%
 
2412
  \let\@tempb\@empty
 
2413
  \def\@TBN@opr{\y@match\@tempa}%
 
2414
  \@FMN@list
 
2415
  \temp@sw{%
 
2416
   \expandafter\frontmatter@footnotemark
 
2417
   \expandafter{\@tempb}%
 
2418
  }{%
 
2419
   \stepcounter\@mpfn
 
2420
   \expandafter\expandafter
 
2421
   \expandafter\frontmatter@foot@mark
 
2422
   \expandafter\expandafter
 
2423
   \expandafter{%
 
2424
   \expandafter \the\csname c@\@mpfn\endcsname
 
2425
               }{#1}%
 
2426
  }%
 
2427
 \endgroup
 
2428
}%
 
2429
\def\frontmatter@foot@mark#1#2{%
 
2430
 \frontmatter@footnotemark{#1}%
 
2431
 \g@addto@macro\@FMN@list{\@TBN@opr{#1}{#2}}%
 
2432
}%
 
2433
\appdef\frontmatter@init{%
 
2434
 \global\let\@FMN@list\@empty
 
2435
}%
 
2436
\def\frontmatter@footnotemark#1{%
 
2437
 \leavevmode
 
2438
 \ifhmode\edef\@x@sf{\the\spacefactor}\nobreak\fi
 
2439
  \begingroup
 
2440
   \hyper@linkstart {link}{frontmatter.#1}%
 
2441
    \csname c@\@mpfn\endcsname#1\relax
 
2442
    \def\@thefnmark{\frontmatter@thefootnote}%
 
2443
    \@makefnmark
 
2444
   \hyper@linkend
 
2445
  \endgroup
 
2446
 \ifhmode\spacefactor\@x@sf\fi
 
2447
 \relax
 
2448
}%
 
2449
\def\keywords#1{%
 
2450
  \aftermaketitle@chk{\keywords}%
 
2451
  \gdef\@keywords{#1}%
 
2452
}%
 
2453
\appdef\frontmatter@init{%
 
2454
 \let\@keywords\@empty
 
2455
}%
 
2456
\newcommand*\frontmatter@date[2][\Dated@name]{\def\@date{#1#2}}%
 
2457
\def\@date{}%
 
2458
\newcommand*\received[2][\Received@name]{\def\@received{#1#2}}%
 
2459
\def\@received{}%
 
2460
\newcommand*\revised[2][\Revised@name]{\def\@revised{#1#2}}%
 
2461
\def\@revised{}%
 
2462
\newcommand*\accepted[2][\Accepted@name]{\def\@accepted{#1#2}}%
 
2463
\def\@accepted{}%
 
2464
\newcommand*\published[2][\Published@name]{\def\@published{#1#2}}%
 
2465
\def\@published{}%
 
2466
\def\pacs#1{%
 
2467
  \aftermaketitle@chk{\pacs}%
 
2468
  \gdef\@pacs{#1}%
 
2469
}%
 
2470
\appdef\frontmatter@init{%
 
2471
 \let\@pacs\@empty
 
2472
}%
 
2473
\def\preprint#1{\gappdef\@preprint{\preprint{#1}}}%
 
2474
\appdef\frontmatter@init{%
 
2475
 \let\@preprint\@empty
 
2476
}%
 
2477
\newbox\absbox
 
2478
\def\toclevel@abstract{1}%
 
2479
\def\addcontents@abstract{%
 
2480
 \phantomsection
 
2481
 \expandafter\def\csname Parent0\endcsname{section*.2}%
 
2482
 \expandafter\@argswap@val\expandafter{\abstractname}{\addcontentsline{toc}{abstract}}%
 
2483
}%
 
2484
\newenvironment{frontmatter@abstract}{%
 
2485
  \aftermaketitle@chk{\begin{abstract}}%
 
2486
  \global\setbox\absbox\vbox\bgroup
 
2487
   \color@begingroup
 
2488
   \columnwidth\textwidth
 
2489
   \hsize\columnwidth
 
2490
   \@parboxrestore
 
2491
   \def\@mpfn{mpfootnote}\def\thempfn{\thempfootnote}\c@mpfootnote\z@
 
2492
   \let\@footnotetext\frontmatter@footnotetext
 
2493
   \minipagefootnote@init
 
2494
   \let\set@listindent\set@listindent@
 
2495
   \let\@listdepth\@mplistdepth \@mplistdepth\z@
 
2496
   \let@environment{description}{frontmatter@description}%
 
2497
   \@minipagerestore
 
2498
   \@setminipage
 
2499
    \frontmatter@abstractheading
 
2500
    \frontmatter@abstractfont
 
2501
    \let\footnote\mini@note
 
2502
    \expandafter\everypar\expandafter{\the\everypar\addcontents@abstract\everypar{}}%
 
2503
}{%
 
2504
    \par
 
2505
    \unskip
 
2506
    \minipagefootnote@here
 
2507
    \@minipagefalse   %% added 24 May 89
 
2508
    \color@endgroup
 
2509
  \egroup
 
2510
}%
 
2511
\long\def\frontmatter@footnotetext#1{%
 
2512
  \minipagefootnote@pick
 
2513
    \set@footnotefont
 
2514
    \set@footnotewidth
 
2515
    \@parboxrestore
 
2516
    \protected@edef\@currentlabel{\csname p@\@mpfn\endcsname\@thefnmark}%
 
2517
    \color@begingroup
 
2518
      \frontmatter@makefntext{%
 
2519
        \rule\z@\footnotesep\ignorespaces#1\@finalstrut\strutbox\vadjust{\vskip\z@skip}%
 
2520
      }%
 
2521
    \color@endgroup
 
2522
  \minipagefootnote@drop
 
2523
}%
 
2524
\def\ltx@no@footnote{%
 
2525
 \let\ltx@xfootnote\ltx@no@xfootnote\let\ltx@yfootnote\ltx@no@yfootnote
 
2526
 \let\ltx@xfootmark\ltx@no@xfootmark\let\ltx@yfootmark\ltx@no@yfootmark
 
2527
 \let\ltx@xfoottext\ltx@no@xfoottext\let\ltx@yfoottext\ltx@no@yfoottext
 
2528
}%
 
2529
\def\ltx@no@xfootnote[#1]#2{\ltx@no@footwarn\footnote}%
 
2530
\def\ltx@no@yfootnote#1{\ltx@no@footwarn\footnote}%
 
2531
\def\ltx@no@xfootmark[#1]{\ltx@no@footwarn\footnotemark}%
 
2532
\def\ltx@no@yfootmark{\ltx@no@footwarn\footnotemark}%
 
2533
\def\ltx@no@xfoottext[#1]#2{\ltx@no@footwarn\footnotetext}%
 
2534
\def\ltx@no@yfoottext#1{\ltx@no@footwarn\footnotetext}%
 
2535
\def\ltx@no@footwarn#1{%
 
2536
 \class@warn{%
 
2537
  The \string#1\space command is not legal on the title page;
 
2538
  using \string\thanks\space instead might suit you: consult the manual for details%
 
2539
 }%
 
2540
}%
 
2541
\def\frontmatter@abstractheading{%
 
2542
 \begingroup
 
2543
  \centering\large
 
2544
  \abstractname
 
2545
  \par
 
2546
 \endgroup
 
2547
}%
 
2548
\def\frontmatter@abstractfont{}%
 
2549
\newenvironment{frontmatter@description}{%
 
2550
 \list{}{%
 
2551
  \leftmargin\z@
 
2552
  \labelwidth\z@
 
2553
  \itemindent\z@
 
2554
  \let\makelabel\frontmatter@descriptionlabel
 
2555
 }%
 
2556
}{%
 
2557
 \endlist
 
2558
}%
 
2559
\def\frontmatter@descriptionlabel#1{%
 
2560
 \hspace\labelsep
 
2561
 \normalfont\bfseries
 
2562
 #1:%
 
2563
}%
 
2564
\def\frontmatter@abstractwidth{\textwidth}
 
2565
\def\frontmatter@abstract@produce{%
 
2566
  \par
 
2567
  \preprintsty@sw{%
 
2568
   \do@output@MVL{%
 
2569
    \vskip\frontmatter@preabstractspace
 
2570
    \vskip200\p@\@plus1fil
 
2571
    \penalty-200\relax
 
2572
    \vskip-200\p@\@plus-1fil
 
2573
   }%
 
2574
  }{%
 
2575
   \addvspace{\frontmatter@preabstractspace}%
 
2576
  }%
 
2577
   \begingroup
 
2578
    \dimen@\baselineskip
 
2579
    \setbox\z@\vtop{\unvcopy\absbox}%
 
2580
    \advance\dimen@-\ht\z@\advance\dimen@-\prevdepth
 
2581
    \@ifdim{\dimen@>\z@}{\vskip\dimen@}{}%
 
2582
   \endgroup
 
2583
   \begingroup
 
2584
    \prep@absbox
 
2585
    \unvbox\absbox
 
2586
    \post@absbox
 
2587
   \endgroup
 
2588
  \@ifx{\@empty\mini@notes}{}{\mini@notes\par}%
 
2589
  \addvspace\frontmatter@postabstractspace
 
2590
}%
 
2591
\appdef\frontmatter@init{\let\mini@notes\@empty}%
 
2592
\let\prep@absbox\@empty
 
2593
\let\post@absbox\@empty
 
2594
\def\frontmatter@preabstractspace{.5\baselineskip}
 
2595
\def\frontmatter@postabstractspace{.5\baselineskip}
 
2596
\newenvironment{frontmatter@titlepage}{%
 
2597
      \twocolumn@sw{\onecolumngrid}{\newpage}%
 
2598
      \thispagestyle{titlepage}%
 
2599
      \setcounter{page}\@ne
 
2600
}{%
 
2601
     \twocolumn@sw{\twocolumngrid}{\newpage}%
 
2602
     \twoside@sw{}{%
 
2603
        \setcounter{page}\@ne
 
2604
     }%
 
2605
}%
 
2606
\def\frontmatter@maketitle{%
 
2607
  \@author@finish
 
2608
  \title@column\titleblock@produce
 
2609
  \suppressfloats[t]%
 
2610
  \let\and\relax
 
2611
  \let\affiliation\@gobble
 
2612
  \let\author\@gobble
 
2613
  \let\@AAC@list\@empty
 
2614
  \let\@AFF@list\@empty
 
2615
  \let\@AFG@list\@empty
 
2616
  \let\@AF@join\@AF@join@error
 
2617
  \let\email\@gobble
 
2618
  \let\@address\@empty
 
2619
  \let\maketitle\relax
 
2620
  \let\thanks\@gobble
 
2621
  \let\abstract\@undefined\let\endabstract\@undefined
 
2622
  \titlepage@sw{%
 
2623
   \vfil
 
2624
   \clearpage
 
2625
  }{}%
 
2626
}%
 
2627
\def\maketitle@Hy{%
 
2628
  \let\Hy@saved@footnotemark\@footnotemark
 
2629
  \let\Hy@saved@footnotetext\@footnotetext
 
2630
  \let\@footnotemark\H@@footnotemark
 
2631
  \let\@footnotetext\H@@footnotetext
 
2632
  \@ifnextchar[%]
 
2633
   \Hy@maketitle@optarg
 
2634
   {%
 
2635
    \HyOrg@maketitle
 
2636
    \Hy@maketitle@end
 
2637
   }%
 
2638
}%
 
2639
\appdef\class@documenthook{%
 
2640
  \@ifx{\maketitle\maketitle@Hy}{%
 
2641
   \class@info{Taking \string\maketitle\space back from hyperref}%
 
2642
   \let\maketitle\frontmatter@maketitle
 
2643
  }{%
 
2644
  }%
 
2645
}%
 
2646
\def\titleblock@produce{%
 
2647
 \begingroup
 
2648
  \ltx@footnote@pop
 
2649
  \def\@mpfn{mpfootnote}%
 
2650
  \def\thempfn{\thempfootnote}%
 
2651
  \c@mpfootnote\z@
 
2652
  \let\@makefnmark\frontmatter@makefnmark
 
2653
  \frontmatter@setup
 
2654
  \thispagestyle{titlepage}\label{FirstPage}%
 
2655
  \frontmatter@title@produce
 
2656
  \groupauthors@sw{%
 
2657
   \frontmatter@author@produce@group
 
2658
  }{%
 
2659
   \frontmatter@author@produce@script
 
2660
  }%
 
2661
  \frontmatter@RRAPformat{%
 
2662
   \expandafter\produce@RRAP\expandafter{\@date}%
 
2663
   \expandafter\produce@RRAP\expandafter{\@received}%
 
2664
   \expandafter\produce@RRAP\expandafter{\@revised}%
 
2665
   \expandafter\produce@RRAP\expandafter{\@accepted}%
 
2666
   \expandafter\produce@RRAP\expandafter{\@published}%
 
2667
  }%
 
2668
  \frontmatter@abstract@produce
 
2669
  \@ifx@empty\@pacs{}{%
 
2670
   \@pacs@produce\@pacs
 
2671
  }%
 
2672
  \@ifx@empty\@keywords{}{%
 
2673
   \@keywords@produce\@keywords
 
2674
  }%
 
2675
  \par
 
2676
  \frontmatter@finalspace
 
2677
 \endgroup
 
2678
}%
 
2679
\def\toclevel@title{0}%
 
2680
\def\frontmatter@title@produce{%
 
2681
 \begingroup
 
2682
  \frontmatter@title@above
 
2683
  \frontmatter@title@format
 
2684
  \@title
 
2685
  \unskip
 
2686
  \phantomsection\expandafter\@argswap@val\expandafter{\@title}{\addcontentsline{toc}{title}}%
 
2687
  \@ifx{\@title@aux\@title@aux@cleared}{}{%
 
2688
   \expandafter\frontmatter@footnote\expandafter{\@title@aux}%
 
2689
  }%
 
2690
  \par
 
2691
  \frontmatter@title@below
 
2692
 \endgroup
 
2693
}%
 
2694
\appdef\let@mark{\let\\\relax}%
 
2695
\def\frontmatter@title@above{}%
 
2696
\def\frontmatter@title@format{}%
 
2697
\def\frontmatter@title@below{\addvspace{\baselineskip}}%
 
2698
\def\frontmatter@author@produce@script{%
 
2699
  \begingroup
 
2700
    \let\@author@present\@author@present@script
 
2701
    \frontmatterverbose@sw{\typeout{\string\frontmatter@author@produce@script:}\say\@AAC@list\say\@AFF@list\say\@AFG@list}{}%
 
2702
    \let\AU@temp\@empty
 
2703
    \@tempcnta\z@
 
2704
    \let\AF@opr \@gobble
 
2705
    \def\AU@opr{\@author@count\@tempcnta}%
 
2706
    \def\CO@opr{\@collaboration@count\AU@temp\@tempcnta}%
 
2707
    \@AAC@list
 
2708
    \expandafter\CO@opr\@author@cleared
 
2709
    \begingroup
 
2710
     \frontmatter@authorformat
 
2711
     \let\AF@opr \@affilID@def
 
2712
     \let\AU@opr \@author@present
 
2713
     \def\CO@opr{\@collaboration@present\AU@temp}%
 
2714
     \set@listcomma@list\AU@temp
 
2715
     \@AAC@list
 
2716
     \unskip\unskip
 
2717
     \par
 
2718
    \endgroup
 
2719
    \begingroup
 
2720
     \frontmatter@above@affiliation@script
 
2721
     \let\AFF@opr \@affil@script
 
2722
     \@AFF@list
 
2723
     \frontmatter@footnote@produce
 
2724
     \par
 
2725
    \endgroup
 
2726
  \endgroup
 
2727
}%
 
2728
\def\@author@count#1{%
 
2729
 \advance#1\@ne
 
2730
 \@author@gobble
 
2731
}%
 
2732
\def\@collaboration@present#1#2#3#4{%
 
2733
 \par
 
2734
 \begingroup
 
2735
  \frontmatter@collaboration@above
 
2736
  \@affilID@def{}%
 
2737
  \@tempcnta\z@
 
2738
  \@author@present{}{(\ignorespaces#3\unskip)}{#4}%
 
2739
  \par
 
2740
 \endgroup
 
2741
 \set@listcomma@list#1%
 
2742
}%
 
2743
\def\frontmatter@collaboration@above{}%
 
2744
\def\@collaboration@count#1#2{%
 
2745
 \appdef@eval#1{\the#2}#2\z@
 
2746
 \@author@gobble
 
2747
}%
 
2748
\def\@affilID@def{\def\@affilID@temp}%
 
2749
\let\@affilID@temp\@empty
 
2750
\def\affil@script#1#2#3{%
 
2751
 \def\@tempifx{#1}\@ifx{\@tempifx\@tempa}{%
 
2752
  \@if@empty{#2}{}{%
 
2753
   \par
 
2754
   \begingroup
 
2755
    \def\@thefnmark{#1}\@makefnmark\ignorespaces
 
2756
    #2%
 
2757
    \@if@empty{#3}{}{\frontmatter@footnote{#3}}%
 
2758
    \par
 
2759
   \endgroup
 
2760
  }%
 
2761
 }{}%
 
2762
}%
 
2763
\def\@affil@script#1#2#3#4{%
 
2764
 \@ifnum{#1=\z@}{}{%
 
2765
  \par
 
2766
  \begingroup
 
2767
   \frontmatter@affiliationfont
 
2768
   \@ifnum{\c@affil<\affil@cutoff}{}{%
 
2769
    \def\@thefnmark{#1}\@makefnmark
 
2770
   }%
 
2771
   \ignorespaces#3%
 
2772
   \@if@empty{#4}{}{\frontmatter@footnote{#4}}%
 
2773
   \par
 
2774
  \endgroup
 
2775
 }%
 
2776
}%
 
2777
\let\affil@cutoff\@ne
 
2778
\def\@author@present@script#1#2#3{%
 
2779
 \begingroup
 
2780
  \gdef\comma@space{\textsuperscript{,\,}}%
 
2781
  \doauthor{#2}{#3}{\@affil@present@script}%
 
2782
 \endgroup
 
2783
 \advance\@tempcnta\m@ne
 
2784
}%
 
2785
\def\@affilcomma#1#2{%
 
2786
 \@ifx{\z@#1}{%
 
2787
  \@ifx{\relax#2}{}{%
 
2788
   \@affilcomma{#2}%
 
2789
  }%
 
2790
 }{%
 
2791
  #1%
 
2792
  \@ifx{\relax#2}{}{%
 
2793
   \@ifx{\z@#2}{%
 
2794
    \@affilcomma
 
2795
   }{%
 
2796
    ,\,\@affilcomma{#2}%
 
2797
   }%
 
2798
  }%
 
2799
 }%
 
2800
}%
 
2801
\def\@affil@present@script{%
 
2802
 \let\@tempa\@empty
 
2803
 \expandafter\@affil@present@script@\@affilID@temp\relax
 
2804
}%
 
2805
\def\@affil@present@script@#1{%
 
2806
 \@ifx{\relax#1}{%
 
2807
  \@ifx{\@tempa\@empty}{%
 
2808
   \aftergroup\false@sw
 
2809
  }{%
 
2810
   \textsuperscript{\expandafter\@affilcomma\@tempa\relax\relax}%
 
2811
   \aftergroup\true@sw
 
2812
  }%
 
2813
 }{%
 
2814
  \@ifnum{#1=\z@}{}{\appdef\@tempa{{#1}}}%
 
2815
  \@affil@present@script@
 
2816
 }%
 
2817
}%
 
2818
\@provide\@author@parskip{\z@skip}%
 
2819
\def\frontmatter@author@produce@group{%
 
2820
  \begingroup
 
2821
    \let\@author@present\@author@present@group
 
2822
    \frontmatter@authorformat
 
2823
    \frontmatterverbose@sw{\typeout{\string\frontmatter@author@produce@group:}\say\@AAC@list\say\@AFF@list\say\@AFG@list}{}%
 
2824
    \let\AU@temp\@empty
 
2825
    \set@listcomma@list\AU@temp
 
2826
    \def\CO@opr{\@collaboration@present\AU@temp}%
 
2827
    \let\AFG@opr \affils@present@group
 
2828
    \let\@listcomma\relax
 
2829
    \@AFG@list
 
2830
    \frontmatter@footnote@produce
 
2831
    \par
 
2832
  \endgroup
 
2833
  \frontmatter@authorbelow
 
2834
}%
 
2835
\@provide\frontmatter@authorbelow{}%
 
2836
\def\affils@present@group#1{%
 
2837
 \begingroup
 
2838
   \def\AF@temp{#1}%
 
2839
   \@tempcnta\z@
 
2840
   \let\AU@opr \@undefined
 
2841
   \let\CO@opr \@undefined
 
2842
   \def\AF@opr{\@affilID@count\AF@temp\@tempcnta}%
 
2843
   \@AAC@list
 
2844
   \@ifnum{\@tempcnta=\z@}{}{%
 
2845
    \begingroup
 
2846
     \frontmatter@above@affilgroup
 
2847
     \set@listcomma@count\@tempcnta
 
2848
     \let\AU@opr \@undefined
 
2849
     \let\CO@opr \@undefined
 
2850
     \def\AF@opr{\@affilID@match\AF@temp}%
 
2851
     \@AAC@list
 
2852
    \endgroup
 
2853
    \begingroup
 
2854
     \par
 
2855
     \frontmatter@above@affiliation
 
2856
     \frontmatter@affiliationfont
 
2857
     \let\\\frontmatter@addressnewline
 
2858
     \@tempcnta\z@
 
2859
     \@tfor\AF@temp:=#1\do{%
 
2860
      \expandafter\@ifx\expandafter{\expandafter\z@\AF@temp}{}{%
 
2861
       \advance\@tempcnta\@ne
 
2862
      }%
 
2863
     }%
 
2864
     \@ifnum{\@tempcnta=\tw@}{%
 
2865
      \let\@listcomma\relax
 
2866
     }{}%
 
2867
     \def@after@address
 
2868
     \runinaddress@sw{%
 
2869
     }{%
 
2870
      \tightenlines@sw{}{%
 
2871
       \parskip\z@
 
2872
      }%
 
2873
      \appdef\after@address\par
 
2874
     }%
 
2875
     \let\AFF@opr \@affil@group
 
2876
     \do@affil@fromgroup\@AFF@list#1\relax
 
2877
    \endgroup
 
2878
   }%
 
2879
   \par
 
2880
 \endgroup
 
2881
}%
 
2882
\def\def@after@address{\def\after@address{\@listcomma\ \@listand}}%
 
2883
\def\def@after@address@empty{\let\after@address\@empty}%
 
2884
\def\@affilID@count#1#2#3{%
 
2885
  \def\@tempifx{#3}%
 
2886
  \@ifx{\@tempifx#1}{%
 
2887
    \def\AU@opr{\@author@count#2}%
 
2888
  }{%
 
2889
    \let\AU@opr \@author@gobble
 
2890
  }%
 
2891
  \let\CO@opr \@collaboration@gobble
 
2892
}%
 
2893
\def\@affilID@match#1#2{%
 
2894
 \def\@tempifx{#2}%
 
2895
 \@ifx{\@tempifx#1}{%
 
2896
   \let\AU@opr \@author@present
 
2897
 }{%
 
2898
   \let\AU@opr \@author@gobble
 
2899
 }%
 
2900
  \let\CO@opr \@collaboration@gobble
 
2901
}%
 
2902
\def\do@affil@fromgroup#1#2{%
 
2903
  \@ifx{\relax#2}{}{%
 
2904
    \count@#2\relax
 
2905
    \@ifnum{\z@=\count@}{}{#1}%
 
2906
    \do@affil@fromgroup#1%
 
2907
  }%
 
2908
}%
 
2909
\def\@affil@group#1#2#3#4{%
 
2910
  \@ifnum{#1=\count@}{%
 
2911
   \def\@tempa{#3}%
 
2912
   \@ifx{\@tempa\blankaffiliation}{}{%
 
2913
    #3%
 
2914
    \@if@empty{#4}{}{%
 
2915
     \frontmatter@footnote{#4}%
 
2916
    }%
 
2917
    \after@address
 
2918
   }%
 
2919
   \advance\@tempcnta\m@ne
 
2920
  }{}%
 
2921
}%
 
2922
\def\@author@present@group#1#2#3{%
 
2923
  \gdef\comma@space{\gdef\comma@space{\textsuperscript{,\,}}}%
 
2924
  \doauthor{#2}{#3}{\@affil@present@group}%
 
2925
  \advance\@tempcnta\m@ne
 
2926
}%
 
2927
\def\@affil@present@group{%
 
2928
 \aftergroup\false@sw
 
2929
}%
 
2930
\def\@pacs@produce#1{%
 
2931
 \showPACS@sw{%
 
2932
  \begingroup
 
2933
   \frontmatter@PACS@format
 
2934
   \@pacs@name#1\par
 
2935
  \endgroup
 
2936
 }{%
 
2937
  \@if@empty{#1}{}{%
 
2938
   \class@warn{\PACS@warn}%
 
2939
  }%
 
2940
 }%
 
2941
}%
 
2942
\def\PACS@warn{If you want your PACS to appear in your output, use document class option showpacs}%
 
2943
\def\@keywords@produce#1{%
 
2944
 \showKEYS@sw{%
 
2945
  \begingroup
 
2946
   \frontmatter@keys@format
 
2947
   \@keys@name#1\par
 
2948
  \endgroup
 
2949
 }{%
 
2950
  \@if@empty{#1}{}{%
 
2951
   \class@warn{If you want your keywords to appear in your output, use document class option showkeys}%
 
2952
  }%
 
2953
 }%
 
2954
}%
 
2955
\def\frontmatter@footnote@produce@footnote{%
 
2956
 \let\@TBN@opr\present@FM@footnote
 
2957
 \@FMN@list
 
2958
 \global\let\@FMN@list\@empty
 
2959
}%
 
2960
\def\present@FM@footnote#1#2{%
 
2961
 \begingroup
 
2962
  \csname c@\@mpfn\endcsname#1\relax
 
2963
  \def\@thefnmark{\frontmatter@thefootnote}%
 
2964
  \frontmatter@footnotetext{#2}%
 
2965
 \endgroup
 
2966
}%
 
2967
\def\frontmatter@footnote@produce@endnote{%
 
2968
}%
 
2969
\appdef\frontmatter@init{%
 
2970
 \@ifxundefined\title@column         {\let\title@column\@empty}{}%
 
2971
 \@ifxundefined\preprintsty@sw       {\@booleanfalse\preprintsty@sw}{}%
 
2972
 \@ifxundefined\frontmatter@footnote@produce{\let\frontmatter@footnote@produce\frontmatter@footnote@produce@footnote}{}%
 
2973
 \@ifxundefined\do@output@MVL        {\let\do@output@MVL\@firstofone}{}%
 
2974
 \@ifxundefined\comma@space          {\let\comma@space\@empty}{}%
 
2975
}%
 
2976
\def\frontmatter@thefootnote{%
 
2977
 \altaffilletter@sw{\@alph}{\@fnsymbol}{\csname c@\@mpfn\endcsname}%
 
2978
}%
 
2979
\@ifx{\altaffilletter@sw\@undefined}{\@booleantrue\altaffilletter@sw}{}%
 
2980
\def\frontmatter@makefnmark{%
 
2981
 \@textsuperscript{%
 
2982
  \normalfont\@thefnmark
 
2983
 }%
 
2984
}%
 
2985
\long\def\frontmatter@makefntext#1{%
 
2986
 \parindent 1em
 
2987
 \noindent
 
2988
 \Hy@raisedlink{\hyper@anchorstart{frontmatter.\expandafter\the\csname c@\@mpfn\endcsname}\hyper@anchorend}%
 
2989
 \@makefnmark
 
2990
 #1%
 
2991
}%
 
2992
\def\frontmatter@setup{}%
 
2993
\def\frontmatter@RRAPformat#1{%
 
2994
 \removelastskip
 
2995
 \begingroup
 
2996
  \frontmatter@RRAP@format
 
2997
  #1\par
 
2998
 \endgroup
 
2999
}%
 
3000
\def\punct@RRAP{; }%
 
3001
\def\produce@RRAP#1{%
 
3002
  \@if@empty{#1}{}{%
 
3003
   \@ifvmode{\leavevmode}{\unskip\punct@RRAP\ignorespaces}%
 
3004
   #1%
 
3005
  }%
 
3006
}%
 
3007
\def\frontmatter@authorformat{}%
 
3008
\def\frontmatter@above@affilgroup{}%
 
3009
\def\frontmatter@above@affiliation{}%
 
3010
\def\frontmatter@above@affiliation@script{}%
 
3011
\def\frontmatter@affiliationfont{\itshape\selectfont}%
 
3012
\def\frontmatter@RRAP@format{}%
 
3013
\def\frontmatter@PACS@format{}%
 
3014
\def\frontmatter@keys@format{}%
 
3015
\def\frontmatter@finalspace{\addvspace{18\p@}}
 
3016
\def\frontmatter@addressnewline{%
 
3017
  \@ifhmode{\skip@\lastskip\unskip\unpenalty\break\hskip\skip@}{}%
 
3018
  % was: \vskip-.5ex
 
3019
}%
 
3020
\def\frontmatter@preabstractspace{5.5\p@}
 
3021
\def\frontmatter@postabstractspace{6.5\p@}
 
3022
\def\aftermaketitle@chk#1{%
 
3023
  \@ifx{\maketitle\relax}{%
 
3024
    \class@err{\protect#1 must be used before \protect\maketitle}%
 
3025
  }{}%
 
3026
}%
 
3027
\def\ps@titlepage{\ps@empty}%
 
3028
\def\volumeyear#1{\gdef\@volumeyear{#1}}%
 
3029
\def\@volumeyear{}%
 
3030
\def\volumenumber#1{\gdef\@volumenumber{#1}}%
 
3031
\def\@volumenumber{}%
 
3032
\def\issuenumber#1{\gdef\@issuenumber{#1}}%
 
3033
\def\@issuenumber{}%
 
3034
\def\eid#1{\gdef\@eid{#1}}%
 
3035
\def\@eid{}%
 
3036
\def\startpage#1{\gdef\@startpage{#1}\c@page#1\relax}%
 
3037
\def\@startpage{\pageref{FirstPage}}%
 
3038
\def\endpage#1{\gdef\@endpage{#1}}%
 
3039
\def\@endpage{\pageref{LastPage}}%
 
3040
\def\print@toc#1{%
 
3041
 \begingroup
 
3042
  \expandafter\section
 
3043
  \expandafter*%
 
3044
  \expandafter{%
 
3045
              \csname#1name\endcsname
 
3046
              }%
 
3047
  \let\appendix\appendix@toc
 
3048
  \@starttoc{#1}%
 
3049
 \endgroup
 
3050
}%
 
3051
\def\appendix@toc{}%
 
3052
\def\Dated@name{Dated }%
 
3053
\def\Received@name{Received }%
 
3054
\def\Revised@name{Revised }%
 
3055
\def\Accepted@name{Accepted }%
 
3056
\def\Published@name{Published }%
 
3057
\appdef\robustify@contents{%
 
3058
 \let\thanks\@gobble\let\class@warn\@gobble
 
3059
 \def\begin{\string\begin}\def\end{\string\end}%
 
3060
}%
 
3061
\@ifxundefined\frontmatter@syntax@sw{\@booleantrue\frontmatter@syntax@sw}{}%
 
3062
\frontmatter@syntax@sw{%
 
3063
 \let\title         \frontmatter@title
 
3064
 \let\author        \frontmatter@author
 
3065
 \let\date          \frontmatter@date
 
3066
 \@ifxundefined\@maketitle{%
 
3067
  \let\maketitle    \frontmatter@maketitle
 
3068
  \@booleantrue     \titlepage@sw
 
3069
 }{%
 
3070
  \let\@maketitle   \frontmatter@maketitle
 
3071
  \prepdef\maketitle\@author@finish
 
3072
 }%
 
3073
 \let\noaffiliation \frontmatter@noaffiliation
 
3074
 \let\thanks@latex  \thanks
 
3075
 \let\thanks        \frontmatter@thanks
 
3076
 \let\and@latex     \and
 
3077
 \let\and           \frontmatter@and
 
3078
 \let@environment{titlepage}{frontmatter@titlepage}%
 
3079
 \let@environment{abstract}{frontmatter@abstract}%
 
3080
}{%
 
3081
 \let\noaffiliation\@empty
 
3082
}%
 
3083
\typeout{%
 
3084
ltxgrid%
 
3085
 [2010/07/25/20:33:00 4.1r page grid package (portions licensed from W. E. Baxter web at superscript.com)]% \fileversion
 
3086
}%
 
3087
\newcounter{linecount}
 
3088
\def\loop@line#1#2{%
 
3089
 \par
 
3090
 \hb@xt@\hsize{%
 
3091
  \global\advance#1\@ne
 
3092
  \edef\@tempa{\@ifnum{100>#1}{0}{}\@ifnum{10>#1}{0}{}\number#1}%
 
3093
  \@tempa\edef\@tempa{\special{line:\@tempa}}\@tempa
 
3094
  \vrule depth2.5\p@#2\leaders\hrule\hfil
 
3095
 }%
 
3096
}%
 
3097
\def\lineloop#1{%
 
3098
 \loopwhile{\loop@line\c@linecount{}\@ifnum{#1>\c@linecount}}%
 
3099
}%
 
3100
\def\linefoot#1{%
 
3101
 \loop@line\c@linecount{%
 
3102
  \footnote{%
 
3103
   #1\special{foot:#1}\vrule depth2.5\p@\leaders\hrule\hfill
 
3104
  }%
 
3105
 }%
 
3106
}%
 
3107
\let\@@mark\mark
 
3108
\let\@@topmark\topmark
 
3109
\let\@@firstmark\firstmark
 
3110
\let\@@botmark\botmark
 
3111
\let\@@splitfirstmark\splitfirstmark
 
3112
\let\@@splitbotmark\splitbotmark
 
3113
\def\@themark{{}{}{}{}}%
 
3114
\def\nul@mark{{}{}{}{}\@@nul}%
 
3115
\def\set@mark@netw@#1#2#3#4#5#6#7{\gdef#1{{#6}{#7}{#4}{#5}}\do@mark}%
 
3116
\def\set@marktw@#1#2#3#4#5#6{\gdef#1{{#2}{#6}{#4}{#5}}\do@mark}%
 
3117
\def\set@markthr@@#1#2#3#4#5#6{\gdef#1{{#2}{#3}{#6}{#5}}\do@mark}%
 
3118
\def\get@mark@@ne#1#2#3#4#5\@@nul{#1}%
 
3119
\def\get@mark@tw@#1#2#3#4#5\@@nul{#2}%
 
3120
\def\get@mark@thr@@#1#2#3#4#5\@@nul{#3}%
 
3121
\def\get@mark@f@ur#1#2#3#4#5\@@nul{#4}%
 
3122
\def\mark@netw@{\expandafter\set@mark@netw@\expandafter\@themark\@themark}%
 
3123
\def\marktw@{\expandafter\set@marktw@\expandafter\@themark\@themark}%
 
3124
\def\markthr@@{\expandafter\set@markthr@@\expandafter\@themark\@themark}%
 
3125
\def\do@mark{\do@@mark\@themark\nobreak@mark}%
 
3126
\def\do@@mark#1{%
 
3127
 \begingroup
 
3128
  \let@mark
 
3129
  \@@mark{#1}%
 
3130
 \endgroup
 
3131
}%
 
3132
\def\let@mark{%
 
3133
 \let\protect\@unexpandable@protect
 
3134
 \let\label\relax
 
3135
 \let\index\relax
 
3136
 \let\glossary\relax
 
3137
}%
 
3138
\def\nobreak@mark{%
 
3139
 \@if@sw\if@nobreak\fi{\@ifvmode{\nobreak}{}}{}%
 
3140
}%
 
3141
\def\mark@envir{\markthr@@}%
 
3142
\def\bot@envir{%
 
3143
 \expandafter\expandafter
 
3144
 \expandafter\get@mark@thr@@
 
3145
 \expandafter\@@botmark
 
3146
             \nul@mark
 
3147
}%
 
3148
\def\markboth{\mark@netw@}%
 
3149
\def\markright{\marktw@}%
 
3150
\def\leftmark{%
 
3151
 \expandafter\expandafter
 
3152
 \expandafter\get@mark@@ne
 
3153
 \expandafter\saved@@botmark
 
3154
             \nul@mark
 
3155
}%
 
3156
\def\rightmark{%
 
3157
 \expandafter\expandafter
 
3158
 \expandafter\get@mark@tw@
 
3159
 \expandafter\saved@@firstmark
 
3160
             \nul@mark
 
3161
}%
 
3162
\let\primitive@output\output
 
3163
\long\def\@tempa#1\@@nil{#1}%
 
3164
            \toks@
 
3165
\expandafter\expandafter
 
3166
\expandafter{%
 
3167
\expandafter \@tempa
 
3168
             \the\primitive@output
 
3169
             \@@nil
 
3170
             }%
 
3171
\newtoks\output@latex
 
3172
\output@latex\expandafter{\the\toks@}%
 
3173
\let\output\output@latex
 
3174
\primitive@output{\dispatch@output}%
 
3175
\def\dispatch@output{%
 
3176
 \let\par\@@par
 
3177
 \expandafter\let\expandafter\output@procedure\csname output@\the\outputpenalty\endcsname
 
3178
 \@ifnotrelax\output@procedure{}{%
 
3179
  \expandafter\def\expandafter\output@procedure\expandafter{\the\output@latex}%
 
3180
 }%
 
3181
 \expandafter\@ifx\expandafter{\csname output@-\the\execute@message@pen\endcsname\output@procedure}{%
 
3182
  \let\output@procedure\@message@saved
 
3183
 }{}%
 
3184
 \ltxgrid@info@sw{\class@info{\string\dispatch@output}\say\output@procedure\saythe\holdinginserts}{}%
 
3185
 \outputdebug@sw{\output@debug}{}%
 
3186
 \output@procedure
 
3187
}%
 
3188
\def\set@output@procedure#1#2{%
 
3189
 \count@\outputpenalty\advance\count@-#2%
 
3190
 \expandafter\let\expandafter#1\csname output@\the\count@\endcsname
 
3191
}%
 
3192
\def\output@debug{%
 
3193
 \def\@tempa{\save@message}%
 
3194
 \@ifx{\output@procedure\@tempa}{%
 
3195
  \true@sw
 
3196
 }{%
 
3197
  \@ifnum{\outputpenalty=-\save@column@insert@pen}{%
 
3198
   \@ifnum{\holdinginserts>\z@}%
 
3199
  }{%
 
3200
   \false@sw
 
3201
  }%
 
3202
 }%
 
3203
 {}{\output@debug@}%
 
3204
}%
 
3205
\def\output@debug@{%
 
3206
  \saythe\outputpenalty
 
3207
  \saythe\interlinepenalty
 
3208
  \saythe\brokenpenalty
 
3209
  \saythe\clubpenalty
 
3210
  \saythe\widowpenalty
 
3211
  \saythe\displaywidowpenalty
 
3212
  \saythe\predisplaypenalty
 
3213
  \saythe\interdisplaylinepenalty
 
3214
  \saythe\postdisplaypenalty
 
3215
  \saythe\badness
 
3216
  \say\thepagegrid
 
3217
  \saythe\pagegrid@col
 
3218
  \saythe\pagegrid@cur
 
3219
  \saythe\insertpenalties
 
3220
  \say\@@botmark
 
3221
  \saythe\pagegoal
 
3222
  \saythe\pagetotal
 
3223
  \saythe{\badness\@cclv}%
 
3224
  \say\@toplist
 
3225
  \say\@botlist
 
3226
  \say\@dbltoplist
 
3227
  \say\@deferlist
 
3228
  \trace@scroll{%
 
3229
  \showbox\@cclv
 
3230
  \showbox\@cclv@saved
 
3231
  \showbox\pagesofar
 
3232
  \showbox\csname col@1\endcsname
 
3233
  \showbox\footsofar
 
3234
  \showbox\footins
 
3235
  \showbox\footins@saved
 
3236
  \showlists
 
3237
  }%
 
3238
}%
 
3239
\@ifxundefined{\outputdebug@sw}{%
 
3240
 \@booleanfalse\outputdebug@sw
 
3241
}{}%
 
3242
\def\trace@scroll#1{\begingroup\showboxbreadth\maxdimen\showboxdepth\maxdimen\scrollmode#1\endgroup}%
 
3243
\def\trace@box#1{\trace@scroll{\showbox#1}}%
 
3244
\prepdef\@outputpage{\@outputpage@head}%
 
3245
\let\@outputpage@head\@empty
 
3246
\appdef\@outputpage{\@outputpage@tail}%
 
3247
\let\@outputpage@tail\@empty
 
3248
\def\show@box@size#1#2{%
 
3249
 \show@box@size@sw{%
 
3250
  \begingroup
 
3251
   \setbox\z@\vbox{\unvcopy#2\hrule}%
 
3252
   \class@info{Show box size: #1^^J%
 
3253
    (\the\ht\z@\space X \the\wd\z@)
 
3254
    \the\c@page\space\space\the\pagegrid@cur\space\the\pagegrid@col
 
3255
   }%
 
3256
  \endgroup
 
3257
 }{}%
 
3258
}%
 
3259
\def\show@text@box@size{%
 
3260
 \show@box@size{Text column}\@outputbox
 
3261
 \tally@box@size@sw{%
 
3262
  \@ifdim{\wd\@outputbox>\z@}{%
 
3263
   \dimen@\ht\@outputbox\divide\dimen@\@twopowerfourteen
 
3264
   \advance\dimen@-\dp\csname box@size@\the\pagegrid@col\endcsname
 
3265
   \@ifdim{\dimen@>\z@}{%
 
3266
    \advance\dimen@ \ht\csname box@size@\the\pagegrid@col\endcsname
 
3267
    \global\ht\csname box@size@\the\pagegrid@col\endcsname\dimen@
 
3268
    \show@box@size@sw{%
 
3269
     \class@info{Column: \the\dimen@}%
 
3270
    }{}%
 
3271
   }{}%
 
3272
  }{}%
 
3273
  \global\dp\csname box@size@\the\pagegrid@col\endcsname\z@
 
3274
 }{}%
 
3275
}%
 
3276
\def\show@pagesofar@size{%
 
3277
 \show@box@size{Page so far}\pagesofar
 
3278
 \dimen@\ht\pagesofar\divide\dimen@\@twopowerfourteen
 
3279
 \global\dp\csname box@size@1\endcsname\dimen@
 
3280
 \show@box@size@sw{%
 
3281
  \class@info{Pagesofar: \the\dimen@}%
 
3282
 }{}%
 
3283
}%
 
3284
\@booleanfalse\tally@box@size@sw
 
3285
\@booleanfalse\show@box@size@sw
 
3286
\expandafter\newbox\csname box@size@1\endcsname
 
3287
\expandafter\setbox\csname box@size@1\endcsname\hbox{}%
 
3288
\expandafter\newbox\csname box@size@2\endcsname
 
3289
\expandafter\setbox\csname box@size@2\endcsname\hbox{}%
 
3290
\def\total@text{%
 
3291
 \@tempdima\the\ht\csname box@size@2\endcsname\divide\@tempdima\@twopowertwo\@tempcnta\@tempdima
 
3292
 \@tempdimb\the\ht\csname box@size@1\endcsname\divide\@tempdimb\@twopowertwo\@tempcntb\@tempdimb
 
3293
 \class@info{Total text: Column(\the\@tempcnta pt), Page(\the\@tempcntb pt)}%
 
3294
}%
 
3295
\def\natural@output{\toggle@insert{\output@holding}{\output@moving}}%
 
3296
\output@latex{\natural@output}%
 
3297
\def\output@holding{%
 
3298
 \csname output@init@\bot@envir\endcsname
 
3299
 \@if@exceed@pagegoal{\unvcopy\@cclv}{%
 
3300
  \setbox\z@\vbox{\unvcopy\@cclv}%
 
3301
  \outputdebug@sw{\trace@box\z@}{}%
 
3302
  \dimen@\ht\@cclv\advance\dimen@-\ht\z@
 
3303
  \dead@cycle@repair\dimen@
 
3304
 }{%
 
3305
  \dead@cycle
 
3306
 }%
 
3307
}%
 
3308
\def\@if@exceed@pagegoal#1{%
 
3309
 \begingroup
 
3310
  \setbox\z@\vbox{#1}%
 
3311
  \dimen@\ht\z@\advance\dimen@\dp\z@
 
3312
  \outputdebug@sw{\saythe\dimen@}{}%
 
3313
  \@ifdim{\dimen@>\pagegoal}{%
 
3314
   \setbox\z@\vbox{\@@mark{}\unvbox\z@}%
 
3315
   \splittopskip\topskip
 
3316
   \splitmaxdepth\maxdepth
 
3317
   \vbadness\@M
 
3318
   \vfuzz\maxdimen
 
3319
   \setbox\tw@\vsplit\z@ to\pagegoal
 
3320
   \outputdebug@sw{\trace@scroll{\showbox\tw@\showbox\z@}}{}%
 
3321
   \setbox\tw@\vbox{\unvbox\tw@}%
 
3322
   \@ifdim{\ht\tw@=\z@}{%
 
3323
    \ltxgrid@info{Found overly large chunk while preparing to move insertions. Attempting repairs}%
 
3324
    \aftergroup\true@sw
 
3325
   }{%
 
3326
    \aftergroup\false@sw
 
3327
   }%
 
3328
 }{%
 
3329
  \aftergroup\false@sw
 
3330
 }%
 
3331
 \endgroup
 
3332
}%
 
3333
\def\output@moving{%
 
3334
 \set@top@firstmark
 
3335
 \@ifnum{\outputpenalty=\do@newpage@pen}{%
 
3336
  \setbox\@cclv\vbox{%
 
3337
   \unvbox\@cclv
 
3338
   \remove@lastbox
 
3339
   \@ifdim{\ht\z@=\ht\@protection@box}{\box\lastbox}{\unskip}%
 
3340
  }%
 
3341
 }{}%
 
3342
 \@cclv@nontrivial@sw{%
 
3343
  \expandafter\output@do@prep\csname output@prep@\bot@envir \endcsname
 
3344
  \@makecolumn\true@sw
 
3345
  \expandafter\output@column@do\csname output@column@\thepagegrid\endcsname
 
3346
  \protect@penalty\do@startcolumn@pen
 
3347
  \clearpage@sw{%
 
3348
   \protect@penalty\do@endpage@pen
 
3349
  }{}%
 
3350
  \expandafter\let\expandafter\output@post@\csname output@post@\bot@envir \endcsname
 
3351
  \outputdebug@sw{\say\output@post@}{}%
 
3352
  \@ifx{\output@post@\relax}{\output@post@document}{\output@post@}%
 
3353
 }{%
 
3354
  \void@cclv
 
3355
 }%
 
3356
 \set@colht
 
3357
 \global\@mparbottom\z@
 
3358
 \global\@textfloatsheight\z@
 
3359
}%
 
3360
\def\output@do@prep#1{%
 
3361
 \outputdebug@sw{\class@info{Prep: \string#1}}{}%
 
3362
 \@ifx{#1\relax}{\output@prep@document}{#1}%
 
3363
}%
 
3364
\def\output@column@do#1{%
 
3365
  \outputdebug@sw{\class@info{Output column: \string#1}}{}%
 
3366
  \@ifx{#1\relax}{\output@column@one}{#1}%
 
3367
}%
 
3368
\def\void@cclv{\begingroup\setbox\z@\box\@cclv\endgroup}%
 
3369
\def\remove@lastbox{\setbox\z@\lastbox}%
 
3370
\def\@cclv@nontrivial@sw{%
 
3371
 \@ifx@empty\@toplist{%
 
3372
  \@ifx@empty\@botlist{%
 
3373
   \@ifvoid\footins{%
 
3374
    \@ifvoid\@cclv{%
 
3375
     \false@sw
 
3376
    }{%
 
3377
     \setbox\z@\vbox{\unvcopy\@cclv}%
 
3378
     \@ifdim{\ht\z@=\topskip}{%
 
3379
      \setbox\z@\vbox\bgroup
 
3380
       \unvbox\z@
 
3381
       \remove@lastbox
 
3382
       \dimen@\lastskip\unskip
 
3383
       \@ifdim{\ht\z@=\ht\@protection@box}{%
 
3384
        \advance\dimen@\ht\z@
 
3385
        \@ifdim{\dimen@=\topskip}{%
 
3386
         \aftergroup\true@sw
 
3387
        }{%
 
3388
         \aftergroup\false@sw
 
3389
        }%
 
3390
       }{%
 
3391
        \aftergroup\false@sw
 
3392
       }%
 
3393
      \egroup
 
3394
      {%
 
3395
       \false@sw
 
3396
      }{%
 
3397
       \true@sw
 
3398
      }%
 
3399
     }{%
 
3400
      \@ifdim{\ht\z@=\z@}{%
 
3401
       \ltxgrid@info{Found trivial column. Discarding it}%
 
3402
       \outputdebug@sw{\trace@box\@cclv}{}%
 
3403
       \false@sw
 
3404
      }{%
 
3405
       \true@sw
 
3406
      }%
 
3407
     }%
 
3408
    }%
 
3409
   }{%
 
3410
    \true@sw
 
3411
   }%
 
3412
  }{%
 
3413
   \true@sw
 
3414
  }%
 
3415
 }{%
 
3416
  \true@sw
 
3417
 }%
 
3418
}%
 
3419
\def\protect@penalty#1{\protection@box\penalty-#1\relax}%
 
3420
\newbox\@protection@box
 
3421
\setbox\@protection@box\vbox to1986sp{\vfil}%
 
3422
\def\protection@box{\nointerlineskip\copy\@protection@box}%
 
3423
\def\dead@cycle@repair#1{%
 
3424
 \expandafter\do@@mark
 
3425
 \expandafter{%
 
3426
              \@@botmark
 
3427
             }%
 
3428
 \unvbox\@cclv
 
3429
 \nointerlineskip
 
3430
 \vbox to#1{\vss}%
 
3431
 \@ifnum{\outputpenalty<\@M}{\penalty\outputpenalty}{}%
 
3432
}%
 
3433
\def\dead@cycle@repair@protected#1{%
 
3434
 \expandafter\do@@mark
 
3435
 \expandafter{%
 
3436
              \@@botmark
 
3437
             }%
 
3438
 \begingroup
 
3439
  \unvbox\@cclv
 
3440
  \remove@lastbox
 
3441
  \nointerlineskip
 
3442
  \advance#1-\ht\@protection@box
 
3443
  \vbox to#1{\vss}%
 
3444
  \protection@box % Reinsert protection box
 
3445
  \@ifnum{\outputpenalty<\@M}{\penalty\outputpenalty}{}%
 
3446
 \endgroup
 
3447
}%
 
3448
\def\dead@cycle{%
 
3449
 \expandafter\do@@mark
 
3450
 \expandafter{%
 
3451
              \@@botmark
 
3452
             }%
 
3453
 \unvbox\@cclv
 
3454
 \@ifnum{\outputpenalty<\@M}{\penalty\outputpenalty}{}%
 
3455
}%
 
3456
\def\output@init@document{%
 
3457
 \ltxgrid@info@sw{\class@info{\string\output@init@document}}{}%
 
3458
 \global\vsize\vsize
 
3459
}%
 
3460
\def\output@prep@document{%
 
3461
 \ltxgrid@foot@info@sw{\class@info{\string\output@prep@document}\trace@scroll{\showbox\footins\showbox\footsofar}}{}%
 
3462
 \@ifvoid\footsofar{%
 
3463
 }{%
 
3464
  \global\setbox\footins\vbox\bgroup
 
3465
   \unvbox\footsofar
 
3466
   \@ifvoid\footins{}{%
 
3467
    \marry@baselines
 
3468
    \unvbox\footins
 
3469
   }%
 
3470
  \egroup
 
3471
  \ltxgrid@foot@info@sw{\trace@box\footins}{}%
 
3472
 }%
 
3473
}%
 
3474
\def\output@post@document{}%
 
3475
\let\@opcol\@undefined
 
3476
\def\@makecolumn#1{%
 
3477
 \ltxgrid@foot@info@sw{\class@info{\string\@makecolumn\string#1}}{}%
 
3478
 \setbox\@outputbox\vbox\bgroup
 
3479
  \boxmaxdepth\@maxdepth
 
3480
  \@tempdima\dp\@cclv
 
3481
  \unvbox\@cclv
 
3482
  \vskip-\@tempdima
 
3483
 \egroup
 
3484
 \xdef\@freelist{\@freelist\@midlist}\global\let\@midlist\@empty
 
3485
 \show@text@box@size
 
3486
 \@combinefloats
 
3487
 #1{%
 
3488
  \@combineinserts\@outputbox\footins
 
3489
 }{%
 
3490
  \combine@foot@inserts\footsofar\footins
 
3491
 }%
 
3492
 \set@adj@colht\dimen@
 
3493
 \count@\vbadness
 
3494
 \vbadness\@M
 
3495
 \setbox\@outputbox\vbox to\dimen@\bgroup
 
3496
  \@texttop
 
3497
  \dimen@\dp\@outputbox
 
3498
  \unvbox\@outputbox
 
3499
  \vskip-\dimen@
 
3500
  \@textbottom
 
3501
 \egroup
 
3502
 \vbadness\count@
 
3503
 \global\maxdepth\@maxdepth
 
3504
}%
 
3505
\let\@makespecialcolbox\@undefined
 
3506
\def\@combineinserts#1#2{%
 
3507
 \ltxgrid@foot@info@sw{\class@info{\string\@combineinserts\string#1\string#2}\trace@box#2}{}%
 
3508
 \setbox#1\vbox\bgroup
 
3509
  \unvbox#1%
 
3510
  \@ifvoid{#2}{}{%
 
3511
   \dimen@\ht#2\advance\dimen@\dp#2\advance\dimen@\skip#2%
 
3512
   \show@box@size{Combining inserts}#2%
 
3513
   \vskip\skip#2%
 
3514
   \setbox\z@\vbox{\footnoterule}\dimen@i\ht\z@
 
3515
   \color@begingroup
 
3516
   \normalcolor
 
3517
   \cleaders\box\z@\vskip\dimen@i\kern-\dimen@i
 
3518
   \csname combine@insert@\the\pagegrid@col\endcsname#2%
 
3519
   \color@endgroup
 
3520
   \kern-\dimen@\kern\dimen@
 
3521
  }%
 
3522
 \egroup
 
3523
 \ltxgrid@foot@info@sw{\trace@box#1}{}%
 
3524
}%
 
3525
\def\combine@insert@tw@#1{%
 
3526
 \compose@footnotes@two#1\@ifvbox{#1}{\unvbox}{\box}#1%
 
3527
}%
 
3528
\def\combine@insert@@ne#1{%
 
3529
 \compose@footnotes@one#1\@ifvbox{#1}{\unvbox}{\box}#1%
 
3530
}%
 
3531
\def\twocolumn@grid@setup{%
 
3532
 \expandafter\let\csname combine@insert@1\endcsname\combine@insert@tw@
 
3533
 \expandafter\let\csname combine@insert@2\endcsname\combine@insert@@ne
 
3534
}%
 
3535
\def\onecolumn@grid@setup{%
 
3536
 \expandafter\let\csname combine@insert@1\endcsname\combine@insert@@ne
 
3537
 \expandafter\let\csname combine@insert@2\endcsname\combine@insert@@ne
 
3538
}%
 
3539
\let\columngrid@setup\onecolumn@grid@setup
 
3540
\columngrid@setup
 
3541
\appdef\@floatplacement{%
 
3542
 \global\@fpmin\@fpmin
 
3543
}%
 
3544
\mathchardef\pagebreak@pen=\@M
 
3545
\expandafter\let\csname output@-\the\pagebreak@pen\endcsname\relax
 
3546
\mathchardef\do@startcolumn@pen=10005
 
3547
\@namedef{output@-\the\do@startcolumn@pen}{\do@startcolumn}%
 
3548
\def\do@startcolumn{%
 
3549
 \setbox\@cclv\vbox{\unvbox\@cclv\remove@lastbox\unskip}%
 
3550
 \clearpage@sw{\@clearfloatplacement}{\@floatplacement}%
 
3551
 \set@colht
 
3552
 \@booleanfalse\pfloat@avail@sw
 
3553
 \begingroup
 
3554
  \@colht\@colroom
 
3555
  \@booleanfalse\float@avail@sw
 
3556
  \@tryfcolumn\test@colfloat
 
3557
  \float@avail@sw{\aftergroup\@booleantrue\aftergroup\pfloat@avail@sw}{}%
 
3558
 \endgroup
 
3559
 \fcolmade@sw{%
 
3560
  \setbox\@cclv\vbox{\unvbox\@outputbox\unvbox\@cclv}%
 
3561
  \outputpenalty-\pagebreak@pen
 
3562
  \dead@cycle
 
3563
 }{%
 
3564
  \begingroup
 
3565
   \let\@elt\@scolelt
 
3566
   \let\reserved@b\@deferlist\global\let\@deferlist\@empty\reserved@b
 
3567
  \endgroup
 
3568
  \clearpage@sw{%
 
3569
   \outputpenalty\@M
 
3570
  }{%
 
3571
   \outputpenalty\do@newpage@pen
 
3572
  }%
 
3573
  \dead@cycle
 
3574
 }%
 
3575
 \check@deferlist@stuck\do@startcolumn
 
3576
 \set@vsize
 
3577
}%
 
3578
\def\@scolelt#1{\def\@currbox{#1}\@addtonextcol}%
 
3579
\def\test@colfloat#1{%
 
3580
 \csname @floatselect@sw@\thepagegrid\endcsname#1{}{\@testtrue}%
 
3581
 \@if@sw\if@test\fi{}{\aftergroup\@booleantrue\aftergroup\float@avail@sw}%
 
3582
}%
 
3583
\def\@addtonextcol{%
 
3584
 \begingroup
 
3585
  \@insertfalse
 
3586
  \@setfloattypecounts
 
3587
  \csname @floatselect@sw@\thepagegrid\endcsname\@currbox{%
 
3588
   \@ifnum{\@fpstype=8 }{}{%
 
3589
     \@ifnum{\@fpstype=24 }{}{%
 
3590
       \@flsettextmin
 
3591
       \@reqcolroom \ht\@currbox
 
3592
       \advance \@reqcolroom \@textmin
 
3593
       \advance \@reqcolroom \vsize % take into account split insertions
 
3594
       \advance \@reqcolroom -\pagegoal
 
3595
       \@ifdim{\@colroom>\@reqcolroom}{%
 
3596
         \@flsetnum \@colnum
 
3597
         \@ifnum{\@colnum>\z@}{%
 
3598
            \@bitor\@currtype\@deferlist
 
3599
            \@if@sw\if@test\fi{}{%
 
3600
              \@addtotoporbot
 
3601
            }%
 
3602
         }{}%
 
3603
       }{}%
 
3604
     }%
 
3605
   }%
 
3606
  }{}%
 
3607
  \@if@sw\if@insert\fi{}{%
 
3608
    \@cons\@deferlist\@currbox
 
3609
  }%
 
3610
 \endgroup
 
3611
}%
 
3612
\mathchardef\do@startpage@pen=10006
 
3613
\@namedef{output@-\the\do@startpage@pen}{\do@startpage}%
 
3614
\def\do@startpage{%
 
3615
 \setbox\@cclv\vbox{\unvbox\@cclv\remove@lastbox\unskip}%
 
3616
 \clearpage@sw{\@clearfloatplacement}{\@dblfloatplacement}%
 
3617
 \set@colht
 
3618
 \@booleanfalse\pfloat@avail@sw
 
3619
 \begingroup
 
3620
  \@booleanfalse\float@avail@sw
 
3621
  \@tryfcolumn\test@dblfloat
 
3622
  \float@avail@sw{\aftergroup\@booleantrue\aftergroup\pfloat@avail@sw}{}%
 
3623
 \endgroup
 
3624
 \fcolmade@sw{%
 
3625
  \global\setbox\pagesofar\vbox{\unvbox\pagesofar\unvbox\@outputbox}%
 
3626
  \@output@combined@page
 
3627
 }{%
 
3628
  \begingroup
 
3629
   \@booleanfalse\float@avail@sw
 
3630
   \let\@elt\@sdblcolelt
 
3631
   \let\reserved@b\@deferlist\global\let\@deferlist\@empty\reserved@b
 
3632
  \endgroup
 
3633
  \@ifdim{\@colht=\textheight}{% No luck...
 
3634
   \pfloat@avail@sw{% ...but a float *was* available!
 
3635
    \forcefloats@sw{%
 
3636
     \ltxgrid@warn{Forced dequeueing of floats stalled}%
 
3637
    }{%
 
3638
     \ltxgrid@warn{Dequeueing of floats stalled}%
 
3639
    }%
 
3640
   }{}%
 
3641
  }{}%
 
3642
  \outputpenalty\@M
 
3643
  \dead@cycle
 
3644
 }%
 
3645
 \check@deferlist@stuck\do@startpage
 
3646
 \set@colht
 
3647
}%
 
3648
\def\@output@combined@page{%
 
3649
 \@combinepage\true@sw
 
3650
 \@combinedblfloats
 
3651
 \@outputpage
 
3652
 \global\pagegrid@cur\@ne
 
3653
 \protect@penalty\do@startpage@pen
 
3654
}%
 
3655
\def\@sdblcolelt#1{\def\@currbox{#1}\@addtodblcol}%
 
3656
\def\test@dblfloat#1{%
 
3657
 \@if@notdblfloat{#1}{\@testtrue}{}%
 
3658
 \@if@sw\if@test\fi{}{\aftergroup\@booleantrue\aftergroup\float@avail@sw}%
 
3659
}%
 
3660
\def\@if@notdblfloat#1{\@ifdim{\wd#1<\textwidth}}%
 
3661
\@booleanfalse\forcefloats@sw
 
3662
\def\@addtodblcol{%
 
3663
 \begingroup
 
3664
  \@if@notdblfloat{\@currbox}{%
 
3665
   \false@sw
 
3666
  }{%
 
3667
   \@setfloattypecounts
 
3668
   \@getfpsbit \tw@
 
3669
   \@bitor \@currtype \@deferlist
 
3670
   \@if@sw\if@test\fi{%
 
3671
    \false@sw
 
3672
   }{%
 
3673
    \@ifodd\@tempcnta{%
 
3674
     \aftergroup\@booleantrue\aftergroup\float@avail@sw
 
3675
     \@flsetnum \@dbltopnum
 
3676
     \@ifnum{\@dbltopnum>\z@}{%
 
3677
       \@ifdim{\@dbltoproom>\ht\@currbox}{%
 
3678
        \true@sw
 
3679
       }{%
 
3680
        \@ifnum{\@fpstype<\sixt@@n}{%
 
3681
         \begingroup
 
3682
          \advance \@dbltoproom \@textmin
 
3683
          \@ifdim{\@dbltoproom>\ht\@currbox}{%
 
3684
           \endgroup\true@sw
 
3685
          }{%
 
3686
           \endgroup\false@sw
 
3687
          }%
 
3688
        }{%
 
3689
         \false@sw
 
3690
        }%
 
3691
       }%
 
3692
     }{%
 
3693
      \false@sw
 
3694
     }%
 
3695
    }{%
 
3696
     \false@sw
 
3697
    }%
 
3698
   }%
 
3699
  }%
 
3700
  {%
 
3701
   \@tempdima -\ht\@currbox
 
3702
   \advance\@tempdima
 
3703
    -\@ifx{\@dbltoplist\@empty}{\dbltextfloatsep}{\dblfloatsep}%
 
3704
   \global \advance \@dbltoproom \@tempdima
 
3705
   \global \advance \@colht \@tempdima
 
3706
   \global \advance \@dbltopnum \m@ne
 
3707
   \@cons \@dbltoplist \@currbox
 
3708
  }{%
 
3709
   \@cons \@deferlist \@currbox
 
3710
  }%
 
3711
 \endgroup
 
3712
}%
 
3713
\def\@tryfcolumn#1{%
 
3714
  \global\@booleanfalse\fcolmade@sw
 
3715
  \@ifx@empty\@deferlist{}{%
 
3716
    \global\let\@trylist\@deferlist
 
3717
    \global\let\@failedlist\@empty
 
3718
    \begingroup
 
3719
      \dimen@\vsize\advance\dimen@-\pagegoal\@ifdim{\dimen@>\z@}{%
 
3720
       \advance\@fpmin-\dimen@
 
3721
      }{}%
 
3722
      \def\@elt{\@xtryfc#1}\@trylist
 
3723
    \endgroup
 
3724
    \fcolmade@sw{%
 
3725
      \global\setbox\@outputbox\vbox{\vskip \@fptop}%
 
3726
      \let \@elt \@wtryfc \@flsucceed
 
3727
      \global\setbox\@outputbox\vbox{\unvbox\@outputbox
 
3728
        \unskip \vskip \@fpbot
 
3729
      }%
 
3730
      \let \@elt \relax
 
3731
      \xdef\@deferlist{\@failedlist\@flfail}%
 
3732
      \xdef\@freelist{\@freelist\@flsucceed}%
 
3733
    }{}%
 
3734
  }%
 
3735
}%
 
3736
\def\@wtryfc #1{%
 
3737
  \global\setbox\@outputbox\vbox{\unvbox\@outputbox
 
3738
    \box #1\vskip\@fpsep
 
3739
  }%
 
3740
}%
 
3741
\def\@xtryfc#1#2{%
 
3742
  \@next\reserved@a\@trylist{}{}% trim \@trylist. Ugly!
 
3743
  \@currtype \count #2%
 
3744
  \divide\@currtype\@xxxii\multiply\@currtype\@xxxii
 
3745
  \@bitor \@currtype \@failedlist
 
3746
  \@testfp #2%
 
3747
  #1#2%
 
3748
  \@ifdim{\ht #2>\@colht   }{\@testtrue}{}%
 
3749
  \@if@sw\if@test\fi{%
 
3750
   \@cons\@failedlist #2%
 
3751
  }{%
 
3752
   \begingroup
 
3753
     \gdef\@flsucceed{\@elt #2}%
 
3754
     \global\let\@flfail\@empty
 
3755
     \@tempdima\ht #2%
 
3756
     \def \@elt {\@ztryfc#1}\@trylist
 
3757
     \@ifdim{\@tempdima >\@fpmin}{%
 
3758
       \global\@booleantrue\fcolmade@sw
 
3759
     }{%
 
3760
       \@cons\@failedlist #2%
 
3761
     }%
 
3762
   \endgroup
 
3763
   \fcolmade@sw{%
 
3764
     \let \@elt \@gobble
 
3765
   }{}%
 
3766
  }%
 
3767
}%
 
3768
\def\@ztryfc #1#2{%
 
3769
  \@tempcnta \count#2%
 
3770
  \divide\@tempcnta\@xxxii\multiply\@tempcnta\@xxxii
 
3771
  \@bitor \@tempcnta {\@failedlist \@flfail}%
 
3772
  \@testfp #2%
 
3773
  #1#2%
 
3774
  \@tempdimb\@tempdima
 
3775
  \advance\@tempdimb \ht#2\advance\@tempdimb\@fpsep
 
3776
  \@ifdim{\@tempdimb >\@colht}{%
 
3777
    \@testtrue
 
3778
  }{}%
 
3779
  \@if@sw\if@test\fi{%
 
3780
    \@cons\@flfail #2%
 
3781
  }{%
 
3782
    \@cons\@flsucceed #2%
 
3783
    \@tempdima\@tempdimb
 
3784
  }%
 
3785
}%
 
3786
\def\newpage@prep{%
 
3787
  \if@noskipsec
 
3788
    \ifx \@nodocument\relax
 
3789
      \leavevmode
 
3790
      \global \@noskipsecfalse
 
3791
    \fi
 
3792
  \fi
 
3793
  \if@inlabel
 
3794
    \leavevmode
 
3795
    \global \@inlabelfalse
 
3796
  \fi
 
3797
  \if@nobreak \@nobreakfalse \everypar{}\fi
 
3798
  \par
 
3799
}%
 
3800
\def \newpage {%
 
3801
 \newpage@prep
 
3802
 \do@output@MVL{%
 
3803
  \vfil
 
3804
  \penalty-\pagebreak@pen
 
3805
 }%
 
3806
}%
 
3807
\def\clearpage{%
 
3808
 \newpage@prep
 
3809
 \do@output@MVL{%
 
3810
  \vfil
 
3811
  \penalty-\pagebreak@pen
 
3812
  \global\@booleantrue\clearpage@sw
 
3813
  \protect@penalty\do@startcolumn@pen
 
3814
  \protect@penalty\do@endpage@pen
 
3815
 }%
 
3816
 \do@output@MVL{%
 
3817
  \global\@booleanfalse\clearpage@sw
 
3818
 }%
 
3819
}%
 
3820
\def\cleardoublepage{%
 
3821
 \clearpage
 
3822
 \@if@sw\if@twoside\fi{%
 
3823
  \@ifodd\c@page{}{%
 
3824
   \null\clearpage
 
3825
  }%
 
3826
 }{}%
 
3827
}%
 
3828
\@booleanfalse\clearpage@sw
 
3829
\mathchardef\do@endpage@pen=10007
 
3830
\@namedef{output@-\the\do@endpage@pen}{\csname end@column@\thepagegrid\endcsname}%
 
3831
\mathchardef\do@newpage@pen=10001
 
3832
\expandafter\let\csname output@-\the\do@newpage@pen\endcsname\relax
 
3833
\def\@clearfloatplacement{%
 
3834
 \global\@topnum     \maxdimen
 
3835
 \global\@toproom    \maxdimen
 
3836
 \global\@botnum     \maxdimen
 
3837
 \global\@botroom    \maxdimen
 
3838
 \global\@colnum     \maxdimen
 
3839
 \global\@dbltopnum  \maxdimen
 
3840
 \global\@dbltoproom \maxdimen
 
3841
 \global\@textmin    \z@
 
3842
 \global\@fpmin      \z@
 
3843
 \let\@testfp\@gobble
 
3844
 \appdef\@setfloattypecounts{\@fpstype16\advance\@fpstype\m@ne}%
 
3845
}%
 
3846
\let\@doclearpage\@undefined
 
3847
\let\@makefcolumn\@undefined
 
3848
\let\@makecol\@undefined
 
3849
\def\clr@top@firstmark{%
 
3850
 \global\let\saved@@topmark\@undefined
 
3851
 \global\let\saved@@firstmark\@empty
 
3852
 \global\let\saved@@botmark\@empty
 
3853
}%
 
3854
\clr@top@firstmark
 
3855
\def\set@top@firstmark{%
 
3856
 \@ifxundefined\saved@@topmark{\expandafter\gdef\expandafter\saved@@topmark\expandafter{\@@topmark}}{}%
 
3857
 \@if@empty\saved@@firstmark{\expandafter\gdef\expandafter\saved@@firstmark\expandafter{\@@firstmark}}{}%
 
3858
 \@if@empty\@@botmark{}{\expandafter\gdef\expandafter\saved@@botmark\expandafter{\@@botmark}}%
 
3859
}%
 
3860
\appdef\@outputpage@tail{%
 
3861
 \clr@top@firstmark
 
3862
}%
 
3863
\def\@float#1{%
 
3864
 \@ifnextchar[{%
 
3865
  \@yfloat\width@float{#1}%
 
3866
 }{%
 
3867
  \@ifxundefined@cs{fps@#1}{}{\expandafter\let\expandafter\fps@\csname fps@#1\endcsname}%
 
3868
  \expandafter\@argswap\expandafter{\expandafter[\fps@]}{\@yfloat\width@float{#1}}%
 
3869
 }%
 
3870
}%
 
3871
\def\@dblfloat#1{%
 
3872
 \@ifnum{\pagegrid@col=\@ne}{%
 
3873
  \@float{#1}%
 
3874
 }{%
 
3875
  \@ifnextchar[{%
 
3876
   \@yfloat\widthd@float{#1}%
 
3877
  }{%
 
3878
   \@ifxundefined@cs{fpsd@#1}{}{\expandafter\let\expandafter\fpsd@\csname fpsd@#1\endcsname}%
 
3879
   \expandafter\@argswap\expandafter{\expandafter[\fpsd@]}{\@yfloat\widthd@float{#1}}%
 
3880
  }%
 
3881
 }%
 
3882
}%
 
3883
\def\@yfloat#1#2[#3]{%
 
3884
 \@xfloat{#2}[#3]%
 
3885
 \hsize#1\linewidth\hsize
 
3886
 \let\set@footnotewidth\@empty
 
3887
 \minipagefootnote@init
 
3888
}%
 
3889
\def\fps@{tbp}%
 
3890
\def\fpsd@{tp}%
 
3891
\def\width@float{\columnwidth}%
 
3892
\def\widthd@float{\textwidth}%
 
3893
\def\end@float{%
 
3894
 \end@@float{%
 
3895
  \check@currbox@count
 
3896
 }%
 
3897
}%
 
3898
\def\end@dblfloat{%
 
3899
 \@ifnum{\pagegrid@col=\@ne}{%
 
3900
  \end@float
 
3901
 }{%
 
3902
  \end@@float{%
 
3903
   \@iffpsbit\@ne{\global\advance\count\@currbox\m@ne}{}%
 
3904
   \@iffpsbit\f@ur{\global\advance\count\@currbox-4\relax}{}%
 
3905
   \global\wd\@currbox\textwidth % Klootch
 
3906
   \check@currbox@count
 
3907
  }%
 
3908
 }%
 
3909
}%
 
3910
\def\end@@float#1{%
 
3911
 \minipagefootnote@here
 
3912
 \@endfloatbox
 
3913
 #1%
 
3914
 \@ifnum{\@floatpenalty <\z@}{%
 
3915
  \@largefloatcheck
 
3916
  \@cons\@currlist\@currbox
 
3917
  \@ifnum{\@floatpenalty <-\@Mii}{%
 
3918
   \do@output@cclv{\@add@float}%
 
3919
  }{%
 
3920
   \vadjust{\do@output@cclv{\@add@float}}%
 
3921
   \@Esphack
 
3922
  }%
 
3923
 }{}%
 
3924
}%
 
3925
\newcommand\float@end@float{%
 
3926
 \@endfloatbox
 
3927
 \global\setbox\@currbox\float@makebox\columnwidth
 
3928
 \let\@endfloatbox\relax
 
3929
 \end@float
 
3930
}%
 
3931
\newcommand\float@end@ltx{%
 
3932
 \end@@float{%
 
3933
  \global\setbox\@currbox\float@makebox\columnwidth
 
3934
  \check@currbox@count
 
3935
 }%
 
3936
}%
 
3937
\newcommand\newfloat@float[3]{%
 
3938
 \@namedef{ext@#1}{#3} %!
 
3939
 \let\float@do=\relax
 
3940
 \xdef\@tempa{\noexpand\float@exts{\the\float@exts \float@do{#3}}}%
 
3941
 \@tempa
 
3942
 \floatplacement{#1}{#2}%
 
3943
 \@ifundefined{fname@#1}{\floatname{#1}{#1}}{} %!
 
3944
 \expandafter\edef\csname ftype@#1\endcsname{\value{float@type}}%
 
3945
 \addtocounter{float@type}{\value{float@type}} %!
 
3946
 \restylefloat{#1}%
 
3947
 \expandafter\edef\csname fnum@#1\endcsname{%
 
3948
  \expandafter\noexpand\csname fname@#1\endcsname{} %!
 
3949
  \expandafter\noexpand\csname the#1\endcsname
 
3950
 }
 
3951
 \@ifnextchar[%]
 
3952
  {%
 
3953
   \float@newx{#1}%
 
3954
  }{%
 
3955
   \@ifundefined{c@#1}{\newcounter{#1}\@namedef{the#1}{\arabic{#1}}}{}%
 
3956
  }%
 
3957
}%
 
3958
\newcommand\newfloat@ltx[3]{%
 
3959
 \@namedef{ext@#1}{#3}%
 
3960
 \let\float@do=\relax
 
3961
 \xdef\@tempa{\noexpand\float@exts{\the\float@exts \float@do{#3}}}%
 
3962
 \@tempa
 
3963
 \floatplacement{#1}{#2}%
 
3964
 \@ifundefined{fname@#1}{\floatname{#1}{#1}}{}%
 
3965
 \expandafter\edef\csname ftype@#1\expandafter\endcsname\expandafter{\the\c@float@type}%
 
3966
 \addtocounter{float@type}{\value{float@type}}%
 
3967
 \restylefloat{#1}%
 
3968
 \expandafter\edef\csname fnum@#1\endcsname{%
 
3969
  \expandafter\noexpand\csname fname@#1\endcsname{}%
 
3970
  \expandafter\noexpand\csname the#1\endcsname
 
3971
 }
 
3972
 \@ifnextchar[%]
 
3973
  {%
 
3974
   \float@newx{#1}%
 
3975
  }{%
 
3976
   \@ifundefined{c@#1}{\newcounter{#1}\@namedef{the#1}{\arabic{#1}}}{}%
 
3977
  }%
 
3978
}%
 
3979
\appdef\document@inithook{%
 
3980
 \@ifxundefined\newfloat{}{%
 
3981
  \@ifx{\float@end\float@end@float}{%
 
3982
   \@ifx{\newfloat\newfloat@float}{\true@sw}{\false@sw}%
 
3983
   }{\false@sw}%
 
3984
   {%
 
3985
    \class@warn{Repair the float package}%
 
3986
    \let\float@end\float@end@ltx
 
3987
    \let\newfloat\newfloat@ltx
 
3988
   }{%
 
3989
    \class@warn{Failed to patch the float package}%
 
3990
   }%
 
3991
 }%
 
3992
}%
 
3993
\def\@iffpsbit#1{%
 
3994
 \begingroup
 
3995
  \@tempcnta\count\@currbox
 
3996
  \divide\@tempcnta#1\relax
 
3997
  \@ifodd\@tempcnta{\aftergroup\true@sw}{\aftergroup\false@sw}%
 
3998
 \endgroup
 
3999
}%
 
4000
\def\check@currbox@count{%
 
4001
 \@ifnum{\count\@currbox>\z@}{%
 
4002
  \count@\count\@currbox\divide\count@\sixt@@n\multiply\count@\sixt@@n
 
4003
  \@tempcnta\count\@currbox\advance\@tempcnta-\count@
 
4004
  \@ifnum{\@tempcnta=\z@}{%
 
4005
   \ltxgrid@warn{Float cannot be placed}%
 
4006
  }{}%
 
4007
  \expandafter\tally@float\expandafter{\@captype}%
 
4008
 }{%
 
4009
 }%
 
4010
}%
 
4011
\providecommand\minipagefootnote@init{}%
 
4012
\providecommand\minipagefootnote@here{}%
 
4013
\providecommand\tally@float[1]{}%
 
4014
\let\@specialoutput\@undefined
 
4015
\def\@add@float{%
 
4016
 \@pageht\ht\@cclv\@pagedp\dp\@cclv
 
4017
 \unvbox\@cclv
 
4018
 \@next\@currbox\@currlist{%
 
4019
  \csname @floatselect@sw@\thepagegrid\endcsname\@currbox{%
 
4020
   \@ifnum{\count\@currbox>\z@}{%
 
4021
    \advance \@pageht \@pagedp
 
4022
    \advance \@pageht \vsize \advance \@pageht -\pagegoal
 
4023
    \@addtocurcol
 
4024
   }{%
 
4025
    \@addmarginpar
 
4026
   }%
 
4027
  }{%
 
4028
   \@resethfps
 
4029
   \@cons\@deferlist\@currbox
 
4030
  }%
 
4031
 }{\@latexbug}%
 
4032
 \@ifnum{\outputpenalty<\z@}{%
 
4033
  \@if@sw\if@nobreak\fi{%
 
4034
   \nobreak
 
4035
  }{%
 
4036
   \addpenalty \interlinepenalty
 
4037
  }%
 
4038
 }{}%
 
4039
 \set@vsize
 
4040
}%
 
4041
\let\@reinserts\@undefined
 
4042
\def \@addtocurcol {%
 
4043
   \@insertfalse
 
4044
   \@setfloattypecounts
 
4045
   \ifnum \@fpstype=8
 
4046
   \else
 
4047
     \ifnum \@fpstype=24
 
4048
     \else
 
4049
       \@flsettextmin
 
4050
       \advance \@textmin \@textfloatsheight
 
4051
       \@reqcolroom \@pageht
 
4052
       \ifdim \@textmin>\@reqcolroom
 
4053
         \@reqcolroom \@textmin
 
4054
       \fi
 
4055
       \advance \@reqcolroom \ht\@currbox
 
4056
       \ifdim \@colroom>\@reqcolroom
 
4057
         \@flsetnum \@colnum
 
4058
         \ifnum \@colnum>\z@
 
4059
           \@bitor\@currtype\@deferlist
 
4060
           \if@test
 
4061
           \else
 
4062
             \@bitor\@currtype\@botlist
 
4063
             \if@test
 
4064
               \@addtobot
 
4065
             \else
 
4066
               \ifodd \count\@currbox
 
4067
                 \advance \@reqcolroom \intextsep
 
4068
                 \ifdim \@colroom>\@reqcolroom
 
4069
                   \global \advance \@colnum \m@ne
 
4070
                   \global \advance \@textfloatsheight \ht\@currbox
 
4071
                   \global \advance \@textfloatsheight 2\intextsep
 
4072
                   \@cons \@midlist \@currbox
 
4073
                   \if@nobreak
 
4074
                     \nobreak
 
4075
                     \@nobreakfalse
 
4076
                     \everypar{}%
 
4077
                   \else
 
4078
                     \addpenalty \interlinepenalty
 
4079
                   \fi
 
4080
                   \vskip \intextsep
 
4081
                   \unvbox\@currbox %AO
 
4082
                   \penalty\interlinepenalty
 
4083
                   \vskip\intextsep
 
4084
                   \ifnum\outputpenalty <-\@Mii \vskip -\parskip\fi
 
4085
                   \outputpenalty \z@
 
4086
                   \@inserttrue
 
4087
                 \fi
 
4088
               \fi
 
4089
               \if@insert
 
4090
               \else
 
4091
                 \@addtotoporbot
 
4092
               \fi
 
4093
             \fi
 
4094
           \fi
 
4095
         \fi
 
4096
       \fi
 
4097
     \fi
 
4098
   \fi
 
4099
   \if@insert
 
4100
   \else
 
4101
     \@resethfps
 
4102
     \@cons\@deferlist\@currbox
 
4103
   \fi
 
4104
}%
 
4105
\@twocolumnfalse
 
4106
\let\@twocolumntrue\@twocolumnfalse
 
4107
\def\@addmarginpar{%
 
4108
 \@next\@marbox\@currlist{%
 
4109
  \@cons\@freelist\@marbox\@cons\@freelist\@currbox
 
4110
 }\@latexbug
 
4111
 \setbox\@marbox\hb@xt@\columnwidth{%
 
4112
  \csname @addmarginpar@\thepagegrid\endcsname{%
 
4113
   \hskip-\marginparsep\hskip-\marginparwidth
 
4114
   \box\@currbox
 
4115
  }{%
 
4116
   \hskip\columnwidth\hskip\marginparsep
 
4117
   \box\@marbox
 
4118
  }%
 
4119
  \hss
 
4120
 }%
 
4121
 \setbox\z@\box\@currbox
 
4122
    \@tempdima\@mparbottom
 
4123
    \advance\@tempdima -\@pageht
 
4124
    \advance\@tempdima\ht\@marbox
 
4125
 \@ifdim{\@tempdima >\z@}{%
 
4126
   \@latex@warning@no@line {Marginpar on page \thepage\space moved}%
 
4127
 }{%
 
4128
   \@tempdima\z@
 
4129
 }%
 
4130
    \global\@mparbottom\@pageht
 
4131
    \global\advance\@mparbottom\@tempdima
 
4132
    \global\advance\@mparbottom\dp\@marbox
 
4133
    \global\advance\@mparbottom\marginparpush
 
4134
    \advance\@tempdima -\ht\@marbox
 
4135
    \global\setbox \@marbox
 
4136
                   \vbox {\vskip \@tempdima
 
4137
                          \box \@marbox}%
 
4138
    \global \ht\@marbox \z@
 
4139
    \global \dp\@marbox \z@
 
4140
    \kern -\@pagedp
 
4141
    \nointerlineskip
 
4142
  \box\@marbox
 
4143
    \nointerlineskip
 
4144
    \hbox{\vrule \@height\z@ \@width\z@ \@depth\@pagedp}%
 
4145
}%
 
4146
\newenvironment{turnpage}{%
 
4147
 \def\width@float{\textheight}%
 
4148
 \def\widthd@float{\textheight}%
 
4149
 \appdef\@endfloatbox{%
 
4150
  \@ifxundefined\@currbox{%
 
4151
   \ltxgrid@warn{Cannot rotate! Not a float}%
 
4152
  }{%
 
4153
   \setbox\@currbox\vbox to\textwidth{\vfil\unvbox\@currbox\vfil}%
 
4154
   \global\setbox\@currbox\vbox{\rotatebox{90}{\box\@currbox}}%
 
4155
  }%
 
4156
 }%
 
4157
}{%
 
4158
}%
 
4159
\def\rotatebox@dummy#1#2{%
 
4160
 \ltxgrid@warn{You must load the graphics or graphicx package in order to use the turnpage environment}%
 
4161
 #2%
 
4162
}%
 
4163
\appdef\document@inithook{%
 
4164
 \@ifxundefined\rotatebox{\let\rotatebox\rotatebox@dummy}{}%
 
4165
}%
 
4166
\@namedef{output@-1073741824}{%
 
4167
 \deadcycles\z@
 
4168
 \void@cclv
 
4169
}%
 
4170
\mathchardef\save@column@pen=10016
 
4171
\@namedef{output@-\the\save@column@pen}{\save@column}%
 
4172
\let \@cclv@saved \@holdpg
 
4173
\let \@holdpg \@undefined
 
4174
\def\save@column{%
 
4175
 \@ifvoid\@cclv@saved{%
 
4176
  \set@top@firstmark
 
4177
  \global\@topmark@saved\expandafter{\@@topmark}%
 
4178
 }{}%
 
4179
 \global\setbox\@cclv@saved\vbox{%
 
4180
  \@ifvoid\@cclv@saved{}{%
 
4181
   \unvbox\@cclv@saved
 
4182
   \marry@baselines
 
4183
  }%
 
4184
  \unvbox\@cclv
 
4185
  \lose@breaks
 
4186
  \remove@lastbox
 
4187
 }%
 
4188
}%
 
4189
\newtoks\@topmark@saved
 
4190
\def\prep@cclv{%
 
4191
 \void@cclv
 
4192
 \setbox\@cclv\box\@cclv@saved
 
4193
 \vbadness\@M
 
4194
}%
 
4195
\mathchardef\save@column@insert@pen=10017
 
4196
\@namedef{output@-\the\save@column@insert@pen}{\toggle@insert{\savecolumn@holding}{\savecolumn@moving}}%
 
4197
\def\savecolumn@holding{%
 
4198
 \@if@exceed@pagegoal{\unvcopy\@cclv\remove@lastbox}{%
 
4199
  \setbox\z@\vbox{\unvcopy\@cclv\remove@lastbox}%
 
4200
  \outputdebug@sw{\trace@box\z@}{}%
 
4201
  \dimen@\ht\@cclv\advance\dimen@-\ht\z@
 
4202
  \dead@cycle@repair@protected\dimen@
 
4203
 }{%
 
4204
  \dead@cycle
 
4205
 }%
 
4206
}%
 
4207
\def\savecolumn@moving{%
 
4208
 \ltxgrid@info@sw{\class@info{\string\savecolumn@moving}}{}%
 
4209
 \@cclv@nontrivial@sw{%
 
4210
  \save@column
 
4211
 }{%
 
4212
  \void@cclv
 
4213
 }%
 
4214
 \@ifvoid\footins{}{%
 
4215
  \ltxgrid@foot@info@sw{\class@info{\string\savecolumn@moving}\trace@scroll{\showbox\footins@saved\showbox\footins}}{}%
 
4216
  \@ifvoid\footins@saved{%
 
4217
   \global\setbox\footins@saved\box\footins
 
4218
  }{%
 
4219
   \global\setbox\footins@saved\vbox\bgroup
 
4220
    \unvbox\footins@saved
 
4221
    \marry@baselines
 
4222
    \unvbox\footins
 
4223
   \egroup
 
4224
  }%
 
4225
  \ltxgrid@foot@info@sw{\trace@box\footins@saved}{}%
 
4226
  \protect@penalty\save@column@insert@pen
 
4227
 }%
 
4228
}%
 
4229
\newbox\footins@saved
 
4230
\newbox\footins@recovered
 
4231
\newbox\column@recovered
 
4232
\mathchardef\save@message@pen=10018
 
4233
\@namedef{output@-\the\save@message@pen}{\save@message}%
 
4234
\def\save@message{%
 
4235
 \void@cclv
 
4236
 \toks@\expandafter{\@@firstmark}%
 
4237
 \expandafter\gdef\expandafter\@message@saved\expandafter{\the\toks@}%
 
4238
 \expandafter\do@@mark\expandafter{\the\@topmark@saved}%
 
4239
}%
 
4240
\gdef\@message@saved{}%
 
4241
\mathchardef\execute@message@pen=10019
 
4242
\@namedef{output@-\the\execute@message@pen}{\@message@saved}%
 
4243
\def\execute@message{%
 
4244
 \@execute@message\save@column@pen
 
4245
}%
 
4246
\def\execute@message@insert#1{%
 
4247
 \@execute@message\save@column@insert@pen{%
 
4248
  \setbox \footins \box \footins@saved
 
4249
  \ltxgrid@foot@info@sw{\class@info{\string\execute@message@insert}\trace@box\footins}{}%
 
4250
  #1%
 
4251
 }%
 
4252
}%
 
4253
\long\def\@execute@message#1#2{%
 
4254
 \begingroup
 
4255
  \dimen@\prevdepth\@ifdim{\dimen@<\z@}{\dimen@\z@}{}%
 
4256
  \setbox\z@\vbox{%
 
4257
   \protect@penalty#1%
 
4258
   \protection@box
 
4259
   \toks@{\prep@cclv#2}%
 
4260
   \@@mark{\the\toks@}%
 
4261
   \penalty-\save@message@pen
 
4262
   \setbox\z@\null\dp\z@\dimen@\ht\z@-\dimen@
 
4263
   \nointerlineskip\box\z@
 
4264
   \penalty-\execute@message@pen
 
4265
  }\unvbox\z@
 
4266
 \endgroup
 
4267
}%
 
4268
\def\do@output@cclv{\execute@message}%
 
4269
\def\do@output@MVL#1{%
 
4270
 \@ifvmode{%
 
4271
  \begingroup\execute@message{\unvbox\@cclv#1}\endgroup
 
4272
 }{%
 
4273
  \@ifhmode{%
 
4274
   \vadjust{\execute@message{\unvbox\@cclv#1}}%
 
4275
  }{%
 
4276
   \@latexerr{\string\do@output@MVL\space cannot be executed in this mode!}\@eha
 
4277
  }%
 
4278
 }%
 
4279
}%
 
4280
\def\lose@breaks{%
 
4281
 \loopwhile{%
 
4282
  \count@\lastpenalty
 
4283
  \@ifnum{\count@=\@M}{%
 
4284
   \unpenalty\true@sw
 
4285
  }{%
 
4286
   \false@sw
 
4287
  }%
 
4288
 }%
 
4289
}%
 
4290
\def\removestuff{\do@output@MVL{\unskip\unpenalty}}%
 
4291
\def\removephantombox{%
 
4292
 \vadjust{%
 
4293
  \execute@message{%
 
4294
   \unvbox\@cclv
 
4295
   \remove@lastbox
 
4296
   \unskip
 
4297
   \unskip
 
4298
   \unpenalty
 
4299
   \penalty\predisplaypenalty
 
4300
   \vskip\abovedisplayskip
 
4301
  }%
 
4302
 }%
 
4303
}%
 
4304
\def\addstuff#1#2{\edef\@tempa{\noexpand\do@output@MVL{\noexpand\@addstuff{#1}{#2}}}\@tempa}%
 
4305
\def\@addstuff#1#2{%
 
4306
 \skip@\lastskip\unskip
 
4307
 \count@\lastpenalty\unpenalty
 
4308
 \@if@empty{#1}{}{\penalty#1\relax}%
 
4309
 \@ifnum{\count@=\z@}{}{\penalty\count@}%
 
4310
 \vskip\skip@
 
4311
 \@if@empty{#2}{}{\vskip#2\relax}%
 
4312
}%
 
4313
\def\replacestuff#1#2{\edef\@tempa{\noexpand\do@output@MVL{\noexpand\@replacestuff{#1}{#2}}}\@tempa}%
 
4314
\def\@replacestuff#1#2{%
 
4315
 \skip@\lastskip\unskip
 
4316
 \count@\lastpenalty\unpenalty
 
4317
 \@if@empty{#1}{}{%
 
4318
 \@ifnum{\count@>\@M}{}{%
 
4319
   \@ifnum{\count@=\z@}{\count@=#1\relax}{%
 
4320
    \@ifnum{\count@<#1\relax}{}{%
 
4321
     \count@=#1\relax
 
4322
    }%
 
4323
   }%
 
4324
 }%
 
4325
 }%
 
4326
 \@ifnum{\count@=\z@}{}{\penalty\count@}%
 
4327
 \@if@empty{#2}{}{%
 
4328
  \@tempskipa#2\relax
 
4329
  \@ifdim{\z@>\@tempskipa}{%
 
4330
   \advance\skip@-\@tempskipa
 
4331
  }{%
 
4332
   \@ifdim{\skip@>\@tempskipa}{}{%
 
4333
    \skip@\@tempskipa
 
4334
   }%
 
4335
  }%
 
4336
 }%
 
4337
 \vskip\skip@
 
4338
}%
 
4339
\def\move@insertions{\global\holdinginserts\z@}%
 
4340
\def\hold@insertions{\global\holdinginserts\@ne}%
 
4341
\hold@insertions
 
4342
\def\toggle@insert#1#2{%
 
4343
 \@ifnum{\holdinginserts>\z@}{\move@insertions#1}{\hold@insertions#2}%
 
4344
}%
 
4345
\def\do@columngrid#1#2{%
 
4346
 \par
 
4347
 \expandafter\let\expandafter\@tempa\csname open@column@#1\endcsname
 
4348
 \@ifx{\relax\@tempa}{%
 
4349
  \ltxgrid@warn{Unknown page grid #1. No action taken}%
 
4350
 }{%
 
4351
  \do@output@MVL{\start@column{#1}{#2}}%
 
4352
 }%
 
4353
}%
 
4354
\def\start@column#1#2{%
 
4355
 \def\@tempa{#1}\@ifx{\@tempa\thepagegrid}{%
 
4356
  \ltxgrid@info{Already in page grid \thepagegrid. No action taken}%
 
4357
 }{%
 
4358
  \expandafter\execute@message@insert
 
4359
  \expandafter{%
 
4360
               \csname shut@column@\thepagegrid\expandafter\endcsname
 
4361
               \csname open@column@#1\endcsname{#2}%
 
4362
               \set@vsize
 
4363
             }%
 
4364
 }%
 
4365
}%
 
4366
\def\thepagegrid{one}%
 
4367
\newbox\pagesofar
 
4368
\newbox\footsofar
 
4369
\def\combine@foot@inserts#1#2{%
 
4370
  \ltxgrid@info@sw{\class@info{\string\combine@foot@inserts\string#1\string#2}}{}%
 
4371
  \@ifvoid#1{%
 
4372
    \ltxgrid@foot@info@sw{\trace@box#2}{}\global\setbox#1\box#2%
 
4373
  }{%
 
4374
   \global\setbox#1\vbox\bgroup
 
4375
    \ltxgrid@foot@info@sw{\trace@box#1}{}\unvbox#1%
 
4376
    \@ifvoid#2{}{%
 
4377
     \marry@baselines
 
4378
     \ltxgrid@foot@info@sw{\trace@box#2}{}\unvbox#2%
 
4379
    }%
 
4380
   \egroup
 
4381
  }%
 
4382
  \ltxgrid@foot@info@sw{\trace@scroll{\showbox#1\showbox#2}}{}%
 
4383
}%
 
4384
\newcommand\onecolumngrid{\do@columngrid{one}{\@ne}}%
 
4385
\let\onecolumn\@undefined
 
4386
\def\open@column@one#1{%
 
4387
 \ltxgrid@info@sw{\class@info{\string\open@column@one\string#1}}{}%
 
4388
 \unvbox\pagesofar
 
4389
 \@ifvoid{\footsofar}{}{%
 
4390
  \insert\footins\bgroup\unvbox\footsofar\egroup
 
4391
  \penalty\z@
 
4392
 }%
 
4393
 \gdef\thepagegrid{one}%
 
4394
 \global\pagegrid@col#1%
 
4395
 \global\pagegrid@cur\@ne
 
4396
 \global\count\footins\@m
 
4397
 \global\divide\count\footins\tw@
 
4398
 \set@column@hsize\pagegrid@col
 
4399
 \set@colht
 
4400
}%
 
4401
\def\shut@column@one{%
 
4402
 \ltxgrid@info@sw{\class@info{\string\shut@column@one}}{}%
 
4403
 \@makecolumn\false@sw
 
4404
 \global\setbox\pagesofar\vbox\bgroup
 
4405
  \recover@column\@outputbox\footsofar\column@recovered\footins@recovered
 
4406
 \egroup
 
4407
 \begingroup\setbox\z@\box\@outputbox\endgroup
 
4408
 \combine@foot@inserts\footsofar\footins
 
4409
 \set@colht
 
4410
}%
 
4411
\def\float@column@one{%
 
4412
 \@makecolumn\true@sw
 
4413
 \@outputpage
 
4414
}%
 
4415
\def\end@column@one{%
 
4416
 \unvbox\@cclv\remove@lastbox
 
4417
 \protect@penalty\do@newpage@pen
 
4418
}%
 
4419
\def\output@column@one{%
 
4420
 \@outputpage
 
4421
}%
 
4422
\def\@addmarginpar@one{%
 
4423
 \@if@sw\if@mparswitch\fi{%
 
4424
  \@ifodd\c@page{\false@sw}{\true@sw}%
 
4425
 }{\false@sw}{%
 
4426
  \@if@sw\if@reversemargin\fi{\false@sw}{\true@sw}%
 
4427
 }{%
 
4428
  \@if@sw\if@reversemargin\fi{\true@sw}{\false@sw}%
 
4429
 }%
 
4430
}%
 
4431
\def\@floatselect@sw@one#1{\true@sw}%
 
4432
\def\onecolumngrid@push{%
 
4433
 \do@output@MVL{%
 
4434
  \@ifnum{\pagegrid@col=\@ne}{%
 
4435
   \global\let\restorecolumngrid\@empty
 
4436
  }{%
 
4437
   \xdef\restorecolumngrid{%
 
4438
    \noexpand\start@column{\thepagegrid}{\the\pagegrid@col}%
 
4439
   }%
 
4440
   \start@column{one}{\@ne}%
 
4441
  }%
 
4442
 }%
 
4443
}%
 
4444
\def\onecolumngrid@pop{%
 
4445
 \do@output@MVL{\restorecolumngrid}%
 
4446
}%
 
4447
\newcommand\twocolumngrid{\do@columngrid{mlt}{\tw@}}%
 
4448
\let\twocolumn\@undefined
 
4449
\let\@topnewpage\@undefined
 
4450
\def\open@column@mlt#1{%
 
4451
 \ltxgrid@info@sw{\class@info{\string\open@column@mlt\string#1}}{}%
 
4452
 \@ifvoid{\footsofar}{}{%
 
4453
  \insert\footins\bgroup\unvbox\footsofar\egroup
 
4454
 }%
 
4455
 \gdef\thepagegrid{mlt}%
 
4456
 \global\pagegrid@col#1%
 
4457
 \global\pagegrid@cur\@ne
 
4458
 \global\count\footins\@m
 
4459
 \set@column@hsize\pagegrid@col
 
4460
 \set@colht
 
4461
}%
 
4462
\def\shut@column@mlt{%
 
4463
 \ltxgrid@info@sw{\class@info{\string\shut@column@mlt}}{}%
 
4464
 \@cclv@nontrivial@sw{%
 
4465
  \@makecolumn\false@sw
 
4466
  \@ifnum{\pagegrid@cur<\pagegrid@col}{%
 
4467
   \expandafter\global\expandafter\setbox\csname col@\the\pagegrid@cur\endcsname\box\@outputbox
 
4468
   \global\advance\pagegrid@cur\@ne
 
4469
  }{}%
 
4470
 }{%
 
4471
  \void@cclv
 
4472
 }%
 
4473
 \@ifnum{\pagegrid@cur>\@ne}{%
 
4474
  \csname balance@\the\pagegrid@col\endcsname
 
4475
  \grid@column\@outputbox{}%
 
4476
  \@combinepage\false@sw
 
4477
  \@combinedblfloats
 
4478
  \global\setbox\pagesofar\box\@outputbox
 
4479
  \show@pagesofar@size
 
4480
 }{}%
 
4481
 \set@colht
 
4482
}%
 
4483
\def\float@column@mlt{%
 
4484
  \@output@combined@page
 
4485
}%
 
4486
\def\end@column@mlt{%
 
4487
 \@ifx@empty\@toplist{%
 
4488
  \@ifx@empty\@botlist{%
 
4489
   \@ifx@empty\@dbltoplist{%
 
4490
    \@ifx@empty\@deferlist{%
 
4491
     \@ifnum{\pagegrid@cur=\@ne}{%
 
4492
      \false@sw
 
4493
     }{%
 
4494
      \true@sw
 
4495
     }%
 
4496
    }{%
 
4497
     \true@sw
 
4498
    }%
 
4499
   }{%
 
4500
    \true@sw
 
4501
   }%
 
4502
  }{%
 
4503
   \true@sw
 
4504
  }%
 
4505
 }{%
 
4506
  \true@sw
 
4507
 }%
 
4508
 % true = kick out a column and try again
 
4509
 {%
 
4510
  \@cclv@nontrivial@sw{%
 
4511
   \unvbox\@cclv\remove@lastbox
 
4512
  }{%
 
4513
   \unvbox\@cclv\remove@lastbox\unskip\null
 
4514
  }%
 
4515
  \protect@penalty\do@newpage@pen
 
4516
  \protect@penalty\do@endpage@pen
 
4517
 }{%
 
4518
  \unvbox\@cclv\remove@lastbox
 
4519
 }%
 
4520
}%
 
4521
\def\output@column@mlt{%
 
4522
 \@ifnum{\pagegrid@cur<\pagegrid@col}{%
 
4523
  \expandafter\global\expandafter\setbox\csname col@\the\pagegrid@cur\endcsname\box\@outputbox
 
4524
  \global\advance\pagegrid@cur\@ne
 
4525
 }{%
 
4526
  \set@adj@colht\dimen@
 
4527
  \grid@column\@outputbox{}%
 
4528
  \@output@combined@page
 
4529
 }%
 
4530
}%
 
4531
\let\@outputdblcol\@undefined
 
4532
\def\@floatselect@sw@mlt#1{\@if@notdblfloat{#1}}%
 
4533
\def\@addmarginpar@mlt{% emits a boolean
 
4534
 \@ifnum{\pagegrid@cur=\@ne}%
 
4535
}%
 
4536
\def\set@footnotewidth@one{%
 
4537
 \hsize\columnwidth
 
4538
 \linewidth\hsize
 
4539
}%
 
4540
\def\set@footnotewidth@two{\set@footnotewidth@mlt\tw@}%
 
4541
\def\set@footnotewidth@mlt#1{%
 
4542
 \hsize\textwidth
 
4543
 \advance\hsize\columnsep
 
4544
 \divide\hsize#1%
 
4545
 \advance\hsize-\columnsep
 
4546
 \linewidth\hsize
 
4547
}%
 
4548
\def\compose@footnotes@one#1{%
 
4549
 \ltxgrid@foot@info@sw{\class@info{\string\compose@footnotes@one\string#1}\trace@box#1}{}%
 
4550
}%
 
4551
\let\compose@footnotes\compose@footnotes@one
 
4552
\def\compose@footnotes@two#1{%
 
4553
 \ltxgrid@foot@info@sw{\class@info{\string\compose@footnotes@two\string#1}\trace@box#1}{}%
 
4554
 \setbox\z@\box\@tempboxa
 
4555
 \let\recover@column\recover@column@null
 
4556
 \let\marry@baselines\@empty
 
4557
 \balance@two#1\@tempboxa
 
4558
 \global\setbox#1\hbox to\textwidth{\box#1\hfil\box\@tempboxa}%
 
4559
 \ltxgrid@foot@info@sw{\trace@box#1}{}%
 
4560
}%
 
4561
\let\pagegrid@cur\col@number
 
4562
\let\col@number\@undefined
 
4563
\newcount\pagegrid@col
 
4564
\pagegrid@cur\@ne
 
4565
\expandafter\let\csname col@\the\pagegrid@cur\endcsname\@leftcolumn
 
4566
\let\@leftcolumn\@undefined
 
4567
\pagegrid@col\tw@
 
4568
\def\pagegrid@init{%
 
4569
 \advance\pagegrid@cur\@ne
 
4570
 \@ifnum{\pagegrid@cur<\pagegrid@col}{%
 
4571
  \csname newbox\expandafter\endcsname\csname  col@\the\pagegrid@cur\endcsname
 
4572
  \pagegrid@init
 
4573
 }{%
 
4574
 }%
 
4575
}%
 
4576
\appdef\class@documenthook{%
 
4577
 \pagegrid@init
 
4578
}%
 
4579
\def\grid@column#1#2{%
 
4580
 \ltxgrid@info@sw{\class@info{\string\grid@column\string#1}}{}%
 
4581
 \global\setbox#1\vbox\bgroup
 
4582
  \hb@xt@\textwidth\bgroup
 
4583
   \vrule\@height\z@\@width\z@\@if@empty{#2}{}{\@depth#2}%
 
4584
   \pagegrid@cur\@ne
 
4585
   \@ifnum{\pagegrid@cur<\pagegrid@col}{\loopwhile{\append@column@\pagegrid@cur\pagegrid@col}}{}%
 
4586
   \box@column#1%
 
4587
  \egroup
 
4588
  \vskip\z@skip
 
4589
 \egroup
 
4590
}%
 
4591
\def\append@column@#1#2{%
 
4592
 \expandafter\box@column\csname col@\the#1\endcsname
 
4593
 \hfil\vrule\@width\columnseprule\hfil
 
4594
 \advance#1\@ne
 
4595
 \@ifnum{#1<#2}%
 
4596
}%
 
4597
\def\box@column#1{%
 
4598
 \ltxgrid@info@sw{\class@info{\string\box@column\string#1}}{}%
 
4599
 \raise\topskip
 
4600
 \hb@xt@\columnwidth\bgroup
 
4601
  \dimen@\ht#1\@ifdim{\dimen@>\@colht}{\dimen@\@colht}{}%
 
4602
  \count@\vbadness\vbadness\@M
 
4603
  \dimen@ii\vfuzz\vfuzz\maxdimen
 
4604
  \ltxgrid@info@sw{\saythe\@colht\saythe\dimen@}{}%
 
4605
  \vtop to\dimen@\bgroup
 
4606
   \hrule\@height\z@
 
4607
   \unvbox#1%
 
4608
   \raggedcolumn@skip
 
4609
  \egroup
 
4610
  \vfuzz\dimen@ii
 
4611
  \vbadness\count@
 
4612
  \hss
 
4613
 \egroup
 
4614
}%
 
4615
\def\marry@baselines{%
 
4616
 \begingroup
 
4617
  \setbox\z@\lastbox
 
4618
  \@ifvoid{\z@}{%
 
4619
   \endgroup
 
4620
  }{%
 
4621
   \aftergroup\kern
 
4622
   \aftergroup-%
 
4623
   \expandafter\box\expandafter\z@\expandafter\endgroup\the\dp\z@\relax
 
4624
  }%
 
4625
 \vskip\marry@skip\relax
 
4626
}%
 
4627
\gdef\marry@skip{\z@skip}%
 
4628
\def\set@marry@skip{%
 
4629
 \begingroup
 
4630
  \skip@\baselineskip\advance\skip@-\topskip
 
4631
  \@ifdim{\skip@>\z@}{%
 
4632
   \xdef\marry@skip{\the\skip@}%
 
4633
  }{}%
 
4634
 \endgroup
 
4635
}%
 
4636
\appdef\document@inithook{%
 
4637
 \@ifxundefined\raggedcolumn@sw{\@booleanfalse\raggedcolumn@sw}{}%
 
4638
}%
 
4639
\def\raggedcolumn@skip{%
 
4640
 \vskip\z@\raggedcolumn@sw{\@plus.0001fil\@minus.0001fil}{}\relax
 
4641
}%
 
4642
\def\@combinepage#1{%
 
4643
 \ltxgrid@foot@info@sw{\class@info{\string\@combinepage\string#1}}{}%
 
4644
 \@ifvoid\pagesofar{}{%
 
4645
  \setbox\@outputbox\vbox{%
 
4646
   \unvbox\pagesofar
 
4647
   \marry@baselines
 
4648
   \unvbox\@outputbox
 
4649
  }%
 
4650
 }%
 
4651
 #1{%
 
4652
  \@ifvoid\footsofar{}{%
 
4653
   \show@box@size{Combining page footnotes}\footsofar
 
4654
   \setbox\footins\box\footsofar
 
4655
   \compose@footnotes
 
4656
   \@combineinserts\@outputbox\footins
 
4657
  }%
 
4658
 }{%
 
4659
 }%
 
4660
}%
 
4661
\def \@cflt{%
 
4662
 \let \@elt \@comflelt
 
4663
 \setbox\@tempboxa \vbox{}%
 
4664
 \@toplist
 
4665
 \setbox\@outputbox \vbox{%
 
4666
  \boxmaxdepth \maxdepth
 
4667
  \unvbox\@tempboxa\unskip
 
4668
  \topfigrule\vskip \textfloatsep
 
4669
  \unvbox\@outputbox
 
4670
 }%
 
4671
 \let\@elt\relax
 
4672
 \xdef\@freelist{\@freelist\@toplist}%
 
4673
 \global\let\@toplist\@empty
 
4674
}%
 
4675
\def \@cflb {%
 
4676
 \let\@elt\@comflelt
 
4677
 \setbox\@tempboxa \vbox{}%
 
4678
 \@botlist
 
4679
 \setbox\@outputbox \vbox{%
 
4680
  \unvbox\@outputbox
 
4681
  \vskip \textfloatsep\botfigrule
 
4682
  \unvbox\@tempboxa\unskip
 
4683
 }%
 
4684
 \let\@elt\relax
 
4685
 \xdef\@freelist{\@freelist\@botlist}%
 
4686
 \global \let \@botlist\@empty
 
4687
}%
 
4688
\def\@combinedblfloats{%
 
4689
 \@ifx@empty\@dbltoplist{}{%
 
4690
  \setbox\@tempboxa\vbox{}%
 
4691
  \let\@elt\@comdblflelt\@dbltoplist
 
4692
  \let\@elt\relax\xdef\@freelist{\@freelist\@dbltoplist}%
 
4693
  \global\let\@dbltoplist\@empty
 
4694
  \setbox\@outputbox\vbox{%
 
4695
   %\boxmaxdepth\maxdepth   %% probably not needed, CAR
 
4696
   \unvbox\@tempboxa\unskip
 
4697
   \@ifnum{\@dbltopnum>\m@ne}{\dblfigrule}{}%FIXME: how is \@dbltopnum maintained?
 
4698
   \vskip\dbltextfloatsep
 
4699
   \unvbox\@outputbox
 
4700
  }%
 
4701
 }%
 
4702
}%
 
4703
\def\set@column@hsize#1{%
 
4704
 \pagegrid@col#1%
 
4705
 \global\columnwidth\textwidth
 
4706
 \global\advance\columnwidth\columnsep
 
4707
 \global\divide\columnwidth\pagegrid@col
 
4708
 \global\advance\columnwidth-\columnsep
 
4709
 \global\hsize\columnwidth
 
4710
 \global\linewidth\columnwidth
 
4711
 \skip@\baselineskip\advance\skip@-\topskip
 
4712
 \@ifnum{\pagegrid@col>\@ne}{\set@marry@skip}{}%
 
4713
}%
 
4714
\def\set@colht{%
 
4715
 \set@adj@textheight\@colht
 
4716
 \global\let\enlarge@colroom\@empty
 
4717
 \set@colroom
 
4718
}%
 
4719
\def\set@adj@textheight#1{%
 
4720
 \ltxgrid@info@sw{\class@info{\string\set@adj@textheight\string#1}\saythe\textheight}{}%
 
4721
 #1\textheight
 
4722
 \def\@elt{\adj@page#1}%
 
4723
 \@booleantrue\firsttime@sw\@dbltoplist
 
4724
 \let\@elt\relax
 
4725
 \global#1#1\relax
 
4726
 \ltxgrid@info@sw{\saythe#1}{}%
 
4727
}%
 
4728
\def\set@colroom{%
 
4729
 \ltxgrid@info@sw{\class@info{\string\set@colroom}}{}%
 
4730
 \set@adj@colht\@colroom
 
4731
 \@if@empty\enlarge@colroom{}{%
 
4732
  \global\advance\@colroom\enlarge@colroom\relax
 
4733
  \ltxgrid@info@sw{\saythe\@colroom}{}%
 
4734
 }%
 
4735
 \@ifdim{\@colroom>\topskip}{}{%
 
4736
  \ltxgrid@info{Not enough room: \string\@colroom=\the\@colroom; increasing to \the\topskip}%
 
4737
  \@colroom\topskip
 
4738
 }%
 
4739
 \global\@colroom\@colroom
 
4740
 \set@vsize
 
4741
}%
 
4742
\def\set@vsize{%
 
4743
 \global\vsize\@colroom
 
4744
 \ltxgrid@info@sw{\class@info{\string\set@vsize\string\vsize=\string\colroom}\saythe\vsize}{}%
 
4745
}%
 
4746
\def\set@adj@colht#1{%
 
4747
 #1\@colht
 
4748
 \ltxgrid@info@sw{\class@info{\string\set@adj@colht\string#1-\string\pagesofar}\saythe#1}{}%
 
4749
 \@ifvoid\pagesofar{}{%
 
4750
  \advance#1-\ht\pagesofar\advance#1-\dp\pagesofar
 
4751
  \ltxgrid@info@sw{\class@info{\string\pagesofar}\saythe#1}{}%
 
4752
 }%
 
4753
 \def\@elt{\adj@column#1}%
 
4754
 \@booleantrue\firsttime@sw\@toplist
 
4755
 \@booleantrue\firsttime@sw\@botlist
 
4756
 \let\@elt\relax
 
4757
}%
 
4758
\def\adj@column#1#2{%
 
4759
 \advance#1-\ht#2%
 
4760
 \advance#1-\firsttime@sw{\textfloatsep\@booleanfalse\firsttime@sw}{\floatsep}%
 
4761
 \ltxgrid@info@sw{\class@info{\string\adj@column\string#1-\string#2}\saythe#1}{}%
 
4762
}%
 
4763
\def\adj@page#1#2{%
 
4764
 \advance#1-\ht#2%
 
4765
 \advance#1-\firsttime@sw{\dbltextfloatsep\@booleanfalse\firsttime@sw}{\dblfloatsep}%
 
4766
 \ltxgrid@info@sw{\class@info{\string\adj@page\string#1-\string#2}\saythe#1}{}%
 
4767
}%
 
4768
\def\set@adj@box#1#2{%
 
4769
 \@ifvoid#2{}{%
 
4770
  \advance#1-\ht#2\advance#1-\dp#2%
 
4771
  \@booleantrue\temp@sw
 
4772
  \ltxgrid@foot@info@sw{\class@info{\string\set@adj@box\string#2}\saythe#1}{}%
 
4773
 }%
 
4774
}%
 
4775
\appdef\@outputpage@tail{%
 
4776
 \set@colht          % FIXME: needed?
 
4777
 \@floatplacement    % FIXME: needed?
 
4778
 \@dblfloatplacement % FIXME: needed?
 
4779
}%
 
4780
\begingroup
 
4781
 \catcode`\1=\cat@letter
 
4782
 \catcode`\2=\cat@letter
 
4783
 \toks@{%
 
4784
  \setbox\footins\box\footsofar
 
4785
  \balance@two\col@1\@outputbox
 
4786
  \global\setbox\col@1\box\col@1
 
4787
  \global\setbox\@outputbox\box\@outputbox
 
4788
  \combine@foot@inserts\footsofar\footins
 
4789
 }%
 
4790
 \aftergroup\def\aftergroup\balance@2\expandafter
 
4791
\endgroup\expandafter{\the\toks@}%
 
4792
\def\balance@two#1#2{%
 
4793
 \ltxgrid@info@sw{\class@info{\string\balance@two\string#1\string#2}}{}%
 
4794
 \outputdebug@sw{\trace@scroll{\showbox#1\showbox#2}}{}%
 
4795
 \setbox\thr@@\copy\footsofar
 
4796
 \setbox\@ne\vbox\bgroup
 
4797
  \@ifvoid{#1}{}{%
 
4798
   \recover@column#1\footsofar\column@recovered\footins@recovered
 
4799
   \@ifvoid{#2}{}{\marry@baselines}%
 
4800
  }%
 
4801
  \@ifvoid{#2}{}{%
 
4802
   \recover@column#2\footsofar\column@recovered\footins@recovered
 
4803
  }%
 
4804
 \egroup
 
4805
 \outputdebug@sw{\trace@scroll{\showbox\@ne}}{}%
 
4806
 \ltxgrid@foot@info@sw{\trace@scroll{\showbox\footsofar}}{}%
 
4807
 \dimen@\ht\@ne\divide\dimen@\tw@
 
4808
 \dimen@i\dimen@
 
4809
 \vbadness\@M
 
4810
 \vfuzz\maxdimen
 
4811
 \splittopskip\topskip
 
4812
 \loopwhile{%
 
4813
  \setbox\z@\copy\@ne\setbox\tw@\vsplit\z@ to\dimen@
 
4814
  \remove@depth\z@\remove@depth\tw@
 
4815
  \dimen@ii\ht\tw@\advance\dimen@ii-\ht\z@
 
4816
  \dimen@i=.5\dimen@i
 
4817
  \ltxgrid@info@sw{\saythe\dimen@\saythe\dimen@i\saythe\dimen@ii}{}%
 
4818
  \@ifdim{\dimen@ii<.5\p@}{%
 
4819
   \@ifdim{\dimen@ii>-.5\p@}%
 
4820
  }{%
 
4821
   \false@sw
 
4822
  }%
 
4823
  {%
 
4824
   \true@sw
 
4825
  }{%
 
4826
   \@ifdim{\dimen@i<.5\p@}%
 
4827
  }%
 
4828
  {%
 
4829
   \false@sw
 
4830
  }%
 
4831
  {%
 
4832
   \advance\dimen@\@ifdim{\dimen@ii<\z@}{}{-}\dimen@i
 
4833
   \true@sw
 
4834
  }%
 
4835
 }%
 
4836
 \ltxgrid@info@sw{\saythe\dimen@\saythe\dimen@i\saythe\dimen@ii}{}%
 
4837
 \@ifdim{\ht\z@=\z@}{%
 
4838
  \@ifdim{\ht\tw@=\z@}%
 
4839
 }{%
 
4840
  \true@sw
 
4841
 }%
 
4842
 {%
 
4843
 }{%
 
4844
  \ltxgrid@info{Unsatifactorily balanced columns: giving up}%
 
4845
  \setbox\tw@\box#1%
 
4846
  \setbox\z@ \box#2%
 
4847
  \global\setbox\footsofar\box\thr@@
 
4848
 }%
 
4849
 \setbox\tw@\vbox{\unvbox\tw@\vskip\z@skip}%
 
4850
 \setbox\z@ \vbox{\unvbox\z@ \vskip\z@skip}%
 
4851
 \set@colht
 
4852
 \dimen@\ht\z@\@ifdim{\dimen@<\ht\tw@}{\dimen@\ht\tw@}{}%
 
4853
 \@ifdim{\dimen@>\@colroom}{\dimen@\@colroom}{}%
 
4854
 \ltxgrid@info@sw{\saythe{\ht\z@}\saythe{\ht\tw@}\saythe\@colroom\saythe\dimen@}{}%
 
4855
 \setbox#1\vbox to\dimen@{\unvbox\tw@\unskip\raggedcolumn@skip}%
 
4856
 \setbox#2\vbox to\dimen@{\unvbox\z@ \unskip\raggedcolumn@skip}%
 
4857
 \outputdebug@sw{\trace@scroll{\showbox#1\showbox#2}}{}%
 
4858
}%
 
4859
\def\remove@depth#1{%
 
4860
  \setbox#1\vbox\bgroup
 
4861
   \unvcopy#1%
 
4862
   \setbox\z@\vbox\bgroup
 
4863
    \unvbox#1%
 
4864
    \setbox\z@\lastbox
 
4865
    \aftergroup\kern\aftergroup-\expandafter
 
4866
   \egroup
 
4867
   \the\dp\z@\relax
 
4868
  \egroup
 
4869
}%
 
4870
\def\recover@column#1#2#3#4{%
 
4871
 \ltxgrid@info@sw{\class@info{\string\recover@column\string#1\string#2\string#3\string#4}}{}%
 
4872
 \setbox#4\vbox{\unvcopy#1}%
 
4873
 \ltxgrid@foot@info@sw{\trace@scroll{\showbox#4}}{}%
 
4874
 \dimen@\ht#4%
 
4875
 \ltxgrid@foot@info@sw{\saythe\dimen@}{}%
 
4876
 \setbox#4\vbox\bgroup
 
4877
  \unvbox#4\unskip
 
4878
  \dimen@i\lastkern\unkern\advance\dimen@i\lastkern
 
4879
  \@ifdim{\dimen@i=\z@}{%
 
4880
   \dimen@i\lastkern\unkern
 
4881
   \ltxgrid@foot@info@sw{\saythe\dimen@i}{}%
 
4882
   \aftergroup\dimen@i
 
4883
   \expandafter\egroup\the\dimen@i\relax
 
4884
  }{%
 
4885
   \egroup
 
4886
  }%
 
4887
 \@ifdim{\dimen@i<\z@}{%
 
4888
  \advance\dimen@\dimen@i
 
4889
  \ltxgrid@foot@info@sw{\saythe\dimen@i\saythe\dimen@}{}%
 
4890
  \splittopskip\z@skip
 
4891
  \global\setbox#3\vsplit#4 to\dimen@
 
4892
  \global\setbox#4\vbox{\unvbox#4}%
 
4893
  \ltxgrid@foot@info@sw{\trace@scroll{\showbox#1\showbox#2\showbox#3\showbox#4}}{}%
 
4894
  \global\setbox#2\vbox\bgroup\unvbox#2\vskip\z@skip\unvbox#4\egroup
 
4895
 }{%
 
4896
  \setbox#3\box#4%
 
4897
  \ltxgrid@foot@info@sw{\trace@scroll{\showbox#1\showbox#2\showbox#3\showbox#4}}{}%
 
4898
 }%
 
4899
 \unvbox#3%
 
4900
 \loopwhile{\dimen@\lastskip\@ifdim{\dimen@>\z@}{\unskip\true@sw}{\false@sw}}%
 
4901
}%
 
4902
\def\recover@column@null#1#2#3#4{%
 
4903
 \unvcopy#1%
 
4904
}%
 
4905
\prepdef\@begindocumenthook{%
 
4906
 \open@column@one\@ne
 
4907
 \set@colht
 
4908
 \@floatplacement
 
4909
 \@dblfloatplacement
 
4910
}%
 
4911
\def\longtable@longtable{%
 
4912
 \par
 
4913
 \ifx\multicols\@undefined\else\ifnum\col@number>\@ne\@twocolumntrue\fi\fi
 
4914
 \if@twocolumn\LT@err{longtable not in 1-column mode}\@ehc\fi
 
4915
 \begingroup
 
4916
 \@ifnextchar[\LT@array{\LT@array[x]}%
 
4917
}%
 
4918
\def\longtable@new{%
 
4919
 \par
 
4920
  \@ifnextchar[\LT@array{\LT@array[x]}%
 
4921
}%
 
4922
\def\endlongtable@longtable{%
 
4923
  \crcr
 
4924
  \noalign{%
 
4925
    \let\LT@entry\LT@entry@chop
 
4926
    \xdef\LT@save@row{\LT@save@row}}%
 
4927
  \LT@echunk
 
4928
  \LT@start
 
4929
  \unvbox\z@
 
4930
  \LT@get@widths
 
4931
  \if@filesw
 
4932
    {\let\LT@entry\LT@entry@write\immediate\write\@auxout{%
 
4933
      \gdef\expandafter\noexpand
 
4934
        \csname LT@\romannumeral\c@LT@tables\endcsname
 
4935
          {\LT@save@row}}}%
 
4936
  \fi
 
4937
  \ifx\LT@save@row\LT@@save@row
 
4938
  \else
 
4939
    \LT@warn{Column \@width s have changed\MessageBreak
 
4940
             in table \thetable}%
 
4941
    \LT@final@warn
 
4942
  \fi
 
4943
  \endgraf\penalty -\LT@end@pen
 
4944
  \endgroup
 
4945
  \global\@mparbottom\z@
 
4946
  \pagegoal\vsize
 
4947
  \endgraf\penalty\z@\addvspace\LTpost
 
4948
  \ifvoid\footins\else\insert\footins{}\fi
 
4949
}%
 
4950
\def\endlongtable@new{%
 
4951
  \crcr
 
4952
  \noalign{%
 
4953
   \let\LT@entry\LT@entry@chop
 
4954
   \xdef\LT@save@row{\LT@save@row}%
 
4955
  }%
 
4956
  \LT@echunk
 
4957
  \LT@start
 
4958
  \unvbox\z@
 
4959
  \LT@get@widths
 
4960
  \@if@sw\if@filesw\fi{%
 
4961
   {%
 
4962
    \let\LT@entry\LT@entry@write
 
4963
    \immediate\write\@auxout{%
 
4964
     \gdef\expandafter\noexpand\csname LT@\romannumeral\c@LT@tables\endcsname
 
4965
     {\LT@save@row}%
 
4966
    }%
 
4967
   }%
 
4968
  }{}%
 
4969
  \@ifx{\LT@save@row\LT@@save@row}{}{%
 
4970
   \LT@warn{%
 
4971
    Column \@width s have changed\MessageBreak in table \thetable
 
4972
   }\LT@final@warn
 
4973
  }%
 
4974
  \endgraf
 
4975
  \nobreak
 
4976
  \box\@ifvoid\LT@lastfoot{\LT@foot}{\LT@lastfoot}%
 
4977
 \global\@mparbottom\z@
 
4978
 \endgraf
 
4979
 \LT@post
 
4980
}%
 
4981
\def\LT@start@longtable{%
 
4982
  \let\LT@start\endgraf
 
4983
  \endgraf\penalty\z@\vskip\LTpre
 
4984
  \dimen@\pagetotal
 
4985
  \advance\dimen@ \ht\ifvoid\LT@firsthead\LT@head\else\LT@firsthead\fi
 
4986
  \advance\dimen@ \dp\ifvoid\LT@firsthead\LT@head\else\LT@firsthead\fi
 
4987
  \advance\dimen@ \ht\LT@foot
 
4988
  \dimen@ii\vfuzz
 
4989
  \vfuzz\maxdimen
 
4990
    \setbox\tw@\copy\z@
 
4991
    \setbox\tw@\vsplit\tw@ to \ht\@arstrutbox
 
4992
    \setbox\tw@\vbox{\unvbox\tw@}%
 
4993
  \vfuzz\dimen@ii
 
4994
  \advance\dimen@ \ht
 
4995
        \ifdim\ht\@arstrutbox>\ht\tw@\@arstrutbox\else\tw@\fi
 
4996
  \advance\dimen@\dp
 
4997
        \ifdim\dp\@arstrutbox>\dp\tw@\@arstrutbox\else\tw@\fi
 
4998
  \advance\dimen@ -\pagegoal
 
4999
  \ifdim \dimen@>\z@\vfil\break\fi
 
5000
      \global\@colroom\@colht
 
5001
  \ifvoid\LT@foot\else
 
5002
    \advance\vsize-\ht\LT@foot
 
5003
    \global\advance\@colroom-\ht\LT@foot
 
5004
    \dimen@\pagegoal\advance\dimen@-\ht\LT@foot\pagegoal\dimen@
 
5005
    \maxdepth\z@
 
5006
  \fi
 
5007
  \ifvoid\LT@firsthead\copy\LT@head\else\box\LT@firsthead\fi
 
5008
\nobreak
 
5009
  \output{\LT@output}%
 
5010
}%
 
5011
\def\LT@start@new{%
 
5012
 \let\LT@start\endgraf
 
5013
 \endgraf
 
5014
 \markthr@@{}%
 
5015
 \LT@pre
 
5016
 \@ifvoid\LT@firsthead{\LT@top}{\box\LT@firsthead\nobreak}%
 
5017
 \mark@envir{longtable}%
 
5018
}%
 
5019
\def\LT@end@hd@ft@longtable#1{%
 
5020
 \LT@echunk
 
5021
 \ifx\LT@start\endgraf
 
5022
  \LT@err{Longtable head or foot not at start of table}{Increase LTchunksize}%
 
5023
 \fi
 
5024
 \setbox#1\box\z@
 
5025
 \LT@get@widths\LT@bchunk
 
5026
}%
 
5027
\def\LT@end@hd@ft@new#1{%
 
5028
 \LT@echunk
 
5029
 \@ifx{\LT@start\endgraf}{%
 
5030
  \LT@err{Longtable head or foot not at start of table}{Increase LTchunksize}%
 
5031
 }%
 
5032
 \global\setbox#1\box\z@
 
5033
 \LT@get@widths
 
5034
 \LT@bchunk
 
5035
}%
 
5036
\def\LT@array@longtable[#1]#2{%
 
5037
  \refstepcounter{table}\stepcounter{LT@tables}%
 
5038
  \if l#1%
 
5039
    \LTleft\z@ \LTright\fill
 
5040
  \else\if r#1%
 
5041
    \LTleft\fill \LTright\z@
 
5042
  \else\if c#1%
 
5043
    \LTleft\fill \LTright\fill
 
5044
  \fi\fi\fi
 
5045
  \let\LT@mcol\multicolumn
 
5046
  \let\LT@@tabarray\@tabarray
 
5047
  \let\LT@@hl\hline
 
5048
  \def\@tabarray{%
 
5049
    \let\hline\LT@@hl
 
5050
    \LT@@tabarray}%
 
5051
  \let\\\LT@tabularcr\let\tabularnewline\\%
 
5052
  \def\newpage{\noalign{\break}}%
 
5053
  \def\pagebreak{\noalign{\ifnum`}=0\fi\@testopt{\LT@no@pgbk-}4}%
 
5054
  \def\nopagebreak{\noalign{\ifnum`}=0\fi\@testopt\LT@no@pgbk4}%
 
5055
  \let\hline\LT@hline \let\kill\LT@kill\let\caption\LT@caption
 
5056
  \@tempdima\ht\strutbox
 
5057
  \let\@endpbox\LT@endpbox
 
5058
  \ifx\extrarowheight\@undefined
 
5059
    \let\@acol\@tabacol
 
5060
    \let\@classz\@tabclassz \let\@classiv\@tabclassiv
 
5061
    \def\@startpbox{\vtop\LT@startpbox}%
 
5062
    \let\@@startpbox\@startpbox
 
5063
    \let\@@endpbox\@endpbox
 
5064
    \let\LT@LL@FM@cr\@tabularcr
 
5065
  \else
 
5066
    \advance\@tempdima\extrarowheight
 
5067
    \col@sep\tabcolsep
 
5068
    \let\@startpbox\LT@startpbox\let\LT@LL@FM@cr\@arraycr
 
5069
  \fi
 
5070
  \setbox\@arstrutbox\hbox{\vrule
 
5071
    \@height \arraystretch \@tempdima
 
5072
    \@depth \arraystretch \dp \strutbox
 
5073
    \@width \z@}%
 
5074
  \let\@sharp##\let\protect\relax
 
5075
   \begingroup
 
5076
    \@mkpream{#2}%
 
5077
    \xdef\LT@bchunk{%
 
5078
       \global\advance\c@LT@chunks\@ne
 
5079
       \global\LT@rows\z@\setbox\z@\vbox\bgroup
 
5080
       \LT@setprevdepth
 
5081
       \tabskip\LTleft \noexpand\halign to\hsize\bgroup
 
5082
      \tabskip\z@ \@arstrut \@preamble \tabskip\LTright \cr}%
 
5083
  \endgroup
 
5084
  \expandafter\LT@nofcols\LT@bchunk&\LT@nofcols
 
5085
  \LT@make@row
 
5086
  \m@th\let\par\@empty
 
5087
  \everycr{}\lineskip\z@\baselineskip\z@
 
5088
  \LT@bchunk}%
 
5089
\def\LT@LR@l{\LTleft\z@   \LTright\fill}%
 
5090
\def\LT@LR@r{\LTleft\fill \LTright\z@  }%
 
5091
\def\LT@LR@c{\LTleft\fill \LTright\fill}%
 
5092
\def\LT@array@new[#1]#2{%
 
5093
 \refstepcounter{table}\stepcounter{LT@tables}%
 
5094
 \table@hook
 
5095
 \LTleft\fill \LTright\fill
 
5096
 \csname LT@LR@#1\endcsname
 
5097
 \let\LT@mcol\multicolumn
 
5098
 \let\LT@@hl\hline
 
5099
 \prepdef\@tabarray{\let\hline\LT@@hl}%
 
5100
 \let\\\LT@tabularcr
 
5101
 \let\tabularnewline\\%
 
5102
 \def\newpage{\noalign{\break}}%
 
5103
 \def\pagebreak{\noalign{\ifnum`}=0\fi\@testopt{\LT@no@pgbk-}4}%
 
5104
 \def\nopagebreak{\noalign{\ifnum`}=0\fi\@testopt\LT@no@pgbk4}%
 
5105
 \let\hline\LT@hline
 
5106
 \let\kill\LT@kill
 
5107
 \let\caption\LT@caption
 
5108
 \@tempdima\ht\strutbox
 
5109
 \let\@endpbox\LT@endpbox
 
5110
 \@ifxundefined\extrarowheight{%
 
5111
  \let\@acol\@tabacol
 
5112
  \let\@classz\@tabclassz
 
5113
  \let\@classiv\@tabclassiv
 
5114
  \def\@startpbox{\vtop\LT@startpbox}%
 
5115
  \let\@@startpbox\@startpbox
 
5116
  \let\@@endpbox\@endpbox
 
5117
  \let\LT@LL@FM@cr\@tabularcr@LaTeX
 
5118
  \let\@xtabularcr\@xtabularcr@LaTeX
 
5119
 }{%
 
5120
  \advance\@tempdima\extrarowheight
 
5121
  \col@sep\tabcolsep
 
5122
  \let\@startpbox\LT@startpbox
 
5123
  \let\LT@LL@FM@cr\@arraycr@array
 
5124
 }%
 
5125
 \let\@acoll\@tabacoll
 
5126
 \let\@acolr\@tabacolr
 
5127
 \let\@acol\@tabacol
 
5128
 \setbox\@arstrutbox\hbox{%
 
5129
  \vrule
 
5130
  \@height \arraystretch \@tempdima
 
5131
  \@depth \arraystretch \dp \strutbox
 
5132
  \@width \z@
 
5133
 }%
 
5134
 \let\@sharp##%
 
5135
 \let\protect\relax
 
5136
 \begingroup
 
5137
  \@mkpream{#2}%
 
5138
  \@mkpream@relax
 
5139
  \edef\@preamble{\@preamble}%
 
5140
  \prepdef\@preamble{%
 
5141
   \global\advance\c@LT@chunks\@ne
 
5142
   \global\LT@rows\z@
 
5143
   \setbox\z@\vbox\bgroup
 
5144
    \LT@setprevdepth
 
5145
    \tabskip\LTleft
 
5146
    \halign to\hsize\bgroup
 
5147
     \tabskip\z@
 
5148
     \@arstrut
 
5149
  }%
 
5150
  \appdef\@preamble{%
 
5151
     \tabskip\LTright
 
5152
     \cr
 
5153
  }%
 
5154
  \global\let\LT@bchunk\@preamble
 
5155
 \endgroup
 
5156
 \expandafter\LT@nofcols\LT@bchunk&\LT@nofcols
 
5157
 \LT@make@row
 
5158
 \m@th
 
5159
 \let\par\@empty
 
5160
 \everycr{}%
 
5161
 \lineskip\z@
 
5162
 \baselineskip\z@
 
5163
 \LT@bchunk
 
5164
}%
 
5165
\appdef\table@hook{}%
 
5166
\def\switch@longtable{%
 
5167
 \@ifpackageloaded{longtable}{%
 
5168
  \@ifx{\longtable\longtable@longtable}{%
 
5169
   \@ifx{\endlongtable\endlongtable@longtable}{%
 
5170
    \@ifx{\LT@start\LT@start@longtable}{%
 
5171
     \@ifx{\LT@end@hd@ft\LT@end@hd@ft@longtable}{%
 
5172
      \@ifx{\LT@array\LT@array@longtable}{%
 
5173
       \true@sw
 
5174
      }{\false@sw}%
 
5175
     }{\false@sw}%
 
5176
    }{\false@sw}%
 
5177
   }{\false@sw}%
 
5178
  }{\false@sw}%
 
5179
  {%
 
5180
   \class@info{Patching longtable package}%
 
5181
  }{%
 
5182
   \class@info{Patching unrecognized longtable package. (Proceeding with fingers crossed)}%
 
5183
  }%
 
5184
  \let\longtable\longtable@new
 
5185
  \let\endlongtable\endlongtable@new
 
5186
  \let\LT@start\LT@start@new
 
5187
  \let\LT@end@hd@ft\LT@end@hd@ft@new
 
5188
  \let\LT@array\LT@array@new
 
5189
  \newenvironment{longtable*}{%
 
5190
   \onecolumngrid@push
 
5191
   \longtable
 
5192
  }{%
 
5193
   \endlongtable
 
5194
   \onecolumngrid@pop
 
5195
  }%
 
5196
 }{}%
 
5197
}%
 
5198
\def\LT@pre{\penalty\z@\vskip\LTpre}%
 
5199
\def\LT@bot{\nobreak\copy\LT@foot\vfil}%
 
5200
\def\LT@top{\copy\LT@head\nobreak}%
 
5201
\def\LT@post{\penalty\z@\addvspace\LTpost\mark@envir{\curr@envir}}%
 
5202
\def\LT@adj{%
 
5203
 \setbox\z@\vbox{\null}\dimen@-\ht\z@
 
5204
 \setbox\z@\vbox{\unvbox\z@\LT@bot}\advance\dimen@\ht\z@
 
5205
 \global\advance\vsize-\dimen@
 
5206
}%
 
5207
\def\output@init@longtable{\LT@adj}%
 
5208
\def\output@prep@longtable{\setbox\@cclv\vbox{\unvbox\@cclv\LT@bot}}%
 
5209
\def\output@post@longtable{\LT@top}%
 
5210
\let\output@init@theindex\@empty
 
5211
\let\output@prep@theindex\@empty
 
5212
\def\output@post@theindex{%
 
5213
 \@ifodd\c@page{}{%
 
5214
  \@ifnum{\pagegrid@cur=\@ne}{%
 
5215
  }%
 
5216
 }%
 
5217
}%
 
5218
\def\check@aux{\do@output@MVL{\do@check@aux}}%
 
5219
\def\check@deferlist@stuck#1{%
 
5220
 \@ifx{\@deferlist@postshipout\@empty}{}{%
 
5221
  \@ifx{\@deferlist@postshipout\@deferlist}{%
 
5222
   \@fltstk
 
5223
   \clearpage@sw{%
 
5224
    \ltxgrid@warn{Deferred float stuck during \string\clearpage\space processing}%
 
5225
   }{%
 
5226
    \force@deferlist@stuck#1%
 
5227
   }%
 
5228
  }{%
 
5229
  }%
 
5230
  \global\let\@deferlist@postshipout\@empty
 
5231
 }%
 
5232
}%
 
5233
\def\@fltstk{%
 
5234
 \@latex@warning{A float is stuck (cannot be placed without \string\clearpage)}%
 
5235
}%
 
5236
\appdef\@outputpage@tail{%
 
5237
 \global\let\@deferlist@postshipout\@deferlist
 
5238
}%
 
5239
\def\@next#1#2{%
 
5240
 \@ifx{#2\@empty}{\false@sw}{%
 
5241
  \expandafter\@xnext#2\@@#1#2%
 
5242
  \true@sw
 
5243
 }%
 
5244
}%
 
5245
\def\@xnext\@elt#1#2\@@#3#4{%
 
5246
 \def#3{#1}%
 
5247
 \gdef#4{#2}%
 
5248
 \def\@tempa{#4}\def\@tempb{\@freelist}%
 
5249
 \@ifx{\@tempa\@tempb}{%
 
5250
  \@ifx{#4\@empty}{%
 
5251
   \force@deferlist@empty%{Float register pool exhausted}%
 
5252
  }{}%
 
5253
 }{}%
 
5254
}%
 
5255
\def\force@deferlist@stuck#1{%
 
5256
 \force@deferlist@sw{%
 
5257
  \@booleantrue\clearpage@sw
 
5258
  \@booleantrue\forcefloats@sw
 
5259
  #1%
 
5260
 }{%
 
5261
 }%
 
5262
}%
 
5263
\def\force@deferlist@empty{%
 
5264
 \force@deferlist@sw{%
 
5265
  \penalty-\pagebreak@pen
 
5266
  \protect@penalty\do@forcecolumn@pen
 
5267
 }{%
 
5268
 }%
 
5269
}%
 
5270
\@booleanfalse\force@deferlist@sw
 
5271
\mathchardef\do@forcecolumn@pen=10009
 
5272
\@namedef{output@-\the\do@forcecolumn@pen}{\do@forcecolumn}%
 
5273
\def\do@forcecolumn{%
 
5274
 \@booleantrue\clearpage@sw
 
5275
 \@booleantrue\forcefloats@sw
 
5276
 \do@startcolumn
 
5277
}%
 
5278
\def\enlargethispage{%
 
5279
 \@ifstar{%
 
5280
  \@enlargethispage{}%
 
5281
 }{%
 
5282
  \@enlargethispage{}%
 
5283
 }%
 
5284
}%
 
5285
\def\@enlargethispage#1#2{%
 
5286
 \begingroup
 
5287
  \dimen@#2\relax
 
5288
  \edef\@tempa{#1}%
 
5289
  \edef\@tempa{\noexpand\@@enlargethispage{\@tempa}{\the\dimen@}}%
 
5290
  \expandafter\do@output@MVL\expandafter{\@tempa}%
 
5291
 \endgroup
 
5292
}%
 
5293
\def\@@enlargethispage#1#2{%
 
5294
 \def\@tempa{one}%
 
5295
 \@ifx{\thepagegrid\@tempa}{%
 
5296
  \true@sw
 
5297
 }{%
 
5298
  \def\@tempa{mlt}%
 
5299
  \@ifx{\thepagegrid\@tempa}{%
 
5300
   \@ifnum{\pagegrid@cur=\@ne}{%
 
5301
    \gdef\enlarge@colroom{#2}%
 
5302
    \true@sw
 
5303
   }{%
 
5304
    \ltxgrid@warn{Too late to enlarge this page; move the command to the first column.}%
 
5305
    \false@sw
 
5306
   }%
 
5307
  }{%
 
5308
   \ltxgrid@warn{Unable to enlarge a page of this kind.}%
 
5309
   \false@sw
 
5310
  }%
 
5311
 }%
 
5312
 {%
 
5313
  \class@info{Enlarging page \thepage\space by #2}%
 
5314
  \global\advance\@colroom#2\relax
 
5315
  \set@vsize
 
5316
 }{%
 
5317
 }%
 
5318
}%
 
5319
\let\enlarge@colroom\@empty
 
5320
\let\@kludgeins\@undefined
 
5321
\@booleantrue\textheight@sw
 
5322
\prepdef\@outputpage@head{%
 
5323
 \textheight@sw{%
 
5324
  \count@\vbadness\vbadness\@M
 
5325
  \dimen@\vfuzz\vfuzz\maxdimen
 
5326
  \setbox\@outputbox\vbox to\textheight{\unvbox\@outputbox}%
 
5327
  \vfuzz\dimen@
 
5328
  \vbadness\count@
 
5329
 }{}%
 
5330
}%
 
5331
\appdef\@outputpage@head{%
 
5332
 \@ifx{\LS@rot\@undefined}{}{\LS@rot}%
 
5333
}%
 
5334
\def\ltxgrid@info{%
 
5335
 \ltxgrid@info@sw{\class@info}{\@gobble}%
 
5336
}%
 
5337
\@booleanfalse\ltxgrid@info@sw
 
5338
\def\ltxgrid@warn{%
 
5339
 \ltxgrid@warn@sw{\class@warn}{\@gobble}%
 
5340
}%
 
5341
\@booleantrue\ltxgrid@warn@sw
 
5342
\@booleanfalse\ltxgrid@foot@info@sw
 
5343
\def\def@next@handler#1#2#3{%
 
5344
 \advance#1\@ne\mathchardef#2\the#1%
 
5345
 \expandafter\def\csname output@-\the#1\endcsname{#3}%
 
5346
}%
 
5347
\def\def@line@handler#1#2{%
 
5348
 \begingroup
 
5349
  \@tempcnta\int@parpenalty
 
5350
  \advance\@tempcnta-#1%
 
5351
  \aftergroup\def
 
5352
  \expandafter\aftergroup\csname output@-\the\@tempcnta\endcsname
 
5353
 \endgroup{#2}%
 
5354
}%
 
5355
\mathchardef\int@parpenalty11012
 
5356
\def@line@handler\z@{\@handle@line@ltx{}{}{}}%
 
5357
\def@line@handler\@ne{\@handle@line@ltx{}{}{\brokenpenalty@ltx}}%
 
5358
\def@line@handler\tw@{\@handle@line@ltx{}{\clubpenalty@ltx}{}}%
 
5359
\def@line@handler\thr@@{\@handle@line@ltx{\clubpenalty@ltx}{}{\brokenpenalty@ltx}}%
 
5360
\def@line@handler\f@ur{\@handle@line@ltx{\widowpenalty@ltx}{}{}}%
 
5361
\def@line@handler{5}{\@handle@line@ltx{\widowpenalty@ltx}{}{\brokenpenalty@ltx}}%
 
5362
\def@line@handler{6}{\@handle@line@ltx{\widowpenalty@ltx}{\clubpenalty@ltx}{}}%
 
5363
\def@line@handler{7}{\@handle@line@ltx{\widowpenalty@ltx}{\clubpenalty@ltx}{\brokenpenalty@ltx}}%
 
5364
\def@line@handler{8}{\@handle@line@ltx{\displaywidowpenalty@ltx}{}{}}%
 
5365
\def@line@handler{9}{\@handle@line@ltx{\displaywidowpenalty@ltx}{}{\brokenpenalty@ltx}}%
 
5366
\def@line@handler{10}{\@handle@line@ltx{\displaywidowpenalty@ltx}{\clubpenalty@ltx}{}}%
 
5367
\def@line@handler{11}{\@handle@line@ltx{\displaywidowpenalty@ltx}{\clubpenalty@ltx}{\brokenpenalty@ltx}}%
 
5368
\def\@handle@line@ltx#1#2#3{%
 
5369
 \@@handle@line@ltx
 
5370
 \@tempcnta\lastpenalty
 
5371
 \@tempcntb\interlinepenalty@ltx\relax
 
5372
 \@if@empty{#1}{}{\advance\@tempcntb#1\relax}%
 
5373
 \@if@empty{#2}{}{\advance\@tempcntb#2\relax}%
 
5374
 \@if@empty{#3}{}{\advance\@tempcntb#3\relax}%
 
5375
 \penalty\@ifnum{\@tempcnta<\@tempcntb}{\@tempcntb}{\@tempcnta}%
 
5376
}%
 
5377
\let\@@handle@line@ltx\@empty
 
5378
\@tempcnta\int@parpenalty
 
5379
\def@next@handler\@tempcnta\int@postparpenalty{\reset@queues@ltx\handle@par@ltx}%
 
5380
\def@next@handler\@tempcnta\int@vadjustpenalty{\handle@vadjust@ltx}%
 
5381
\def@next@handler\@tempcnta\int@whatsitpenalty{\handle@whatsit@ltx}%
 
5382
\def@next@handler\@tempcnta\int@predisplaypenalty{\reset@queues@ltx\@handle@display@ltx{\predisplaypenalty@ltx}}%
 
5383
\def@next@handler\@tempcnta\int@interdisplaylinepenalty{\@handle@display@ltx{\interdisplaylinepenalty@ltx}}%
 
5384
\def@next@handler\@tempcnta\int@postdisplaypenalty{\@handle@display@ltx{\postdisplaypenalty@ltx}}%
 
5385
\def\@handle@display@ltx#1{%
 
5386
 \@@handle@display@ltx
 
5387
 \@tempcnta\lastpenalty
 
5388
 \@tempcntb#1%
 
5389
 \penalty\@ifnum{\@tempcnta<\@tempcntb}{\@tempcntb}{\@tempcnta}%
 
5390
}%
 
5391
\let\@@handle@display@ltx\@empty
 
5392
\def\handle@par@ltx{}%
 
5393
\def\set@linepenalties{%
 
5394
 \expandafter\def\expandafter\interlinepenalty@ltx\expandafter{\the\interlinepenalty}%
 
5395
 \interlinepenalty-\int@parpenalty
 
5396
 \expandafter\def\expandafter\brokenpenalty@ltx\expandafter{\the\brokenpenalty}%
 
5397
 \brokenpenalty\@ne
 
5398
 \expandafter\def\expandafter\clubpenalty@ltx\expandafter{\the\clubpenalty}%
 
5399
 \clubpenalty\tw@
 
5400
 \expandafter\def\expandafter\widowpenalty@ltx\expandafter{\the\widowpenalty}%
 
5401
 \widowpenalty\f@ur
 
5402
 \expandafter\def\expandafter\displaywidowpenalty@ltx\expandafter{\the\displaywidowpenalty}%
 
5403
 \displaywidowpenalty8\relax
 
5404
}%
 
5405
\def\restore@linepenalties{%
 
5406
 \interlinepenalty\interlinepenalty@ltx
 
5407
 \brokenpenalty\brokenpenalty@ltx
 
5408
 \clubpenalty\clubpenalty@ltx
 
5409
 \widowpenalty\widowpenalty@ltx
 
5410
 \displaywidowpenalty\displaywidowpenalty@ltx
 
5411
 \relax
 
5412
}%
 
5413
\def\set@displaypenalties#1{%
 
5414
 \expandafter\def\expandafter\predisplaypenalty@ltx\expandafter{\the\predisplaypenalty}%
 
5415
 \expandafter\def\expandafter\interdisplaylinepenalty@ltx\expandafter{\the\interdisplaylinepenalty}%
 
5416
 \expandafter\def\expandafter\postdisplaypenalty@ltx\expandafter{\the\postdisplaypenalty}%
 
5417
 \@ifhmode{\predisplaypenalty-\int@predisplaypenalty\relax}{}%
 
5418
 #1{\interdisplaylinepenalty-\int@interdisplaylinepenalty\relax}{}%
 
5419
 #1{\postdisplaypenalty-\int@postdisplaypenalty\relax}{}%
 
5420
}%
 
5421
\def\enqueue@whatsit@ltx#1{%
 
5422
 \gappdef\g@whatsit@queue{{#1}}%
 
5423
 \vadjust{\penalty-\int@whatsitpenalty}%
 
5424
}%
 
5425
\def\handle@whatsit@ltx{%
 
5426
 \unvbox\@cclv
 
5427
 \g@pop@ltx\g@whatsit@queue\@tempa
 
5428
 \expandafter\do@whatsit\expandafter{\@tempa}%
 
5429
}%
 
5430
\def\do@whatsit#1{}%
 
5431
\def\g@pop@ltx#1#2{%
 
5432
 \expandafter\@g@pop@ltx#1{}{}\@@#1#2%
 
5433
}%
 
5434
\def\@g@pop@ltx#1#2\@@#3#4{%
 
5435
 \gdef#3{#2}%
 
5436
 \def#4{#1}%
 
5437
}%
 
5438
\let\vspace@ltx\vspace
 
5439
\let\pagebreak@ltx\pagebreak
 
5440
\let\nopagebreak@ltx\nopagebreak
 
5441
\let\endline@ltx\\
 
5442
\let\@arrayparboxrestore@ltx\@arrayparboxrestore
 
5443
\def\@vspace@org #1{%
 
5444
  \ifvmode
 
5445
    \vskip #1
 
5446
    \vskip\z@skip
 
5447
   \else
 
5448
     \@bsphack
 
5449
     \vadjust{\@restorepar
 
5450
              \vskip #1
 
5451
              \vskip\z@skip
 
5452
              }%
 
5453
     \@esphack
 
5454
   \fi
 
5455
}%
 
5456
\def\@vspace@ltx#1{%
 
5457
 \@ifvmode{%
 
5458
  \vskip#1\vskip\z@skip
 
5459
 }{%
 
5460
  \@bsphack
 
5461
  \ex@vadjust@ltx{%
 
5462
   \@restorepar
 
5463
   \nobreak
 
5464
   \vskip#1\vskip\z@skip
 
5465
  }%
 
5466
  \@esphack
 
5467
 }%
 
5468
}%
 
5469
\def\@vspacer@org#1{%
 
5470
  \ifvmode
 
5471
    \dimen@\prevdepth
 
5472
    \hrule \@height\z@
 
5473
    \nobreak
 
5474
    \vskip #1
 
5475
    \vskip\z@skip
 
5476
    \prevdepth\dimen@
 
5477
  \else
 
5478
    \@bsphack
 
5479
    \vadjust{\@restorepar
 
5480
             \hrule \@height\z@
 
5481
             \nobreak
 
5482
             \vskip #1
 
5483
             \vskip\z@skip}%
 
5484
    \@esphack
 
5485
\fi
 
5486
}%
 
5487
\def\@vspacer@ltx#1{%
 
5488
 \@ifvmode{%
 
5489
  \dimen@\prevdepth
 
5490
  \hrule\@height\z@
 
5491
  \nobreak
 
5492
  \vskip#1\vskip\z@skip
 
5493
  \prevdepth\dimen@
 
5494
 }{%
 
5495
  \@bsphack
 
5496
  \ex@vadjust@ltx{%
 
5497
   \@restorepar
 
5498
   \hrule\@height\z@
 
5499
   \nobreak
 
5500
   \vskip#1\vskip\z@skip
 
5501
  }%
 
5502
  \@esphack
 
5503
 }%
 
5504
}%
 
5505
\def\@no@pgbk@org #1[#2]{%
 
5506
  \ifvmode
 
5507
    \penalty #1\@getpen{#2}%
 
5508
  \else
 
5509
    \@bsphack
 
5510
    \vadjust{\penalty #1\@getpen{#2}}%
 
5511
    \@esphack
 
5512
  \fi
 
5513
}%
 
5514
\def\@no@pgbk@ltx#1[#2]{%
 
5515
 \@ifvmode{%
 
5516
  \penalty#1\@getpen{#2}%
 
5517
 }{%
 
5518
  \@bsphack
 
5519
  \ex@vadjust@ltx{%
 
5520
   \penalty#1\@getpen{#2}%
 
5521
  }%
 
5522
  \@esphack
 
5523
 }%
 
5524
}%
 
5525
\long\def\end@line@org{%
 
5526
 \let\reserved@e\relax
 
5527
 \let\reserved@f\relax
 
5528
 \@ifstar{%
 
5529
  \let\reserved@e\vadjust
 
5530
  \let\reserved@f\nobreak
 
5531
  \@xnewline
 
5532
 }%
 
5533
 \@xnewline
 
5534
}%
 
5535
\long\def\end@line@ltx{%
 
5536
 \let\reserved@e\relax
 
5537
 \let\reserved@f\relax
 
5538
 \@ifstar{%
 
5539
  \let\reserved@e\ex@vadjust@ltx
 
5540
  \let\reserved@f\nobreak
 
5541
  \@xnewline
 
5542
 }{%
 
5543
  \@xnewline
 
5544
 }%
 
5545
}%
 
5546
\def\@newline@org[#1]{%
 
5547
 \let\reserved@e\vadjust
 
5548
 \@gnewline{\vskip#1}%
 
5549
}%
 
5550
\def\@newline@ltx[#1]{%
 
5551
 \let\reserved@e\ex@vadjust@ltx
 
5552
 \@gnewline{\vskip#1}%
 
5553
}%
 
5554
 \@ifx{\@vspace\@vspace@org}{%
 
5555
  \@ifx{\@vspacer\@vspacer@org}{%
 
5556
   \@ifx{\@no@pgbk\@no@pgbk@org}{%
 
5557
    \@ifx{\@newline\@newline@org}{%
 
5558
     \expandafter\@ifx\expandafter{\csname\expandafter\@gobble\string\\ \endcsname\end@line@org}{%
 
5559
      \true@sw
 
5560
     }{\false@sw}%
 
5561
    }{\false@sw}%
 
5562
   }{\false@sw}%
 
5563
  }{\false@sw}%
 
5564
 }{\false@sw}%
 
5565
 {%
 
5566
  \class@info{Overriding \string\@vspace, \string\@vspacer, \string\@no@pgbk, \string\@newline, and \string\\ }%
 
5567
  \let\@normalcr\end@line@ltx
 
5568
  \expandafter\let\csname\expandafter\@gobble\string\\ \endcsname\@normalcr
 
5569
  \let\@newline\@newline@ltx
 
5570
  \let\@vspace\@vspace@ltx
 
5571
  \let\@vspacer\@vspacer@ltx
 
5572
  \let\@no@pgbk\@no@pgbk@ltx
 
5573
 }{%
 
5574
  \class@warn{%
 
5575
   Failed to recognize \string\@vspace, \string\@vspacer, \string\@no@pgbk, \string\@newline, and \string\\;
 
5576
   no patches applied. Please get a more up-to-date class,
 
5577
  }%
 
5578
 }%
 
5579
\let\ex@vadjust@ltx\vadjust
 
5580
\def\enqueue@vadjust@ltx#1{%
 
5581
 \gappdef\g@vadjust@queue{{#1}}%
 
5582
 \vadjust{\penalty-\int@vadjustpenalty}%
 
5583
}%
 
5584
\def\handle@vadjust@ltx{%
 
5585
 \unvbox\@cclv
 
5586
 \g@pop@ltx\g@vadjust@queue\@tempa
 
5587
 \expandafter\gappdef\expandafter\g@vadjust@line\expandafter{\@tempa}%
 
5588
}%
 
5589
\let\g@vadjust@line\@empty
 
5590
\def\reset@queues@ltx{%
 
5591
 \global\let\g@whatsit@queue\@empty
 
5592
 \global\let\g@vadjust@queue\@empty
 
5593
}%
 
5594
\newcommand\linenomathWithnumbers@LN{%
 
5595
  \ifLineNumbers
 
5596
    \ifnum\interlinepenalty>-\linenopenaltypar
 
5597
      \global\holdinginserts\thr@@
 
5598
      \advance\interlinepenalty \linenopenalty
 
5599
     \ifhmode
 
5600
      \advance\predisplaypenalty \linenopenalty
 
5601
     \fi
 
5602
      \advance\postdisplaypenalty \linenopenalty
 
5603
      \advance\interdisplaylinepenalty \linenopenalty
 
5604
    \fi
 
5605
  \fi
 
5606
  \ignorespaces
 
5607
}%
 
5608
\newcommand\linenomathNonumbers@LN{%
 
5609
  \ifLineNumbers
 
5610
    \ifnum\interlinepenalty>-\linenopenaltypar
 
5611
      \global\holdinginserts\thr@@
 
5612
      \advance\interlinepenalty \linenopenalty
 
5613
     \ifhmode
 
5614
      \advance\predisplaypenalty \linenopenalty
 
5615
     \fi
 
5616
    \fi
 
5617
  \fi
 
5618
  \ignorespaces
 
5619
}%
 
5620
\def\endlinenomath@LN{%
 
5621
  \ifLineNumbers
 
5622
   \global\holdinginserts\@LN@outer@holdins
 
5623
  \fi
 
5624
  \global\@ignoretrue
 
5625
}
 
5626
\def\linenumberpar@LN{%
 
5627
  \ifvmode \@@@par \else
 
5628
    \ifinner \@@@par \else
 
5629
      \xdef\@LN@outer@holdins{\the\holdinginserts}%
 
5630
      \advance \interlinepenalty \linenopenalty
 
5631
      \linenoprevgraf \prevgraf
 
5632
      \global \holdinginserts \thr@@
 
5633
      \@@@par
 
5634
      \ifnum\prevgraf>\linenoprevgraf
 
5635
        \penalty-\linenopenaltypar
 
5636
      \fi
 
5637
      \@LN@parpgbrk
 
5638
      \global\holdinginserts\@LN@outer@holdins
 
5639
      \advance\interlinepenalty -\linenopenalty
 
5640
    \fi
 
5641
  \fi
 
5642
}%
 
5643
\appdef\class@documenthook{%
 
5644
 \@ifpackageloaded{lineno}{%
 
5645
  \@ifx{\linenomathWithnumbers\linenomathWithnumbers@LN}{%
 
5646
   \@ifx{\linenomathNonumbers\linenomathNonumbers@LN}{%
 
5647
    \@ifx{\endlinenomath\endlinenomath@LN}{%
 
5648
     \@ifx{\linenumberpar\linenumberpar@LN}{%
 
5649
      \true@sw
 
5650
     }{\false@sw}%
 
5651
    }{\false@sw}%
 
5652
   }{\false@sw}%
 
5653
  }{\false@sw}%
 
5654
  {%
 
5655
   \class@info{Overriding lineo.sty, restoring output routine,}%
 
5656
   \let\linenumberpar\linenumberpar@ltx
 
5657
   \let\endlinenomath\endlinenomath@ltx
 
5658
   \expandafter\let\csname endlinenomath*\endcsname\endlinenomath@ltx
 
5659
   \let\linenomathWithnumbers\linenomathWithnumbers@ltx
 
5660
   \let\linenomathNonumbers\linenomathNonumbers@ltx
 
5661
   \let\ex@vadjust@ltx\ex@vadjust@line
 
5662
   \let\@LN@postlabel\enqueue@whatsit@ltx
 
5663
   \let\do@whatsit\write@linelabel
 
5664
   \let\handle@par@ltx\handle@par@LN
 
5665
   \let\@@handle@line@ltx\Make@LineNo@ltx
 
5666
   \let\@@handle@display@ltx\Make@LineNo@ltx
 
5667
   \output@latex{\natural@output}%
 
5668
   \let\vspace\vspace@ltx
 
5669
   \let\pagebreak\pagebreak@ltx
 
5670
   \let\nopagebreak\nopagebreak@ltx
 
5671
   \let\@arrayparboxrestore\@arrayparboxrestore@ltx
 
5672
   \let\\\endline@ltx
 
5673
   \appdef\set@footnotefont{%
 
5674
    \let\par\@@@par
 
5675
    \let\@@par\@@@par
 
5676
   }%
 
5677
   \@if@sw\ifLineNumbers\fi{%
 
5678
    \class@info{Reinvoke \string\linenumbers}%
 
5679
    \let\@@par\linenumberpar
 
5680
    \@ifx{\@par\linenumberpar@LN}{\let\@par\linenumberpar}{}%
 
5681
    \@ifx{\par\linenumberpar@LN}{\let\par\linenumberpar}{}%
 
5682
   }{%
 
5683
    \class@info{Line numbering not turned on yet}%
 
5684
   }%
 
5685
  }{%
 
5686
   \class@warn{Failed to recognize lineno.sty procedures; no patches applied. Please get a more up-to-date class.}%
 
5687
  }%
 
5688
 }{%
 
5689
 }%
 
5690
}%
 
5691
\def\linenumberpar@ltx{\@ifvmode{\@@@par}{\@linenumberpar}}%
 
5692
\def\@linenumberpar{%
 
5693
   \linenoprevgraf\prevgraf
 
5694
   \set@linepenalties
 
5695
   \@@@par
 
5696
   \@ifnum{\prevgraf>\linenoprevgraf}{
 
5697
    \penalty-\int@postparpenalty
 
5698
   }{}%
 
5699
   \@LN@parpgbrk
 
5700
   \restore@linepenalties
 
5701
}%
 
5702
\newcommand\linenomathWithnumbers@ltx{\@linenomathnumbers@ltx\true@sw}%
 
5703
\newcommand\linenomathNonumbers@ltx{\@linenomathnumbers@ltx\false@sw}%
 
5704
\def\@linenomathnumbers@ltx#1{%
 
5705
 \@if@sw\ifLineNumbers\fi{%
 
5706
   \set@linepenalties
 
5707
   \set@displaypenalties#1%
 
5708
 }{}%
 
5709
 \ignorespaces
 
5710
}%
 
5711
\def\endlinenomath@ltx{%
 
5712
 \global\@ignoretrue
 
5713
}%
 
5714
\def\handle@par@LN{%
 
5715
 \Make@LineNo@ltx
 
5716
 \@tempcnta\lastpenalty
 
5717
 \@ifnum{\@tempcnta=\z@}{}{%
 
5718
  \expandafter\gdef
 
5719
  \expandafter\@LN@parpgbrk
 
5720
  \expandafter{%
 
5721
   \expandafter\penalty
 
5722
               \the\@tempcnta
 
5723
   \global\let\@LN@parpgbrk\@LN@screenoff@pen
 
5724
  }%
 
5725
 }%
 
5726
}%
 
5727
\def\Make@LineNo@ltx{%
 
5728
 \@LN@maybe@normalLineNumber
 
5729
 \boxmaxdepth\maxdimen\setbox\z@\vbox{\unvbox\@cclv}%
 
5730
 \@tempdima\dp\z@
 
5731
 \unvbox\z@
 
5732
 \sbox\@tempboxa{\hb@xt@\z@{\makeLineNumber}}%
 
5733
 \ht\@tempboxa\z@
 
5734
 \@LN@depthbox
 
5735
 \stepLineNumber
 
5736
 \g@vadjust@line
 
5737
 \global\let\g@vadjust@line\@empty
 
5738
}%
 
5739
\def\write@linelabel#1{%
 
5740
 \protected@write\@auxout{}{%
 
5741
  \string\newlabel{#1}{{\theLineNumber}{\thepage}{}{}{}}%
 
5742
 }%
 
5743
}%
 
5744
\def\ex@vadjust@line{%
 
5745
 \@if@sw\ifLineNumbers\fi{\enqueue@vadjust@ltx}{\vadjust}%
 
5746
}%
 
5747
\let\setup@hook\@empty
 
5748
\appdef\document@inithook{%
 
5749
 \switch@longtable
 
5750
 \let\LT@makecaption\LT@makecaption@rtx
 
5751
}%
 
5752
\def\LT@makecaption@rtx#1#2#3{%
 
5753
  \LT@mcol\LT@cols c{%
 
5754
    \hbox to\z@{%
 
5755
     \hss
 
5756
     \parbox[t]\LTcapwidth{%
 
5757
      \sbox\@tempboxa{#1{#2: }#3\unskip\nobreak\vrule\@width\z@\@height\z@\@depth .5\baselineskip}%
 
5758
      \ifdim\wd\@tempboxa>\hsize
 
5759
        #1{#2: }#3\unskip\nobreak\vrule\@width\z@\@height\z@\@depth .5\baselineskip
 
5760
      \else
 
5761
        \hbox to\hsize{\hfil\box\@tempboxa\hfil}%
 
5762
      \fi
 
5763
      \endgraf
 
5764
     }%
 
5765
     \hss
 
5766
    }%
 
5767
  }%
 
5768
}%
 
5769
\def\protectdef@boldmath{%
 
5770
 \expandafter\@ifnotrelax\csname boldmath \endcsname{}{%
 
5771
  \class@info{Robustifying \string\LaTeX's \string\boldmath\space command}%
 
5772
  \expandafter\let\csname boldmath \endcsname\boldmath
 
5773
  \expandafter\def\expandafter\boldmath\expandafter{\expandafter\protect\csname boldmath \endcsname}%
 
5774
 }%
 
5775
}%
 
5776
\appdef\document@inithook{%
 
5777
 \protectdef@boldmath
 
5778
}%
 
5779
\DeclareOption{checkin}{%
 
5780
  \@booleantrue\dateinRH@sw
 
5781
  \@booleantrue\preprintsty@sw
 
5782
  \def\@pointsize{12}%
 
5783
  \@booleantrue\showPACS@sw
 
5784
  \@booleantrue\showKEYS@sw
 
5785
  \def\fp@proc@h{\allow@breaking@tables}%
 
5786
  \def\fp@proc@H{\allow@breaking@tables}%
 
5787
}%
 
5788
\@booleanfalse\dateinRH@sw
 
5789
\def\checkindate{\dateinRH@sw{{\tiny(\today)}}{}}%
 
5790
\def\allow@breaking@tables{%
 
5791
 \def\array@default{v}% tabular can break over pages
 
5792
 \@booleanfalse\floats@sw % table can break over pages
 
5793
}%
 
5794
\DeclareOption{preprint}{%
 
5795
 \@booleantrue\preprintsty@sw
 
5796
 \ExecuteOptions{12pt}%
 
5797
}%
 
5798
\DeclareOption{reprint}{%
 
5799
 \@booleanfalse\preprintsty@sw
 
5800
 \@booleantrue\twocolumn@sw
 
5801
 \ExecuteOptions{10pt}%
 
5802
}%
 
5803
\DeclareOption{manuscript}{%
 
5804
 \class@warn{Document class option manuscript is obsolete; use preprint instead}%
 
5805
 \ExecuteOptions{preprint}%
 
5806
}%
 
5807
\@booleanfalse\preprintsty@sw
 
5808
\DeclareOption{showpacs}{%
 
5809
  \@booleantrue\showPACS@sw
 
5810
}%
 
5811
\DeclareOption{noshowpacs}{%
 
5812
  \@booleanfalse\showPACS@sw
 
5813
}%
 
5814
\DeclareOption{showkeys}{%
 
5815
  \@booleantrue\showKEYS@sw
 
5816
}%
 
5817
\DeclareOption{noshowkeys}{%
 
5818
  \@booleanfalse\showKEYS@sw
 
5819
}%
 
5820
\@booleanfalse\showPACS@sw
 
5821
\@booleanfalse\showKEYS@sw
 
5822
\DeclareOption{balancelastpage}{%
 
5823
  \@booleantrue\balancelastpage@sw
 
5824
}%
 
5825
\DeclareOption{nobalancelastpage}{%
 
5826
  \@booleanfalse\balancelastpage@sw
 
5827
}%
 
5828
\@booleantrue\balancelastpage@sw
 
5829
\DeclareOption{nopreprintnumbers}{\@booleanfalse\preprint@sw}%
 
5830
\DeclareOption{preprintnumbers}{\@booleantrue\preprint@sw}%
 
5831
\appdef\setup@hook{%
 
5832
 \@ifxundefined\preprint@sw{\let\preprint@sw\preprintsty@sw}{}%
 
5833
}%
 
5834
\DeclareOption{hyperref}{%
 
5835
 \class@warn{Class option "hyperref" is no longer supported.^^JEmploy \string\usepackage{hyperref} instead}%
 
5836
}%
 
5837
\DeclareOption{10pt}{\def\@pointsize{10}}%
 
5838
\DeclareOption{11pt}{\def\@pointsize{11}}%
 
5839
\DeclareOption{12pt}{\def\@pointsize{12}}%
 
5840
\let\@pointsize\@undefined
 
5841
\DeclareOption{a4paper}{%
 
5842
    \setlength\paperheight {297mm}%
 
5843
    \setlength\paperwidth  {210mm}%
 
5844
}%
 
5845
\DeclareOption{a5paper}{%
 
5846
    \setlength\paperheight {210mm}%
 
5847
    \setlength\paperwidth  {148mm}%
 
5848
}%
 
5849
\DeclareOption{b5paper}{%
 
5850
    \setlength\paperheight {250mm}%
 
5851
    \setlength\paperwidth  {176mm}%
 
5852
}%
 
5853
\DeclareOption{letterpaper}{%
 
5854
    \setlength\paperheight {11in}%
 
5855
    \setlength\paperwidth  {8.5in}%
 
5856
}%
 
5857
\DeclareOption{legalpaper}{%
 
5858
    \setlength\paperheight {14in}%
 
5859
    \setlength\paperwidth  {8.5in}%
 
5860
}%
 
5861
\DeclareOption{executivepaper}{%
 
5862
    \setlength\paperheight {10.5in}%
 
5863
    \setlength\paperwidth  {7.25in}%
 
5864
}%
 
5865
\DeclareOption{landscape}{%
 
5866
    \setlength\@tempdima   {\paperheight}%
 
5867
    \setlength\paperheight {\paperwidth}%
 
5868
    \setlength\paperwidth  {\@tempdima}%
 
5869
}%
 
5870
\ds@letterpaper
 
5871
\DeclareOption{bibnotes}{\let\frontmatter@footnote@produce\frontmatter@footnote@produce@endnote}%
 
5872
\DeclareOption{nobibnotes}{\let\frontmatter@footnote@produce\frontmatter@footnote@produce@footnote}%
 
5873
\let\frontmatter@footnote@produce\frontmatter@footnote@produce@footnote
 
5874
\appdef\class@enddocumenthook{\auto@bib}%
 
5875
\DeclareOption{footinbib}{\@booleantrue\footinbib@sw}
 
5876
\DeclareOption{nofootinbib}{\@booleanfalse\footinbib@sw}
 
5877
\@booleanfalse\footinbib@sw
 
5878
\DeclareOption{altaffilletter}{\@booleantrue\altaffilletter@sw}%
 
5879
\DeclareOption{altaffilsymbol}{\@booleanfalse\altaffilletter@sw}%
 
5880
\@booleanfalse\altaffilletter@sw
 
5881
\DeclareOption{superbib}{%
 
5882
 \let\place@bibnumber\place@bibnumber@sup
 
5883
}%
 
5884
\def\place@bibnumber{\NATx@bibnumfmt}%
 
5885
\def\place@bibnumber@sup#1{\textsuperscript{#1}}%
 
5886
\def\place@bibnumber@inl#1{[#1]}%
 
5887
\DeclareOption{citeautoscript}{\@booleantrue\citeautoscript@sw}%
 
5888
\@booleanfalse\citeautoscript@sw
 
5889
\DeclareOption{longbibliography}{\@booleantrue\longbibliography@sw}%
 
5890
\DeclareOption{nolongbibliography}{\@booleanfalse\longbibliography@sw}%
 
5891
\@booleanfalse\longbibliography@sw
 
5892
\DeclareOption{eprint}{\@booleantrue\eprint@enable@sw}%
 
5893
\DeclareOption{noeprint}{\@booleanfalse\eprint@enable@sw}%
 
5894
\@booleantrue\eprint@enable@sw
 
5895
\@booleanfalse\twoside@sw
 
5896
\appdef\document@inithook{%
 
5897
 \twoside@sw{\@twosidetrue}{\@twosidefalse}%
 
5898
}%
 
5899
\DeclareOption{twoside}{\@booleantrue \twoside@sw\@mparswitchfalse}%
 
5900
\DeclareOption{oneside}{\@booleanfalse\twoside@sw\@mparswitchtrue}%
 
5901
\DeclareOption{onecolumn}{\@booleanfalse\twocolumn@sw}%
 
5902
\DeclareOption{twocolumn}{\@booleantrue \twocolumn@sw}%
 
5903
\@booleanfalse\twocolumn@sw
 
5904
\def\select@column@grid{%
 
5905
 \twocolumn@sw{%
 
5906
  \twocolumn@grid@setup
 
5907
  \open@twocolumn
 
5908
 }{%
 
5909
  \onecolumn@grid@setup
 
5910
 }%
 
5911
}%
 
5912
\appdef\class@documenthook{%
 
5913
 \select@column@grid
 
5914
}%
 
5915
\appdef\setup@hook{%
 
5916
 \let\clearpage@ltx\clearpage
 
5917
 \prepdef\clear@document{\let\clearpage\clearpage@ltx\let\clear@document\@empty\close@column}%
 
5918
 \appdef\class@documenthook{%
 
5919
  \appdef\class@enddocumenthook{%
 
5920
   \let\clearpage\clear@document
 
5921
  }%
 
5922
 }%
 
5923
}%
 
5924
\DeclareOption{author-year}{\@booleantrue\authoryear@sw}%
 
5925
\DeclareOption{numerical}{\@booleanfalse\authoryear@sw}%
 
5926
\@booleanfalse\authoryear@sw
 
5927
\DeclareOption{galley}{%
 
5928
  \ExecuteOptions{onecolumn}%
 
5929
  \@booleantrue\galley@sw
 
5930
  \@booleanfalse\preprintsty@sw
 
5931
  \appdef\setup@hook{%
 
5932
    \advance\textwidth-\columnsep
 
5933
    \textwidth.5\textwidth
 
5934
  }%
 
5935
}%
 
5936
\@booleanfalse\galley@sw
 
5937
\DeclareOption{raggedbottom}{\@booleantrue\raggedcolumn@sw}
 
5938
\DeclareOption{flushbottom}{\@booleanfalse\raggedcolumn@sw}
 
5939
\@booleanfalse\raggedcolumn@sw
 
5940
\appdef\setup@hook{%
 
5941
 \raggedcolumn@sw{\raggedbottom}{\flushbottom}%
 
5942
}%
 
5943
\DeclareOption{tightenlines}{\@booleantrue\tightenlines@sw}
 
5944
\@booleanfalse\tightenlines@sw
 
5945
\@booleanfalse\lengthcheck@sw
 
5946
\DeclareOption{lengthcheck}{%
 
5947
 \@booleantrue\lengthcheck@sw
 
5948
 \ExecuteOptions{reprint}%
 
5949
}%
 
5950
\appdef\setup@hook{%
 
5951
 \lengthcheck@sw{\@booleantrue\tally@box@size@sw}{}%
 
5952
}%
 
5953
\appdef\setup@hook{%
 
5954
 \draft@sw{\overfullrule 5\p@}{\overfullrule\z@}%
 
5955
}%
 
5956
\DeclareOption{draft}{\@booleantrue\draft@sw}%
 
5957
\DeclareOption{final}{\@booleanfalse\draft@sw}%
 
5958
\@booleanfalse\draft@sw
 
5959
\appdef\setup@hook{%
 
5960
 \eqsecnum@sw{%
 
5961
  \@addtoreset{equation}{section}%
 
5962
  \def\theequation@prefix{\arabic{section}.}%
 
5963
 }{}%
 
5964
}%
 
5965
\DeclareOption{eqsecnum}{\@booleantrue\eqsecnum@sw}%
 
5966
\@booleanfalse\eqsecnum@sw
 
5967
\appdef\setup@hook{%
 
5968
 \setup@secnums
 
5969
}%
 
5970
\DeclareOption{secnumarabic}{%
 
5971
 \def\setup@secnums{\secnums@arabic}%
 
5972
}%
 
5973
\def\setup@secnums{\secnums@rtx}%
 
5974
\DeclareOption{fleqn}{%
 
5975
 \input{fleqn.clo}%
 
5976
}%
 
5977
\DeclareOption{floats}{\@booleantrue\floats@sw\@booleanfalse\floatp@sw}
 
5978
\DeclareOption{endfloats}{\@booleanfalse\floats@sw\@booleanfalse\floatp@sw}
 
5979
\DeclareOption{endfloats*}{\@booleanfalse\floats@sw\@booleantrue\floatp@sw}
 
5980
\@booleantrue\floats@sw
 
5981
\@booleantrue\floatp@sw
 
5982
\DeclareOption{titlepage}{\@booleantrue\titlepage@sw}
 
5983
\DeclareOption{notitlepage}{\@booleanfalse\titlepage@sw}
 
5984
\@booleanfalse\titlepage@sw
 
5985
\def\change@society#1{%
 
5986
 \def\@tempa{#1}%
 
5987
 \@ifxundefined\@society{%
 
5988
  \class@info{Selecting society \@tempa}%
 
5989
  \let\@society\@tempa
 
5990
 }{%
 
5991
  \@ifx{\@tempa\@society}{}{%
 
5992
   \class@warn{Conflicting society \@tempa<>\@society; not selected}%
 
5993
  }%
 
5994
 }%
 
5995
}%
 
5996
\def\change@journal#1{%
 
5997
 \def\@tempa{#1}%
 
5998
 \@ifxundefined\@journal{%
 
5999
  \class@info{Selecting journal \@tempa}%
 
6000
  \let\@journal\@tempa
 
6001
 }{%
 
6002
  \@ifx{\@tempa\@journal}{}{%
 
6003
   \class@warn{Conflicting journal \@tempa<>\@journal; not selected}%
 
6004
  }%
 
6005
 }%
 
6006
}%
 
6007
\DeclareOption{osa}{\change@society{osa}\let\@journal\@undefined}%
 
6008
\DeclareOption{osameet}{\change@society{osa}\def\@journal{osameet}}%
 
6009
\DeclareOption{opex}{\change@society{osa}\def\@journal{opex}}%
 
6010
\DeclareOption{tops}{\change@society{osa}\def\@journal{tops}}%
 
6011
\DeclareOption{josa}{\change@society{osa}\def\@journal{josa}}%
 
6012
\let\rtx@require@packages\@empty
 
6013
\appdef\rtx@require@packages{%
 
6014
 \RequirePackage[overload]{textcase}%
 
6015
}%
 
6016
\DeclareOption{amsfonts}{%
 
6017
  \def\class@amsfonts{\RequirePackage{amsfonts}}%
 
6018
}%
 
6019
\DeclareOption{noamsfonts}{%
 
6020
  \let\class@amsfonts\@empty
 
6021
}%
 
6022
\appdef\rtx@require@packages{%
 
6023
 \@ifxundefined\class@amsfonts{}{\class@amsfonts}%
 
6024
}%
 
6025
\DeclareOption{amssymb}{%
 
6026
  \def\class@amssymb{\RequirePackage{amssymb}}%
 
6027
}%
 
6028
\DeclareOption{noamssymb}{%
 
6029
  \let\class@amssymb\@empty
 
6030
}%
 
6031
\appdef\rtx@require@packages{%
 
6032
 \@ifxundefined\class@amssymb{}{\class@amssymb}%
 
6033
}%
 
6034
\DeclareOption{amsmath}{%
 
6035
  \def\class@amsmath{\RequirePackage{amsmath}[\ver@amsmath@prefer]}%
 
6036
}%
 
6037
\DeclareOption{noamsmath}{%
 
6038
  \let\class@amsmath\@empty
 
6039
}%
 
6040
\appdef\rtx@require@packages{%
 
6041
 \preserve@LaTeX
 
6042
 \@ifxundefined\class@amsmath{}{\class@amsmath}%
 
6043
 \appdef\class@enddocumenthook{\test@amsmath@ver}%
 
6044
}%
 
6045
\appdef\preserve@LaTeX{%
 
6046
 \let\@ifl@aded@LaTeX\@ifl@aded
 
6047
 \let\@ifpackageloaded@LaTeX\@ifpackageloaded
 
6048
 \let\@pkgextension@LaTeX\@pkgextension
 
6049
 \let\@ifpackagelater@LaTeX\@ifpackagelater
 
6050
 \let\@ifl@ter@LaTeX\@ifl@ter
 
6051
 \let\@ifl@t@r@LaTeX\@ifl@t@r
 
6052
 \let\@parse@version@LaTeX\@parse@version
 
6053
}%
 
6054
\appdef\restore@LaTeX{%
 
6055
 \let\@ifl@aded\@ifl@aded@LaTeX
 
6056
 \let\@ifpackageloaded\@ifpackageloaded@LaTeX
 
6057
 \let\@pkgextension\@pkgextension@LaTeX
 
6058
 \let\@ifpackagelater\@ifpackagelater@LaTeX
 
6059
 \let\@ifl@ter\@ifl@ter@LaTeX
 
6060
 \let\@ifl@t@r\@ifl@t@r@LaTeX
 
6061
 \let\@parse@version\@parse@version@LaTeX
 
6062
}%
 
6063
\def\test@amsmath@ver{%
 
6064
 \begingroup
 
6065
  \restore@LaTeX
 
6066
  \@ifpackageloaded{amsmath}{%
 
6067
   \@ifpackagelater{amsmath}{\ver@amsmath@prefer}{}{%
 
6068
     \class@warn{%
 
6069
      You have loaded amsmath, version "\csname ver@amsmath.sty\endcsname",\MessageBreak
 
6070
      but this class requires version "\ver@amsmath@prefer", or later.\MessageBreak
 
6071
      Please update your LaTeX installation.
 
6072
     }%
 
6073
   }%
 
6074
  }{%
 
6075
  }%
 
6076
 \endgroup
 
6077
}%
 
6078
\def\ver@amsmath@prefer{2000/01/15 v2.05 AMS math features}%
 
6079
\DeclareOption{byrevtex}{\@booleantrue\byrevtex@sw}%
 
6080
\@booleanfalse\byrevtex@sw
 
6081
\DeclareOption{floatfix}{\@booleantrue\force@deferlist@sw}%
 
6082
\DeclareOption{nofloatfix}{\@booleanfalse\force@deferlist@sw}%
 
6083
\@booleanfalse\force@deferlist@sw
 
6084
\gdef\@fltovf{%
 
6085
 \@latex@error{%
 
6086
  Too many unprocessed floats%
 
6087
  \force@deferlist@sw{}{; try class option [floatfix]}%
 
6088
 }\@ehb
 
6089
}%
 
6090
\def\@fltstk{%
 
6091
 \@latex@warning{%
 
6092
  A float is stuck (cannot be placed)%
 
6093
  \force@deferlist@sw{}{; try class option [floatfix]}%
 
6094
 }%
 
6095
}%
 
6096
\DeclareOption{ltxgridinfo}{%
 
6097
 \@booleantrue\ltxgrid@info@sw
 
6098
}%
 
6099
\DeclareOption{outputdebug}{%
 
6100
 \@booleantrue\outputdebug@sw
 
6101
 \@booleantrue\ltxgrid@info@sw
 
6102
 \@booleantrue\ltxgrid@foot@info@sw
 
6103
 \traceoutput
 
6104
}%
 
6105
\DeclareOption{raggedfooter}{\@booleanfalse\textheight@sw}%
 
6106
\DeclareOption{noraggedfooter}{\@booleantrue\textheight@sw}%
 
6107
\DeclareOption{frontmatterverbose}{\@booleantrue\frontmatterverbose@sw}%
 
6108
\@booleanfalse\frontmatterverbose@sw
 
6109
\DeclareOption{linenumbers}{%
 
6110
 \appdef
 
6111
 \class@documenthook{%
 
6112
  \RequirePackage{lineno}[2005/11/02 v4.41]%
 
6113
  \linenumbersep4pt\relax
 
6114
  \linenumbers\relax
 
6115
 }%
 
6116
}%
 
6117
\DeclareOption{nomerge}{%
 
6118
 \appdef\setup@hook{%
 
6119
  \@ifnum{\NAT@merge>\z@}{\let\NAT@merge\z@}{}%
 
6120
 }%
 
6121
}%
 
6122
\def\@parse@class@options@society{%
 
6123
 \edef\@tempa{\@ptionlist{\@currname.\@currext}}%
 
6124
 \expandafter\@for\expandafter\CurrentOption\expandafter:\expandafter=\@tempa\do{%
 
6125
  \expandafter\@ifnotrelax\csname ds@\CurrentOption\endcsname{}{%
 
6126
   \IfFileExists{\CurrentOption\substyle@post.\substyle@ext}{%
 
6127
    \expandafter\change@society\expandafter{\CurrentOption}%
 
6128
    \expandafter\let\csname ds@\CurrentOption\endcsname\@empty
 
6129
   }{}%
 
6130
  }%
 
6131
 }%
 
6132
}%
 
6133
\def\@parse@class@options@#1{%
 
6134
 \edef\@tempa{\@ptionlist{\@currname.\@currext}}%
 
6135
 \expandafter\@for\expandafter\CurrentOption\expandafter:\expandafter=\@tempa\do{%
 
6136
  \expandafter\@ifnotrelax\csname ds@\CurrentOption\endcsname{%
 
6137
   \begingroup\csname ds@\CurrentOption\endcsname
 
6138
    \@ifxundefined#1{%
 
6139
     \endgroup
 
6140
    }{%
 
6141
     \expandafter\endgroup\expandafter\def\expandafter#1\expandafter{#1}%
 
6142
    }%
 
6143
  }{}%
 
6144
 }%
 
6145
}%
 
6146
\def\@parse@class@options@journal{%
 
6147
 \edef\@tempa{\@ptionlist{\@currname.\@currext}}%
 
6148
 \expandafter\@for\expandafter\CurrentOption\expandafter:\expandafter=\@tempa\do{%
 
6149
  \expandafter\@ifnotrelax\csname ds@\CurrentOption\endcsname{%
 
6150
   \begingroup
 
6151
    \csname ds@\CurrentOption\endcsname
 
6152
    \@ifxundefined\@journal{%
 
6153
     \endgroup
 
6154
    }{%
 
6155
     \expandafter\endgroup\expandafter\def\expandafter\@journal\expandafter{\@journal}%
 
6156
    }%
 
6157
  }{}%
 
6158
 }%
 
6159
}%
 
6160
\def\@parse@class@options{%
 
6161
 \edef\@tempa{\@ptionlist{\@currname.\@currext}}%
 
6162
 \expandafter\@for\expandafter\CurrentOption\expandafter:\expandafter=\@tempa\do{%
 
6163
  \expandafter\@ifnotrelax\csname ds@\CurrentOption\endcsname{%
 
6164
   \begingroup
 
6165
    \csname ds@\CurrentOption\endcsname
 
6166
    \@ifxundefined\@pointsize{%
 
6167
     \endgroup
 
6168
    }{%
 
6169
     \expandafter\endgroup\expandafter\def\expandafter\@pointsize\expandafter{\@pointsize}%
 
6170
    }%
 
6171
  }{%
 
6172
   \IfFileExists{\CurrentOption\substyle@post.\substyle@ext}{%
 
6173
    \expandafter\change@society\expandafter{\CurrentOption}%
 
6174
    \expandafter\let\csname ds@\CurrentOption\endcsname\@empty
 
6175
   }{}%
 
6176
  }%
 
6177
 }%
 
6178
}%
 
6179
\DeclareOption{hypertext}{\hypertext@enable@ltx}%
 
6180
\appdef\document@inithook{\@ifpackageloaded{hyperref}{\hypertext@enable@ltx}{}}%
 
6181
\DeclareOption{frontmatterverbose}{\@booleantrue\frontmatterverbose@sw}%
 
6182
\@booleanfalse\frontmatterverbose@sw
 
6183
\DeclareOption{inactive}{\@booleanfalse\frontmatter@syntax@sw}%
 
6184
\@booleantrue\frontmatter@syntax@sw
 
6185
\@booleanfalse\runinaddress@sw
 
6186
\@booleantrue\@affils@sw
 
6187
\@booleanfalse\groupauthors@sw
 
6188
\DeclareOption{groupedaddress}{\clo@groupedaddress}%
 
6189
\def\clo@groupedaddress{%
 
6190
 \@booleantrue\groupauthors@sw
 
6191
 \@booleantrue\@affils@sw
 
6192
 \@booleanfalse\runinaddress@sw
 
6193
}%
 
6194
\DeclareOption{unsortedaddress}{\clo@unsortedaddress}%
 
6195
\def\clo@unsortedaddress{%
 
6196
 \@booleantrue\groupauthors@sw
 
6197
 \@booleanfalse\@affils@sw
 
6198
 \@booleanfalse\runinaddress@sw
 
6199
}%
 
6200
\DeclareOption{runinaddress}{\clo@runinaddress}%
 
6201
\def\clo@runinaddress{%
 
6202
 \@booleantrue\groupauthors@sw
 
6203
 \@booleantrue\@affils@sw
 
6204
 \@booleantrue\runinaddress@sw
 
6205
}%
 
6206
\DeclareOption{superscriptaddress}{\clo@superscriptaddress}%
 
6207
\def\clo@superscriptaddress{%
 
6208
 \@booleanfalse\groupauthors@sw
 
6209
 \@booleantrue\@affils@sw
 
6210
 \@booleanfalse\runinaddress@sw
 
6211
}%
 
6212
%%%  @LaTeX-file{
 
6213
%%%     filename        = "revtex4-1.dtx",
 
6214
%%%     version         = "4.1r",
 
6215
%%%     date            = "2010/07/25",
 
6216
%%%     time            = "20:33:00 UT-8",
 
6217
%%%     checksum        = "7177",
 
6218
%%%     author          = "Arthur Ogawa (mailto:arthur_ogawa at sbcglobal.net),
 
6219
%%%                        commissioned by the American Physical Society.
 
6220
%%%                        ",
 
6221
%%%     copyright       = "Copyright (C) 1999, 2009 Arthur Ogawa,
 
6222
%%%                        distributed under the terms of the
 
6223
%%%                        LaTeX Project Public License, see
 
6224
%%%                        ftp://ctan.tug.org/macros/latex/base/lppl.txt
 
6225
%%%                        ",
 
6226
%%%     address         = "Arthur Ogawa,
 
6227
%%%                        USA",
 
6228
%%%     telephone       = "",
 
6229
%%%     FAX             = "",
 
6230
%%%     email           = "mailto colon arthur_ogawa at sbcglobal.net",
 
6231
%%%     codetable       = "ISO/ASCII",
 
6232
%%%     keywords        = "latex, page grid, main vertical list",
 
6233
%%%     supported       = "yes",
 
6234
%%%     abstract        = "package to change page grid, MVL",
 
6235
%%%     docstring       = "The checksum field above generated by ltxdoc",
 
6236
%%%  }
 
6237
\def\substyle@post{4-1}%
 
6238
\def\substyle@ext{rtx}%
 
6239
\DeclareOption*{\OptionNotUsed}%
 
6240
\def\@process@society#1{%
 
6241
 \@ifxundefined\@society{%
 
6242
  \class@warn{No Society specified, using default society #1}%
 
6243
  \def\@society{#1}\let\@journal\@undefined
 
6244
 }{}%
 
6245
 \expandafter\input\expandafter{\@society\substyle@post.\substyle@ext}%
 
6246
}%
 
6247
\def\@process@journal#1{%
 
6248
 \@ifxundefined\@journal{%
 
6249
  \class@warn{No journal specified, using default #1}%
 
6250
  \def\@journal{#1}%
 
6251
 }{}%
 
6252
 \expandafter\expandafter
 
6253
 \expandafter\rtx@do@substyle
 
6254
 \expandafter\expandafter
 
6255
 \expandafter{\expandafter\@society\@journal}%
 
6256
}%
 
6257
\def\rtx@do@substyle#1{%
 
6258
 \InputIfFileExists{#1\substyle@post.\substyle@ext}{}{\csname rtx@#1\endcsname}%
 
6259
}%
 
6260
\def\@process@pointsize#1{%
 
6261
 \@ifxundefined\@pointsize{%
 
6262
  \def\@pointsize{#1}%
 
6263
  \class@warn{No type size specified, using default \@pointsize}%
 
6264
 }{}%
 
6265
 \expandafter\expandafter
 
6266
 \expandafter\rtx@do@substyle
 
6267
 \expandafter\expandafter
 
6268
 \expandafter{\expandafter\@society\@pointsize pt}%
 
6269
}%
 
6270
  \def\ps@headings{%
 
6271
      \let\@oddfoot\@empty\let\@evenfoot\@empty
 
6272
      \def\@evenhead{\thepage\hfil\slshape\leftmark}%
 
6273
      \def\@oddhead{{\slshape\rightmark}\hfil\thepage}%
 
6274
      \let\@mkboth\markboth
 
6275
    \def\sectionmark##1{%
 
6276
      \markboth {\MakeUppercase{%
 
6277
        \ifnum \c@secnumdepth >\z@
 
6278
          \thesection\quad
 
6279
        \fi
 
6280
        ##1}}{}}%
 
6281
    \def\subsectionmark##1{%
 
6282
      \markright {%
 
6283
        \ifnum \c@secnumdepth >\@ne
 
6284
          \thesubsection\quad
 
6285
        \fi
 
6286
        ##1}}}%
 
6287
\def\ps@myheadings{%
 
6288
    \let\@oddfoot\@empty\let\@evenfoot\@empty
 
6289
    \def\@evenhead{\thepage\hfil\slshape\leftmark}%
 
6290
    \def\@oddhead{{\slshape\rightmark}\hfil\thepage}%
 
6291
    \let\@mkboth\@gobbletwo
 
6292
    \let\sectionmark\@gobble
 
6293
    \let\subsectionmark\@gobble
 
6294
    }%
 
6295
\def\ps@article{%
 
6296
    \def\@evenhead{\let\\\heading@cr\thepage\quad\checkindate\hfil{\leftmark}}%
 
6297
    \def\@oddhead{\let\\\heading@cr{\rightmark}\hfil\checkindate\quad\thepage}%
 
6298
    \def\@oddfoot{}%
 
6299
    \def\@evenfoot{}%
 
6300
    \let\@mkboth\markboth
 
6301
  \let\sectionmark\@gobble
 
6302
  \let\subsectionmark\@gobble
 
6303
}%
 
6304
\def\ps@article@final{%
 
6305
    \def\@evenhead{\let\\\heading@cr\thepage\quad\checkindate\hfil{\leftmark}}%
 
6306
    \def\@oddhead{\let\\\heading@cr{\rightmark}\hfil\checkindate\quad\thepage}%
 
6307
    \def\@oddfoot{}%
 
6308
    \def\@evenfoot{}%
 
6309
    \let\@mkboth\markboth
 
6310
    \def\sectionmark##1{%
 
6311
      \markboth{%
 
6312
       \MakeTextUppercase{%
 
6313
        \@ifnum{\c@secnumdepth >\z@}{\thesection\hskip 1em\relax}{}%
 
6314
         ##1%
 
6315
       }%
 
6316
       }{}%
 
6317
    }%
 
6318
    \def\subsectionmark##1{%
 
6319
      \markright {%
 
6320
        \@ifnum{\c@secnumdepth >\@ne}{\thesubsection\hskip 1em\relax}{}%
 
6321
         ##1%
 
6322
      }%
 
6323
    }%
 
6324
}%
 
6325
\def\heading@cr{\unskip\space\ignorespaces}%
 
6326
\def\ps@preprint{%
 
6327
  \def\@oddfoot{\hfil\thepage\quad\checkindate\hfil}%
 
6328
  \def\@evenfoot{\hfil\thepage\quad\checkindate\hfil}%
 
6329
  \def\@oddhead{}%
 
6330
  \def\@evenhead{}%
 
6331
  \let\@mkboth\@gobbletwo
 
6332
  \let\sectionmark\@gobble
 
6333
  \let\subsectionmark\@gobble
 
6334
}%
 
6335
\let\@oddhead\@empty
 
6336
\let\@evenhead\@empty
 
6337
\let\@oddfoot\@empty
 
6338
\let\@evenfoot\@empty
 
6339
\def\lastpage@putlabel{%
 
6340
 \if@filesw
 
6341
  \begingroup
 
6342
    \advance\c@page\m@ne
 
6343
    \immediate\write\@auxout{\string\newlabel{LastPage}{{}{\thepage}{}{}{}}}%
 
6344
  \endgroup
 
6345
 \fi
 
6346
}%
 
6347
\appdef\clear@document{%
 
6348
 \do@output@cclv{%
 
6349
  \lastpage@putlabel
 
6350
  \tally@box@size@sw{\total@text}{}%
 
6351
 }%
 
6352
}%
 
6353
\providecommand\write@column@totals{}%
 
6354
\appdef\rtx@require@packages{%
 
6355
 \RequirePackage{url}%
 
6356
}%
 
6357
\appdef\document@inithook{%
 
6358
 \incompatible@package{cite}%
 
6359
 \incompatible@package{mcite}%
 
6360
 \incompatible@package{multicol}%
 
6361
}%
 
6362
\def\labelenumi{\theenumi.}
 
6363
\def\theenumi{\arabic{enumi}}
 
6364
\def\labelenumii{(\theenumii)}
 
6365
\def\theenumii{\alph{enumii}}
 
6366
\def\p@enumii{\theenumi}
 
6367
\def\labelenumiii{\theenumiii.}
 
6368
\def\theenumiii{\roman{enumiii}}
 
6369
\def\p@enumiii{\theenumi(\theenumii)}
 
6370
\def\labelenumiv{\theenumiv.}
 
6371
\def\theenumiv{\Alph{enumiv}}
 
6372
\def\p@enumiv{\p@enumiii\theenumiii}
 
6373
\def\labelitemi{\textbullet}
 
6374
\def\labelitemii{\normalfont\bfseries\textendash}
 
6375
\def\labelitemiii{\textasteriskcentered}
 
6376
\def\labelitemiv{\textperiodcentered}
 
6377
\pagenumbering{arabic}
 
6378
\setcounter{topnumber}{2}
 
6379
\def\topfraction{.9}
 
6380
\setcounter{bottomnumber}{1}
 
6381
\def\bottomfraction{.9}
 
6382
\setcounter{totalnumber}{3}
 
6383
\def\textfraction{.1}
 
6384
\def\floatpagefraction{.9}
 
6385
\setcounter{dbltopnumber}{2}
 
6386
\def\dbltopfraction{.9}
 
6387
\def\dblfloatpagefraction{.9}
 
6388
\newenvironment{verse}{%
 
6389
  \let\\=\@centercr
 
6390
  \list{}{%
 
6391
    \itemsep\z@ \itemindent -1.5em\listparindent \itemindent
 
6392
    \rightmargin\leftmargin\advance\leftmargin 1.5em}\item[]%
 
6393
}{%
 
6394
 \endlist
 
6395
}%
 
6396
\newenvironment{quotation}{%
 
6397
  \list{}{%
 
6398
    \listparindent 1.5em
 
6399
    \itemindent\listparindent
 
6400
    \rightmargin\leftmargin \parsep \z@ \@plus\p@}\item[]%
 
6401
}{%
 
6402
 \endlist
 
6403
}%
 
6404
\newenvironment{quote}{%
 
6405
  \list{}{%
 
6406
  \rightmargin\leftmargin}\item[]%
 
6407
}{%
 
6408
 \endlist
 
6409
}%
 
6410
\def\descriptionlabel#1{%
 
6411
  \hspace\labelsep \normalfont\bfseries #1\unskip:%
 
6412
}%
 
6413
\newenvironment{description}{%
 
6414
 \list{}{%
 
6415
    \labelwidth\z@ \itemindent-\leftmargin
 
6416
    \let\makelabel\descriptionlabel
 
6417
 }%
 
6418
}{%
 
6419
 \endlist
 
6420
}%
 
6421
\newcounter{part}%
 
6422
\let\thepart\@undefined
 
6423
\newcounter{section}%
 
6424
\let\thesection\@undefined
 
6425
\newcounter{subsection}[section]%
 
6426
\let\thesubsection\@undefined
 
6427
\newcounter{subsubsection}[subsection]%
 
6428
\let\thesubsubsection\@undefined
 
6429
\newcounter{paragraph}[subsubsection]%
 
6430
\let\theparagraph\@undefined
 
6431
\newcounter{subparagraph}[paragraph]%
 
6432
\let\thesubparagraph\@undefined
 
6433
\def\secnums@rtx{%
 
6434
 \@ifxundefined\thepart{%
 
6435
  \def\thepart{\Roman{part}}%
 
6436
 }{}%
 
6437
 \@ifxundefined\thesection{%
 
6438
  \def\thesection       {\Roman{section}}%
 
6439
  \def\p@section        {}%
 
6440
 }{}%
 
6441
 \@ifxundefined\thesubsection{%
 
6442
  \def\thesubsection    {\Alph{subsection}}%
 
6443
  \def\p@subsection     {\thesection\,}%
 
6444
 }{}%
 
6445
 \@ifxundefined\thesubsubsection{%
 
6446
  \def\thesubsubsection {\arabic{subsubsection}}%
 
6447
  \def\p@subsubsection  {\thesection\,\thesubsection\,}%
 
6448
 }{}%
 
6449
 \@ifxundefined\theparagraph{%
 
6450
  \def\theparagraph     {\alph{paragraph}}%
 
6451
  \def\p@paragraph      {\thesection\,\thesubsection\,\thesubsubsection\,}%
 
6452
 }{}%
 
6453
 \@ifxundefined\thesubparagraph{%
 
6454
  \def\thesubparagraph  {\arabic{subparagraph}}%
 
6455
  \def\p@subparagraph   {\thesection\,\thesubsection\,\thesubsubsection\,\theparagraph\,}%
 
6456
 }{}%
 
6457
}%
 
6458
\def\secnums@arabic{%
 
6459
 \@ifxundefined\thepart{%
 
6460
  \def\thepart          {\Roman{part}}%
 
6461
 }{}%
 
6462
 \@ifxundefined\thesection{%
 
6463
  \def\thesection       {\Roman{section}}%
 
6464
  \def\p@section        {}%
 
6465
 }{}%
 
6466
 \@ifxundefined\thesubsection{%
 
6467
  \def\thesubsection    {\thesection.\arabic{subsection}}%
 
6468
  \def\p@subsection     {}%
 
6469
 }{}%
 
6470
 \@ifxundefined\thesubsubsection{%
 
6471
  \def\thesubsubsection {\thesubsection.\arabic{subsubsection}}%
 
6472
  \def\p@subsubsection  {}%
 
6473
 }{}%
 
6474
 \@ifxundefined\theparagraph{%
 
6475
  \def\theparagraph     {\thesubsubsection.\arabic{paragraph}}%
 
6476
  \def\p@paragraph      {}%
 
6477
 }{}%
 
6478
 \@ifxundefined\thesubparagraph{%
 
6479
  \def\thesubparagraph  {\theparagraph.\arabic{subparagraph}}%
 
6480
  \def\p@subparagraph   {}%
 
6481
 }{}%
 
6482
}%
 
6483
\newenvironment{acknowledgments}{%
 
6484
 \acknowledgments@sw{%
 
6485
  \expandafter\section\expandafter*\expandafter{\acknowledgmentsname}%
 
6486
 }{%
 
6487
  \par
 
6488
  \phantomsection
 
6489
  \addcontentsline{toc}{section}{\protect\numberline{}\acknowledgmentsname}%
 
6490
 }%
 
6491
}{%
 
6492
 \par
 
6493
}%
 
6494
\@booleantrue\acknowledgments@sw
 
6495
\newenvironment{acknowledgements}{%
 
6496
 \replace@environment{acknowledgements}{acknowledgments}%
 
6497
}{%
 
6498
 \endacknowledgments
 
6499
}%
 
6500
\def\part{\par
 
6501
   \addvspace{4ex}%
 
6502
   \@afterindentfalse
 
6503
   \secdef\@part\@spart}%
 
6504
\def\@part[#1]#2{%
 
6505
 \@ifnum{\c@secnumdepth >\m@ne}{%
 
6506
        \refstepcounter{part}%
 
6507
        \addcontentsline{toc}{part}{\thepart\hspace{1em}#1}%
 
6508
 }{%
 
6509
      \addcontentsline{toc}{part}{#1}%
 
6510
 }%
 
6511
 \begingroup
 
6512
    \parindent \z@ \raggedright
 
6513
    \interlinepenalty\@M
 
6514
    \@ifnum{\c@secnumdepth >\m@ne}{%
 
6515
      \Large \bf \partname~\thepart%
 
6516
      \par\nobreak
 
6517
    }{}%
 
6518
    \huge \bf
 
6519
    #2%
 
6520
    \markboth{}{}\par
 
6521
 \endgroup
 
6522
   \nobreak
 
6523
   \vskip 3ex
 
6524
   \@afterheading
 
6525
}%
 
6526
\def\@spart#1{{\parindent \z@ \raggedright
 
6527
    \interlinepenalty\@M
 
6528
    \huge \bf
 
6529
    #1\par}
 
6530
    \nobreak
 
6531
    \vskip 3ex
 
6532
    \@afterheading}
 
6533
\def\section{%
 
6534
  \@startsection
 
6535
    {section}%
 
6536
    {1}%
 
6537
    {\z@}%
 
6538
    {0.8cm \@plus1ex \@minus .2ex}%
 
6539
    {0.5cm}%
 
6540
    {\normalfont\small\bfseries}%
 
6541
}%
 
6542
\def\subsection{%
 
6543
  \@startsection
 
6544
    {subsection}%
 
6545
    {2}%
 
6546
    {\z@}%
 
6547
    {.8cm \@plus1ex \@minus .2ex}%
 
6548
    {.5cm}%
 
6549
    {\normalfont\small\bfseries}%
 
6550
}%
 
6551
\def\subsubsection{%
 
6552
  \@startsection
 
6553
    {subsubsection}%
 
6554
    {3}%
 
6555
    {\z@}%
 
6556
    {.8cm \@plus1ex \@minus .2ex}%
 
6557
    {.5cm}%
 
6558
    {\normalfont\small\itshape}%
 
6559
}%
 
6560
\def\paragraph{%
 
6561
  \@startsection
 
6562
    {paragraph}%
 
6563
    {4}%
 
6564
    {\parindent}%
 
6565
    {\z@}%
 
6566
    {-1em}%
 
6567
    {\normalfont\normalsize\itshape}%
 
6568
}%
 
6569
\def\subparagraph{%
 
6570
  \@startsection
 
6571
    {subparagraph}%
 
6572
    {5}%
 
6573
    {\parindent}%
 
6574
    {3.25ex \@plus1ex \@minus .2ex}%
 
6575
    {-1em}%
 
6576
    {\normalfont\normalsize\bfseries}%
 
6577
}%
 
6578
\def\theequation{%
 
6579
 \theequation@prefix\arabic{equation}%
 
6580
}%
 
6581
\def\theequation@prefix{}%
 
6582
\setcounter{secnumdepth}{4}
 
6583
\lineskip 1pt
 
6584
\normallineskip 1pt
 
6585
\def\baselinestretch{1}%
 
6586
\@lowpenalty   51
 
6587
\@medpenalty  151
 
6588
\@highpenalty 301
 
6589
\@beginparpenalty -\@lowpenalty
 
6590
\@endparpenalty   -\@lowpenalty
 
6591
\@itempenalty     -\@lowpenalty
 
6592
\arraycolsep 3pt
 
6593
\tabcolsep 2pt
 
6594
\arrayrulewidth .4pt
 
6595
\doublerulesep 2pt
 
6596
\skip\@mpfootins = 0pt
 
6597
\fboxsep  = 3.0pt
 
6598
\fboxrule = 0.4pt
 
6599
\newenvironment{figure}
 
6600
               {\@float{figure}}
 
6601
               {\end@float}
 
6602
\newenvironment{figure*}
 
6603
               {\@dblfloat{figure}}
 
6604
               {\end@dblfloat}
 
6605
\def\listoffigures{\print@toc{lof}}%
 
6606
\def\l@figure{\@dottedtocline{1}{1.5em}{2.3em}}%
 
6607
\newlength\abovecaptionskip
 
6608
\newlength\belowcaptionskip
 
6609
\setlength\abovecaptionskip{10\p@}
 
6610
\setlength\belowcaptionskip{2\p@}
 
6611
\long\def\@makecaption#1#2{%
 
6612
  \par
 
6613
  \vskip\abovecaptionskip
 
6614
  \begingroup
 
6615
   \small\rmfamily
 
6616
   \sbox\@tempboxa{%
 
6617
    \let\\\heading@cr
 
6618
    \@make@capt@title{#1}{#2}%
 
6619
   }%
 
6620
   \@ifdim{\wd\@tempboxa >\hsize}{%
 
6621
    \begingroup
 
6622
     \samepage
 
6623
     \flushing
 
6624
     \let\footnote\@footnotemark@gobble
 
6625
     \@make@capt@title{#1}{#2}\par
 
6626
    \endgroup
 
6627
   }{%
 
6628
     \global \@minipagefalse
 
6629
     \hb@xt@\hsize{\hfil\unhbox\@tempboxa\hfil}%
 
6630
   }%
 
6631
  \endgroup
 
6632
  \vskip\belowcaptionskip
 
6633
}%
 
6634
\def\@make@capt@title#1#2{%
 
6635
 \@ifx@empty\float@link{\@firstofone}{\expandafter\href\expandafter{\float@link}}%
 
6636
  {#1}\@caption@fignum@sep#2%
 
6637
}%
 
6638
\def\@footnotemark@gobble{%
 
6639
 \@footnotemark
 
6640
 \@ifnextchar[{\@gobble@opt@i}{\@gobble}%
 
6641
}%
 
6642
\def\@gobble@opt@i[#1]#2{}%
 
6643
\def\@mpmakefntext#1{%
 
6644
 \flushing
 
6645
 \parindent=1em
 
6646
 \noindent
 
6647
 \hb@xt@1em{\hss\@makefnmark}%
 
6648
 #1%
 
6649
}%
 
6650
\def\@caption@fignum@sep{. }%
 
6651
\def\setfloatlink{\def\float@link}%
 
6652
\let\float@link\@empty
 
6653
\newcounter{figure}
 
6654
\renewcommand \thefigure {\@arabic\c@figure}
 
6655
\def\fps@figure{tbp}
 
6656
\def\ftype@figure{1}
 
6657
\def\ext@figure{lof}
 
6658
\def\fnum@figure{\figurename~\thefigure}
 
6659
\expandafter\newbox\csname fbox@\ftype@figure\endcsname
 
6660
\expandafter\setbox\csname fbox@\ftype@figure\endcsname\hbox{}%
 
6661
\appdef\class@documenthook{%
 
6662
 \do@if@floats{figure}{.fgx}%
 
6663
}%
 
6664
\appdef\class@enddocumenthook{%
 
6665
 \printfigures\relax
 
6666
}%
 
6667
\newcommand\printfigures{%
 
6668
 \@ifstar{\true@sw}{\floatp@sw{\true@sw}{\false@sw}}%
 
6669
 {%
 
6670
  \print@float{figure}{\oneapage}%
 
6671
 }{%
 
6672
  \print@float{figure}{}%
 
6673
 }%
 
6674
}%
 
6675
\appdef\@xfloat@prep{%
 
6676
 \appdef\@parboxrestore{\centering}%
 
6677
}%
 
6678
\newenvironment{table}
 
6679
               {\@float{table}}
 
6680
               {\end@float}
 
6681
\newenvironment{table*}
 
6682
               {\@dblfloat{table}}
 
6683
               {\end@dblfloat}
 
6684
\newcounter{table}
 
6685
\renewcommand\thetable{\@Roman\c@table}
 
6686
\def\fps@table{tbp}
 
6687
\def\ftype@table{2}
 
6688
\def\ext@table{lot}
 
6689
\def\fnum@table{\tablename~\thetable}
 
6690
\expandafter\newbox\csname fbox@\ftype@table\endcsname
 
6691
\expandafter\setbox\csname fbox@\ftype@table\endcsname\hbox{}%
 
6692
\def\listoftables{\print@toc{lot}}%
 
6693
\let\l@table\l@figure
 
6694
\def\table@hook{\small}%
 
6695
\def\squeezetable{\def\table@hook{\scriptsize}}%
 
6696
\appdef\@floatboxreset{\table@hook}%
 
6697
\def\set@table@environments{%
 
6698
 \floats@sw{}{%
 
6699
  \let@environment{longtable@float}{longtable}%
 
6700
  \let@environment{longtable}{longtable@write}%
 
6701
  \let@environment{longtable*@float}{longtable*}%
 
6702
  \let@environment{longtable*}{longtable*@write}%
 
6703
  \let@environment{turnpage@float}{turnpage}%
 
6704
  \let@environment{turnpage}{turnpage@write}%
 
6705
 }%
 
6706
 \do@if@floats{table}{.tbx}%
 
6707
}%
 
6708
\appdef\document@inithook{%
 
6709
 \set@table@environments
 
6710
}%
 
6711
\appdef\class@enddocumenthook{%
 
6712
 \printtables\relax
 
6713
}%
 
6714
\newenvironment{longtable@write}{%
 
6715
 \write@@float{longtable}{table}%
 
6716
}{%
 
6717
 \endwrite@float
 
6718
}%
 
6719
\newenvironment{longtable*@write}{%
 
6720
 \write@@float{longtable*}{table}%
 
6721
}{%
 
6722
 \endwrite@float
 
6723
}%
 
6724
\newenvironment{turnpage@write}{%
 
6725
 \immediate\write\tablewrite{\string\begin{turnpage}}%
 
6726
}{%
 
6727
 \immediate\write\tablewrite{\string\end{turnpage}}%
 
6728
}%
 
6729
\newcommand\printtables{%
 
6730
 \begingroup
 
6731
  \let@environment{longtable}{longtable@float}%
 
6732
  \let@environment{longtable*}{longtable*@float}%
 
6733
  \let@environment{turnpage}{turnpage@anchored}%
 
6734
  \prepdef\longtable{\trigger@float@par}%
 
6735
  \expandafter\prepdef\csname longtable*\endcsname{\trigger@float@par}%
 
6736
  \expandafter\prepdef\csname table@floats\endcsname{%
 
6737
   \onecolumngrid@push
 
6738
  }%
 
6739
  \expandafter\appdef\csname endtable@floats\endcsname{%
 
6740
   \onecolumngrid@pop
 
6741
  }%
 
6742
  \@ifstar{\true@sw}{\floatp@sw{\true@sw}{\false@sw}}%
 
6743
  {%
 
6744
   \print@float{table}{\oneapage}%
 
6745
  }{%
 
6746
   \print@float{table}{}%
 
6747
  }%
 
6748
 \endgroup
 
6749
}%
 
6750
\newenvironment{turnpage@anchored}{%
 
6751
 \onecolumngrid@push
 
6752
 \setbox\z@\vbox to\textwidth\bgroup
 
6753
  \columnwidth\textheight
 
6754
}{%
 
6755
  \vfil
 
6756
 \egroup
 
6757
 \rotatebox{90}{\box\z@}%
 
6758
 \onecolumngrid@pop
 
6759
}%
 
6760
\newenvironment{video}
 
6761
 {\@float{video}}
 
6762
 {\end@float}%
 
6763
\newenvironment{video*}
 
6764
 {\@dblfloat{video}}
 
6765
 {\end@dblfloat}%
 
6766
\newcounter{video}
 
6767
\renewcommand \thevideo {\@arabic\c@video}
 
6768
\def\ext@video{lov}%
 
6769
\def\fname@video{Video}%
 
6770
\def\lovname{List of Videos}%
 
6771
\def\fps@video{tbp}%
 
6772
\def\ftype@video{4}%
 
6773
\def\fnum@video{\fname@video~\thevideo}%
 
6774
\appdef\document@inithook{%
 
6775
 \@ifxundefined\c@float@type{}{%
 
6776
  \global\setcounter{float@type}{8}%
 
6777
 }%
 
6778
}%
 
6779
\expandafter\newbox\csname fbox@\ftype@video\endcsname
 
6780
\expandafter\setbox\csname fbox@\ftype@video\endcsname\hbox{}%
 
6781
\let\theHvideo\thevideo
 
6782
\def\listofvideos{\print@toc{lov}}%
 
6783
\let\l@video\l@figure
 
6784
\appdef\class@documenthook{%
 
6785
 \do@if@floats{video}{.vdx}%
 
6786
}%
 
6787
\appdef\class@enddocumenthook{%
 
6788
 \printvideos\relax
 
6789
}%
 
6790
\newcommand\printvideos{%
 
6791
 \@ifstar{\true@sw}{\floatp@sw{\true@sw}{\false@sw}}%
 
6792
 {%
 
6793
  \print@float{video}{\oneapage}%
 
6794
 }{%
 
6795
  \print@float{video}{}%
 
6796
 }%
 
6797
}%
 
6798
\def\endtabular@hook{}%
 
6799
\appdef\document@inithook{%
 
6800
 \@ifpackageloaded{dcolumn}{%
 
6801
  \expandafter\@ifnotrelax\csname NC@find@d\endcsname{}{%
 
6802
   \newcolumntype{d}{D{.}{.}{-1}}%
 
6803
  }%
 
6804
 }{}%
 
6805
}%
 
6806
\def\toprule{\hline\hline}%
 
6807
\def\colrule{\hline}%
 
6808
\def\botrule{\hline\hline}%
 
6809
\newenvironment{ruledtabular}{%
 
6810
 \def\array@default{v}%
 
6811
 \appdef\tabular@hook{\def\@halignto{to\hsize}}%
 
6812
 \let\tableft@skip@default\tableft@skip
 
6813
 \let\tableft@skip\tableft@skip@float
 
6814
 \let\tabmid@skip@default\tabmid@skip
 
6815
 \let\tabmid@skip\tabmid@skip@float
 
6816
 \let\tabright@skip@default\tabright@skip
 
6817
 \let\tabright@skip\tabright@skip@float
 
6818
 \let\array@row@pre@default\array@row@pre
 
6819
 \let\array@row@pre\array@row@pre@float
 
6820
 \let\array@row@pst@default\array@row@pst
 
6821
 \let\array@row@pst\array@row@pst@float
 
6822
 \appdef\array@row@rst{%
 
6823
  \let\array@row@pre\array@row@pre@default
 
6824
  \let\array@row@pst\array@row@pst@default
 
6825
  \let\tableft@skip\tableft@skip@default
 
6826
  \let\tabmid@skip\tabmid@skip@default
 
6827
  \let\tabright@skip\tabright@skip@default
 
6828
  \appdef\tabular@hook{\let\@halignto\@empty}%
 
6829
 }%
 
6830
}{%
 
6831
}%
 
6832
\def\@makefntext#1{%
 
6833
  \def\baselinestretch{1}%
 
6834
  \parindent1em%
 
6835
  \noindent
 
6836
  \hb@xt@1.8em{%
 
6837
   \hss\@makefnmark
 
6838
  }%
 
6839
  #1%
 
6840
  \par
 
6841
}%
 
6842
\def\@makefnmark{%
 
6843
 \hbox{%
 
6844
  \@textsuperscript{%
 
6845
   \normalfont\@thefnmark
 
6846
  }%
 
6847
 }%
 
6848
}%
 
6849
\expandafter\DeclareRobustCommand
 
6850
\expandafter\rev@citet
 
6851
\expandafter{%
 
6852
 \expandafter\begingroup
 
6853
  \expandafter\rtx@swap@citea
 
6854
  \expandafter\g@bblefirsttoken
 
6855
              \csname citet \endcsname
 
6856
}%
 
6857
\expandafter\DeclareRobustCommand
 
6858
\expandafter\rev@citealp
 
6859
\expandafter{%
 
6860
 \expandafter\begingroup
 
6861
  \expandafter\rtx@swap@citea
 
6862
  \expandafter\g@bblefirsttoken
 
6863
              \csname citealp \endcsname
 
6864
}%
 
6865
\expandafter\DeclareRobustCommand
 
6866
\expandafter\rev@citealpnum
 
6867
\expandafter{%
 
6868
 \expandafter\begingroup
 
6869
  \expandafter\rtx@swap@citenum
 
6870
  \expandafter\g@bblefirsttoken
 
6871
              \csname citealp \endcsname
 
6872
}%
 
6873
\def\rtx@swap@citenum{%
 
6874
  \rtx@swap@citea
 
6875
  \let\@cite\NAT@citenum
 
6876
  \let\NAT@mbox\mbox
 
6877
  \let\citeyear\NAT@citeyear
 
6878
  \let\NAT@space\NAT@spacechar
 
6879
}%
 
6880
\def\g@bblefirsttoken{%
 
6881
 \expandafter\true@sw
 
6882
 \expandafter\@empty
 
6883
}%
 
6884
\newcommand\rtx@citesuper[3]{%
 
6885
 \ifNAT@swa
 
6886
  \leavevmode
 
6887
  \unskip
 
6888
  \textsuperscript{\normalfont#1}%
 
6889
  \if*#3*\else\ (#3)\fi
 
6890
 \else
 
6891
  #1%
 
6892
 \fi
 
6893
 \endgroup
 
6894
}%
 
6895
\def\@makefnmark@cite{\begingroup\NAT@swatrue\@cite{{\@thefnmark}}{}{}}%
 
6896
\def\rtx@bibsection{%
 
6897
 \@ifx@empty\refname{%
 
6898
  \par
 
6899
 }{%
 
6900
  \expandafter\section\expandafter*\expandafter{\refname}%
 
6901
  \@nobreaktrue
 
6902
 }%
 
6903
}%
 
6904
\def\rtx@swap@citea{%
 
6905
 \let\NAT@def@citea\rtx@def@citea
 
6906
 \let\NAT@def@citea@close\rtx@def@citea@close
 
6907
 \let\NAT@def@citea@box\rtx@def@citea@box
 
6908
}%
 
6909
\def\rtx@def@citea{%
 
6910
 \def\@citea{\NAT@separator\NAT@space}%
 
6911
 \advance\c@NAT@ctr\@ne
 
6912
 \@ifnum{\count@>\tw@}{%
 
6913
  \@ifnum{\c@NAT@ctr=\count@}{\appdef\@citea{\NAT@conj\NAT@space}}{}%
 
6914
 }{%
 
6915
  \def\@citea{\NAT@space\NAT@conj\NAT@space}%
 
6916
 }%
 
6917
}%
 
6918
\def\rtx@def@citea@close{%
 
6919
 \rtx@def@citea
 
6920
 \prepdef\@citea{\NAT@@close}%
 
6921
}%
 
6922
\def\rtx@def@citea@box{%
 
6923
 \rtx@def@citea@close
 
6924
 \expandafter\def\expandafter\@citea\expandafter{\expandafter\NAT@mbox\expandafter{\@citea}}%
 
6925
}%
 
6926
\def\NAT@conj{and}%
 
6927
\def\NAT@BibitemShut#1{%
 
6928
 \def\@bibstop{#1}%
 
6929
 \let\bibitem@Stop\bibitemStop
 
6930
 \let\bibitem@NoStop\bibitemNoStop
 
6931
 \@ifx{\bibitemShut\relax}{\let\@bibitemShut\@empty}{%
 
6932
  \expandafter\def\expandafter\@bibitemShut\expandafter{\bibitemShut}%
 
6933
 }%
 
6934
}%
 
6935
\def\BibitemShut@ltx#1{%
 
6936
 \unskip
 
6937
 \def\@bibstop{#1}%
 
6938
 \let\bibitem@Stop\bibitemStop
 
6939
 \let\bibitem@NoStop\bibitemNoStop
 
6940
 \@ifx{\bibitemShut\relax}{\let\@bibitemShut\@empty}{%
 
6941
  \expandafter\def\expandafter\@bibitemShut\expandafter{\bibitemShut}%
 
6942
 }%
 
6943
}%
 
6944
\newenvironment{thebibliography}{}{}%
 
6945
\let\@listi\@empty
 
6946
\appdef\rtx@require@packages{%
 
6947
 \RequirePackage[sort&compress]{natbib}[2009/11/07 8.31a (PWD, AO)]%
 
6948
 \let@environment{NAT@thebibliography}{thebibliography}%
 
6949
 \let@environment{thebibliography}{rtx@thebibliography}%
 
6950
 \let\bibliographystyle@latex\bibliographystyle
 
6951
 \let\NAT@citesuper\rtx@citesuper
 
6952
\let\bibsection\rtx@bibsection
 
6953
\let\NATx@bibsetnum\NAT@bibsetnum
 
6954
\def\NAT@bibsetnum#1{%
 
6955
 \setlength{\topsep}{\z@}%
 
6956
 \NATx@bibsetnum{\ref{LastBibItem}}%
 
6957
}%
 
6958
\let\NATx@bibsetup\NAT@bibsetup
 
6959
\def\NAT@bibsetup{%
 
6960
 \setlength{\labelwidth}{\z@}%
 
6961
 \setlength{\labelsep}{\z@}%
 
6962
 \setlength{\itemindent}{\z@}%
 
6963
 \setlength{\listparindent}{\z@}%
 
6964
 \setlength{\topsep}{\z@}%
 
6965
 \setlength{\parsep}{\z@}%
 
6966
 \NATx@bibsetup
 
6967
}%
 
6968
\let\bibpreamble\@empty
 
6969
\def\newblock{\ }%
 
6970
\let\NATx@bibnumfmt\bibnumfmt
 
6971
\def\bibnumfmt{\place@bibnumber}%
 
6972
\let\NAT@merge\thr@@
 
6973
\let\NAT@citeyear\citeyear
 
6974
\let\onlinecite\rev@citealp
 
6975
\let\textcite\rev@citet
 
6976
\@ifx{\BibitemShut\NAT@BibitemShut}{%
 
6977
 \class@info{Repairing natbib's \string\BibitemShut}%
 
6978
 \let\BibitemShut\BibitemShut@ltx
 
6979
}{}%
 
6980
\let\bibliographystyle@latex\bibliographystyle
 
6981
\def\bibliographystyle{\@booleantrue\bibliographystyle@sw\def\@bibstyle}%
 
6982
\@booleanfalse\bibliographystyle@sw
 
6983
\def\NAT@bibitem@cont{%
 
6984
 \let\bibitem@Stop\bibitemContinue@Stop
 
6985
 \let\bibitem@NoStop\bibitemContinue
 
6986
}%
 
6987
\def\bibitemNoStop{%
 
6988
 \@ifx@empty\@bibitemShut{.\spacefactor\@mmm\space}{\@bibitemShut}%
 
6989
}%
 
6990
\def\bibitemContinue{%
 
6991
 \@ifx@empty\@bibitemShut{;\spacefactor\@mmm\space}{\@bibitemShut}%
 
6992
}%
 
6993
\def\bibitemContinue@Stop{%
 
6994
 \@ifx@empty\@bibitemShut{\spacefactor\@mmm\space}{\@bibitemShut}%
 
6995
}%
 
6996
}%
 
6997
\DeclareRobustCommand\onlinecite{\@onlinecite}%
 
6998
\DeclareRobustCommand\textcite{\@textcite}%
 
6999
\let\bibliography@latex\bibliography
 
7000
\def\bibliography#1{%
 
7001
 \auto@bib@empty
 
7002
 \begingroup
 
7003
  \let\auto@bib@innerbib\@empty
 
7004
  \@ifx@empty{\pre@bibdata}{%
 
7005
   \bibliography@latex{#1}%
 
7006
  }{%
 
7007
   \@if@empty{#1}{%
 
7008
    \expandafter\bibliography@latex\expandafter{\pre@bibdata}%
 
7009
   }{%
 
7010
    \expandafter\bibliography@latex\expandafter{\pre@bibdata,#1}%
 
7011
   }%
 
7012
  }%
 
7013
 \endgroup
 
7014
}%
 
7015
\let\pre@bibdata\@empty
 
7016
\newenvironment{rtx@thebibliography}[1]{%
 
7017
 \NAT@thebibliography{#1}%
 
7018
 \let\@TBN@opr\present@bibnote
 
7019
 \@FMN@list
 
7020
}{%
 
7021
 \auto@bib@innerbib
 
7022
 \edef\@currentlabel{\arabic{NAT@ctr}}%
 
7023
 \label{LastBibItem}%
 
7024
 \endNAT@thebibliography
 
7025
 \aftergroup\auto@bib@empty
 
7026
}%
 
7027
\def\present@bibnote#1#2{%
 
7028
 \item[%
 
7029
  \textsuperscript{%
 
7030
   \normalfont
 
7031
   \Hy@raisedlink{\hyper@anchorstart{frontmatter.#1}\hyper@anchorend}%
 
7032
   \begingroup
 
7033
    \csname c@\@mpfn\endcsname#1\relax
 
7034
    \frontmatter@thefootnote
 
7035
   \endgroup
 
7036
  }%
 
7037
 ]#2\par
 
7038
}%
 
7039
\def\write@bibliographystyle{%
 
7040
 \@ifxundefined\@bibstyle{}{%
 
7041
  \expandafter\bibliographystyle@latex\expandafter{\@bibstyle}%
 
7042
  \bibliographystyle@sw{}{\@bibdataout@rev}%
 
7043
 }%
 
7044
 \global\let\write@bibliographystyle\relax
 
7045
}%
 
7046
\AtEndDocument{\write@bibliographystyle}%
 
7047
\def\rtx@@citetp[#1]{\@ifnextchar[{\rtx@citex[#1]}{\rtx@citex[][#1]}}%
 
7048
\def\rtx@citex[#1][#2]#3{%
 
7049
 \begingroup
 
7050
  \def\@tempa{[#1][#2]{#3}}%
 
7051
  \@ifx{\@cite\NAT@citesuper}{%
 
7052
   \leavevmode
 
7053
   \skip@\lastskip
 
7054
   \unskip
 
7055
   \super@cite@let
 
7056
  }{%
 
7057
   \super@cite@end
 
7058
  }%
 
7059
}%
 
7060
\def\super@cite@let{%
 
7061
 \futurelet\@let@token\super@cite@check
 
7062
}%
 
7063
\def\super@cite@end{%
 
7064
 \aftergroup\@citex\expandafter\endgroup\@tempa
 
7065
}%
 
7066
\def\super@cite@check{%
 
7067
 \@ifx{\@let@token\@sptoken}{%
 
7068
  \super@cite@end
 
7069
 }{%
 
7070
  \super@cite@swap
 
7071
 }%
 
7072
}%
 
7073
\long\def\super@cite@swap#1{%
 
7074
 \expandafter\@ifx\expandafter{\csname rtx@automove#1\endcsname\@empty}{%
 
7075
  #1%
 
7076
  \super@cite@let
 
7077
 }{%
 
7078
  \super@cite@end
 
7079
  #1%
 
7080
 }%
 
7081
}%
 
7082
\expandafter\let\csname rtx@automove.\endcsname\@empty
 
7083
\expandafter\let\csname rtx@automove,\endcsname\@empty
 
7084
\expandafter\let\csname rtx@automove:\endcsname\@empty
 
7085
\expandafter\let\csname rtx@automove;\endcsname\@empty
 
7086
\appdef\class@documenthook{%
 
7087
 \citeautoscript@sw{%
 
7088
  \@ifx{\@cite\NAT@citesuper}{%
 
7089
   \let\NAT@@citetp\rtx@@citetp
 
7090
  }{}%
 
7091
 }{}%
 
7092
}%
 
7093
\def\mini@note{\save@note\mini@notes}%Implicit #2
 
7094
\def\save@note#1#2{%
 
7095
  \stepcounter\@mpfn
 
7096
  \protected@xdef\@thefnmark{\thempfn}%
 
7097
  \@footnotemark
 
7098
  \expandafter\g@addto@macro
 
7099
  \expandafter#1%
 
7100
  \expandafter{%
 
7101
  \expandafter \@@footnotetext
 
7102
  \expandafter {\@thefnmark}{#2}%
 
7103
              }%
 
7104
}%
 
7105
\long\def\@@footnotetext#1{\def\@thefnmark{#1}\@footnotetext}%
 
7106
\let\mini@notes\@empty
 
7107
\def\rev@citemark#1{%
 
7108
 \expandafter\cite\expandafter{\@thefnmark}%
 
7109
}%
 
7110
\def\rev@endtext#1{%
 
7111
 \let\@endnotelabel\@thefnmark
 
7112
 \@endnotetext
 
7113
}%
 
7114
\def\endnote@ext{.end}%
 
7115
\def\bibdata@app{Notes}%
 
7116
\def\bibdata@ext{bib}%
 
7117
\long\def\@endnotetext#1{%
 
7118
  \begingroup
 
7119
    \endnote@relax
 
7120
    \immediate\write\@bibdataout{%
 
7121
     @FOOTNOTE{%
 
7122
      \@endnotelabel,%
 
7123
      key="\@endnotelabel",%
 
7124
      note="#1"%
 
7125
     }%
 
7126
    }%
 
7127
  \endgroup
 
7128
}%
 
7129
\newwrite\@bibdataout
 
7130
\def\endnote@relax{%
 
7131
 \let\label\relax \let\index\relax \let\glossary\relax
 
7132
 \let\cite \relax \let\ref  \relax \let\pageref \relax
 
7133
 \let\(    \relax \let\)    \relax \let\\       \relax
 
7134
 \let~\relax
 
7135
 \let \protect \@unexpandable@protect
 
7136
 \newlinechar`\^^M%
 
7137
 \let\begin\relax \let\end\relax
 
7138
}%
 
7139
\appdef\class@documenthook{\@bibdataout@init}%
 
7140
\def\@bibdataout@init{%
 
7141
 \immediate\openout\@bibdataout\pre@bibdata.\bibdata@ext\relax
 
7142
}%
 
7143
\def\@bibdataout@rev{%
 
7144
 \immediate\write\@bibdataout{%
 
7145
  @CONTROL{%
 
7146
   REVTEX41Control%
 
7147
   \eprint@enable@sw{}{,eprint=""}%
 
7148
  }%
 
7149
 }%
 
7150
 \if@filesw
 
7151
  \immediate\write\@auxout{\string\citation{REVTEX41Control}}%
 
7152
 \fi
 
7153
}%
 
7154
\def\printendnotes{%
 
7155
 \class@warn{The \string\printendnotes\space command no longer serves any function. Please remove it from your document.}%
 
7156
}%
 
7157
\def\make@footnote@endnote{%
 
7158
 \footinbib@sw{%
 
7159
  \authoryear@sw{}{%
 
7160
   \ltx@footnote@push
 
7161
   \def\thempfn{Note\thefootnote}%
 
7162
   \let\ltx@footmark\rev@citemark
 
7163
   \let\ltx@foottext\rev@endtext
 
7164
  }%
 
7165
 }{}%
 
7166
}%
 
7167
\def\ltx@footnote@push{%
 
7168
 \let\ltx@footmark@latex\ltx@footmark
 
7169
 \let\ltx@foottext@latex\ltx@foottext
 
7170
 \let\thempfn@latex\thempfn
 
7171
 \def\ltx@footnote@pop{%
 
7172
  \let\ltx@footmark\ltx@footmark@latex
 
7173
  \let\ltx@foottext\ltx@foottext@latex
 
7174
  \let\thempfn\thempfn@latex
 
7175
 }%
 
7176
}%
 
7177
\appdef\class@documenthook{%
 
7178
 \make@footnote@endnote
 
7179
}%
 
7180
\def\auto@bib{%
 
7181
 \@ifx@empty\@FMN@list{%
 
7182
  \footinbib@sw{%
 
7183
   \@ifnum{\csname c@\@mpfn\endcsname>\z@}{%
 
7184
    \true@sw
 
7185
   }{%
 
7186
    \test@bbl@sw
 
7187
   }%
 
7188
  }{%
 
7189
   \test@bbl@sw
 
7190
  }%
 
7191
 }{%
 
7192
  \true@sw
 
7193
 }%
 
7194
 {%
 
7195
  \bibliography{}%
 
7196
 }{}%
 
7197
}%
 
7198
\def\auto@bib@empty{%
 
7199
 \let\auto@bib\@empty
 
7200
}%
 
7201
\def\test@bbl@sw{%
 
7202
 \setbox\z@\vbox\bgroup
 
7203
  \let\providecommand\providecommand@j@nk
 
7204
  \let\bibfield\@gobbletwo
 
7205
  \let\bibinfo\@gobbletwo
 
7206
  \let\translation\@gobble
 
7207
  \let\BibitemOpen\@empty
 
7208
  \let\bibitemStop\@empty
 
7209
  \let\bibitemNoStop\@empty
 
7210
  \let\EOS\@empty
 
7211
  \let\BibitemShut\@gobble
 
7212
  \let\bibAnnoteFile\@gobbletwo
 
7213
  \let\bibAnnote\@gobblethree
 
7214
  \let\textbf\@gobble
 
7215
  \let\emph\@gobble
 
7216
  \@booleanfalse\bibitem@sw
 
7217
  \let\bibitem\bibitem@set
 
7218
  \auto@bib@innerbib
 
7219
  \bibitem@sw{\aftergroup\true@sw}{\aftergroup\false@sw}%
 
7220
 \egroup
 
7221
}%
 
7222
\newcommand\bibitem@set[1][]{%
 
7223
 \bibitem@sw{}{%
 
7224
  \@booleantrue\bibitem@sw
 
7225
  \aftergroup\@booleantrue\aftergroup\bibitem@sw
 
7226
 }%
 
7227
}%
 
7228
\def\auto@bib@innerbib{%
 
7229
 \begingroup
 
7230
  \let@environment{thebibliography}{thebibliography@nogroup}%
 
7231
  \bibliography{}%
 
7232
 \endgroup
 
7233
}%
 
7234
\def\thebibliography@nogroup#1{%
 
7235
 \endgroup
 
7236
 \def\@currenvir{thebibliography}%
 
7237
}%
 
7238
\def\endthebibliography@nogroup{\begingroup}%
 
7239
\long\def \@gobblethree #1#2#3{}%
 
7240
\def\providecommand@j@nk#1[#2]{%
 
7241
 \@ifnum{#2=\z@}{\def\j@nk}{%
 
7242
  \@ifnum{#2=\@ne}{\def\j@nk##1}{%
 
7243
   \@ifnum{#2=\tw@}{\def\j@nk##1##2}{%
 
7244
    \@ifnum{#2=\thr@@}{\def\j@nk##1##2##3}{%
 
7245
    }%
 
7246
   }%
 
7247
  }%
 
7248
 }%
 
7249
}%
 
7250
\def\thepage{\@arabic\c@page}%
 
7251
\appdef\setup@hook{%
 
7252
 \tabbingsep \labelsep
 
7253
 \leftmargin\leftmargini
 
7254
 \labelwidth\leftmargin\advance\labelwidth-\labelsep
 
7255
 \let\@listi\@listI
 
7256
 \@listi
 
7257
}%
 
7258
\appdef\class@documenthook{%
 
7259
 \global\c@page\@ne
 
7260
 \def\curr@envir{document}%
 
7261
 \mark@envir{\curr@envir}%
 
7262
}%
 
7263
\def\open@onecolumn{%
 
7264
 \open@column@one\@ne
 
7265
 \set@colht
 
7266
 \@floatplacement
 
7267
 \@dblfloatplacement
 
7268
}%
 
7269
\def\open@twocolumn{%
 
7270
 \open@column@mlt\tw@
 
7271
 \set@colht
 
7272
 \@floatplacement
 
7273
 \@dblfloatplacement
 
7274
 \sloppy
 
7275
 \let\set@listindent\set@listindent@
 
7276
}%
 
7277
\def\appendix{%
 
7278
 \par
 
7279
 \setcounter{section}\z@
 
7280
 \setcounter{subsection}\z@
 
7281
 \setcounter{subsubsection}\z@
 
7282
 \def\thesubsection{\arabic{subsection}}%
 
7283
 \def\thesubsubsection{\alph{subsubsection}}%
 
7284
 \@addtoreset{equation}{section}%
 
7285
 \def\theequation@prefix{\thesection}%
 
7286
 \addtocontents{toc}{\protect\appendix}%
 
7287
 \@ifstar{%
 
7288
  \def\thesection{\unskip}%
 
7289
  \def\theequation@prefix{A.}%
 
7290
 }{%
 
7291
  \def\thesection{\Alph{section}}%
 
7292
 }%
 
7293
}%
 
7294
\def\title@column#1{%
 
7295
 \minipagefootnote@init
 
7296
 #1%
 
7297
 \minipagefootnote@foot
 
7298
}%
 
7299
\def\close@column{%
 
7300
 \newpage
 
7301
}%
 
7302
\def\galley@outdent{\rightmargin-\columnwidth\advance\rightmargin-\columnsep}%
 
7303
\let\widetext@outdent\@empty
 
7304
\newenvironment{widetext@galley}{%
 
7305
  \list{}{%
 
7306
    \topsep        \z@skip
 
7307
    \listparindent \parindent
 
7308
    \itemindent    \parindent
 
7309
    \leftmargin    \z@
 
7310
    \parsep        \z@\@plus\p@
 
7311
    \widetext@outdent
 
7312
    \relax
 
7313
  }%
 
7314
  \item\relax
 
7315
}{
 
7316
  \endlist
 
7317
}%
 
7318
\def\title@column@grid#1{%
 
7319
 \minipagefootnote@init
 
7320
  \onecolumngrid
 
7321
  \begingroup
 
7322
   \let\@footnotetext\frontmatter@footnotetext
 
7323
   \ltx@no@footnote
 
7324
   #1%
 
7325
  \endgroup
 
7326
  \twocolumngrid
 
7327
 \minipagefootnote@foot
 
7328
}%
 
7329
\def\close@column@grid{%
 
7330
 \balancelastpage@sw{%
 
7331
  \onecolumngrid
 
7332
 }{}%
 
7333
}%
 
7334
\newenvironment{widetext@grid}{%
 
7335
  \par\ignorespaces
 
7336
  \setbox\widetext@top\vbox{%
 
7337
   \hb@xt@\hsize{%
 
7338
    \leaders\hrule\hfil
 
7339
    \vrule\@height6\p@
 
7340
   }%
 
7341
  }%
 
7342
  \setbox\widetext@bot\hb@xt@\hsize{%
 
7343
    \vrule\@depth6\p@
 
7344
    \leaders\hrule\hfil
 
7345
  }%
 
7346
  \onecolumngrid
 
7347
  \vskip10\p@
 
7348
  \dimen@\ht\widetext@top\advance\dimen@\dp\widetext@top
 
7349
  \cleaders\box\widetext@top\vskip\dimen@
 
7350
  \vskip6\p@
 
7351
  \prep@math@patch
 
7352
}{%
 
7353
  \par
 
7354
  \vskip6\p@
 
7355
  \setbox\widetext@bot\vbox{%
 
7356
   \hb@xt@\hsize{\hfil\box\widetext@bot}%
 
7357
  }%
 
7358
  \dimen@\ht\widetext@bot\advance\dimen@\dp\widetext@bot
 
7359
  \cleaders\box\widetext@bot\vskip\dimen@
 
7360
  \vskip8.5\p@
 
7361
  \twocolumngrid\global\@ignoretrue
 
7362
  \@endpetrue
 
7363
}%
 
7364
\newbox\widetext@top
 
7365
\newbox\widetext@bot
 
7366
\def\set@page@grid{%
 
7367
 \twocolumn@sw{%
 
7368
  \let\set@footnotewidth\set@footnotewidth@two
 
7369
  \let\compose@footnotes\compose@footnotes@two
 
7370
  \let@environment{widetext}{widetext@grid}%
 
7371
  \let\title@column\title@column@grid
 
7372
  \let\close@column\close@column@grid
 
7373
 }{%
 
7374
  \let@environment{widetext}{widetext@galley}%
 
7375
  \preprintsty@sw{%
 
7376
  }{%
 
7377
   \galley@sw{%
 
7378
    \let\widetext@outdent\galley@outdent
 
7379
   }{}%
 
7380
  }%
 
7381
 }%
 
7382
}%
 
7383
\appdef\setup@hook{\set@page@grid}%
 
7384
\DeclareOldFontCommand{\rm}{\normalfont\rmfamily}{\mathrm}
 
7385
\DeclareOldFontCommand{\sf}{\normalfont\sffamily}{\mathsf}
 
7386
\DeclareOldFontCommand{\tt}{\normalfont\ttfamily}{\mathtt}
 
7387
\DeclareOldFontCommand{\bf}{\normalfont\bfseries}{\mathbf}
 
7388
\DeclareOldFontCommand{\it}{\normalfont\itshape}{\mathit}
 
7389
\DeclareOldFontCommand{\sl}{\normalfont\slshape}{\@nomath\sl}
 
7390
\DeclareOldFontCommand{\sc}{\normalfont\scshape}{\@nomath\sc}
 
7391
\DeclareRobustCommand*\cal{\@fontswitch\relax\mathcal}
 
7392
\DeclareRobustCommand*\mit{\@fontswitch\relax\mathnormal}
 
7393
\def\today{\ifcase\month\or
 
7394
  January\or February\or March\or April\or May\or June\or
 
7395
  July\or August\or September\or October\or November\or December\fi
 
7396
  \space\number\day, \number\year}
 
7397
\def\partname{Part}
 
7398
\def\tocname{Contents}
 
7399
\def\lofname{List of Figures}
 
7400
\def\lotname{List of Tables}
 
7401
\def\refname{References}
 
7402
\def\indexname{Index}
 
7403
\def\figurename{FIG.}
 
7404
\def\figuresname{Figures}%
 
7405
\def\tablename{TABLE}
 
7406
\def\tablesname{Tables}%
 
7407
\def\abstractname{Abstract}
 
7408
\def\appendixesname{Appendixes}%
 
7409
\def\appendixname{Appendix}%
 
7410
\def\acknowledgmentsname{Acknowledgments}
 
7411
\def\journalname{??}
 
7412
\def\copyrightname{??}
 
7413
\def\andname{and}
 
7414
\def\@pacs@name{PACS numbers: }%
 
7415
\def\@keys@name{Keywords: }%
 
7416
\def\ppname{pp}
 
7417
\def\numbername{number}
 
7418
\def\volumename{volume}
 
7419
\def\Dated@name{Dated: }%
 
7420
\def\Received@name{Received }%
 
7421
\def\Revised@name{Revised }%
 
7422
\def\Accepted@name{Accepted }%
 
7423
\def\Published@name{Published }%
 
7424
\def\address{\replace@command\address\affiliation}%
 
7425
\def\altaddress{\replace@command\altaddress\altaffiliation}%
 
7426
\newenvironment{references}{%
 
7427
 \class@warn@end{The references environment is not supported; use thebibliography instead.}
 
7428
 \gdef\references{\thebibliography{}}\references
 
7429
}{%
 
7430
 \endthebibliography
 
7431
}%
 
7432
\def\draft{%
 
7433
 \class@warn@end{Command \string\draft\space is obsolete;^^JInvoke option draft instead.}%
 
7434
 \@booleantrue\draft@sw
 
7435
}%
 
7436
\def\tighten{%
 
7437
 \class@warn@end{Command \string\tighten\space is obsolete;^^JInvoke option tightenlines instead.}%
 
7438
 \@booleantrue\tightenlines@sw
 
7439
}%
 
7440
\def\tableline{%
 
7441
 \noalign{%
 
7442
  \class@warn@end{Command \string\tableline\space is obsolete;^^JUse \string\colrule\space instead.}%
 
7443
  \global\let\tableline\colrule
 
7444
 }%
 
7445
 \tableline
 
7446
}%
 
7447
\def\case{\replace@command\case\frac}%
 
7448
\def\slantfrac{\replace@command\slantfrac\frac}%
 
7449
\def\tablenote{\replace@command\tablenote\footnote}%
 
7450
\def\tablenotemark{\replace@command\tablenotemark\footnotemark}%
 
7451
\def\tablenotetext{\replace@command\tablenotetext\footnotetext}%
 
7452
\DeclareRobustCommand\REV@text[1]{%
 
7453
 \relax
 
7454
 \ifmmode
 
7455
  \mathchoice
 
7456
   {\hbox{{\everymath{\displaystyle     }#1}}}%
 
7457
   {\hbox{{\everymath{\textstyle        }#1}}}%
 
7458
   {\hbox{{\everymath{\scriptstyle      }\let\f@size\sf@size\selectfont#1}}}%
 
7459
   {\hbox{{\everymath{\scriptscriptstyle}\let\f@size\ssf@size\selectfont#1}}}%
 
7460
  \glb@settings
 
7461
 \else
 
7462
  \mbox{#1}%
 
7463
 \fi
 
7464
}%
 
7465
\DeclareRobustCommand\REV@bbox[1]{%
 
7466
 \relax
 
7467
 \ifmmode
 
7468
  \mathchoice
 
7469
   {\hbox{{\everymath{\displaystyle     }\boldmath$#1$}}}%
 
7470
   {\hbox{{\everymath{\textstyle        }\boldmath$#1$}}}%
 
7471
   {\hbox{{\everymath{\scriptstyle      }\boldmath$#1$}}}%
 
7472
   {\hbox{{\everymath{\scriptscriptstyle}\boldmath$#1$}}}%
 
7473
  \glb@settings
 
7474
 \else
 
7475
  \mbox{#1}%
 
7476
 \fi
 
7477
}%
 
7478
\DeclareRobustCommand\REV@bm[1]{%
 
7479
 \class@warn@end{To use \string\bm, please load the bm package!}%
 
7480
 \global\let\bm\relax
 
7481
}%
 
7482
\def\FL{\obsolete@command\FL}%
 
7483
\def\FR{\obsolete@command\FR}%
 
7484
\def\narrowtext{\obsolete@command\narrowtext}%
 
7485
\def\mediumtext{\obsolete@command\mediumtext}%
 
7486
\newenvironment{quasitable}{%
 
7487
 \let@environment{tabular}{longtable}%
 
7488
}{%
 
7489
}%
 
7490
\let\text\REV@text
 
7491
\let\bm\REV@bm
 
7492
\appdef\setup@hook{%
 
7493
 \providecommand\bibinfo[2]{#2}%
 
7494
 \providecommand\eprint[2][]{#2}%
 
7495
}%
 
7496
\def\bbox#1{%
 
7497
 \class@warn@end{\string\bbox\space is obsolete,^^Jload the bm package and use \string\bm\space instead.}%
 
7498
 \global\let\bbox\relax
 
7499
}%
 
7500
\newenvironment{mathletters}{%
 
7501
 \class@warn@end{Environment {mathletters} is obsolete;^^Jload the amsmath package and use {subequations}!}%
 
7502
 \global\let\mathletters\@empty
 
7503
}{%
 
7504
}%
 
7505
\def\eqnum#1{%
 
7506
 \class@warn@end{\string\eqnum\space is obsolete, load the amsmath package and use \string\tag!}%
 
7507
 \global\let\eqnum\@gobble
 
7508
}%
 
7509
\appdef\rtx@require@packages{%
 
7510
 \RequirePackage{revsymb4-1}%
 
7511
}%
 
7512
\appdef\class@documenthook{\revsymb@inithook}%
 
7513
\def\@LN@LLerror@org{%
 
7514
 \PackageError{lineno}{%
 
7515
  \string\linelabel\space without \string\linenumbers
 
7516
 }{%
 
7517
  Just see documentation. (New feature v4.11)%
 
7518
 }%
 
7519
 \@gobble
 
7520
}%
 
7521
\def\@LN@LLerror@ltx{%
 
7522
 \PackageWarning{lineno}{%
 
7523
  To make the \string\linelabel\space command work, you must issue the \string\linenumbers\ command
 
7524
 }%
 
7525
 \@gobble
 
7526
}%
 
7527
\appdef\class@documenthook{%
 
7528
 \@ifx{\@LN@LLerror\@LN@LLerror@org}{%
 
7529
  \class@info{Overriding \string\@LN@LLerror}%
 
7530
  \let\@LN@LLerror\@LN@LLerror@ltx
 
7531
 }{}%
 
7532
 \@ifpackageloaded{lineno}{%
 
7533
  \@ifxundefined{\set@linepenalties}{}{%
 
7534
   \def\prep@absbox{\set@linepenalties}%
 
7535
   \def\post@absbox{\let\@LN@parpgbrk\@empty\@linenumberpar}%
 
7536
  }%
 
7537
 }{}%
 
7538
}%
 
7539
\appdef\rtx@require@packages{%
 
7540
 \InputIfFileExists{\jobname.rty}{}{}%
 
7541
}%
 
7542
\@parse@class@options@society
 
7543
\@process@society{aps}%
 
7544
\@parse@class@options@\@journal
 
7545
\expandafter\@process@journal\expandafter{\@journal@default}%
 
7546
\@parse@class@options@\@pointsize
 
7547
\expandafter\@process@pointsize\expandafter{\@pointsize@default}%
 
7548
\@options
 
7549
\rtx@require@packages
 
7550
\setup@hook
 
7551
\endinput
 
7552
%%
 
7553
%% End of file `revtex4-1.cls'.