Advertisement
Guest User

revtex4-1.cls

a guest
Nov 29th, 2013
752
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 202.49 KB | None | 0 0
  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}{\@booleantrue\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'.
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement