home *** CD-ROM | disk | FTP | other *** search
/ Meeting Pearls 3 / Meeting_Pearls_III.iso / Pearls / texmf / inputs / latex / unpacked / latex.ltx (.txt) < prev    next >
LaTeX Document  |  1995-06-21  |  235KB  |  7,057 lines

  1. %% This is file `latex.ltx', generated 
  2. %% on <1995/6/21> with the docstrip utility (2.2i).
  3. %% The original source files were:
  4. %% ltdirchk.dtx  (with options: `initex,2ekernel,dircheck')
  5. %% ltplain.dtx  (with options: `2ekernel')
  6. %% ltvers.dtx  (with options: `2ekernel')
  7. %% ltdefns.dtx  (with options: `2ekernel')
  8. %% ltalloc.dtx  (with options: `2ekernel')
  9. %% ltcntrl.dtx  (with options: `2ekernel')
  10. %% lterror.dtx  (with options: `2ekernel')
  11. %% ltpar.dtx  (with options: `2ekernel')
  12. %% ltspace.dtx  (with options: `2ekernel')
  13. %% ltlogos.dtx  (with options: `2ekernel')
  14. %% ltfiles.dtx  (with options: `2ekernel')
  15. %% ltoutenc.dtx  (with options: `2ekernel')
  16. %% ltfssbas.dtx  (with options: `2ekernel')
  17. %% ltfsstrc.dtx  (with options: `2ekernel')
  18. %% ltfsscmp.dtx  (with options: `compat,2ekernel')
  19. %% ltfssdcl.dtx  (with options: `compat,2ekernel')
  20. %% ltfssini.dtx  (with options: `compat')
  21. %% ltfntcmd.dtx  (with options: `2ekernel')
  22. %% ltcounts.dtx  (with options: `2ekernel')
  23. %% ltpageno.dtx  (with options: `2ekernel')
  24. %% ltxref.dtx  (with options: `2ekernel')
  25. %% ltlength.dtx  (with options: `2ekernel')
  26. %% ltmiscen.dtx  (with options: `2ekernel')
  27. %% ltmath.dtx  (with options: `2ekernel')
  28. %% ltlists.dtx  (with options: `2ekernel')
  29. %% ltboxes.dtx  (with options: `2ekernel')
  30. %% lttab.dtx  (with options: `2ekernel')
  31. %% ltpictur.dtx  (with options: `2ekernel')
  32. %% ltthm.dtx  (with options: `2ekernel')
  33. %% ltsect.dtx  (with options: `2ekernel')
  34. %% ltfloat.dtx  (with options: `2ekernel')
  35. %% ltidxglo.dtx  (with options: `2ekernel')
  36. %% ltbibl.dtx  (with options: `2ekernel')
  37. %% ltpage.dtx  (with options: `2ekernel')
  38. %% ltoutput.dtx  (with options: `2ekernel')
  39. %% ltclass.dtx  (with options: `2ekernel')
  40. %% ltfinal.dtx  (with options: `2ekernel')
  41. %% This is a generated file. 
  42. %% Copyright 1993-1995 the LaTeX3 project and any individual authors 
  43. %% listed elsewhere in this file. All rights reserved. 
  44. %% For further copyright information see the file legal.txt, and any 
  45. %% other copyright notices in this file. 
  46. %% This file is part of the LaTeX2e system. 
  47. %% ---------------------------------------- 
  48. %% This system is distributed in the hope that it will be useful, 
  49. %% but WITHOUT ANY WARRANTY; without even the implied warranty of 
  50. %% MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 
  51. %% For error reports concerning UNCHANGED versions of this file no more 
  52. %% than one year old, see bugs.txt. 
  53. %% Please do not request updates from us directly. Primary 
  54. %% distribution is through the CTAN archives. 
  55. %% IMPORTANT COPYRIGHT NOTICE: 
  56. %% You are NOT ALLOWED to distribute this file alone. 
  57. %% You are allowed to distribute this file under the condition that it is 
  58. %% distributed together with all the files listed in manifest.txt. 
  59. %% If you receive only some of these files from someone, complain! 
  60. %% Permission is granted to copy this file to another file with a clearly 
  61. %% different name and to customize the declarations in that copy to serve 
  62. %% the needs of your installation, provided that you comply with 
  63. %% the conditions in the file legal.txt. 
  64. %% However, NO PERMISSION is granted to generate or to distribute a 
  65. %% modified version of this file under its original name. 
  66. %% You are NOT ALLOWED to change this file. 
  67. %% MODIFICATION ADVICE: 
  68. %% If you want to customize this file, it is best to make a copy of the 
  69. %% source file(s) from which it was produced. Use a different name for 
  70. %% your copy(ies) and modify the copy(ies); this will ensure that your 
  71. %% modifications do not get overwritten when you install a new release of 
  72. %% the standard system. You should also ensure that your modified source 
  73. %% file does not generate any modified file with the same name as a 
  74. %% standard file. You can then easily distribute your modifications by 
  75. %% distributing the modified and renamed copy of the source file, taking 
  76. %% care to observe the conditions in legal.txt; this will ensure that 
  77. %% other users can safely use your modifications. 
  78. %% You will also need to produce your own, suitably named, .ins file to 
  79. %% control the generation of files from your source file; this file 
  80. %% should contain your own preambles for the files it generates, not 
  81. %% those in the standard .ins files. 
  82. %% The names of the source files used are shown above. 
  83. %%% File: ltdirchk
  84. \ifnum\catcode`\{=1
  85.   \errmessage
  86.   {LaTeX must be made using an initex with no format preloaded}
  87. \catcode`\{=1
  88. \catcode`\}=2
  89. \catcode`\#=6
  90. \catcode`\^=7
  91. \chardef\active=13
  92. \catcode`\@=11
  93. \countdef\count@=255
  94. \let\bgroup={ \let\egroup=}
  95. \ifx\@@input\@undefined\let\@@input\input\fi
  96. \ifx\@@end\@undefined\let\@@end\end\fi
  97. \chardef\@inputcheck0
  98. \chardef\sixt@@n=16
  99. \newlinechar`\^^J
  100. \def\typeout{\immediate\write17}
  101. \def\dospecials{\do\ \do\\\do\{\do\}\do\$\do\&%
  102.   \do\#\do\^\do\_\do\%\do\~}
  103. \def\@makeother#1{\catcode`#1=12\relax}
  104. \def\space{ }
  105. \def\@tempswafalse{\let\if@tempswa\iffalse}
  106. \def\@tempswatrue{\let\if@tempswa\iftrue}
  107. \let\if@tempswa\iffalse
  108. \def\loop#1\repeat{\def\iterate{#1\relax\expandafter\iterate\fi}%
  109.   \iterate \let\iterate\relax}
  110. \let\repeat\fi
  111. \def\two@digits#1{\ifnum#1<10 0\fi\number#1}
  112. \long\def\@firstoftwo#1#2{#1}
  113. \long\def\@secondoftwo#1#2{#2}
  114. \def\ProvidesFile#1{%
  115.   \begingroup
  116.     \catcode`\ 10 %
  117.     \@makeother\/%
  118.     \@ifnextchar[{\@providesfile{#1}}{\@providesfile{#1}[]}}
  119. \def\@providesfile#1[#2]{%
  120.     \wlog{File: #1 #2}%
  121.     \expandafter\xdef\csname ver@#1\endcsname{#2}%
  122.   \endgroup}
  123. \def\@empty{}
  124. \catcode`\%=12
  125. \def\@percentchar{%}
  126. \catcode`\%=14
  127. \let\@currdir\@undefined
  128. \let\input@path\@undefined
  129. \let\filename@parse\@undefined
  130. \def\strip@prefix#1>{}
  131. \input texsys.cfg
  132. \begingroup
  133. \count@\time
  134. \divide\count@ 60
  135. \count2=-\count@
  136. \multiply\count2 60
  137. \advance\count2 \time
  138. \edef\today{%
  139.   \the\year/\two@digits{\the\month}/\two@digits{\the\day}:%
  140.     \two@digits{\the\count@}:\two@digits{\the\count2}}
  141. \immediate\openout15=texsys.aux
  142. \immediate\write15{\today^^J}
  143. \immediate\closeout15 %
  144. \def\IfFileExists#1#2#3{%
  145.   \openin\@inputcheck#1 %
  146.   \ifeof\@inputcheck
  147.      #3\relax
  148.   \else
  149.     \read\@inputcheck to \reserved@a
  150.     \ifx\reserved@a\today
  151.       \typeout{#1 found}#2\relax
  152.     \else
  153.       \typeout{BAD: old file \reserved@a (should be \today)}%
  154.       #3\relax
  155.     \fi
  156.   \fi
  157.   \closein\@inputcheck}
  158. \endlinechar=-1
  159. \ifx\@currdir\@undefined
  160.   \IfFileExists{./texsys.aux}{\gdef\@currdir{./}}%
  161.     {\IfFileExists{[]texsys.aux}{\gdef\@currdir{[]}}%
  162.       {\IfFileExists{:texsys.aux}{\gdef\@currdir{:}}{}}}
  163.   \ifx\@currdir\@undefined
  164.     \global\let\@currdir\@empty
  165.     \typeout{^^J***^^J%
  166.       No syntax for the current directory could be found^^J%
  167.       ***}%
  168.   \fi
  169. \else
  170.   \IfFileExists{\@currdir texsys.aux}{}{%
  171.     \edef\reserved@a{\errhelp{%
  172.       texsys.cfg specifies the current directory syntax to be^^J%
  173.       \meaning\@currdir^^J%
  174.       but this does not work on this system.^^J%
  175.       Remove texsys.cfg and restart.}}\reserved@a
  176.     \errmessage{Bad texsys.cfg file: \noexpand\@currdir}\@@end}
  177. \immediate\closeout15 %
  178. \endgroup
  179. \typeout{^^J***^^J%
  180.          \noexpand\@currdir set to:
  181.            \expandafter\strip@prefix\meaning\@currdir.^^J%
  182.          ***}
  183.   \typeout{***^^J%
  184.     Assuming \noexpand\openin and \noexpand\input^^J%
  185.     \ifx\input@path\@undefined
  186.       have the same search path.^^J%
  187.     \else
  188.       have different  search paths.^^J%
  189.       LaTeX will use the path specified by \noexpand\input@path:^^J%
  190.     \fi
  191.     ***}
  192. \ifx\filename@parse\@undefined
  193.   \def\reserved@a{./}\ifx\@currdir\reserved@a
  194.     \typeout{^^J***^^JDefining UNIX/DOS style filename parser.^^J***}
  195.     \def\filename@parse#1{%
  196.       \let\filename@area\@empty
  197.       \expandafter\filename@path#1/\\}
  198.     \def\filename@path#1/#2\\{%
  199.       \ifx\\#2\\%
  200.          \def\reserved@a{\filename@simple#1.\\}%
  201.       \else
  202.          \edef\filename@area{\filename@area#1/}%
  203.          \def\reserved@a{\filename@path#2\\}%
  204.       \fi
  205.       \reserved@a}
  206.   \else\def\reserved@a{[]}\ifx\@currdir\reserved@a
  207.     \typeout{^^J***^^JDefining VMS style filename parser.^^J***}
  208.     \def\filename@parse#1{%
  209.       \let\filename@area\@empty
  210.       \expandafter\filename@path#1]\\}
  211.     \def\filename@path#1]#2\\{%
  212.       \ifx\\#2\\%
  213.          \def\reserved@a{\filename@simple#1.\\}%
  214.       \else
  215.          \edef\filename@area{\filename@area#1]}%
  216.          \def\reserved@a{\filename@path#2\\}%
  217.       \fi
  218.       \reserved@a}
  219.   \else\def\reserved@a{:}\ifx\@currdir\reserved@a
  220.     \typeout{^^J***^^JDefining Mac style filename parser.^^J***}
  221.     \def\filename@parse#1{%
  222.       \let\filename@area\@empty
  223.       \expandafter\filename@path#1:\\}
  224.     \def\filename@path#1:#2\\{%
  225.       \ifx\\#2\\%
  226.          \def\reserved@a{\filename@simple#1.\\}%
  227.       \else
  228.          \edef\filename@area{\filename@area#1:}%
  229.          \def\reserved@a{\filename@path#2\\}%
  230.       \fi
  231.       \reserved@a}
  232.   \else
  233.     \typeout{^^J***^^JDefining generic filename parser.^^J***}
  234.     \def\filename@parse#1{%
  235.       \let\filename@area\@empty
  236.       \expandafter\filename@simple#1.\\}
  237.   \fi\fi\fi
  238.   \def\filename@simple#1.#2\\{%
  239.     \ifx\\#2\\%
  240.        \let\filename@ext\relax
  241.     \else
  242.        \edef\filename@ext{\filename@dot#2\\}%
  243.     \fi
  244.     \edef\filename@base{#1}}
  245.   \def\filename@dot#1.\\{#1}
  246. \else
  247.   \typeout{^^J***^^J%
  248.     \noexpand\filename@parse was defined in texsys.cfg:^^J%
  249.     \expandafter\strip@prefix\meaning\filename@parse.^^J%
  250.     ***}
  251. \ifx\@TeXversion\@undefined
  252.   \ifx\undefined\inputlineno
  253.     \def\@TeXversion{2}
  254.   \else
  255.    {\catcode`\^^J=\active
  256.      \def\reserved@a#1#2\@@{\if#1\string^3\fi}
  257.      \edef\reserved@a{\expandafter\reserved@a\string^^J\@@}
  258.      \ifx\reserved@a\@empty\else\gdef\@TeXversion{3}\fi}
  259.   \fi
  260. %%% File: ltplain
  261. %% \CharacterTable
  262. %%  {Upper-case    \A\B\C\D\E\F\G\H\I\J\K\L\M\N\O\P\Q\R\S\T\U\V\W\X\Y\Z
  263. %%   Lower-case    \a\b\c\d\e\f\g\h\i\j\k\l\m\n\o\p\q\r\s\t\u\v\w\x\y\z
  264. %%   Digits        \0\1\2\3\4\5\6\7\8\9
  265. %%   Exclamation   \!     Double quote  \"     Hash (number) \#
  266. %%   Dollar        \$     Percent       \%     Ampersand     \&
  267. %%   Acute accent  \'     Left paren    \(     Right paren   \)
  268. %%   Asterisk      \*     Plus          \+     Comma         \,
  269. %%   Minus         \-     Point         \.     Solidus       \/
  270. %%   Colon         \:     Semicolon     \;     Less than     \<
  271. %%   Equals        \=     Greater than  \>     Question mark \?
  272. %%   Commercial at \@     Left bracket  \[     Backslash     \\
  273. %%   Right bracket \]     Circumflex    \^     Underscore    \_
  274. %%   Grave accent  \`     Left brace    \{     Vertical bar  \|
  275. %%   Right brace   \}     Tilde         \~}
  276. \catcode`\{=1 % left brace is begin-group character
  277. \catcode`\}=2 % right brace is end-group character
  278. \catcode`\$=3 % dollar sign is math shift
  279. \catcode`\&=4 % ampersand is alignment tab
  280. \catcode`\#=6 % hash mark is macro parameter character
  281. \catcode`\^=7 % circumflex and uparrow are for superscripts
  282. \catcode`\_=8 % underline and downarrow are for subscripts
  283. \catcode`\^^I=10 % ascii tab is a blank space
  284. \chardef\active=13 \catcode`\~=\active % tilde is active
  285. \catcode`\^^L=\active \outer\def^^L{\par}% ascii form-feed is \outer\par
  286. \message{Preloading the plain format: codes,}
  287. \def\dospecials{\do\ \do\\\do\{\do\}\do\$\do\&%
  288.   \do\#\do\^\do\_\do\%\do\~}
  289. \catcode`@=11
  290. \chardef\@ne=1
  291. \chardef\tw@=2
  292. \chardef\thr@@=3
  293. \chardef\sixt@@n=16
  294. \chardef\@cclv=255
  295. \mathchardef\@cclvi=256
  296. \mathchardef\@m=1000
  297. \mathchardef\@M=10000
  298. \mathchardef\@MM=20000
  299. \message{registers,}
  300. \count10=22 % allocates \count registers 23, 24, ...
  301. \count11=9 % allocates \dimen registers 10, 11, ...
  302. \count12=9 % allocates \skip registers 10, 11, ...
  303. \count13=9 % allocates \muskip registers 10, 11, ...
  304. \count14=9 % allocates \box registers 10, 11, ...
  305. \count15=9 % allocates \toks registers 10, 11, ...
  306. \count16=-1 % allocates input streams 0, 1, ...
  307. \count17=-1 % allocates output streams 0, 1, ...
  308. \count18=3 % allocates math families 4, 5, ...
  309. \count19=0 % allocates \language codes 1, 2, ...
  310. \count20=255 % allocates insertions 254, 253, ...
  311. \countdef\insc@unt=20 % the insertion counter
  312. \countdef\allocationnumber=21 % the most recent allocation
  313. \countdef\m@ne=22 \m@ne=-1 % a handy constant
  314. \def\wlog{\immediate\write\m@ne} % write on log file (only)
  315. \countdef\count@=255
  316. \dimendef\dimen@=0
  317. \dimendef\dimen@i=1 % global only
  318. \dimendef\dimen@ii=2
  319. \skipdef\skip@=0
  320. \toksdef\toks@=0
  321. \def\newcount{\alloc@0\count\countdef\insc@unt}
  322. \def\newdimen{\alloc@1\dimen\dimendef\insc@unt}
  323. \def\newskip{\alloc@2\skip\skipdef\insc@unt}
  324. \def\newmuskip{\alloc@3\muskip\muskipdef\@cclvi}
  325. \def\newbox{\alloc@4\box\chardef\insc@unt}
  326. \def\newhelp#1#2{\newtoks#1#1\expandafter{\csname#2\endcsname}}
  327. \def\newtoks{\alloc@5\toks\toksdef\@cclvi}
  328. \def\newread{\alloc@6\read\chardef\sixt@@n}
  329. \def\newwrite{\alloc@7\write\chardef\sixt@@n}
  330. \def\newlanguage{\alloc@9\language\chardef\@cclvi}
  331. \def\alloc@#1#2#3#4#5{\global\advance\count1#1by\@ne
  332.   \ch@ck#1#4#2% make sure there's still room
  333.   \allocationnumber=\count1#1%
  334.   \global#3#5=\allocationnumber
  335.   \wlog{\string#5=\string#2\the\allocationnumber}}
  336. \def\newinsert#1{\global\advance\insc@unt by\m@ne
  337.   \ch@ck0\insc@unt\count
  338.   \ch@ck1\insc@unt\dimen
  339.   \ch@ck2\insc@unt\skip
  340.   \ch@ck4\insc@unt\box
  341.   \allocationnumber=\insc@unt
  342.   \global\chardef#1=\allocationnumber
  343.   \wlog{\string#1=\string\insert\the\allocationnumber}}
  344. \def\ch@ck#1#2#3{\ifnum\count1#1<#2%
  345.   \else\errmessage{No room for a new #3}\fi}
  346. \newdimen\maxdimen \maxdimen=16383.99999pt % the largest legal <dimen>
  347. \newskip\hideskip \hideskip=-1000pt plus 1fill % negative but can grow
  348. \newdimen\p@ \p@=1pt % this saves macro space and time
  349. \newdimen\z@ \z@=0pt % can be used both for 0pt and 0
  350. \newskip\z@skip \z@skip=0pt plus0pt minus0pt
  351. \newbox\voidb@x % permanently void box register
  352. \def\newif#1{%
  353.   \count@\escapechar \escapechar\m@ne
  354.     \let#1\iffalse
  355.     \@if#1\iftrue
  356.     \@if#1\iffalse
  357.   \escapechar\count@}
  358. \def\@if#1#2{%
  359.   \expandafter\def\csname\expandafter\@gobbletwo\string#1%
  360.                     \expandafter\@gobbletwo\string#2\endcsname
  361.                        {\let#1#2}}
  362. \message{compatibility for TeX 2, }
  363. \ifx\undefined\inputlineno
  364.   \newcount\inputlineno
  365.   \inputlineno-1               % this could be used to detect that
  366.                                % an old TeX is in force
  367.   \ifx\undefined\language      % extra test for MLTeX 2, RmS 91/11/07
  368.     \newcount\language
  369.   \fi
  370.   \newcount\lefthyphenmin
  371.   \newcount\righthyphenmin
  372.   \newcount\errorcontextlines
  373.   \newcount\holdinginserts
  374.   \newdimen\emergencystretch
  375.   \newcount\badness
  376.   \let\noboundary\relax
  377.   \newcount\setlanguage
  378. \message{parameters,}
  379. \pretolerance=100
  380. \tolerance=200 % INITEX sets this to 10000
  381. \hbadness=1000
  382. \vbadness=1000
  383. \linepenalty=10
  384. \hyphenpenalty=50
  385. \exhyphenpenalty=50
  386. \binoppenalty=700
  387. \relpenalty=500
  388. \clubpenalty=150
  389. \widowpenalty=150
  390. \displaywidowpenalty=50
  391. \brokenpenalty=100
  392. \predisplaypenalty=10000
  393. \doublehyphendemerits=10000
  394. \finalhyphendemerits=5000
  395. \adjdemerits=10000
  396. \tracinglostchars=1
  397. \uchyph=1
  398. \defaulthyphenchar=`\-
  399. \defaultskewchar=-1
  400. \delimiterfactor=901
  401. \showboxbreadth=-1
  402. \showboxdepth=-1
  403. \errorcontextlines=-1
  404. \hfuzz=0.1pt
  405. \vfuzz=0.1pt
  406. \overfullrule=5pt
  407. \hsize=6.5in
  408. \vsize=8.9in
  409. \maxdepth=4pt
  410. \splitmaxdepth=\maxdimen
  411. \boxmaxdepth=\maxdimen
  412. \delimitershortfall=5pt
  413. \nulldelimiterspace=1.2pt
  414. \scriptspace=0.5pt
  415. \parindent=20pt
  416. \parskip=0pt plus 1pt
  417. \abovedisplayskip=12pt plus 3pt minus 9pt
  418. \abovedisplayshortskip=0pt plus 3pt
  419. \belowdisplayskip=12pt plus 3pt minus 9pt
  420. \belowdisplayshortskip=7pt plus 3pt minus 4pt
  421. \topskip=10pt
  422. \splittopskip=10pt
  423. \parfillskip=0pt plus 1fil
  424. \newskip\normalbaselineskip \normalbaselineskip=12pt
  425. \newskip\normallineskip \normallineskip=1pt
  426. \newdimen\normallineskiplimit \normallineskiplimit=0pt
  427. \newcount\interfootnotelinepenalty \interfootnotelinepenalty=100
  428. \def\magstephalf{1095 }
  429. \def\magstep#1{\ifcase#1 \@m\or 1200\or 1440\or 1728\or
  430.                2074\or 2488\fi\relax}
  431. \message{macros,}
  432. \def\frenchspacing{\sfcode`\.\@m \sfcode`\?\@m \sfcode`\!\@m
  433.   \sfcode`\:\@m \sfcode`\;\@m \sfcode`\,\@m}
  434. \def\nonfrenchspacing{\sfcode`\.3000\sfcode`\?3000\sfcode`\!3000%
  435.   \sfcode`\:2000\sfcode`\;1500\sfcode`\,1250 }
  436. \def\normalbaselines{\lineskip\normallineskip
  437.   \baselineskip\normalbaselineskip \lineskiplimit\normallineskiplimit}
  438. \def\^^M{\ } % control <return> = control <space>
  439. \def\^^I{\ } % same for <tab>
  440. \def\lq{`} \def\rq{'}
  441. \def\lbrack{[} \def\rbrack{]}
  442. \let\endgraf=\par \let\endline=\cr
  443. \def\space{ }
  444. \def\empty{}
  445. \def\null{\hbox{}}
  446. \let\bgroup={ \let\egroup=}
  447. {\catcode`\^^M=\active % these lines must end with %
  448.   \gdef\obeylines{\catcode`\^^M\active \let^^M\par}%
  449.   \global\let^^M\par} % this is in case ^^M appears in a \write
  450. \def\obeyspaces{\catcode`\ \active}
  451. {\obeyspaces\global\let =\space}
  452. \long\def \loop #1\repeat{%
  453.   \def\iterate{#1\relax  % Extra \relax
  454.                \expandafter\iterate\fi
  455.                }%
  456.   \iterate
  457.   \let\iterate\relax
  458. \let\repeat=\fi
  459. \def\nointerlineskip{\prevdepth-1000\p@}
  460. \def\offinterlineskip{\baselineskip-1000\p@
  461.   \lineskip\z@ \lineskiplimit\maxdimen}
  462. \def\vglue{\afterassignment\vgl@\skip@=}
  463. \def\vgl@{\par \dimen@\prevdepth \hrule \@height\z@
  464.   \nobreak\vskip\skip@ \prevdepth\dimen@}
  465. \def\hglue{\afterassignment\hgl@\skip@=}
  466. \def\hgl@{\leavevmode \count@\spacefactor \vrule \@width\z@
  467.   \nobreak\hskip\skip@ \spacefactor\count@}
  468. \def\slash{/\penalty\exhyphenpenalty} % a `/' that acts like a `-'
  469. \def\break{\penalty-\@M}
  470. \def\nobreak{\penalty \@M}
  471. \def\allowbreak{\penalty \z@}
  472. \def\filbreak{\par\vfil\penalty-200\vfilneg}
  473. \def\goodbreak{\par\penalty-500 }
  474. \def\eject{\par\break}
  475. \def\supereject{\par\penalty-\@MM}
  476. \def\removelastskip{\ifdim\lastskip=\z@\else\vskip-\lastskip\fi}
  477. \def\smallbreak{\par\ifdim\lastskip<\smallskipamount
  478.   \removelastskip\penalty-50\smallskip\fi}
  479. \def\medbreak{\par\ifdim\lastskip<\medskipamount
  480.   \removelastskip\penalty-100\medskip\fi}
  481. \def\bigbreak{\par\ifdim\lastskip<\bigskipamount
  482.   \removelastskip\penalty-200\bigskip\fi}
  483. \def\m@th{\mathsurround\z@}
  484. \def\underbar#1{\underline{\setbox\tw@\hbox{#1}\dp\tw@\z@\box\tw@}}
  485. \newbox\strutbox
  486. \def\strut{\relax\ifmmode\copy\strutbox\else\unhcopy\strutbox\fi}
  487. \def\hidewidth{\hskip\hideskip} % for alignment entries that
  488.                                 % can stick out
  489. \def\ialign{\everycr{}\tabskip\z@skip\halign} % initialized \halign
  490. \newcount\mscount
  491. \def\multispan#1{\omit \mscount#1\relax
  492.   \loop\ifnum\mscount>\@ne \sp@n\repeat}
  493. \def\sp@n{\span\omit\advance\mscount\m@ne}
  494. \def\narrower{%
  495.   \advance\leftskip\parindent
  496.   \advance\rightskip\parindent}
  497. \chardef\%=`\%
  498. \chardef\&=`\&
  499. \chardef\#=`\#
  500. \def\leavevmode{\unhbox\voidb@x} % begins a paragraph, if necessary
  501. \def\mathhexbox#1#2#3{\mbox{$\m@th \mathchar"#1#2#3$}}
  502. \def\oalign#1{\leavevmode\vtop{\baselineskip\z@skip \lineskip.25ex%
  503.   \ialign{##\crcr#1\crcr}}}
  504. \def\o@lign{\lineskiplimit\z@ \oalign}
  505. \def\ooalign{\lineskiplimit-\maxdimen \oalign}
  506. \def\sh@ft#1{\dimen\z@.00#1ex\multiply\dimen\z@\fontdimen1\font
  507.   \kern-.0156\dimen\z@} % compensate for slant in lowered accents
  508. \def\hrulefill{\leavevmode\leaders\hrule\hfill\kern\z@}
  509. \def\dotfill{\leavevmode\cleaders
  510.      \hbox{$\m@th \mkern1.5mu.\mkern1.5mu$}\hfill\kern\z@}
  511. \sfcode`\)=0 \sfcode`\'=0 \sfcode`\]=0
  512. \def\tracingall{\tracingcommands\tw@\tracingstats\tw@
  513.   \tracingpages\@ne\tracingoutput\@ne\tracinglostchars\@ne
  514.   \tracingmacros\tw@\tracingparagraphs\@ne\tracingrestores\@ne
  515.   \showboxbreadth\maxdimen\showboxdepth\maxdimen\errorstopmode
  516.   \errorcontextlines\maxdimen\tracingonline\@ne}
  517. \nonfrenchspacing % punctuation affects the spacing
  518. %%% File: ltvers
  519. \def\fmtname{LaTeX2e}
  520. \edef\fmtversion{1995/06/01}
  521. \def\reserved@a#1/#2/#3\@nil{%
  522.   \count@\year
  523.   \advance\count@-#1\relax
  524.   \multiply\count@ by 12\relax
  525.   \advance\count@\month
  526.   \advance\count@-#2\relax}
  527. \expandafter\reserved@a\fmtversion\@nil
  528. \ifnum\count@>12
  529.   \typeout{^^J%
  530. ******************************************************************^^J%
  531. *  You are attempting to make a LaTeX format from a source file^^J%
  532. *  That is more than one year old.^^J%
  533. *^^J%
  534. *  If you enter <return> to scroll past this message then the format^^J%
  535. *  will be built, but please consider obtaining newer source files^^J%
  536. *  before continuing to build LaTeX.^^J%
  537. *^^J%
  538. *  LaTeX is re-issued every 6 months June and December.^^J%
  539. ******************************************************************^^J%
  540.    \errhelp{To avoid this error message, obtain new LaTeX sources.}
  541.    \errmessage{LaTeX source files more than 1 year old!}
  542. \let\reserved@a\relax
  543. \everyjob{\typeout{\fmtname
  544.                                      \space<\fmtversion>}}
  545. \immediate\write16{\fmtname
  546.                                      \space<\fmtversion>}
  547. %%% File: ltdefns.dtx
  548. \catcode`\~=13 \def~{\penalty\@M \ }
  549. \def\two@digits#1{\ifnum#1<10 0\fi\number#1}
  550. \def\typeout#1{\begingroup\set@display@protect
  551.     \immediate\write\@unused{#1}\endgroup}
  552. \newlinechar`\^^J
  553. \let\@@par=\par
  554. \let\@@hyph=\-        % Original defin
  555. \def\-{\discretionary{-}{}{}}
  556. \let\@dischyph=\-
  557. \let\@@italiccorr=\/
  558. \def\@height{height}
  559. \def\@depth{depth}
  560. \def\@width{width}
  561. \def\@minus{minus}
  562. \def\@plus{plus}
  563. \def\hb@xt@{\hbox to}
  564. \message{hacks,}
  565. \def\typein{%
  566.   \let\@typein\relax\@ifnextchar[\@xtypein{\@xtypein[\@typein]}}
  567. \def\@xtypein[#1]#2{%
  568.   \typeout{#2}%
  569.   \advance\endlinechar\@M
  570.   \read\@inputcheck to#1%
  571.   \advance\endlinechar-\@M}
  572. \def\@namedef#1{\expandafter\def\csname #1\endcsname}
  573. \def\@nameuse#1{\csname #1\endcsname}
  574. \def\@cons#1#2{\begingroup\let\@elt\relax\xdef#1{#1\@elt #2}\endgroup}
  575. \def\@car#1#2\@nil{#1}
  576. \def\@cdr#1#2\@nil{#2}
  577. \def\@carcube#1#2#3#4\@nil{#1#2#3}
  578. \def\@star@or@long#1{%
  579.   \@ifstar
  580.    {\let\l@ngrel@x\relax#1}%
  581.    {\let\l@ngrel@x\long#1}}
  582. \let\l@ngrel@x\relax
  583. \def\newcommand{\@star@or@long\new@command}
  584. \def\new@command#1{%
  585.   \@ifnextchar [{\@newcommand#1}{\@newcommand#1[0]}}
  586. \def\@newcommand#1[#2]{%
  587.   \@ifnextchar [{\@xargdef#1[#2]}%
  588.                 {\@argdef#1[#2]}}
  589. \long\def\@argdef#1[#2]#3{%
  590.    \@ifdefinable #1{\@yargdef#1\@ne{#2}{#3}}}
  591. \long\def\@xargdef#1[#2][#3]#4{%
  592.   \@ifdefinable#1{%
  593.      \expandafter\def\expandafter#1\expandafter{%
  594.           \expandafter
  595.           \@ifnextchar
  596.           \expandafter
  597.              [%
  598.           \csname\string#1\expandafter\endcsname
  599.           \expandafter
  600.           {\csname\string#1\endcsname[#3]}}%
  601.        \expandafter\@yargdef
  602.           \csname\string#1\endcsname
  603.            \tw@
  604.            {#2}%
  605.            {#4}}}
  606. \long\def\@yargdef#1#2#3{%
  607.   \@tempcnta#3\relax
  608.   \advance \@tempcnta \@ne
  609.   \let\@hash@\relax
  610.   \edef\reserved@a{\ifx#2\tw@ [\@hash@1]\fi}%
  611.   \@tempcntb #2%
  612.   \@whilenum\@tempcntb <\@tempcnta
  613.      \do{%
  614.          \edef\reserved@a{\reserved@a\@hash@\the\@tempcntb}%
  615.          \advance\@tempcntb \@ne}%
  616.   \let\@hash@##%
  617.   \l@ngrel@x\expandafter\def\expandafter#1\reserved@a}
  618. \long\def\@reargdef#1[#2]#3{%
  619.   \@yargdef#1\@ne{#2}{#3}}
  620. \def\renewcommand{\@star@or@long\renew@command}
  621. \def\renew@command#1{%
  622.   {\escapechar\m@ne\xdef\@gtempa{{\string#1}}}%
  623.   \expandafter\@ifundefined\@gtempa
  624.      {\@latex@error{\string#1 undefined}\@ehc}%
  625.      {}%
  626.   \let\@ifdefinable\@rc@ifdefinable
  627.   \new@command#1}
  628. \long\def\@ifdefinable #1#2{%
  629.       \edef\reserved@a{\expandafter\@gobble\string #1}%
  630.      \@ifundefined\reserved@a
  631.          {\edef\reserved@b{\expandafter\@carcube \reserved@a xxx\@nil}%
  632.           \ifx \reserved@b\@qend \@notdefinable\else
  633.             \ifx \reserved@a\@qrelax \@notdefinable\else
  634.               #2%
  635.             \fi
  636.           \fi}%
  637.          \@notdefinable}
  638. \let\@@ifdefinable\@ifdefinable
  639. \long\def\@rc@ifdefinable#1#2{%
  640.   \let\@ifdefinable\@@ifdefinable
  641.   #2}
  642. \def\newenvironment{\@star@or@long\new@environment}
  643. \def\new@environment#1{%
  644.   \@ifnextchar [{\@newenva#1}{\@newenva#1[0]}}
  645. \def\@newenva#1[#2]{%
  646.    \@ifnextchar [{\@newenvb#1[#2]}{\@newenv{#1}{[#2]}}}
  647. \def\@newenvb#1[#2][#3]{\@newenv{#1}{[#2][#3]}}
  648. \def\renewenvironment{\@star@or@long\renew@environment}
  649. \def\renew@environment#1{%
  650.   \@ifundefined{#1}%
  651.      {\@latex@error{Environment #1 undefined}\@ehc
  652.      }{}%
  653.   \expandafter\let\csname#1\endcsname\relax
  654.   \expandafter\let\csname end#1\endcsname\relax
  655.   \new@environment{#1}}
  656. \long\def\@newenv#1#2#3#4{%
  657.   \@ifundefined{#1}%
  658.     {\expandafter\let\csname#1\expandafter\endcsname
  659.                          \csname end#1\endcsname}%
  660.     \relax
  661.   \expandafter\new@command
  662.      \csname #1\endcsname#2{#3}%
  663.      \l@ngrel@x\expandafter\def\csname end#1\endcsname{#4}}
  664. \def\providecommand{\@star@or@long\provide@command}
  665. \def\provide@command#1{%
  666.   {\escapechar\m@ne\xdef\@gtempa{{\string#1}}}%
  667.   \expandafter\@ifundefined\@gtempa
  668.     {\def\reserved@a{\new@command#1}}%
  669.     {\def\reserved@a{\renew@command\reserved@a}}%
  670.    \reserved@a}%
  671. \def\CheckCommand{\@star@or@long\check@command}
  672. \def\check@command#1#2#{\@check@c#1{#2}}
  673. \long\def\@check@c#1#2#3{%
  674.   \expandafter\let\csname\string\reserved@a\endcsname\relax
  675.   \renew@command\reserved@a#2{#3}%
  676.   \@ifundefined{\string\reserved@a}%
  677.    {\@check@eq#1\reserved@a}%
  678.    {\expandafter\@check@eq
  679.            \csname\string#1\expandafter\endcsname
  680.            \csname\string\reserved@a\endcsname}}
  681. \def\@check@eq#1#2{%
  682.   \ifx#1#2\else
  683.      \@latex@warning@no@line
  684.                {Command \noexpand#1 has
  685.                 changed.\MessageBreak
  686.                 Check if current package is valid}%
  687.   \fi}
  688. \long\def \@gobble #1{}
  689. \long\def \@gobbletwo #1#2{}
  690. \long\def \@gobblefour #1#2#3#4{}
  691. \long\def\@firstofone#1{#1}
  692. \long\def\@firstoftwo#1#2{#1}
  693. \long\def\@secondoftwo#1#2{#2}
  694. \let\@iden\@firstofone
  695. \def\@expandtwoargs#1#2#3{%
  696. \edef\reserved@a{\noexpand#1{#2}{#3}}\reserved@a}
  697. \edef\@backslashchar{\expandafter\@gobble\string\\}
  698. \def\@unexpandable@protect{\noexpand\protect\noexpand}
  699. \def\@unexpandable@noexpand{\noexpand\noexpand\noexpand}
  700. \def\DeclareRobustCommand{\@star@or@long\declare@robustcommand}
  701. \def\declare@robustcommand#1{%
  702.    \ifx#1\@undefined\else\ifx#1\relax\else
  703.       \@latex@info{Redefining \string#1}%
  704.    \fi\fi
  705.    \edef\reserved@a{\string#1}%
  706.    \def\reserved@b{#1}%
  707.    \edef\reserved@b{\expandafter\strip@prefix\meaning\reserved@b}%
  708.    \edef#1{%
  709.       \ifx\reserved@a\reserved@b
  710.          \noexpand\x@protect
  711.          \noexpand#1%
  712.       \fi
  713.       \noexpand\protect
  714.       \expandafter\noexpand\csname
  715.          \expandafter\@gobble\string#1 \endcsname
  716.    }%
  717.    \let\@ifdefinable\@rc@ifdefinable
  718.    \expandafter\new@command\csname
  719.       \expandafter\@gobble\string#1 \endcsname
  720. \def\x@protect#1{%
  721.    \ifx\protect\@typeset@protect\else
  722.       \@x@protect#1%
  723.    \fi
  724. \def\@x@protect#1\fi#2#3{%
  725.    \fi\protect#1%
  726. \let\@typeset@protect\relax
  727. \def\set@display@protect{\let\protect\string}
  728. \def\set@typeset@protect{\let\protect\relax}
  729. \def\protected@edef{%
  730.    \let\@@protect\protect
  731.    \let\protect\@unexpandable@protect
  732.    \afterassignment\restore@protect
  733.    \edef
  734. \def\protected@xdef{%
  735.    \let\@@protect\protect
  736.    \let\protect\@unexpandable@protect
  737.    \afterassignment\restore@protect
  738.    \xdef
  739. \def\unrestored@protected@xdef{%
  740.    \let\protect\@unexpandable@protect
  741.    \xdef
  742. \def\restore@protect{\let\protect\@@protect}
  743. \set@typeset@protect
  744. \def\@ifundefined#1{%
  745.   \expandafter\ifx\csname#1\endcsname\relax
  746.     \expandafter\@firstoftwo
  747.   \else
  748.     \expandafter\@secondoftwo
  749.   \fi}
  750. \def\@preamblecmds{}
  751. \def\@onlypreamble#1{%
  752.   \expandafter\gdef\expandafter\@preamblecmds\expandafter{%
  753.        \@preamblecmds\do#1}}
  754. \@onlypreamble\@onlypreamble
  755. \edef\@qend{\expandafter\@cdr\string\end\@nil}
  756. \edef\@qrelax{\expandafter\@cdr\string\relax\@nil}
  757. \def\@ifnextchar#1#2#3{%
  758.   \let\reserved@e=#1\def\reserved@a{#2}\def\reserved@b{#3}\futurelet
  759.     \reserved@c\@ifnch}
  760. \def\@ifnch{\ifx \reserved@c \@sptoken \let\reserved@d\@xifnch
  761.       \else \ifx \reserved@c \reserved@e\let\reserved@d\reserved@a\else
  762.           \let\reserved@d\reserved@b\fi
  763.       \fi \reserved@d}
  764. \def\makeatletter{\catcode`\@=11\relax}
  765. \def\makeatother{\catcode`\@=12\relax}
  766. \def\:{\let\@sptoken= } \:  % this makes \@sptoken a space token
  767. \def\:{\@xifnch} \expandafter\def\: {\futurelet\reserved@c\@ifnch}
  768. \def\@ifstar#1#2{\@ifnextchar *{\def\reserved@a*{#1}\reserved@a}{#2}}
  769. \long\def\@dblarg#1{\@ifnextchar[{#1}{\@xdblarg{#1}}}
  770. \long\def\@xdblarg#1#2{#1[{#2}]{#2}}
  771. \def\@sanitize{\@makeother\ \@makeother\\\@makeother\$\@makeother\&%
  772. \@makeother\#\@makeother\^\@makeother\_\@makeother\%\@makeother\~}
  773. \def \@onelevel@sanitize #1{%
  774.   \edef #1{\expandafter\strip@prefix
  775.            \meaning #1}%
  776. %%% File: ltalloc.dtx
  777. \message{counters,}
  778. \chardef\@xxxii=32
  779. \mathchardef\@Mi=10001
  780. \mathchardef\@Mii=10002
  781. \mathchardef\@Miii=10003
  782. \mathchardef\@Miv=10004
  783. \newcount\@tempcnta
  784. \newcount\@tempcntb
  785. \newif\if@tempswa\@tempswatrue
  786. \newdimen\@tempdima
  787. \newdimen\@tempdimb
  788. \newdimen\@tempdimc
  789. \newbox\@tempboxa
  790. \newskip\@flushglue \@flushglue = 0pt plus 1fil
  791. \newskip\@tempskipa
  792. \newskip\@tempskipb
  793. \newtoks\@temptokena
  794. %%% File: ltcntrl.dtx
  795. \message{control,}
  796. \let\@whilenoop\@gobble
  797. \def\@whilenum#1\do #2{\ifnum #1\relax #2\relax\@iwhilenum{#1\relax
  798.      #2\relax}\fi}
  799. \def\@iwhilenum#1{\ifnum #1\let\@nextwhile\@iwhilenum
  800.          \else\let\@nextwhile\@whilenoop\fi\@nextwhile{#1}}
  801. \def\@whiledim#1\do #2{\ifdim #1\relax#2\@iwhiledim{#1\relax#2}\fi}
  802. \def\@iwhiledim#1{\ifdim #1\let\@nextwhile\@iwhiledim
  803.         \else\let\@nextwhile\@whilenoop\fi\@nextwhile{#1}}
  804. \long\def\@whileswnoop#1\fi{}
  805. \long\def\@whilesw#1\fi#2{#1#2\@iwhilesw{#1#2}\fi\fi}
  806. \long\def\@iwhilesw#1\fi{#1\let\@nextwhile\@iwhilesw
  807.          \else\let\@nextwhile\@whileswnoop\fi\@nextwhile{#1}\fi}
  808. \def\@nnil{\@nil}
  809. \def\@empty{}
  810. \def\@fornoop#1\@@#2#3{}
  811. \def\@for#1:=#2\do#3{%
  812.   \expandafter\def\expandafter\@fortmp\expandafter{#2}%
  813.   \ifx\@fortmp\@empty \else
  814.     \expandafter\@forloop#2,\@nil,\@nil\@@#1{#3}\fi}
  815. \def\@forloop#1,#2,#3\@@#4#5{\def#4{#1}\ifx #4\@nnil \else
  816.        #5\def#4{#2}\ifx #4\@nnil \else#5\@iforloop #3\@@#4{#5}\fi\fi}
  817. \def\@iforloop#1,#2\@@#3#4{\def#3{#1}\ifx #3\@nnil
  818.        \let\@nextwhile\@fornoop \else
  819.       #4\relax\let\@nextwhile\@iforloop\fi\@nextwhile#2\@@#3{#4}}
  820. \def\@tfor#1:={\@tf@r#1 }
  821. \def\@tf@r#1#2\do#3{\def\@fortmp{#2}\ifx\@fortmp\space\else
  822.     \@tforloop#2\@nil\@nil\@@#1{#3}\fi}
  823. \def\@tforloop#1#2\@@#3#4{\def#3{#1}\ifx #3\@nnil
  824.        \let\@nextwhile\@fornoop \else
  825.       #4\relax\let\@nextwhile\@tforloop\fi\@nextwhile#2\@@#3{#4}}
  826. \def\@break@tfor#1\@@#2#3{\fi\fi}
  827. \def\@removeelement#1#2#3{%
  828.   \def\reserved@a##1,#1,##2\reserved@a{##1,##2\reserved@b}%
  829.   \def\reserved@b##1,\reserved@b##2\reserved@b{%
  830.     \ifx,##1\@empty\else##1\fi}%
  831.   \edef#3{%
  832.     \expandafter\reserved@b\reserved@a,#2,\reserved@b,#1,\reserved@a}}
  833. \let\protect=\relax
  834. %%% File: lterror.dtx
  835. \message{errors,}
  836. \let\MessageBreak\relax
  837. \DeclareRobustCommand{\GenericInfo}[2]{%
  838.    \begingroup
  839.       \def\MessageBreak{^^J#1}%
  840.       \set@display@protect
  841.       \immediate\write\m@ne{#2\on@line.}%
  842.    \endgroup
  843. \DeclareRobustCommand{\GenericWarning}[2]{%
  844.    \begingroup
  845.       \def\MessageBreak{^^J#1}%
  846.       \set@display@protect
  847.       \immediate\write\@unused{^^J#2\on@line.^^J}%
  848.    \endgroup
  849. \bgroup
  850. \lccode`\@=`\ %
  851. \lccode`\~=`\ %
  852. \lccode`\}=`\ %
  853. \lccode`\{=`\ %
  854. \lccode`\T=`\T%
  855. \lccode`\H=`\H%
  856. \catcode`\ =11\relax%
  857. \lowercase{%
  858. \egroup%
  859. \dimen@\ifx\@TeXversion\@undefined4\else\@TeXversion\fi\p@%
  860. \ifdim\dimen@>3.14\p@%
  861. \DeclareRobustCommand{\GenericError}[4]{%
  862. \begingroup%
  863. \immediate\write\@unused{}%
  864. \def\MessageBreak{^^J}%
  865. \set@display@protect%
  866. \edef%
  867. \@err@                                                                 %
  868. {{#4}}%
  869. \errhelp
  870. \@err@                                                                 %
  871. \@err@                                                                 %
  872. \@empty
  873. \def\MessageBreak{^^J#1}%
  874. \def~{\errmessage{%
  875. #2.^^J^^J%
  876. #3^^J%
  877. Type  H <return>  for immediate help%
  878. \@err@                                                                 %
  879. \endgroup}%
  880. \else%
  881. \DeclareRobustCommand{\GenericError}[4]{%
  882. \begingroup%
  883. \immediate\write\@unused{}%
  884. \def\MessageBreak{^^J}%
  885. \set@display@protect%
  886. \edef%
  887. \@err@                                                                 %
  888. {{#4}}%
  889. \errhelp
  890. \@err@                                                                 %
  891. \@err@                                                                 %
  892. \errmessage
  893. \def\MessageBreak{^^J#1}%
  894. \def~{\typeout{! %
  895. #2.^^J^^J%
  896. #3^^J%
  897. Type  H <return>  for immediate help.}%
  898. \@err@                                                                 %
  899. \endgroup}%
  900. \fi}%
  901. \def\PackageError#1#2#3{%
  902.    \GenericError{%
  903.       (#1)\@spaces\@spaces\@spaces\@spaces
  904.    }{%
  905.       Package #1 Error: #2%
  906.    }{%
  907.       See the #1 package documentation for explanation.%
  908.    }{#3}%
  909. \def\PackageWarning#1#2{%
  910.    \GenericWarning{%
  911.       (#1)\@spaces\@spaces\@spaces\@spaces
  912.    }{%
  913.       Package #1 Warning: #2%
  914.    }%
  915. \def\PackageWarningNoLine#1#2{%
  916.    \PackageWarning{#1}{#2\@gobble}%
  917. \def\PackageInfo#1#2{%
  918.    \GenericInfo{%
  919.       (#1) \@spaces\@spaces\@spaces
  920.    }{%
  921.       Package #1 Info: #2%
  922.    }%
  923. \def\ClassError#1#2#3{%
  924.    \GenericError{%
  925.       (#1) \space\@spaces\@spaces\@spaces
  926.    }{%
  927.       Class #1 Error: #2%
  928.    }{%
  929.       See the #1 class documentation for explanation.%
  930.    }{#3}%
  931. \def\ClassWarning#1#2{%
  932.    \GenericWarning{%
  933.       (#1) \space\@spaces\@spaces\@spaces
  934.    }{%
  935.       Class #1 Warning: #2%
  936.    }%
  937. \def\ClassWarningNoLine#1#2{%
  938.    \ClassWarning{#1}{#2\@gobble}%
  939. \def\ClassInfo#1#2{%
  940.    \GenericInfo{%
  941.       (#1) \space\space\@spaces\@spaces
  942.    }{%
  943.       Class #1 Info: #2%
  944.    }%
  945. \def\@latex@error#1#2{%
  946.    \GenericError{%
  947.       \space\space\space\@spaces\@spaces\@spaces
  948.    }{%
  949.       LaTeX Error: #1%
  950.    }{%
  951.       See the LaTeX manual or LaTeX Companion for explanation.%
  952.    }{#2}%
  953. \def\@latex@warning#1{%
  954.    \GenericWarning{%
  955.       \space\space\space\@spaces\@spaces\@spaces
  956.    }{%
  957.       LaTeX Warning: #1%
  958.    }%
  959. \def\@latex@warning@no@line#1{%
  960.    \@latex@warning{#1\@gobble}}
  961. \def\@latex@info#1{%
  962.    \GenericInfo{%
  963.       \@spaces\@spaces\@spaces
  964.    }{%
  965.       LaTeX Info: #1%
  966.    }%
  967. \def\@latex@info@no@line#1{%
  968.   \@latex@info{#1\@gobble}}
  969. \let\c@errorcontextlines\errorcontextlines
  970. \c@errorcontextlines=-1
  971. \ifnum\inputlineno=\m@ne
  972.   \let\on@line\empty
  973. \else
  974.   \def\on@line{ on input line \the\inputlineno}
  975. \let\@warning\@latex@warning
  976. \let\@@warning\@latex@warning@no@line
  977. \let\@latexerr\@latex@error
  978. \def\@spaces{\space\space\space\space}
  979. \def\@eha{Your command was ignored.\MessageBreak
  980. Type \space I <command> <return> \space to replace it
  981.   with another command,\MessageBreak
  982. or \space <return> \space to continue without it.}
  983. \def\@ehb{You've lost some text. \space \@ehc}
  984. \def\@ehc{Try typing \space <return>
  985.   \space to proceed.\MessageBreak
  986. If that doesn't work, type \space X <return> \space to
  987.   quit.}
  988. \def\@ehd{You're in trouble here.  \space\@ehc}
  989. \def\@notdefinable{\@latex@error{%
  990.    Command \@backslashchar\reserved@a\space already defined%
  991. }\@eha}
  992. \def\@nolnerr{\@latex@error{There's no line here to end}\@eha}
  993. \def\@nocounterr#1{\@latex@error{No counter '#1' defined}\@eha}
  994. \def\@nocnterr{\@nocounterr{??}}
  995. \def\@ctrerr{\@latex@error{Counter too large}\@ehb}
  996. \def\@nodocument{\@latex@error{Missing \protect\begin{document}}\@ehd}
  997. \def\@badend#1{%
  998.   \@latex@error{\protect\begin{\@currenvir}\@currenvline\space ended
  999.                     by \protect\end{#1}}\@eha}
  1000. \def\@badmath{\@latex@error{Bad math environment delimiter}\@eha}
  1001. \def\@toodeep{\@latex@error{Too deeply nested}\@ehd}
  1002. \def\@badpoptabs{%
  1003.   \@latex@error{\protect\pushtabs \space and \protect\poptabs
  1004.       \space don't match}\@ehd}
  1005. \def\@badtab{\@latex@error{Undefined tab position}\@ehd}
  1006. \def\@preamerr#1{%
  1007.   \begingroup
  1008.     \let\protect\relax
  1009.     \@latex@error{\ifcase #1 Illegal character\or
  1010.      Missing @-exp\or Missing p-arg\fi\space
  1011.      in array arg}\@ehd
  1012.   \endgroup}
  1013. \def\@badlinearg{%
  1014.   \@latex@error{%
  1015.        Bad \protect\line\space or \protect\vector \space argument}\@ehb}
  1016. \def\@parmoderr{\@latex@error{Not in outer par mode}\@ehb}
  1017. \def\@fltovf{\@latex@error{Too many unprocessed floats}\@ehb}
  1018. \def\@latexbug{\@latex@error{This may be a LaTeX bug}{Call for help}}
  1019. \def\@noitemerr{\@latex@error{Something's wrong--perhaps a missing
  1020. \protect\item}\@ehc}
  1021. \def\@notprerr {\@latex@error{Can be used only in preamble}\@eha}
  1022. \def\@inmatherr#1{%
  1023.    \relax
  1024.    \ifmmode
  1025.      \@latex@error{Command \protect#1 invalid in math mode}\@ehc
  1026.    \fi}
  1027. %%% File: ltpar.dtx
  1028. \message{par,}
  1029. \def\@setpar#1{\def\par{#1}\def\@par{#1}}
  1030. \def\@par{\let\par\@@par\par}
  1031. \def\@restorepar{\def\par{\@par}}
  1032. %%% File: ltspace.dtx
  1033. \message{spacing,}
  1034. \def\nopagebreak{\@ifnextchar[\@nopgbk{\@nopgbk[4]}}
  1035. \def\@nopgbk[#1]{\ifvmode \penalty \@getpen{#1}\else
  1036. \@bsphack\vadjust{\penalty \@getpen{#1}}\@esphack\fi}
  1037. \def\pagebreak{\@ifnextchar[\@pgbk{\@pgbk[4]}}
  1038. \def\@pgbk[#1]{\ifvmode \penalty -\@getpen{#1}\else
  1039. \@bsphack\vadjust{\penalty -\@getpen{#1}}\@esphack\fi}
  1040. \def\nolinebreak{\@ifnextchar[\@nolnbk{\@nolnbk[4]}}
  1041. \def\@nolnbk[#1]{\ifvmode \@nolnerr\else \@tempskipa\lastskip
  1042.      \unskip \penalty \@getpen{#1}\ifdim \@tempskipa >\z@
  1043.      \hskip\@tempskipa\ignorespaces\fi\fi}
  1044. \def\linebreak{\@ifnextchar[\@lnbk{\@lnbk[4]}}
  1045. \def\@lnbk[#1]{\ifvmode \@nolnerr\else
  1046.      \unskip\penalty -\@getpen{#1}\fi}
  1047. \def\samepage{\interlinepenalty\@M
  1048.    \postdisplaypenalty\@M
  1049.    \interdisplaylinepenalty\@M
  1050.    \@beginparpenalty\@M
  1051.    \@endparpenalty\@M
  1052.    \@itempenalty\@M
  1053.    \@secpenalty\@M
  1054.    \interfootnotelinepenalty\@M}
  1055. \def\newline{\ifvmode \@nolnerr \else \unskip\nobreak\hfil
  1056.   \penalty -\@M\fi}
  1057. \DeclareRobustCommand\\{%
  1058.   \@ifstar
  1059.     {\vadjust{\penalty\@M}\@xnewline}%
  1060.     \@xnewline}
  1061. \expandafter\let\expandafter\@normalcr
  1062.      \csname\expandafter\@gobble\string\\ \endcsname
  1063. \def\@xnewline{\@ifnextchar[\@newline\newline}
  1064. \def\@newline[#1]{\ifhmode\unskip\fi\vspace{#1}\newline}
  1065. \def\@getpen#1{\ifcase #1 0 \or \@lowpenalty\or
  1066.          \@medpenalty \or \@highpenalty
  1067.          \else \@M \fi}
  1068. \newif\if@nobreak \@nobreakfalse
  1069. \newdimen\@savsk
  1070. \newcount\@savsf
  1071. \def\@Esphack{\relax\ifmmode\else\ifhmode\spacefactor\@savsf
  1072.      \ifdim \@savsk >\z@ \global\@ignoretrue \ignorespaces
  1073.   \fi \fi\fi}
  1074. \def \@bsphack{%
  1075.    \relax \ifhmode
  1076.      \@savsk \lastskip
  1077.      \@savsf \spacefactor
  1078.    \fi
  1079. \def \@esphack{%
  1080.      \relax \ifhmode
  1081.        \spacefactor \@savsf
  1082.        \ifdim \@savsk>\z@
  1083.          \ignorespaces
  1084.        \fi
  1085.      \fi
  1086. \def \@Esphack{%
  1087.      \relax \ifhmode
  1088.        \spacefactor \@savsf
  1089.        \ifdim \@savsk>\z@
  1090.          \global\@ignoretrue
  1091.          \ignorespaces
  1092.        \fi
  1093.      \fi
  1094. \def\@xaddvskip{\ifdim \lastskip <\@tempskipb\vskip-\lastskip\vskip
  1095.              \@tempskipb
  1096.         \else  \ifdim \@tempskipb<\z@
  1097.                  \ifdim \lastskip <\z@
  1098.                     \else \advance\@tempskipb\lastskip
  1099.                            \vskip -\lastskip \vskip \@tempskipb
  1100.       \fi\fi\fi}
  1101. \def\addvspace#1{%
  1102.   \ifvmode
  1103.      \if@minipage\else
  1104.        \ifdim \lastskip =\z@
  1105.          \vskip #1\relax
  1106.        \else
  1107.        \@tempskipb#1\relax
  1108.          \@xaddvskip
  1109.        \fi
  1110.      \fi
  1111.   \else
  1112.     \@noitemerr
  1113.   \fi
  1114. \def\addpenalty#1{%
  1115.   \ifvmode
  1116.     \if@minipage
  1117.     \else
  1118.       \if@nobreak
  1119.       \else
  1120.         \ifdim\lastskip=\z@
  1121.           \penalty#1\relax
  1122.         \else
  1123.           \@tempskipb\lastskip
  1124.           \vskip -\lastskip
  1125.           \penalty#1%
  1126.           \vskip\@tempskipb
  1127.         \fi
  1128.       \fi
  1129.     \fi
  1130.   \else
  1131.     \@noitemerr
  1132.   \fi
  1133. \def\vspace{\@ifstar\@vspacer\@vspace}
  1134. \def\@vspace #1{%
  1135.   \ifvmode
  1136.     \vskip #1
  1137.     \vskip\z@skip
  1138.    \else
  1139.      \@bsphack
  1140.      \vadjust{\@restorepar
  1141.               \vskip #1
  1142.               \vskip\z@skip
  1143.               }%
  1144.      \@esphack
  1145.    \fi
  1146. \def\@vspacer #1{%
  1147.   \ifvmode
  1148.     \dimen@\prevdepth
  1149.     \hrule \@height\z@
  1150.     \nobreak
  1151.     \vskip #1
  1152.     \vskip\z@skip
  1153.     \prevdepth\dimen@
  1154.   \else
  1155.     \@bsphack
  1156.     \vadjust{\@restorepar
  1157.              \hrule \@height\z@
  1158.              \nobreak
  1159.              \vskip #1
  1160.              \vskip\z@skip
  1161.              }%
  1162.     \@esphack
  1163.   \fi
  1164. \def\smallskip{\vspace\smallskipamount}
  1165. \def\medskip{\vspace\medskipamount}
  1166. \def\bigskip{\vspace\bigskipamount}
  1167. \newskip\smallskipamount \smallskipamount=3pt plus 1pt minus 1pt
  1168. \newskip\medskipamount   \medskipamount  =6pt plus 2pt minus 2pt
  1169. \newskip\bigskipamount   \bigskipamount =12pt plus 4pt minus 4pt
  1170. \DeclareRobustCommand{\,}{%
  1171.    \relax\ifmmode\mskip\thinmuskip\else\thinspace\fi
  1172. \def\@{\spacefactor\@m}
  1173. \DeclareRobustCommand\hspace{\@ifstar\@hspacer\@hspace}
  1174. \def\@hspace#1{\hskip #1\relax}
  1175. \def\@hspacer#1{\vrule \@width\z@\nobreak
  1176.                 \hskip #1\hskip \z@skip}
  1177.                       % extra \hskip 0pt added 12/17/85 to guard
  1178.                       % against a following \unskip
  1179.                       % \relax added 13 Oct 88 for usual TeX lossage
  1180.                       % replaced both changes by \hskip\z@skip 27 Nov 91
  1181. \newskip\fill \fill = 0pt plus 1fill
  1182. \def\stretch#1{\z@ \@plus #1fill\relax}
  1183. \def\thinspace{\kern .16667em }
  1184. \def\negthinspace{\kern-.16667em }
  1185. \def\enspace{\kern.5em }
  1186. \def\enskip{\hskip.5em\relax}
  1187. \def\quad{\hskip1em\relax}
  1188. \def\qquad{\hskip2em\relax}
  1189. {\catcode`\^^M=13 \gdef\obeycr{\catcode`\^^M13 \def^^M{\\\relax}%
  1190.     \@gobblecr}%
  1191. \gdef\restorecr{\catcode`\^^M5 }}
  1192. %%% File: ltlogos
  1193. \def\TeX{T\kern-.1667em\lower.5ex\hbox{E}\kern-.125emX\@}
  1194. \DeclareRobustCommand{\LaTeX}{L\kern-.36em
  1195.         {\setbox0\hbox{T}%
  1196.          \vbox to\ht0{\hbox{$\m@th$%
  1197.                             \csname S@\f@size\endcsname
  1198.                             \fontsize\sf@size\z@
  1199.                             \math@fontsfalse\selectfont
  1200.                             A}%
  1201.                       \vss}%
  1202.         }%
  1203.         \kern-.15em
  1204.         \TeX}
  1205. \DeclareRobustCommand{\LaTeXe}{\mbox{%
  1206.   \if b\expandafter\@car\f@series\@nil\boldmath\fi
  1207.   \LaTeX\kern.15em 2${}_{\textstyle\varepsilon}$}}
  1208. %%% File: ltfiles
  1209. \message{files,}
  1210. \newread\@inputcheck
  1211. \newwrite\@unused
  1212. \newwrite\@mainaux
  1213. \newwrite\@partaux
  1214. \newif\if@filesw \@fileswtrue
  1215. \newif\if@partsw \@partswfalse
  1216. \newcount\@clubpenalty
  1217. \def\document{\endgroup
  1218.   \ifx\@unusedoptionlist\@empty\else
  1219.     \@latex@warning@no@line{Unused global option(s):^^J%
  1220.             \@spaces[\@unusedoptionlist]}%
  1221.   \fi
  1222.   \@colht\textheight
  1223.   \@colroom\textheight \vsize\textheight
  1224.   \columnwidth\textwidth
  1225.   \@clubpenalty\clubpenalty
  1226.   \if@twocolumn
  1227.     \advance\columnwidth -\columnsep
  1228.     \divide\columnwidth\tw@ \hsize\columnwidth \@firstcolumntrue
  1229.   \fi
  1230.   \hsize\columnwidth \linewidth\hsize
  1231.   \begingroup\@floatplacement\@dblfloatplacement
  1232.    \makeatletter\let\@writefile\@gobbletwo
  1233.    \global\@multiplelabelsfalse
  1234.    \@input{\jobname.aux}%
  1235.   \endgroup
  1236.   \if@filesw
  1237.     \immediate\openout\@mainaux\jobname.aux
  1238.     \immediate\write\@mainaux{\relax}%
  1239.   \fi
  1240.   \process@table
  1241.   \let\glb@currsize\@empty  %% Force math initialisation.
  1242.   \normalsize
  1243.   \everypar{}\@noskipsecfalse\G@refundefinedfalse
  1244.   \@begindocumenthook
  1245.   \ifdim\topskip< 1sp\topskip 1sp\relax\fi
  1246.   \global\let\@begindocumenthook\@undefined
  1247.   \ifx\@listfiles\@undefined
  1248.     \global\let\@filelist\relax
  1249.     \global\let\@addtofilelist\@gobble
  1250.   \fi
  1251.   \def\do##1{\global\let ##1\@notprerr}%
  1252.   \@preamblecmds
  1253.   \global\let\do\noexpand
  1254. \def\nofiles{\@fileswfalse
  1255.   \typeout{No auxiliary output files.^^J}%
  1256.   \long\def\protected@write##1##2##3{}%
  1257.   \let\makeindex\relax
  1258.   \let\makeglossary\relax}
  1259. \@onlypreamble\nofiles
  1260. \long\def \protected@write#1#2#3{%
  1261.       \begingroup
  1262.        \let\thepage\relax
  1263.        #2%
  1264.        \let\protect\@unexpandable@protect
  1265.        \edef\reserved@a{\write#1{#3}}%
  1266.        \reserved@a
  1267.       \endgroup
  1268.       \if@nobreak\ifvmode\nobreak\fi\fi
  1269. \let\@auxout=\@mainaux
  1270. \def\includeonly#1{\@partswtrue
  1271.                    \edef\@partlist{\zap@space#1 \@empty}}
  1272. \def\include#1{\relax
  1273.   \ifnum\@auxout=\@partaux
  1274.     \@latex@error{\string\include\space cannot be nested}\@eha
  1275.   \else \@include#1 \fi}
  1276. \def\@include#1 {%
  1277.   \clearpage
  1278.   \if@filesw
  1279.     \immediate\write\@mainaux{\string\@input{#1.aux}}%
  1280.   \fi
  1281.   \@tempswatrue
  1282.   \if@partsw
  1283.     \@tempswafalse
  1284.     \edef\reserved@b{#1}%
  1285.     \@for\reserved@a:=\@partlist\do
  1286.       {\ifx\reserved@a\reserved@b\@tempswatrue\fi}%
  1287.   \fi
  1288.   \if@tempswa
  1289.     \let\@auxout\@partaux
  1290.     \if@filesw
  1291.       \immediate\openout\@partaux #1.aux
  1292.       \immediate\write\@partaux{\relax}%
  1293.     \fi
  1294.     \@input@{#1.tex}%
  1295.     \clearpage
  1296.     \@writeckpt{#1}%
  1297.     \if@filesw
  1298.       \immediate\closeout\@partaux
  1299.     \fi
  1300.   \else
  1301.     \@nameuse{cp@#1}%
  1302.   \fi
  1303.   \let\@auxout\@mainaux}
  1304. \def\@writeckpt#1{\if@filesw
  1305. \immediate\write\@partaux{\string\@setckpt{#1}\@charlb}%
  1306. {\let\@elt\@wckptelt \cl@@ckpt}\immediate\write\@partaux{\@charrb}\fi}
  1307. \def\@wckptelt#1{\immediate\write\@partaux
  1308. {\string\setcounter{#1}{\the\@nameuse{c@#1}}}}
  1309. \def\@setckpt#1{\global\@namedef{cp@#1}}
  1310. {\catcode`[=1 \catcode`]=2
  1311. \catcode`{=11 \catcode`}=11
  1312. \gdef\@charlb[{]
  1313. \gdef\@charrb[}]
  1314. ]% }brace matching
  1315. \long\def \IfFileExists#1#2#3{%
  1316.   \openin\@inputcheck#1 %
  1317.   \ifeof\@inputcheck
  1318.     \ifx\input@path\@undefined
  1319.       \def\reserved@a{#3}%
  1320.     \else
  1321.       \def\reserved@a{\@iffileonpath{#1}{#2}{#3}}%
  1322.     \fi
  1323.   \else
  1324.     \closein\@inputcheck
  1325.     \edef\@filef@und{#1 }%
  1326.     \def\reserved@a{#2}%
  1327.   \fi
  1328.   \reserved@a}
  1329. \long\def \@iffileonpath#1#2#3{%
  1330.   \def\reserved@a{#3}%
  1331.   \expandafter\@tfor\expandafter\reserved@b\expandafter
  1332.              :\expandafter=\input@path\do{%
  1333.     \openin\@inputcheck\reserved@b#1 %
  1334.     \ifeof\@inputcheck\else
  1335.       \edef\@filef@und{\reserved@b#1 }%
  1336.       \def\reserved@a{#2}%
  1337.       \closein\@inputcheck
  1338.       \@break@tfor
  1339.     \fi}%
  1340.   \reserved@a}
  1341. \long\def \InputIfFileExists#1#2{%
  1342.   \IfFileExists{#1}%
  1343.     {#2\@addtofilelist{#1}\@@input \@filef@und}}
  1344. \def\input{\@ifnextchar\bgroup\@iinput\@@input}
  1345. \def\@iinput#1{%
  1346.   \InputIfFileExists{#1}{}%
  1347.   {\filename@parse{#1}%
  1348.    \edef\reserved@a{\noexpand\@missingfileerror
  1349.      {\filename@area\filename@base}%
  1350.      {\ifx\filename@ext\relax tex\else\filename@ext\fi}}%
  1351.    \reserved@a}}
  1352. \def\@input#1{%
  1353.   \IfFileExists{#1}{\@@input\@filef@und}{\typeout{No file #1.}}}
  1354. \def\@input@#1{\InputIfFileExists{#1}{}{\typeout{No file #1.}}}
  1355. \def\@missingfileerror#1#2{%
  1356.      \typeout{^^J! LaTeX Error: File `#1.#2' not found.^^J^^J%
  1357.       Type X to quit or <RETURN> to proceed,^^J%
  1358.       or enter new name. (Default extension: #2)^^J}%
  1359.      \message{Enter file name: }%
  1360.       {\endlinechar\m@ne
  1361.        \global\read\m@ne to\@gtempa}%
  1362.     \ifx\@gtempa\@empty
  1363.     \else
  1364.       \def\reserved@a{x}\ifx\reserved@a\@gtempa\batchmode\@@end\fi
  1365.       \def\reserved@a{X}\ifx\reserved@a\@gtempa\batchmode\@@end\fi
  1366.       \filename@parse\@gtempa
  1367.       \edef\filename@ext{%
  1368.         \ifx\filename@ext\relax#2\else\filename@ext\fi}%
  1369.      \edef\reserved@a{%
  1370.        \noexpand\InputIfFileExists
  1371.          {\filename@area\filename@base.\filename@ext}%
  1372.          {}%
  1373.          {\noexpand\@missingfileerror
  1374.             {\filename@area\filename@base}{\filename@ext}}}%
  1375.       \reserved@a
  1376.     \fi}
  1377. \def\@obsoletefile#1#2{%
  1378.    \@latex@warning@no@line{inputting `#1' instead of obsolete `#2'}}
  1379. \@onlypreamble\@obsoletefile
  1380. \let\@filelist\@gobble
  1381. \def\@addtofilelist#1{%
  1382.   \xdef\@filelist{\@filelist,#1}}
  1383. \def\listfiles{%
  1384.   \let\listfiles\relax
  1385.   \def\@listfiles##1##2##3##4##5##6##7##8##9\@@{%
  1386.      \def\reserved@d{\\}%
  1387.      \@tfor\reserved@c:=##1##2##3##4##5##6##7##8\do{%
  1388.        \ifx\reserved@c\reserved@d
  1389.          \edef\filename@area{ \filename@area}%
  1390.        \fi}}%
  1391.   \def\@dofilelist{%
  1392.      \typeout{^^J *File List*}%
  1393.      \@for\@currname:=\@filelist\do{%
  1394.        \filename@parse\@currname
  1395.        \edef\reserved@a{%
  1396.           \filename@base.%
  1397.           \ifx\filename@ext\relax tex\else\filename@ext\fi}%
  1398.        \expandafter\let\expandafter\reserved@b
  1399.                               \csname ver@\reserved@a\endcsname
  1400.        \expandafter\expandafter\expandafter\@listfiles\expandafter
  1401.              \filename@area\filename@base\\\\\\\\\\\\\\\\\\\@@
  1402.        \typeout{%
  1403.          \filename@area\reserved@a
  1404.          \ifx\reserved@b\relax\else\@spaces\reserved@b\fi}}%
  1405.      \typeout{ ***********^^J}}}
  1406. \@onlypreamble\listfiles
  1407. \let\@dofilelist\relax
  1408. %%% File: ltoutenc
  1409. \message{font encodings,}
  1410. \def\DeclareTextCommand{%
  1411.    \@dec@text@cmd\newcommand
  1412. \def\ProvideTextCommand{%
  1413.    \@dec@text@cmd\providecommand
  1414. \def\DeclareTextSymbol#1#2#3{%
  1415.    \@dec@text@cmd\chardef#1{#2}#3\relax
  1416. \def\@dec@text@cmd#1#2#3{%
  1417.    \expandafter\def\expandafter#2%
  1418.       \expandafter{%
  1419.          \csname#3-cmd\expandafter\endcsname
  1420.          \expandafter#2%
  1421.          \csname#3\string#2\endcsname
  1422.       }%
  1423.    \let\@ifdefinable\@rc@ifdefinable
  1424.    \expandafter#1\csname#3\string#2\endcsname
  1425. \@onlypreamble\DeclareTextCommand
  1426. \@onlypreamble\DeclareTextSymbol
  1427. \def\@current@cmd#1{%
  1428.    \ifx\protect\@typeset@protect\else
  1429.       \noexpand#1\expandafter\@gobble
  1430.    \fi
  1431. \def\@changed@cmd#1#2{%
  1432.    \ifx\protect\@typeset@protect
  1433.       \expandafter\ifx\csname\cf@encoding\string#1\endcsname\relax
  1434.          \expandafter\ifx\csname ?\string#1\endcsname\relax
  1435.             \expandafter\def\csname ?\string#1\endcsname{%
  1436.                \@changed@x@err{#1}%
  1437.             }%
  1438.          \fi
  1439.          \ifmmode\else
  1440.             \expandafter\let
  1441.                \csname\cf@encoding \string#1\expandafter\endcsname
  1442.                \csname ?\string#1\endcsname
  1443.          \fi
  1444.          \csname ?\string#1%
  1445.             \expandafter\expandafter\expandafter\endcsname
  1446.       \else
  1447.          \csname\cf@encoding\string#1%
  1448.             \expandafter\expandafter\expandafter\endcsname
  1449.       \fi
  1450.    \else
  1451.       \noexpand#1%
  1452.    \fi
  1453. \def\@changed@x@err#1{%
  1454.    \@latex@error{%
  1455.       Command \protect#1 undefined in encoding \cf@encoding%
  1456.    }\@eha
  1457. \def\DeclareTextCommandDefault#1{%
  1458.    \DeclareTextCommand#1?%
  1459. \def\ProvideTextCommandDefault#1{%
  1460.    \ProvideTextCommand#1?%
  1461. \@onlypreamble\DeclareTextCommandDefault
  1462. \expandafter\let\csname?-cmd\endcsname\@changed@cmd
  1463. \def\DeclareTextAccent#1#2#3{%
  1464.    \DeclareTextCommand#1{#2}[1]{{\accent#3 ##1}}
  1465. \@onlypreamble\DeclareTextAccent
  1466. \def\DeclareTextCompositeCommand#1#2#3#4{%
  1467.    \expandafter\let\expandafter\reserved@a\csname#2\string#1\endcsname
  1468.    \edef\reserved@b{\string##1}%
  1469.    \edef\reserved@c{%
  1470.      \expandafter\@strip@args\meaning\reserved@a:-\@strip@args}%
  1471.    \ifx\reserved@b\reserved@c
  1472.       \expandafter\expandafter\expandafter\ifx
  1473.          \expandafter\@car\reserved@a\relax\relax\@nil
  1474.          \@text@composite
  1475.       \else
  1476.          \edef\reserved@b##1{%
  1477.             \def\expandafter\noexpand
  1478.                \csname#2\string#1\endcsname####1{%
  1479.                \noexpand\@text@composite
  1480.                   \expandafter\noexpand\csname#2\string#1\endcsname
  1481.                   ####1\noexpand\@empty\noexpand\@text@composite
  1482.                   {##1}%
  1483.             }%
  1484.          }%
  1485.          \expandafter\reserved@b\expandafter{\reserved@a{##1}}%
  1486.       \fi
  1487.       \expandafter\def\csname\expandafter\string\csname
  1488.          #2\endcsname\string#1-\string#3\endcsname{#4}%
  1489.    \else
  1490.       \@latex@error{%
  1491.          \string\DeclareTextCompositeCommand\space used on
  1492.          inappropriate command \protect#1%
  1493.       }\@eha
  1494.    \fi
  1495. \@onlypreamble\DeclareTextCompositeCommand
  1496. \def\@text@composite#1#2#3\@text@composite{%
  1497.    \expandafter\@text@composite@x
  1498.       \csname\string#1-\string#2\endcsname
  1499. \def\@text@composite@x#1#2{%
  1500.    \ifx#1\relax
  1501.       #2%
  1502.    \else
  1503.       #1%
  1504.    \fi
  1505. \def\@strip@args#1:#2-#3\@strip@args{#2}
  1506. \def\DeclareTextComposite#1#2#3#4{%
  1507.    \def\reserved@a{\DeclareTextCompositeCommand#1{#2}{#3}}%
  1508.    \bgroup
  1509.       \lccode`\@=#4%
  1510.       \lowercase{%
  1511.    \egroup
  1512.       \reserved@a @%
  1513.    }%
  1514. \@onlypreamble\DeclareTextComposite
  1515. \def\UseTextSymbol#1#2{%
  1516.    \let\@curr@enc\cf@encoding
  1517.    \@use@text@encoding{#1}%
  1518.    #2%
  1519.    \@use@text@encoding\@curr@enc
  1520. \def\UseTextAccent#1#2#3{%
  1521.    \let\@curr@enc\cf@encoding
  1522.    \@use@text@encoding{#1}%
  1523.    #2{\@use@text@encoding\@curr@enc\selectfont#3}%
  1524.    \@use@text@encoding\@curr@enc
  1525. \def\@use@text@encoding#1{%
  1526.    \edef\f@encoding{#1}%
  1527.    \xdef\font@name{%
  1528.       \csname\curr@fontshape/\f@size\endcsname
  1529.    }%
  1530.    \pickup@font
  1531.    \font@name
  1532.    \@@enc@update
  1533. \def\DeclareTextSymbolDefault#1#2{%
  1534.    \DeclareTextCommandDefault#1{\UseTextSymbol{#2}#1}%
  1535. \def\DeclareTextAccentDefault#1#2{%
  1536.    \DeclareTextCommandDefault#1{\UseTextAccent{#2}#1}%
  1537. \@onlypreamble\DeclareTextSymbolDefault
  1538. \@onlypreamble\DeclareTextAccentDefault
  1539. \def\a#1{\expandafter\@changed@cmd\csname#1\endcsname\relax}
  1540. \DeclareTextAccentDefault{\"}{OT1}
  1541. \DeclareTextAccentDefault{\'}{OT1}
  1542. \DeclareTextAccentDefault{\.}{OT1}
  1543. \DeclareTextAccentDefault{\=}{OT1}
  1544. \DeclareTextAccentDefault{\H}{OT1}
  1545. \DeclareTextAccentDefault{\^}{OT1}
  1546. \DeclareTextAccentDefault{\`}{OT1}
  1547. \DeclareTextAccentDefault{\b}{OT1}
  1548. \DeclareTextAccentDefault{\c}{OT1}
  1549. \DeclareTextAccentDefault{\d}{OT1}
  1550. \DeclareTextAccentDefault{\r}{OT1}
  1551. \DeclareTextAccentDefault{\u}{OT1}
  1552. \DeclareTextAccentDefault{\v}{OT1}
  1553. \DeclareTextAccentDefault{\~}{OT1}
  1554. \DeclareTextSymbolDefault{\AA}{OT1}
  1555. \DeclareTextSymbolDefault{\AE}{OT1}
  1556. \DeclareTextSymbolDefault{\L}{OT1}
  1557. \DeclareTextSymbolDefault{\OE}{OT1}
  1558. \DeclareTextSymbolDefault{\O}{OT1}
  1559. \DeclareTextSymbolDefault{\aa}{OT1}
  1560. \DeclareTextSymbolDefault{\ae}{OT1}
  1561. \DeclareTextSymbolDefault{\i}{OT1}
  1562. \DeclareTextSymbolDefault{\j}{OT1}
  1563. \DeclareTextSymbolDefault{\l}{OT1}
  1564. \DeclareTextSymbolDefault{\oe}{OT1}
  1565. \DeclareTextSymbolDefault{\o}{OT1}
  1566. \DeclareTextSymbolDefault{\ss}{OT1}
  1567. \DeclareTextSymbolDefault{\textdollar}{OT1}
  1568. \DeclareTextSymbolDefault{\textemdash}{OT1}
  1569. \DeclareTextSymbolDefault{\textendash}{OT1}
  1570. \DeclareTextSymbolDefault{\textexclamdown}{OT1}
  1571. \DeclareTextSymbolDefault{\textquestiondown}{OT1}
  1572. \DeclareTextSymbolDefault{\textquotedblleft}{OT1}
  1573. \DeclareTextSymbolDefault{\textquotedblright}{OT1}
  1574. \DeclareTextSymbolDefault{\textquoteleft}{OT1}
  1575. \DeclareTextSymbolDefault{\textquoteright}{OT1}
  1576. \DeclareTextSymbolDefault{\textsterling}{OT1}
  1577. \DeclareTextSymbolDefault{\textbraceleft}{OMS}
  1578. \DeclareTextSymbolDefault{\textbraceright}{OMS}
  1579. \DeclareTextSymbolDefault{\textbullet}{OMS}
  1580. \DeclareTextSymbolDefault{\textdaggerdbl}{OMS}
  1581. \DeclareTextSymbolDefault{\textdagger}{OMS}
  1582. \DeclareTextSymbolDefault{\textparagraph}{OMS}
  1583. \DeclareTextSymbolDefault{\textperiodcentered}{OMS}
  1584. \DeclareTextSymbolDefault{\textsection}{OMS}
  1585. \DeclareTextAccentDefault{\textcircled}{OMS}
  1586. \DeclareTextAccentDefault{\t}{OML}
  1587. \DeclareTextCommandDefault{\copyright}{{\textcircled{c}}}
  1588. \DeclareTextCommandDefault{\textcompwordmark}{\kern\z@}
  1589. \DeclareTextCommandDefault{\textunderscore}{%
  1590.    \leavevmode\mathunderscore
  1591. \DeclareTextCommandDefault{\textvisiblespace}{%
  1592.    \mbox{\kern.06em\vrule \@height.3ex}%
  1593.    \vbox{\hrule \@width.3em}%
  1594.    \hbox{\vrule \@height.3ex}%
  1595. \DeclareTextCommandDefault{\textellipsis}{%
  1596.    .\kern\fontdimen3\font
  1597.    .\kern\fontdimen3\font
  1598.    .\kern\fontdimen3\font
  1599. \DeclareRobustCommand{\$}{\ifmmode\mathdollar\else\textdollar\fi}
  1600. \DeclareRobustCommand{\{}{\ifmmode\lbrace\else\textbraceleft\fi}
  1601. \DeclareRobustCommand{\}}{\ifmmode\rbrace\else\textbraceright\fi}
  1602. \DeclareRobustCommand{\P}{\ifmmode\mathparagraph\else\textparagraph\fi}
  1603. \DeclareRobustCommand{\S}{\ifmmode\mathsection\else\textsection\fi}
  1604. \DeclareRobustCommand{\dag}{\ifmmode{\dagger}\else\textdagger\fi}
  1605. \DeclareRobustCommand{\ddag}{\ifmmode{\ddagger}\else\textdaggerdbl\fi}
  1606. \DeclareRobustCommand{\_}{%
  1607.    \ifmmode\mathunderscore\else\textunderscore\fi
  1608. \DeclareRobustCommand{\pounds}{%
  1609.    \ifmmode\mathsterling\else\textsterling\fi
  1610. \DeclareRobustCommand{\dots}{%
  1611.    \ifmmode\mathellipsis\else\textellipsis\fi
  1612. \let\ldots\dots
  1613. %%% File: ltfssbas
  1614. %% Copyright (C) 1989-1995 Frank Mittelbach and Rainer Sch\"opf,
  1615. %% all rights reserved.
  1616. \def\@nomath#1{\relax\ifmmode
  1617.    \@font@warning{Command \noexpand#1invalid in math mode}\fi}
  1618. \def\no@alphabet@error#1{\relax \ifmmode
  1619.     \@latex@error{Math alphabet identifier \noexpand#1is undefined
  1620.                 in math version `\math@version'}%
  1621.         {Your requested math alphabet is undefined in the current
  1622.          math version.^^JCheck the spelling or use the
  1623.          \noexpand\SetMathAlphabet command.}
  1624.      \fi}
  1625. \def\new@mathgroup{\alloc@8\mathgroup\chardef\sixt@@n}
  1626. \let\mathgroup\fam
  1627. \let\newfam\new@mathgroup
  1628. \def\DeclareFontShape{\begingroup
  1629.    \nfss@catcodes
  1630.    \expandafter\endgroup
  1631.    \DeclareFontShape@}
  1632. \def\DeclareFontShape@#1#2#3#4#5#6{%
  1633.    \expandafter\ifx\csname #1+#2\endcsname\undefined
  1634.      \@latex@error{Font family `#1+#2' unknown}\@eha
  1635.    \else
  1636.      \expandafter
  1637.        \xdef\csname#1/#2/#3/#4\endcsname{\expandafter\noexpand
  1638.                                    \csname #5\endcsname}%
  1639.      \def\reserved@a{#6}%
  1640.      \global
  1641.      \expandafter\let\csname#5\expandafter\endcsname
  1642.         \ifx\reserved@a\@empty
  1643.           \@empty
  1644.         \else
  1645.           \reserved@a
  1646.         \fi
  1647.    \fi
  1648. \def\DeclareFixedFont#1#2#3#4#5#6{%
  1649.    \begingroup
  1650.       \math@fontsfalse
  1651.       \every@math@size{}%
  1652.       \fontsize{#6}\z@
  1653.       \usefont{#2}{#3}{#4}{#5}%
  1654.       \global\expandafter\let\expandafter#1\the\font
  1655.    \endgroup
  1656. \def\do@subst@correction{%
  1657.        \xdef\subst@correction{%
  1658.           \font@name
  1659.           \global\expandafter\font
  1660.             \csname \curr@fontshape/\f@size\endcsname
  1661.             \noexpand\fontname\font
  1662.            \relax}%
  1663.        \aftergroup\subst@correction
  1664. \def\DeclareFontFamily#1#2#3{%
  1665.  \@ifundefined{T@#1}%
  1666.     {%
  1667.      \@latex@error{Encoding scheme  `#1' unknown}\@eha
  1668.     }%
  1669.     {%
  1670.      \def\reserved@a{#3}%
  1671.      \global
  1672.      \expandafter\let\csname #1+#2\expandafter\endcsname
  1673.             \ifx \reserved@a\@empty
  1674.               \@empty
  1675.             \else \reserved@a
  1676.             \fi
  1677.     }%
  1678. \let\cdp@list\@empty
  1679. \def\DeclareFontEncoding{%
  1680.    \begingroup
  1681.    \nfss@catcodes
  1682.    \expandafter\endgroup
  1683.    \DeclareFontEncoding@}
  1684. \def\DeclareFontEncoding@#1#2#3{%
  1685.   \expandafter
  1686.   \ifx\csname T@#1\endcsname\relax
  1687.      \def\cdp@elt{\noexpand\cdp@elt}%
  1688.      \xdef\cdp@list{\cdp@list\cdp@elt{#1}%
  1689.                     {\default@family}{\default@series}%
  1690.                     {\default@shape}}%
  1691.      \expandafter\let\csname#1-cmd\endcsname\@changed@cmd
  1692.   \else
  1693.      \@font@info{Redeclaring font encoding #1}%
  1694.   \fi
  1695.   \global\@namedef{T@#1}{#2}%
  1696.   \global\@namedef{M@#1}{\default@M#3}%
  1697. \def\DeclareFontSubstitution#1#2#3#4{%
  1698.   \expandafter
  1699.   \ifx\csname T@#1\endcsname\relax
  1700.     \@latex@error{Encoding scheme  `#1' unknown}\@eha
  1701.   \else
  1702.     \begingroup
  1703.        \def\reserved@a{#1}%
  1704.        \toks@{}%
  1705.        \def\cdp@elt##1##2##3##4{%
  1706.           \def\reserved@b{##1}%
  1707.           \ifx\reserved@a\reserved@b
  1708.              \addto@hook\toks@{\cdp@elt{#1}{#2}{#3}{#4}}%
  1709.           \else
  1710.              \addto@hook\toks@{\cdp@elt{##1}{##2}{##3}{##4}}%
  1711.           \fi}%
  1712.         \cdp@list
  1713.         \xdef\cdp@list{\the\toks@}%
  1714.     \endgroup
  1715.     \global
  1716.     \@namedef{D@#1}{%
  1717.            \def\default@family{#2}%
  1718.            \def\default@series{#3}%
  1719.            \def\default@shape{#4}%
  1720.            }%
  1721.   \fi
  1722. \def\DeclareFontEncodingDefaults#1#2{%
  1723.   \ifx\relax#1\else
  1724.     \ifx\default@T\@empty\else
  1725.       \@font@info{Overwriting encoding scheme text defaults}%
  1726.     \fi
  1727.     \gdef\default@T{#1}%
  1728.   \fi
  1729.   \ifx\relax#2\else
  1730.     \ifx\default@M\@empty\else
  1731.       \@font@info{Overwriting encoding scheme math defaults}%
  1732.     \fi
  1733.     \gdef\default@M{#2}%
  1734.   \fi
  1735. \let\default@T\@empty
  1736. \let\default@M\@empty
  1737. \def\DeclarePreloadSizes#1#2#3#4#5{%
  1738.  \@ifundefined{T@#1}%
  1739.    {\@latex@error{Encoding scheme  `#1' unknown}\@eha}%
  1740.    {%
  1741.    \begingroup
  1742.     \def\reserved@f##1,{%
  1743.         \if>##1>%
  1744.           \let\reserved@f\relax
  1745.         \else
  1746.           \xdef\font@name{\csname#1/#2/#3/#4/##1\endcsname}%
  1747.           \pickup@font
  1748.           \global\expandafter\let\font@name\relax
  1749.         \fi
  1750.         \reserved@f}%
  1751.      \reserved@f#5,,%
  1752.    \endgroup
  1753.    }%
  1754. \newif\ifmath@fonts \math@fontstrue
  1755. \def\DeclareMathSizes{%
  1756.   \@ifstar{\@DeclareMathSizes\math@fontsfalse}%
  1757.           {\@DeclareMathSizes{}}}
  1758. \def\@DeclareMathSizes#1#2#3#4#5{%
  1759.     \@defaultunits\dimen@#2pt\relax\@nnil
  1760.     \def\reserved@a{#3}%
  1761.     \ifx\reserved@a\@empty
  1762.       \expandafter \let
  1763.         \csname S@\strip@pt\dimen@\endcsname
  1764.         \math@fontsfalse
  1765.     \else
  1766.       \expandafter \gdef
  1767.       \csname S@\strip@pt\dimen@\endcsname
  1768.             {\gdef\tf@size{#3}\gdef\sf@size{#4}%
  1769.                              \gdef\ssf@size{#5}%
  1770.              #1%
  1771.                              }%
  1772.     \fi}
  1773. \DeclareRobustCommand\fontencoding[1]{%
  1774.     \expandafter\ifx\csname T@#1\endcsname\relax
  1775.       \@latex@error{Encoding scheme `#1' unknown}\@eha
  1776.     \else
  1777.       \edef\f@encoding{#1}%
  1778.       \ifx\cf@encoding\f@encoding
  1779.         \let\enc@update\relax
  1780.       \else
  1781.         \let\enc@update\@@enc@update
  1782.       \fi
  1783.     \fi
  1784. \def\@@enc@update{%
  1785.           \expandafter
  1786.           \let
  1787.             \csname\cf@encoding -cmd\endcsname
  1788.             \@changed@cmd
  1789.           \expandafter
  1790.           \let
  1791.             \csname\f@encoding-cmd\endcsname
  1792.             \@current@cmd
  1793.         \default@T
  1794.         \csname T@\f@encoding\endcsname
  1795.         \csname D@\f@encoding\endcsname
  1796.         \let\enc@update\relax
  1797.         \let\cf@encoding\f@encoding
  1798. \let\enc@update\relax
  1799. \DeclareRobustCommand\fontfamily[1]{\edef\f@family{#1}}
  1800. \DeclareRobustCommand\fontseries[1]{\edef\f@series{#1}}
  1801. \DeclareRobustCommand\fontshape [1]{\edef\f@shape{#1}}
  1802. \def\usefont#1#2#3#4{\fontencoding{#1}\fontfamily{#2}%
  1803.              \fontseries{#3}\fontshape{#4}\selectfont
  1804.              \ignorespaces}
  1805. \DeclareRobustCommand\linespread[1]
  1806.    {\set@fontsize{#1}\f@size\f@baselineskip}
  1807. \DeclareRobustCommand\fontsize[2]
  1808.    {\set@fontsize\baselinestretch{#1}{#2}}
  1809. \let\f@family\@empty
  1810. \let\f@series\@empty
  1811. \let\f@shape\@empty
  1812. \let\f@size\@empty
  1813. \let\f@baselineskip\@empty
  1814. \let\f@linespread\@empty
  1815. \let\f@encoding\@empty
  1816. \let\cf@encoding\@empty
  1817. \def\@defaultunits{\afterassignment\remove@to@nnil}
  1818. \begingroup
  1819.   \catcode`P=12
  1820.   \catcode`T=12
  1821.   \lowercase{
  1822.     \def\x{\def\rem@pt##1.##2PT{##1\ifnum##2>\z@.##2\fi}}}
  1823.   \expandafter\endgroup\x
  1824. \def\strip@pt{\expandafter\rem@pt\the}
  1825. \DeclareRobustCommand\mathversion[1]
  1826.          {\@nomath\mathversion
  1827.           \expandafter\ifx\csname mv@#1\endcsname\relax
  1828.           \@latex@error{Math version `#1' is not defined}\@eha\else
  1829.           \edef\math@version{#1}%
  1830.           \gdef\glb@currsize{}%
  1831.           \aftergroup\glb@settings
  1832.           \fi}
  1833. \let\frozen@everymath\everymath
  1834. \let\frozen@everydisplay\everydisplay
  1835. \newtoks\everymath
  1836. \newtoks\everydisplay
  1837. \frozen@everymath = {\check@mathfonts
  1838.                      \the\everymath}
  1839. \frozen@everydisplay = {\check@mathfonts
  1840.                         \the\everydisplay}
  1841. \newif\if@inmath
  1842. \let\curr@math@size\@empty
  1843. \def\pickup@font{%
  1844.     \expandafter \ifx \font@name \relax
  1845.        \define@newfont
  1846.     \fi}
  1847. {\catcode`\/=12
  1848. \gdef\split@name#1/#2/#3/#4/#5\@nil{\def\f@encoding{#1}%
  1849.                                     \def\f@family{#2}%
  1850.                                     \def\f@series{#3}%
  1851.                                     \def\f@shape{#4}%
  1852.                                     \def\f@size{#5}}}
  1853. \def\curr@fontshape{\f@encoding/\f@family/\f@series/\f@shape}
  1854. \def\define@newfont{%
  1855.   \begingroup
  1856.     \escapechar\m@ne
  1857.     \expandafter\expandafter\expandafter
  1858.        \split@name\expandafter\string\font@name\@nil
  1859.       \try@load@fontshape % try always
  1860.     \expandafter\ifx
  1861.        \csname\curr@fontshape\endcsname \relax
  1862.       \wrong@fontshape\else
  1863.       \extract@font\fi
  1864.   \endgroup}
  1865. \def\try@load@fontshape{%
  1866.    \expandafter
  1867.    \ifx\csname \f@encoding+\f@family\endcsname\relax
  1868.      \@font@info{Try loading font information for
  1869.                    \f@encoding+\f@family}%
  1870.     \global\expandafter\let
  1871.        \csname\f@encoding+\f@family\endcsname\@empty
  1872.      \makeatletter
  1873.      \nfss@catcodes
  1874.      \let\nfss@catcodes\relax
  1875.      \@input@{\f@encoding\f@family.fd}%
  1876.    \fi
  1877. \def\nfss@catcodes{%
  1878.      \catcode`\ 9\relax
  1879.      \catcode`\^^I9\relax
  1880.      \catcode`\^^M9\relax
  1881.      \catcode`\\\z@
  1882.      \catcode`\{\@ne
  1883.      \catcode`\}\tw@
  1884.      \catcode`\%14\relax
  1885.    \@makeother\<%
  1886.    \@makeother\>%
  1887.    \@makeother\*%
  1888.    \@makeother\.%
  1889.    \@makeother\-%
  1890.    \@makeother\/%
  1891.    \@makeother\[%
  1892.    \@makeother\]%
  1893. \def\DeclareErrorFont#1#2#3#4#5{%
  1894.       \xdef\error@fontshape{%
  1895.           \noexpand\expandafter\noexpand\split@name\noexpand\string
  1896.           \expandafter\noexpand\csname#1/#2/#3/#4/#5\endcsname
  1897.           \noexpand\@nil}%
  1898.       \gdef\default@family{#2}%
  1899.       \gdef\default@series{#3}%
  1900.       \gdef\default@shape{#4}%
  1901.       \global\let\f@family\default@family
  1902.       \global\let\f@series\default@series
  1903.       \global\let\f@shape\default@shape
  1904.       \gdef\f@size{#5}%
  1905.       \gdef\f@baselineskip{#5pt}%
  1906. \def\wrong@fontshape{%
  1907.     \csname D@\f@encoding\endcsname      % install defaults if in math
  1908.     \edef\reserved@a{\csname\curr@fontshape\endcsname}%
  1909.   \ifx\last@fontshape\reserved@a
  1910.      \errmessage{Corrupted NFSS tables}%
  1911.      \error@fontshape
  1912.   \else
  1913.     \let\f@shape\default@shape
  1914.     \expandafter\ifx\csname\curr@fontshape\endcsname\relax
  1915.        \let\f@series\default@series
  1916.         \expandafter
  1917.           \ifx\csname\curr@fontshape\endcsname\relax
  1918.            \let\f@family\default@family
  1919.         \fi \fi
  1920.   \fi
  1921.     \@font@warning{Font shape `\reserved@a' undefined\MessageBreak
  1922.                   using `\curr@fontshape' instead}%
  1923.     \global\let\last@fontshape\reserved@a
  1924.     \G@defaultsubstrue
  1925.     \global\expandafter\expandafter\expandafter\let
  1926.        \expandafter\reserved@a
  1927.            \csname\curr@fontshape\endcsname
  1928.     \xdef\font@name{%
  1929.       \csname\curr@fontshape/\f@size\endcsname}%
  1930.     \pickup@font}
  1931. \def\G@defaultsubstrue{\global\let\ifG@defaultsubs\iftrue}
  1932. \let\ifG@defaultsubs\iffalse
  1933. \def\strip@prefix#1>{}
  1934. \let\install@mathalphabet\gdef
  1935. \let\math@fonts\@empty
  1936. \def\extract@alph@from@version#1#2#3{%
  1937.      \def\reserved@a##1\install@mathalphabet#3##2##3\@nil{%
  1938.          \def\reserved@b{##2}%
  1939.          \def\reserved@c####1{\gdef#1{##1####1##3}}}%
  1940.      \expandafter\reserved@a#1\@nil
  1941.      \def\reserved@a\select@group#3##1##2\@nil{%
  1942.         \reserved@c{%
  1943.            \getanddefine@fonts{#2}##2%
  1944.            \install@mathalphabet#3{%
  1945.               \relax\ifmmode \else \non@alpherr#3\fi
  1946.               \use@mathgroup##1{#2}}}%
  1947.        \gdef#3{\relax\ifmmode \else \non@alpherr#3\fi
  1948.                \use@mathgroup##1{#2}}}%
  1949.      \expandafter\reserved@a\reserved@b\@nil
  1950.      }
  1951. \let\math@bgroup\bgroup
  1952. \def\math@egroup#1{#1\egroup}
  1953. \def\calculate@math@sizes{%
  1954.   \@font@info{Calculating math sizes for size <\f@size>}%
  1955.   \dimen@\f@size \p@
  1956.   \@tempdimb \defaultscriptratio \dimen@
  1957.   \dimen@ \defaultscriptscriptratio \dimen@
  1958.   \expandafter\xdef\csname S@\f@size\endcsname{%
  1959.     \gdef\noexpand\tf@size{\f@size}%
  1960.     \gdef\noexpand\sf@size{\strip@pt\@tempdimb}%
  1961.     \gdef\noexpand\ssf@size{\strip@pt\dimen@}%
  1962.     \noexpand\math@fontstrue}}
  1963. \def\defaultscriptratio{.7}
  1964. \def\defaultscriptscriptratio{.5}
  1965. \ifx\noaccents@\undefined
  1966.   \let\noaccents@\@empty
  1967. \def\showhyphens#1{\setbox0\vbox{\parfillskip\z@skip\hsize\maxdimen
  1968.   \reset@font
  1969.   \pretolerance\m@ne\tolerance\m@ne\hbadness\z@\showboxdepth\z@\ #1}}
  1970. \long\def\addto@hook#1#2{#1\expandafter{\the#1#2}}
  1971.  \def\@vpt{5}
  1972.  \def\@vipt{6}
  1973.  \def\@viipt{7}
  1974.  \def\@viiipt{8}
  1975.  \def\@ixpt{9}
  1976.  \def\@xpt{10}
  1977.  \def\@xipt{10.95}
  1978.  \def\@xiipt{12}
  1979.  \def\@xivpt{14.4}
  1980.  \def\@xviipt{17.28}
  1981.  \def\@xxpt{20.74}
  1982.  \def\@xxvpt{24.88}
  1983. %%% File: ltfsstrc
  1984. %% Copyright (C) 1989-94 by Frank Mittelbach and Rainer Sch\"opf.
  1985. %% Copyright (C) 1994-95 by LaTeX3 project. All rights reserved.
  1986. \def\tracingfonts{%
  1987.   \@font@warning{Command \noexpand\tracingfonts
  1988.            not provided.\MessageBreak
  1989.            Use the `tracefnt' package.\MessageBreak Command found:}%
  1990.        \count@}
  1991. \def\@font@info#1{%
  1992.          \GenericInfo{(Font)\@spaces\@spaces\@spaces\space\space}%
  1993.                      {LaTeX Font Info: \space\space\space#1}}%
  1994. \def\@font@warning#1{%
  1995.          \GenericWarning{(Font)\@spaces\@spaces\@spaces\space\space}%
  1996.                         {LaTeX Font Warning: #1}}%
  1997. \def\extract@font{%
  1998.    \get@external@font
  1999.    \global\expandafter\font\font@name\external@font\relax
  2000.     \font@name \relax
  2001.     \csname \f@encoding+\f@family\endcsname
  2002.     \csname\curr@fontshape\endcsname
  2003.     \relax
  2004.        }
  2005. \def\get@external@font{%
  2006.    \let\external@font\@empty
  2007.    \edef\font@info{\expandafter\expandafter\expandafter\string
  2008.         \csname \curr@fontshape \endcsname}%
  2009.    \try@size@range
  2010.    \ifx\external@font\@empty
  2011.       \try@size@substitution
  2012.       \ifx\external@font\@empty
  2013.          \@latex@error{Font \expandafter \string\font@name\space
  2014.                      not found}\@eha
  2015.          \error@fontshape
  2016.          \get@external@font
  2017.    \fi\fi
  2018. \DeclareRobustCommand\selectfont
  2019.         {%
  2020.     \ifx\f@linespread\baselinestretch \else
  2021.       \set@fontsize\baselinestretch\f@size\f@baselineskip \fi
  2022.     \xdef\font@name{%
  2023.       \csname\curr@fontshape/\f@size\endcsname}%
  2024.     \pickup@font
  2025.     \font@name
  2026.     \size@update
  2027.     \enc@update
  2028.     }
  2029. \def\set@fontsize#1#2#3{%
  2030.     \@defaultunits\@tempdimb#2pt\relax\@nnil
  2031.     \edef\f@size{\strip@pt\@tempdimb}%
  2032.     \@defaultunits\@tempskipa#3pt\relax\@nnil
  2033.     \edef\f@baselineskip{\the\@tempskipa}%
  2034.     \edef\f@linespread{#1}%
  2035.     \let\baselinestretch\f@linespread
  2036.       \def\size@update{%
  2037.         \baselineskip\f@baselineskip\relax
  2038.         \baselineskip\f@linespread\baselineskip
  2039.         \normalbaselineskip\baselineskip
  2040.         \setbox\strutbox\hbox{%
  2041.           \vrule\@height.7\baselineskip
  2042.                 \@depth.3\baselineskip
  2043.                 \@width\z@}%
  2044.         \let\size@update\relax}%
  2045. \let\size@update\relax
  2046. \def\glb@settings{%
  2047.      \expandafter\ifx\csname S@\f@size\endcsname\relax
  2048.        \calculate@math@sizes
  2049.      \fi
  2050.      \csname S@\f@size\endcsname
  2051.      \ifmath@fonts
  2052.        \begingroup
  2053.          \escapechar\m@ne
  2054.          \csname mv@\math@version \endcsname
  2055.          \globaldefs\@ne
  2056.          \math@fonts
  2057.          \let \glb@currsize \f@size
  2058.        \endgroup
  2059.         \the\every@math@size
  2060.      \fi
  2061. \def\baselinestretch{1}
  2062. \newtoks\every@math@size
  2063. \every@math@size={}
  2064. \def\check@mathfonts{%
  2065.   \ifx \glb@currsize \f@size
  2066.   \else
  2067.      \glb@settings
  2068.      \if@inmath
  2069.        \aftergroup\restglb@settings
  2070.      \fi
  2071.   \fi
  2072.   \let\curr@math@size\f@size
  2073.   \@inmathtrue
  2074. \def\restglb@settings{%
  2075.       \begingroup
  2076.         \let\f@size\curr@math@size
  2077.         \ifx\glb@currsize \f@size
  2078.         \else
  2079.           \glb@settings
  2080.         \fi
  2081.       \endgroup
  2082. \def\use@mathgroup#1#2{\relax\ifmmode
  2083.      \math@bgroup
  2084.          \expandafter\ifx\csname M@\f@encoding\endcsname#1\else
  2085.          #1\fi
  2086.          \mathgroup#2\relax
  2087.      \expandafter\math@egroup\fi}%
  2088. \def\getanddefine@fonts#1#2{%
  2089.   \xdef\font@name{\csname \string#2/\tf@size\endcsname}%
  2090.   \pickup@font \let\textfont@name\font@name
  2091.   \xdef\font@name{\csname \string#2/\sf@size\endcsname}%
  2092.   \pickup@font \let\scriptfont@name\font@name
  2093.   \xdef\font@name{\csname \string#2/\ssf@size\endcsname}%
  2094.   \pickup@font
  2095.   \edef\math@fonts{\math@fonts
  2096.                \textfont#1\textfont@name
  2097.                \scriptfont#1\scriptfont@name
  2098.                \scriptscriptfont#1\font@name}%
  2099.     }
  2100. \def\ifnot@nil#1{\def\reserved@a{#1}%
  2101.   \ifx\reserved@a\@nnil \expandafter\@gobble
  2102.   \else \expandafter\@firstofone\fi}
  2103. \def\remove@to@nnil#1\@nnil{}
  2104. \def\remove@angles#1>{\set@simple@size@args}
  2105. \def\remove@star#1*{#1}
  2106. \def\gobble@font@spec#1\@nil<\@nnil{}
  2107. \def\extract@sizefn#1*#2\@nil{%
  2108.   \if>#2>\set@size@funct@args#1\@nil
  2109.          \let\sizefn@info\@empty
  2110.   \else\expandafter\set@size@funct@args\remove@star#2\@nil
  2111.        \def\sizefn@info{#1}\fi
  2112. %% this could be replaced by \try@size@range making the subst slower!
  2113. \def\try@simple@size{%
  2114.     \def\reserved@a{\def\extract@fontinfo####1}%
  2115.     \expandafter\reserved@a\expandafter<\f@size>##2<##3\@nnil{%
  2116.           \ifnot@nil{##2}%
  2117.             {\set@simple@size@args##2<##3\@nnil
  2118.              \execute@size@function\sizefn@info
  2119.             }}%
  2120.     \expandafter\expandafter
  2121.     \expandafter\extract@fontinfo\expandafter\font@info
  2122.     \expandafter<\f@size>\@nil<\@nnil
  2123. \def\set@simple@size@args#1<{%
  2124.           \if<#1<%
  2125.             \expandafter\remove@angles
  2126.           \else
  2127.             \extract@sizefn#1*\@nil
  2128.             \expandafter\remove@to@nnil
  2129.           \fi}
  2130. \def\extract@rangefontinfo#1<#2>{%
  2131.        \is@range#2->\@nil#2>}
  2132. \def\is@range#1-#2\@nil{%
  2133.    \if>#2\expandafter\check@single\else
  2134.       \expandafter\check@range\fi}
  2135. \newdimen\lower@bound
  2136. \newdimen\upper@bound
  2137. \def\check@range#1-#2>#3<#4\@nnil{%
  2138.   \ifnot@nil{#3}{%
  2139.      \def\reserved@f{\extract@rangefontinfo<#4\@nnil}%
  2140.      \upper@bound0#2\p@
  2141.      \ifdim\upper@bound=\z@ \upper@bound\maxdimen\fi
  2142.      \ifdim \f@size \p@<\upper@bound
  2143.        \lower@bound0#1\p@
  2144.        \ifdim \f@size \p@<\lower@bound
  2145.         \else
  2146.           \set@simple@size@args#3<#4\@nnil
  2147.           \execute@size@function\sizefn@info
  2148.          \ifx\external@font\@empty
  2149.          \else
  2150.            \let\reserved@f\@empty
  2151.          \fi
  2152.        \fi
  2153.      \fi
  2154.      \reserved@f}}
  2155. \def\check@single#1>#2<#3\@nnil{%
  2156.      \def\reserved@f{\extract@rangefontinfo<#3\@nnil}%
  2157.      \ifdim \f@size \p@=#1\p@
  2158.         \set@simple@size@args#2<#3\@nnil
  2159.         \execute@size@function\sizefn@info
  2160.         \ifx\external@font\@empty
  2161.         \else
  2162.           \let\reserved@f\@empty
  2163.         \fi
  2164.      \fi
  2165.      \reserved@f}
  2166. \def\set@size@funct@args{\@ifnextchar[%
  2167.   \set@size@funct@args@{\set@size@funct@args@[]}}
  2168. \def\set@size@funct@args@[#1]#2\@nil{%
  2169.   \def\mandatory@arg{#2}%
  2170.   \def\optional@arg{#1}}
  2171. \def\DeclareSizeFunction#1#2{\@namedef{s@fct@#1}{#2}}
  2172. \def\execute@size@function#1{%
  2173.       \csname s@fct@#1\endcsname
  2174. \def\try@size@range{%
  2175.     \expandafter\extract@rangefontinfo\font@info <-*>\@nil<\@nnil
  2176. \def\try@size@substitution{%
  2177.   \@tempdimb \maxdimen
  2178.   \let \best@size \@empty
  2179.   \expandafter \try@simples \font@info <\number\@M>\@nil<\@nnil
  2180. \def\font@submax{0pt}
  2181. \def\fontsubfuzz{.4pt}
  2182. \def\try@simples#1<#2>{%
  2183.   \tryif@simple#2->\tryif@simple}
  2184. \def\tryif@simple#1-#2\tryif@simple{%
  2185.   \let \reserved@f \try@simples
  2186.   \if>#2%
  2187.     \dimen@ #1\p@
  2188.     \ifdim \dimen@<\@M\p@
  2189.       \ifdim \f@size\p@<\dimen@
  2190.         \@tempdimc \dimen@
  2191.         \advance\@tempdimc -\f@size\p@
  2192.       \else
  2193.         \@tempdimc \f@size\p@
  2194.         \advance\@tempdimc -\dimen@
  2195.       \fi
  2196.       \ifdim \@tempdimc<\@tempdimb
  2197.         \@tempdimb \@tempdimc
  2198.         \def \best@size{#1}%
  2199.       \fi
  2200.     \else
  2201. %%\subst@size             %% coded inline
  2202. %%\def\subst@size{%
  2203.   \ifx \external@font\@empty
  2204.     \ifx \best@size\@empty
  2205.     \else
  2206.       \ifdim \@tempdimb>\font@submax \relax
  2207.         \xdef \font@submax {\the\@tempdimb}%
  2208.       \fi
  2209.       \let \f@user@size \f@size
  2210.       \let \f@size \best@size
  2211.       \ifdim \@tempdimb>\fontsubfuzz\relax
  2212.         \@font@warning{Font shape `\curr@fontshape'
  2213.                     in size <\f@user@size> not
  2214.                     available\MessageBreak
  2215.                     size <\f@size> substituted}%
  2216.       \fi
  2217.       \try@simple@size
  2218.       \do@subst@correction
  2219.     \fi
  2220.       \let \reserved@f \gobble@font@spec
  2221.     \fi
  2222.   \fi
  2223.   \reserved@f}
  2224. \DeclareSizeFunction{}{\empty@sfcnt\@font@warning}
  2225. \DeclareSizeFunction{s}{\empty@sfcnt\@font@info}
  2226. \def\empty@sfcnt#1{%
  2227.       \@tempdimb \f@size\p@
  2228.       \ifx\optional@arg\@empty
  2229.       \else
  2230.         \@tempdimb \optional@arg\@tempdimb
  2231.         #1{Font shape `\curr@fontshape'
  2232.             will be\MessageBreak
  2233.             scaled to size \the\@tempdimb}%
  2234.       \fi
  2235.       \edef\external@font{\mandatory@arg\space at\the\@tempdimb}}
  2236. \DeclareSizeFunction{gen}{\gen@sfcnt\@font@warning}
  2237. \DeclareSizeFunction{sgen}{\gen@sfcnt\@font@info}
  2238. \def\gen@sfcnt{%
  2239.       \edef\mandatory@arg{\mandatory@arg\f@size}%
  2240.       \empty@sfcnt}
  2241. \DeclareSizeFunction{sub}{\sub@sfcnt\@font@warning}
  2242. \DeclareSizeFunction{ssub}{\sub@sfcnt\@font@info}
  2243. \def\sub@sfcnt#1{%
  2244.     \edef\mandatory@arg{\f@encoding/\mandatory@arg}%
  2245.     \begingroup
  2246.      \expandafter\split@name\mandatory@arg/\@nil
  2247.      \try@load@fontshape
  2248.     \endgroup
  2249.     \let\f@user@size\f@size
  2250.     \expandafter
  2251.     \ifx\csname\mandatory@arg\endcsname\relax
  2252.       \errmessage{No declaration for shape \mandatory@arg}%
  2253.       \error@fontshape
  2254.     \else
  2255.       #1{Font shape `\curr@fontshape' in size <\f@size> not
  2256.                     available\MessageBreak
  2257.                     Font shape `\mandatory@arg' tried instead}%
  2258.       \expandafter\split@name\mandatory@arg/\@nil
  2259.     \fi
  2260.     \edef\f@size{\f@user@size}%
  2261.     \get@external@font
  2262.     \do@subst@correction
  2263. \DeclareSizeFunction{subf}{\subf@sfcnt\@font@warning}
  2264. \DeclareSizeFunction{ssubf}{\subf@sfcnt\@font@info}
  2265. \def\subf@sfcnt#1{%
  2266.       #1{Font shape `\curr@fontshape'
  2267.                     in size \f@size\space
  2268.                     not available\MessageBreak
  2269.                     external font `\mandatory@arg'
  2270.                     used}%
  2271.       \empty@sfcnt#1%
  2272.       }
  2273. \DeclareSizeFunction{fixed}{\fixed@sfcnt\@font@warning}
  2274. \DeclareSizeFunction{sfixed}{\fixed@sfcnt\@font@info}
  2275. \def\fixed@sfcnt#1{%
  2276.   \ifx\optional@arg\@empty
  2277.     \let\external@font\mandatory@arg
  2278.   \else
  2279.     \edef\external@font{\mandatory@arg\space at\optional@arg pt}%
  2280.   \fi
  2281.   #1{External font `\external@font' loaded for size\MessageBreak
  2282.      <\f@size>}%
  2283. %%% File: ltfsscmp
  2284. %% Copyright (C) 1989-1995 Frank Mittelbach and Rainer Sch\"opf,
  2285. %% all rights reserved.
  2286. \gdef\new@fontshape#1#2#3#4{%
  2287.      \warn@rel@i\new@fontshape\DeclareFontShape
  2288.      \expandafter\scan@fontshape\@gobble#4<\@nil><<%
  2289.      \DeclareFontShape U{#1}{#2}{#3}\reserved@f}
  2290. \gdef\warn@rel@i#1#2{%
  2291.  \@font@warning{***  NFSS release 1 command
  2292.                \noexpand#1found\MessageBreak
  2293.    ***  Update by using release 2 command
  2294.         \string#2.\MessageBreak
  2295.    ***  Recovery is probably possible}%
  2296. \gdef\scan@fontshape{%
  2297.   \let\reserved@f\@empty
  2298.   \let\reserved@e\@empty %        holds last info
  2299.   \scan@@fontshape
  2300. \gdef\scan@@fontshape#1>#2#3<{%
  2301.   \ifx\@nil#1%
  2302.     \edef\reserved@f{\reserved@f\reserved@e}%
  2303.   \else
  2304.     \def\reserved@b{#1}%       nick names
  2305.     \def\reserved@c{#3}%
  2306.     \in@{ at}{#3}%
  2307.     \ifin@
  2308.       \in@{pt}{#3}%  not a proof but a good chance
  2309.       \ifin@
  2310.         \def\reserved@a##1 at##2pt##3\@nil{%
  2311.            \def\reserved@b{##2}%
  2312.            \def\reserved@c{##1}%
  2313.            }%
  2314.         \reserved@a#3\@nil
  2315.       \fi
  2316.     \fi
  2317.     \ifnum 0<0#2
  2318.       \edef\reserved@d{subf*\reserved@c}%
  2319.       \ifcase #2\or
  2320.       \or
  2321.       \else
  2322.         \errmessage{*** What's this? NFSS release 0? ***}%
  2323.       \fi
  2324.     \else
  2325.       \edef\reserved@d{#2\reserved@c}%
  2326.     \fi
  2327.     \ifx\reserved@d\reserved@e
  2328.       \edef\reserved@f{\reserved@f<\reserved@b>}%
  2329.     \else
  2330.       \edef\reserved@f{\reserved@f\reserved@e<\reserved@b>}%add old info
  2331.       \let\reserved@e\reserved@d
  2332.     \fi
  2333.     \expandafter\scan@@fontshape
  2334.   \fi
  2335. \gdef\subst@fontshape#1#2#3#4#5#6{%
  2336.      \warn@rel@i\subst@fontshape\DeclareFontShape
  2337.      \DeclareFontShape{U}{#1}{#2}{#3}{<->sub*#4/#5/#6}{}}
  2338. \gdef\extra@def#1#2#3{%
  2339.      \warn@rel@i\extra@def\DeclareFontFamily
  2340.      \DeclareFontFamily{U}{#1}{}%
  2341. \gdef\default@mextra{%
  2342.   \warn@rel@i\default@mextra\DeclareFontEncodingDefaults
  2343.   \DeclareFontEncodingDefaults\relax
  2344. \gdef\preload@sizes{%
  2345.      \warn@rel@i\preload@sizes\DeclarePreloadSizes
  2346.      \DeclarePreloadSizes U%
  2347. \gdef\err@rel@i#1#2{%
  2348.   \@latex@error{***  NFSS release 1 command \noexpand#1found%
  2349.           ^^J***  Recovery not possible. Use \string#2}%
  2350.        {The new release of NFSS doesn't support the
  2351.         \noexpand#1command^^Jany longer.
  2352.         Please upgrade your file to the syntax of NFSS
  2353.         release 2^^Jusing the \noexpand#2command.}%
  2354.   \batchmode\input.\relax
  2355. \gdef\define@mathalphabet{%
  2356.       \err@rel@i\define@mathalphabet\DeclareMathAlphabet
  2357. \gdef\define@mathgroup{%
  2358.       \err@rel@i\define@mathgroup\DeclareSymbolFont
  2359. %%% File: ltfssdcl
  2360. %% Copyright (C) 1989-1995 Frank Mittelbach and Rainer Sch\"opf,
  2361. %% all rights reserved.
  2362. \def\in@#1#2{%
  2363.  \def\in@@##1#1##2##3\in@@{%
  2364.   \ifx\in@##2\in@false\else\in@true\fi}%
  2365.  \in@@#2#1\in@\in@@}
  2366. \newif\ifin@
  2367. \let\version@list=\@empty
  2368. \let\if@no@font@opt\iftrue
  2369. \def\@no@font@optfalse{\let\if@no@font@opt\iffalse}
  2370. \def\newmathalphabet{%
  2371.   \if@no@font@opt
  2372.     \@latex@error{*** NFSS release 1 command
  2373.                     \noexpand\newmathalphabet found%
  2374.      ^^J \space*** Automatic recovery not possible.%
  2375.      ^^J \space*** TYPE H for Help%
  2376.               }%
  2377.        {Please look at the file usrguide.tex for hints on
  2378.         how to resolve this problem.}%
  2379.   \else
  2380.      \warn@rel@i\newmathalphabet\DeclareMathAlphabet
  2381.   \fi
  2382.   \@ifstar\newmathalphabet@@@
  2383.           \newmathalphabet@@}
  2384. \def\newmathalphabet@@#1{\DeclareMathAlphabet#1{U}{}{}{}}
  2385. \def\newmathalphabet@@@#1#2#3#4{%
  2386.        \DeclareMathAlphabet{#1}{U}{#2}{#3}{#4}}
  2387. \let\alpha@list\@empty
  2388. \def\addtoversion#1#2{%
  2389.   \warn@rel@i\addtoversion\SetMathAlphabet
  2390.   \SetMathAlphabet#2{#1}{U}}
  2391. \count18=-1
  2392. \def\stepcounter #1{\global\advance\csname c@#1\endcsname\@ne
  2393.   \begingroup\let\@elt\@stpelt \csname cl@#1\endcsname\endgroup }
  2394. \newif\ifrestore@version \restore@versiontrue
  2395. \def\select@group#1#2#3#4{%
  2396.  \ifx\math@bgroup\bgroup\else\relax\expandafter\@firstofone\fi
  2397.  \ifmmode
  2398.   \ifnum\csname c@mv@\math@version\endcsname<\sixt@@n
  2399.      \begingroup
  2400.        \escapechar\m@ne
  2401.        \getanddefine@fonts{\csname c@mv@\math@version\endcsname}#3%
  2402.        \globaldefs\@ne  \math@fonts
  2403.      \endgroup
  2404.      \ifrestore@version
  2405.         \global\restore@versionfalse
  2406.         \xdef\restore@mathversion
  2407.              {\expandafter\noexpand\csname mv@\math@version\endcsname
  2408.               \global\csname c@mv@\math@version\endcsname
  2409.               \number\csname c@mv@\math@version\endcsname\relax}%
  2410.         \aftergroup\dorestore@version
  2411.      \fi
  2412.      \xdef#1{\noexpand\use@mathgroup\noexpand#2%
  2413.              {\number\csname c@mv@\math@version\endcsname}}%
  2414.      \stepcounter{mv@\math@version}%
  2415.    \else
  2416.      \let#1\relax
  2417.      \@latex@error{Too many math alphabets used in
  2418.                    version \math@version}%
  2419.         \@eha
  2420.    \fi
  2421.  \else \expandafter\non@alpherr\fi
  2422.  #1{#4}%
  2423. \def\non@alpherr#1{\@latex@error{%
  2424.     \expandafter\@firstoftwo\string#1 allowed only in math mode}\@ehd}
  2425. \def\dorestore@version
  2426.  {\ifmmode
  2427.     \aftergroup\dorestore@version
  2428.   \else
  2429.     \global\restore@versiontrue
  2430.     \begingroup
  2431.       \let\getanddefine@fonts\@gobbletwo
  2432.       \restore@mathversion
  2433.     \endgroup
  2434.   \fi}%
  2435. \def\document@select@group#1#2#3#4{%
  2436.  \ifx\math@bgroup\bgroup\else\relax\expandafter\@firstofone\fi
  2437.  \ifmmode
  2438.    \ifnum\csname c@mv@\math@version\endcsname<\sixt@@n
  2439.      \begingroup
  2440.        \escapechar\m@ne
  2441.        \getanddefine@fonts{\csname c@mv@\math@version\endcsname}#3%
  2442.        \globaldefs\@ne  \math@fonts
  2443.      \endgroup
  2444.      \expandafter\extract@alph@from@version
  2445.          \csname mv@\math@version\expandafter\endcsname
  2446.          \expandafter{\number\csname
  2447.                        c@mv@\math@version\endcsname}%
  2448.           #1%
  2449.      \stepcounter{mv@\math@version}%
  2450.    \else
  2451.      \let#1\relax
  2452.      \@latex@error{Too many math alphabets used
  2453.                    in version \math@version}%
  2454.         \@eha
  2455.   \fi
  2456.  \else \expandafter\non@alpherr\fi
  2457.  #1{#4}%
  2458. \def\process@table{%
  2459.     \def\cdp@elt##1##2##3##4{%
  2460.         \@font@info{Checking defaults for
  2461.                   ##1/##2/##3/##4}%
  2462.         \expandafter
  2463.         \ifx\csname##1/##2/##3/##4\endcsname\relax
  2464.           \begingroup
  2465.            \def\f@encoding{##1}\def\f@family{##2}%
  2466.            \try@load@fontshape
  2467.           \endgroup
  2468.         \fi
  2469.         \expandafter
  2470.         \ifx\csname##1/##2/##3/##4\endcsname\relax
  2471.              \@latex@error{This NFSS system isn't set up properly}%
  2472.                        {For encoding scheme ##1 the defaults
  2473.                         ##2/##3/##4 do not form a valid font shape}%
  2474.         \else
  2475.              \@font@info{... okay}%
  2476.         \fi}%
  2477.     \cdp@list
  2478.     \begingroup
  2479.        \escapechar\m@ne
  2480.        \error@fontshape
  2481.        \expandafter\ifx\csname \curr@fontshape\endcsname\relax
  2482.           \begingroup
  2483.             \try@load@fontshape
  2484.            \endgroup
  2485.        \fi
  2486.        \expandafter\ifx\csname \curr@fontshape\endcsname\relax
  2487.          \@latex@error{This NFSS system isn't set up properly}%
  2488.             {The system maintainer forgot to specify a suitable
  2489.              substitution
  2490.              font shape using the \noexpand\DeclareErrorFont
  2491.              command}%
  2492.        \fi
  2493.     \endgroup
  2494.     \let\select@group\document@select@group
  2495.     \fontencoding{\encodingdefault}%
  2496.     \fontfamily{\familydefault}%
  2497.     \fontseries{\seriesdefault}%
  2498.     \fontshape{\shapedefault}%
  2499.  \everyjob{}%
  2500. \@onlypreamble\@xDeclareMathDelimiter
  2501. \@onlypreamble\@DeclareMathDelimiter
  2502. \@onlypreamble\DeclareFontEncoding
  2503. \@onlypreamble\DeclareFontEncoding@
  2504. \@onlypreamble\DeclareFontEncodingDefaults
  2505. \@onlypreamble\DeclareFontSubstitution
  2506. \@onlypreamble\DeclareErrorFont
  2507. \@onlypreamble\DeclareMathAccent
  2508. \@onlypreamble\DeclareMathAlphabet
  2509. \@onlypreamble\DeclareMathDelimiter
  2510. \@onlypreamble\DeclareMathRadical
  2511. \@onlypreamble\DeclareMathSizes
  2512. \@onlypreamble\DeclareMathSymbol
  2513. \@onlypreamble\DeclareMathVersion
  2514. \@onlypreamble\DeclarePreloadSizes
  2515. \@onlypreamble\DeclareSizeFunction
  2516. \@onlypreamble\DeclareSymbolFont
  2517. \@onlypreamble\DeclareSymbolFontAlphabet
  2518. \@onlypreamble\SetMathAlphabet
  2519. \@onlypreamble\SetMathAlphabet@
  2520. \@onlypreamble\SetSymbolFont
  2521. \@onlypreamble\SetSymbolFont@
  2522. \@onlypreamble\alpha@elt
  2523. \@onlypreamble\alpha@list
  2524. \@onlypreamble\cdp@elt
  2525. \@onlypreamble\cdp@list
  2526. \@onlypreamble\dorestore@version
  2527. \@onlypreamble\get@cdp
  2528. \@onlypreamble\group@elt
  2529. \@onlypreamble\group@list
  2530. \@onlypreamble\ifrestore@version
  2531. \@onlypreamble\mathchar@type
  2532. \@onlypreamble\new@mathalphabet
  2533. \@onlypreamble\new@mathgroup
  2534. \@onlypreamble\new@mathversion
  2535. \@onlypreamble\new@symbolfont
  2536. \@onlypreamble\process@table
  2537. \@onlypreamble\restore@mathversion
  2538. \@onlypreamble\restore@versionfalse
  2539. \@onlypreamble\restore@versiontrue
  2540. \@onlypreamble\set@@mathdelimiter
  2541. \@onlypreamble\set@mathaccent
  2542. \@onlypreamble\set@mathchar
  2543. \@onlypreamble\set@mathchar
  2544. \@onlypreamble\set@mathdelimiter
  2545. \@onlypreamble\set@mathsymbol
  2546. \@onlypreamble\set@mathsymbol
  2547. \@onlypreamble\version@elt
  2548. \@onlypreamble\version@list
  2549. \@onlypreamble\addtoversion
  2550. \@onlypreamble\default@mextra
  2551. \@onlypreamble\define@mathalphabet
  2552. \@onlypreamble\define@mathgroup
  2553. \@onlypreamble\extra@def
  2554. \@onlypreamble\new@fontshape
  2555. \@onlypreamble\newmathalphabet
  2556. \@onlypreamble\newmathalphabet@@
  2557. \@onlypreamble\newmathalphabet@@@
  2558. \@onlypreamble\preload@sizes
  2559. \@onlypreamble\scan@fontshape
  2560. \@onlypreamble\scan@@fontshape
  2561. \@onlypreamble\subst@fontshape
  2562. \@onlypreamble\warn@rel@i
  2563. \@onlypreamble\err@rel@i
  2564. \def\DeclareMathVersion#1{%
  2565.   \expandafter\new@mathversion\csname mv@#1\endcsname}
  2566. \def\new@mathversion#1{%
  2567.   \expandafter\in@\expandafter#1\expandafter{\version@list}%
  2568.   \ifin@
  2569.     \@font@info{Redeclaring math version
  2570.                `\expandafter\@gobblefour\string#1'}%
  2571.   \else
  2572.     \global\expandafter\newcount\csname c@\expandafter
  2573.                                 \@gobble\string#1\endcsname
  2574.     \def\version@elt{\noexpand\version@elt\noexpand}%
  2575.     \edef\version@list{\version@list\version@elt#1}%
  2576.   \fi
  2577.   \toks@{}%
  2578.   \count@\z@
  2579.   \def\group@elt##1##2{%
  2580.        \advance\count@\@ne
  2581.        \addto@hook\toks@{\getanddefine@fonts##1##2}%
  2582.        }%
  2583.   \group@list
  2584.   \global\csname c@\expandafter\@gobble\string#1\endcsname\count@
  2585.   \def\alpha@elt##1##2##3{%
  2586.        \ifx##2\no@alphabet@error
  2587.          \toks@\expandafter{\the\toks@\install@mathalphabet##1%
  2588.              {\no@alphabet@error##1}}%
  2589.        \else
  2590.          \toks@\expandafter{\the\toks@\install@mathalphabet##1%
  2591.              {\select@group##1##2##3}}%
  2592.        \fi
  2593.           }%
  2594.   \alpha@list
  2595.   \xdef#1{\the\toks@}%
  2596. \def\DeclareSymbolFont#1#2#3#4#5{%
  2597.  \@tempswafalse
  2598.  \edef\reserved@b{#2}%
  2599.  \def\cdp@elt##1##2##3##4{\def\reserved@c{##1}%
  2600.       \ifx\reserved@b\reserved@c \@tempswatrue\fi}%
  2601.  \cdp@list
  2602.  \if@tempswa
  2603.    \@ifundefined{sym#1}{%
  2604.       \expandafter\new@mathgroup\csname sym#1\endcsname
  2605.       \expandafter\new@symbolfont\csname sym#1\endcsname
  2606.                         {#2}{#3}{#4}{#5}}%
  2607.      {%
  2608.       \@font@info{Redeclaring symbol font `#1'}%
  2609.       \def\group@elt##1##2{%
  2610.           \expandafter\ifx\csname sym#1\endcsname##1%
  2611.                \expandafter\addto@hook\expandafter
  2612.                   \toks@\expandafter{\expandafter\group@elt
  2613.                   \expandafter##1\csname#2/#3/#4/#5\endcsname}%
  2614.              \else
  2615.                \addto@hook\toks@{\group@elt##1##2}%
  2616.              \fi
  2617.           }%
  2618.       \toks@{}%
  2619.       \group@list
  2620.       \def\version@elt##1{%
  2621.           \expandafter
  2622.           \SetSymbolFont@\expandafter##1\csname#2/#3/#4/#5\expandafter
  2623.               \endcsname \csname sym#1\endcsname
  2624.           }%
  2625.       \version@list
  2626.      }%
  2627.   \else
  2628.     \@latex@error{Encoding scheme  `#2' unknown}\@eha
  2629.   \fi
  2630. \let\group@list\@empty
  2631. \def\new@symbolfont#1#2#3#4#5{%
  2632.     \toks@\expandafter{\group@list}%
  2633.     \edef\group@list{\the\toks@\noexpand\group@elt\noexpand#1%
  2634.                      \expandafter\noexpand\csname#2/#3/#4/#5\endcsname}%
  2635.     \def\version@elt##1{\toks@\expandafter{##1}%
  2636.                    \edef##1{\the\toks@\noexpand\getanddefine@fonts
  2637.                    #1\expandafter\noexpand\csname#2/#3/#4/#5\endcsname}%
  2638.                   \global\advance\csname c@\expandafter
  2639.                                  \@gobble\string##1\endcsname\@ne
  2640.                  }%
  2641.     \version@list
  2642. \def\SetSymbolFont#1#2#3#4#5#6{%
  2643.  \@tempswafalse
  2644.  \edef\reserved@b{#3}%
  2645.  \def\cdp@elt##1##2##3##4{\def\reserved@c{##1}%
  2646.       \ifx\reserved@b\reserved@c \@tempswatrue\fi}%
  2647.  \cdp@list
  2648.  \if@tempswa
  2649.   \expandafter\SetSymbolFont@
  2650.     \csname mv@#2\expandafter\endcsname\csname#3/#4/#5/#6\expandafter
  2651.     \endcsname \csname sym#1\endcsname
  2652.  \else
  2653.   \@latex@error{Encoding scheme  `#3' unknown}\@eha
  2654. \def\SetSymbolFont@#1#2#3{%
  2655.   \expandafter\in@\expandafter#1\expandafter{\version@list}%
  2656.   \ifin@
  2657.     \expandafter\in@\expandafter#3\expandafter{\group@list}%
  2658.     \ifin@
  2659.       \begingroup
  2660.         \expandafter\get@cdp\string#2\@nil\reserved@a
  2661.         \toks@{}%
  2662.         \def\install@mathalphabet##1##2{%
  2663.              \addto@hook\toks@{\install@mathalphabet##1{##2}}%
  2664.             }%
  2665.         \def\getanddefine@fonts##1##2{%
  2666.           \ifnum##1=#3%
  2667.              \addto@hook\toks@{\getanddefine@fonts#3#2}%
  2668.              \expandafter\get@cdp\string##2\@nil\reserved@b
  2669.              \ifx\reserved@a\reserved@b\else
  2670.                 \@font@warning{Encoding `\reserved@b' has changed
  2671.                     to `\reserved@a' for symbol font\MessageBreak
  2672.                    `\expandafter\@gobblefour\string#3' in the
  2673.                     math version `\expandafter
  2674.                     \@gobblefour\string#1'}%
  2675.              \fi
  2676.              \@font@info{%
  2677.                 Overwriting symbol font
  2678.                 `\expandafter\@gobblefour\string#3' in
  2679.                  version `\expandafter
  2680.                 \@gobblefour\string#1'\MessageBreak
  2681.                 \@spaces \expandafter\@gobble\string##2 -->
  2682.                          \expandafter\@gobble\string#2}%
  2683.           \else
  2684.              \addto@hook\toks@{\getanddefine@fonts##1##2}%
  2685.           \fi}%
  2686.          #1%
  2687.          \xdef#1{\the\toks@}%
  2688.       \endgroup
  2689.     \else
  2690.        \@latex@error{Symbol font `\expandafter\@gobblefour\string#3'
  2691.                   not defined}\@eha
  2692.     \fi
  2693.   \else
  2694.     \@latex@error{Math version `\expandafter\@gobblefour\string#1'
  2695.        is not
  2696.        defined}{You probably mispelled the name of the math
  2697.        version.^^JOr you have to specify an additional package.}%
  2698.   \fi
  2699. \def\get@cdp#1#2/#3\@nil#4{\def#4{#2}}
  2700. \def\DeclareMathAlphabet#1#2#3#4#5{%
  2701.  \@tempswafalse
  2702.  \edef\reserved@b{#2}%
  2703.  \def\cdp@elt##1##2##3##4{\def\reserved@c{##1}%
  2704.       \ifx\reserved@b\reserved@c \@tempswatrue\fi}%
  2705.  \cdp@list
  2706.  \if@tempswa
  2707.    \expandafter\ifx
  2708.    \csname\expandafter\@gobble\string#1\endcsname
  2709.    \relax
  2710.       \new@mathalphabet#1{#2}{#3}{#4}{#5}%
  2711.    \else
  2712.      \edef\reserved@a{\noexpand\in@{\string\select@group}%
  2713.          {\expandafter\meaning\csname @\expandafter
  2714.           \@gobble\string#1\endcsname}}%
  2715.      \reserved@a
  2716.      \ifin@
  2717.        \@font@info{Redeclaring math alphabet \string#1}%
  2718.        \def\version@elt##1{%
  2719.          \expandafter\SetMathAlphabet@\expandafter
  2720.             ##1\csname#2/#3/#4/#5\expandafter\endcsname
  2721.             \csname M@#2\expandafter\endcsname
  2722.             \csname @\expandafter\@gobble\string#1\endcsname#1}%
  2723.        \version@list
  2724.      \else
  2725.        \edef\reserved@a{\noexpand\in@{\string\use@mathgroup}%
  2726.          {\expandafter\meaning\csname @\expandafter
  2727.           \@gobble\string#1\endcsname}}%
  2728.        \reserved@a
  2729.        \ifin@
  2730.          \@font@info{Redeclaring math alphabet \string#1}%
  2731.          \new@mathalphabet#1{#2}{#3}{#4}{#5}%
  2732.        \else
  2733.          \@latex@error{Command `\string#1' already defined}\@eha
  2734.        \fi
  2735.      \fi
  2736.   \fi
  2737.  \else
  2738.   \@latex@error{Encoding scheme  `#2' unknown}\@eha
  2739. \def\new@mathalphabet#1#2#3#4#5{%
  2740.     \toks@\expandafter{\alpha@list}%
  2741.     \edef#1{\expandafter\noexpand\csname @\expandafter
  2742.             \@gobble\string#1\endcsname
  2743.             \if/#5/%
  2744.                \noexpand\no@alphabet@error
  2745.                \noexpand\no@alphabet@error
  2746.             \else
  2747.                \expandafter\noexpand\csname M@#2\endcsname
  2748.                \expandafter\noexpand\csname#2/#3/#4/#5\endcsname
  2749.             \fi
  2750.            }%
  2751.     \toks2\expandafter{#1}%
  2752.     \edef\alpha@list{\the\toks@\noexpand\alpha@elt\the\toks2}%
  2753.     \def\version@elt##1{\toks@\expandafter{##1}%
  2754.                    \edef##1{\the\toks@\install@mathalphabet
  2755.                             \expandafter\noexpand
  2756.                             \csname @\expandafter\@gobble
  2757.                                \string#1\endcsname
  2758.                            {\if/#5/%
  2759.                              \noexpand\no@alphabet@error
  2760.                              \noexpand#1%
  2761.                             \else
  2762.                              \noexpand\select@group\the\toks2
  2763.                             \fi}}%
  2764.                  }%
  2765.     \version@list
  2766.     \expandafter\edef\csname @\expandafter\@gobble
  2767.                 \string#1\endcsname{\if/#5/%
  2768.               \noexpand\no@alphabet@error
  2769.               \noexpand#1%
  2770.             \else
  2771.               \noexpand\select@group\the\toks2
  2772.             \fi}%
  2773.     \edef#1{\noexpand\protect
  2774.             \expandafter\noexpand\csname @\expandafter
  2775.             \@gobble\string#1\endcsname}%
  2776. \let\alpha@list\@empty
  2777. \def\SetMathAlphabet#1#2#3#4#5#6{%
  2778.  \@tempswafalse
  2779.  \edef\reserved@b{#3}%
  2780.  \def\cdp@elt##1##2##3##4{\def\reserved@c{##1}%
  2781.       \ifx\reserved@b\reserved@c \@tempswatrue\fi}%
  2782.  \cdp@list
  2783.  \if@tempswa
  2784.   \expandafter\SetMathAlphabet@
  2785.     \csname mv@#2\expandafter\endcsname\csname#3/#4/#5/#6\expandafter
  2786.     \endcsname \csname M@#3\expandafter\endcsname
  2787.     \csname @\expandafter\@gobble\string#1\endcsname#1%
  2788.  \else
  2789.   \@latex@error{Encoding scheme  `#3' unknown}\@eha
  2790. \def\SetMathAlphabet@#1#2#3#4#5{%
  2791.   \expandafter\in@\expandafter#1\expandafter{\version@list}%
  2792.   \ifin@
  2793.     \expandafter\in@\expandafter#4\expandafter{\alpha@list}%
  2794.     \ifin@
  2795.       \begingroup
  2796.         \toks@{}%
  2797.         \def\getanddefine@fonts##1##2{%
  2798.              \addto@hook\toks@{\getanddefine@fonts##1##2}%
  2799.             }%
  2800.         \def\reserved@c##1##2##3##4{%                % for message below
  2801.             \expandafter\@gobble\string##4}%
  2802.         \def\install@mathalphabet##1##2{%
  2803.           \ifx##1#4%
  2804.              \addto@hook\toks@
  2805.                 {\install@mathalphabet#4{\select@group#4#3#2}}%
  2806.              \@font@info{Overwriting math alphabet
  2807.                 `\string#5' in version `\expandafter
  2808.                  \@gobblefour\string#1'\MessageBreak
  2809.                  \@spaces \reserved@c##2 -->
  2810.                         \expandafter\@gobble\string#2}%
  2811.           \else
  2812.              \addto@hook\toks@{\install@mathalphabet##1{##2}}%
  2813.           \fi
  2814.           }%
  2815.         #1%
  2816.         \xdef#1{\the\toks@}%
  2817.       \endgroup
  2818.     \else
  2819.        \edef\reserved@a{%
  2820.          \noexpand\in@{\string\use@mathgroup}{\meaning#4}}%
  2821.        \reserved@a
  2822.        \ifin@
  2823.          \def\reserved@b##1\use@mathgroup##2##3{%
  2824.              \def\reserved@b{##3}\def\reserved@c{##2}}%
  2825.          \expandafter\reserved@b#4%
  2826.          \begingroup
  2827.            \def\install@mathalphabet##1##2{%
  2828.                \addto@hook\toks@{\install@mathalphabet##1{##2}}%
  2829.                }%
  2830.             \def\getanddefine@fonts##1##2{%
  2831.               \addto@hook\toks@{\getanddefine@fonts##1##2}%
  2832.               \ifnum##1=\reserved@b
  2833.                  \expandafter
  2834.                  \addto@hook\expandafter\toks@
  2835.                  \expandafter{\expandafter\install@mathalphabet
  2836.                  \expandafter#4\expandafter
  2837.                        {\expandafter\select@group\expandafter
  2838.                          #4\reserved@c##2}}%
  2839.               \fi
  2840.                       }%
  2841.            \def\version@elt##1{%
  2842.                \toks@{}%
  2843.                ##1%
  2844.                \xdef##1{\the\toks@}%
  2845.               }%
  2846.            \version@list
  2847.          \endgroup
  2848.          \expandafter\gdef\expandafter\alpha@list\expandafter
  2849.              {\alpha@list
  2850.               \alpha@elt #4\no@alphabet@error \no@alphabet@error}%
  2851.          \gdef#4{\no@alphabet@error #5}% fake things :-)
  2852.          \SetMathAlphabet@{#1}{#2}{#3}#4#5%
  2853.        \else
  2854.          \@latex@error{Command `\string#5' not defined as a
  2855.                        math alphabet}%
  2856.             {Use \noexpand\DeclareMathAlphabet to define it.}%
  2857.        \fi
  2858.     \fi
  2859.   \else
  2860.     \@latex@error{Math version `\expandafter\@gobblefour\string#1'
  2861.        is not
  2862.        defined}{You probably mispelled the name of the math
  2863.        version.^^JOr you have to specify an additional package.}%
  2864.   \fi
  2865. \def\DeclareMathAccent#1#2#3#4{%
  2866.   \expandafter\in@\csname sym#3\expandafter\endcsname
  2867.      \expandafter{\group@list}%
  2868.   \ifin@
  2869.     \begingroup
  2870.       \count\z@=#4\relax
  2871.       \count\tw@\count\z@
  2872.       \divide\count\z@\sixt@@n
  2873.       \count@\count\z@
  2874.       \multiply\count@\sixt@@n
  2875.       \advance\count\tw@-\count@
  2876.       \if\relax\noexpand#1% is command?
  2877.         \edef\reserved@a{\noexpand\in@{\string\mathaccent}{\meaning#1}}%
  2878.         \reserved@a
  2879.         \ifin@
  2880.           \expandafter\set@mathaccent
  2881.              \csname sym#3\endcsname#1#2%
  2882.              {\hexnumber@{\count\z@}\hexnumber@{\count\tw@}}%
  2883.           \@font@info{Redeclaring math accent \string#1}%
  2884.         \else
  2885.           \expandafter\ifx
  2886.           \csname\expandafter\@gobble\string#1\endcsname
  2887.           \relax
  2888.             \expandafter\set@mathaccent
  2889.                \csname sym#3\endcsname#1#2%
  2890.                {\hexnumber@{\count\z@}\hexnumber@{\count\tw@}}%
  2891.           \else
  2892.             \@latex@error{Command `\string#1' already defined}\@eha
  2893.           \fi
  2894.         \fi
  2895.       \else
  2896.        \@latex@error{Not a command name: `\noexpand#1'}\@eha
  2897.       \fi
  2898.     \endgroup
  2899.   \else
  2900.     \@latex@error{Symbol font `#3' is not defined}\@eha
  2901.   \fi
  2902. \def\set@mathaccent#1#2#3#4{%
  2903.   \xdef#2{\mathaccent"\mathchar@type#3\hexnumber@#1#4\relax}}
  2904. \def\DeclareMathSymbol#1#2#3#4{%
  2905.   \expandafter\in@\csname sym#3\expandafter\endcsname
  2906.      \expandafter{\group@list}%
  2907.   \ifin@
  2908.     \begingroup
  2909.       \count\z@=#4\relax
  2910.       \count\tw@\count\z@
  2911.       \divide\count\z@\sixt@@n
  2912.       \count@\count\z@
  2913.       \multiply\count@\sixt@@n
  2914.       \advance\count\tw@-\count@
  2915.       \if\relax\noexpand#1% is command?
  2916.         \edef\reserved@a{\noexpand\in@{\string\mathchar}{\meaning#1}}%
  2917.         \reserved@a
  2918.         \ifin@
  2919.           \expandafter\set@mathsymbol
  2920.              \csname sym#3\endcsname#1#2%
  2921.              {\hexnumber@{\count\z@}\hexnumber@{\count\tw@}}%
  2922.           \@font@info{Redeclaring math symbol \string#1}%
  2923.         \else
  2924.             \expandafter\ifx
  2925.             \csname\expandafter\@gobble\string#1\endcsname
  2926.             \relax
  2927.             \expandafter\set@mathsymbol
  2928.                \csname sym#3\endcsname#1#2%
  2929.                {\hexnumber@{\count\z@}\hexnumber@{\count\tw@}}%
  2930.           \else
  2931.             \@latex@error{Command `\string#1' already defined}\@eha
  2932.           \fi
  2933.         \fi
  2934.       \else
  2935.         \expandafter\set@mathchar
  2936.           \csname sym#3\endcsname#1#2
  2937.           {\hexnumber@{\count\z@}\hexnumber@{\count\tw@}}%
  2938.       \fi
  2939.     \endgroup
  2940.   \else
  2941.     \@latex@error{Symbol font `#3' is not defined}\@eha
  2942.   \fi
  2943. \def\set@mathchar#1#2#3#4{%
  2944.   \global\mathcode`#2="\mathchar@type#3\hexnumber@#1#4\relax}
  2945. \def\set@mathsymbol#1#2#3#4{%
  2946.   \global\mathchardef#2"\mathchar@type#3\hexnumber@#1#4\relax}
  2947. \def\DeclareMathDelimiter#1{%
  2948.   \if\relax\noexpand#1%
  2949.     \expandafter\@DeclareMathDelimiter
  2950.   \else
  2951.     \expandafter\@xDeclareMathDelimiter
  2952.   \fi
  2953.   #1}
  2954. \def\@DeclareMathDelimiter#1#2#3#4#5#6{%
  2955.   \expandafter\in@\csname sym#3\expandafter\endcsname
  2956.      \expandafter{\group@list}%
  2957.   \ifin@
  2958.     \expandafter\in@\csname sym#5\expandafter\endcsname
  2959.        \expandafter{\group@list}%
  2960.     \ifin@
  2961.       \begingroup
  2962.         \count\z@=#4\relax
  2963.         \count\tw@\count\z@
  2964.         \divide\count\z@\sixt@@n
  2965.         \count@\count\z@
  2966.         \multiply\count@\sixt@@n
  2967.         \advance\count\tw@-\count@
  2968.         \edef\reserved@c{\hexnumber@{\count\z@}\hexnumber@{\count\tw@}}%
  2969.       %
  2970.         \count\z@=#6\relax
  2971.         \count\tw@\count\z@
  2972.         \divide\count\z@\sixt@@n
  2973.         \count@\count\z@
  2974.         \multiply\count@\sixt@@n
  2975.         \advance\count\tw@-\count@
  2976.         \edef\reserved@d{\hexnumber@{\count\z@}\hexnumber@{\count\tw@}}%
  2977.       %
  2978.         \edef\reserved@a{\noexpand\in@{\string\delimiter}{\meaning#1}}%
  2979.         \reserved@a
  2980.         \ifin@
  2981.           \expandafter\set@mathdelimiter
  2982.              \csname sym#3\expandafter\endcsname
  2983.              \csname sym#5\endcsname#1#2%
  2984.              \reserved@c\reserved@d
  2985.           \@font@info{Redeclaring math delimiter \string#1}%
  2986.         \else
  2987.             \expandafter\ifx
  2988.             \csname\expandafter\@gobble\string#1\endcsname
  2989.             \relax
  2990.             \expandafter\set@mathdelimiter
  2991.               \csname sym#3\expandafter\endcsname
  2992.               \csname sym#5\endcsname#1#2%
  2993.               \reserved@c\reserved@d
  2994.           \else
  2995.             \@latex@error{Command `\string#1' already defined}\@eha
  2996.           \fi
  2997.         \fi
  2998.       \endgroup
  2999.     \else
  3000.       \@latex@error{Symbol font `#5' is not defined}\@eha
  3001.     \fi
  3002.   \else
  3003.     \@latex@error{Symbol font `#3' is not defined}\@eha
  3004.   \fi
  3005. \def\@xDeclareMathDelimiter#1#2#3#4#5{%
  3006.   \expandafter\in@\csname sym#2\expandafter\endcsname
  3007.      \expandafter{\group@list}%
  3008.   \ifin@
  3009.     \expandafter\in@\csname sym#4\expandafter\endcsname
  3010.        \expandafter{\group@list}%
  3011.     \ifin@
  3012.       \begingroup
  3013.         \count\z@=#3\relax
  3014.         \count\tw@\count\z@
  3015.         \divide\count\z@\sixt@@n
  3016.         \count@\count\z@
  3017.         \multiply\count@\sixt@@n
  3018.         \advance\count\tw@-\count@
  3019.         \edef\reserved@c{\hexnumber@{\count\z@}\hexnumber@{\count\tw@}}%
  3020.       %
  3021.         \count\z@=#5\relax
  3022.         \count\tw@\count\z@
  3023.         \divide\count\z@\sixt@@n
  3024.         \count@\count\z@
  3025.         \multiply\count@\sixt@@n
  3026.         \advance\count\tw@-\count@
  3027.         \edef\reserved@d{\hexnumber@{\count\z@}\hexnumber@{\count\tw@}}%
  3028.         \expandafter\set@@mathdelimiter
  3029.            \csname sym#2\expandafter\endcsname\csname sym#4\endcsname#1%
  3030.            \reserved@c\reserved@d
  3031.       \endgroup
  3032.     \else
  3033.       \@latex@error{Symbol font `#4' is not defined}\@eha
  3034.     \fi
  3035.   \else
  3036.     \@latex@error{Symbol font `#2' is not defined}\@eha
  3037.   \fi
  3038. \def\set@mathdelimiter#1#2#3#4#5#6{%
  3039.   \xdef#3{\delimiter"\mathchar@type#4\hexnumber@#1#5%
  3040.                                      \hexnumber@#2#6 }}
  3041. \def\set@@mathdelimiter#1#2#3#4#5{%
  3042.   \global\delcode`#3="\hexnumber@#1#4\hexnumber@#2#5\relax}
  3043. \def\DeclareMathRadical#1#2#3#4#5{%
  3044.   \expandafter\ifx
  3045.        \csname\expandafter\@gobble\string#1\endcsname
  3046.        \relax
  3047.      \let#1\radical
  3048.   \fi
  3049.   \edef\reserved@a{\noexpand\in@{\string\radical}{\meaning#1}}%
  3050.   \reserved@a
  3051.   \ifin@
  3052.     \expandafter\in@\csname sym#2\expandafter\endcsname
  3053.        \expandafter{\group@list}%
  3054.     \ifin@
  3055.       \expandafter\in@\csname sym#4\expandafter\endcsname
  3056.          \expandafter{\group@list}%
  3057.       \ifin@
  3058.         \begingroup
  3059.           \count\z@=#3\relax
  3060.           \count\tw@\count\z@
  3061.           \divide\count\z@\sixt@@n
  3062.           \count@\count\z@
  3063.           \multiply\count@\sixt@@n
  3064.           \advance\count\tw@-\count@
  3065.           \edef\reserved@c{%
  3066.             \hexnumber@{\count\z@}\hexnumber@{\count\tw@}}%
  3067.           \count\z@=#5\relax
  3068.           \count\tw@\count\z@
  3069.           \divide\count\z@\sixt@@n
  3070.           \count@\count\z@
  3071.           \multiply\count@\sixt@@n
  3072.           \advance\count\tw@-\count@
  3073.           \edef\reserved@d{%
  3074.             \hexnumber@{\count\z@}\hexnumber@{\count\tw@}}%
  3075.           \xdef#1{\radical"\expandafter\hexnumber@
  3076.                                 \csname sym#2\endcsname\reserved@c
  3077.                              \expandafter\hexnumber@
  3078.                                 \csname sym#4\endcsname\reserved@d
  3079.                   \relax}%
  3080.         \endgroup
  3081.       \else
  3082.         \@latex@error{Symbol font `#4' is not defined}\@eha
  3083.       \fi
  3084.     \else
  3085.       \@latex@error{Symbol font `#2' is not defined}\@eha
  3086.     \fi
  3087.   \else
  3088.     \@latex@error{Command `\string#1' already defined}\@eha
  3089.   \fi
  3090. \let\mathalpha\relax % just a dummy currently
  3091. \def\mathchar@type#1{%
  3092.   \ifodd 2#11 #1\else             % is this non-negative number?
  3093.     \ifx#1\mathord 0\else
  3094.      \ifx#1\mathop   1\else
  3095.        \ifx#1\mathbin 2\else
  3096.          \ifx#1\mathrel 3\else
  3097.            \ifx#1\mathopen 4\else
  3098.              \ifx#1\mathclose 5\else
  3099.                \ifx#1\mathpunct 6\else
  3100.                    7%             % anything else is variable ord
  3101.                \fi
  3102.              \fi
  3103.            \fi
  3104.          \fi
  3105.        \fi
  3106.      \fi
  3107.     \fi
  3108.   \fi}
  3109. \def\DeclareSymbolFontAlphabet#1#2{%
  3110.    \expandafter\DeclareSymbolFontAlphabet@
  3111.      \csname @\expandafter\@gobble\string#1\endcsname{#2}#1}
  3112. \def\DeclareSymbolFontAlphabet@#1#2#3{%
  3113.     \@tempswatrue
  3114.   \expandafter\in@\csname sym#2\expandafter\endcsname
  3115.      \expandafter{\group@list}%
  3116.   \ifin@
  3117.     \expandafter\in@\expandafter#1\expandafter{\alpha@list}%
  3118.     \ifin@
  3119.       \@font@info{Redeclaring math alphabet \string#3}%
  3120.       \toks@{}%
  3121.       \def\alpha@elt##1##2##3{%
  3122.           \ifx##1#1\else\addto@hook\toks@{\alpha@elt##1##2##3}\fi}%
  3123.       \alpha@list
  3124.       \xdef\alpha@list{\the\toks@}%
  3125.       \def\version@elt##1{%
  3126.           \begingroup
  3127.             \toks@{}%
  3128.             \def\getanddefine@fonts####1####2{%
  3129.                \addto@hook\toks@{\getanddefine@fonts####1####2}}%
  3130.             \def\install@mathalphabet####1####2{%
  3131.                \ifx####1#1\else
  3132.                  \addto@hook\toks@{\install@mathalphabet
  3133.                                     ####1{####2}}\fi}%
  3134.             ##1%
  3135.             \xdef##1{\the\toks@}%
  3136.           \endgroup
  3137.           }%
  3138.       \version@list
  3139.     \else
  3140.       \expandafter\ifx
  3141.       \csname\expandafter\@gobble\string#1\endcsname
  3142.       \relax
  3143.       \else
  3144.         \edef\reserved@a{%
  3145.           \noexpand\in@{\string\use@mathgroup}{\meaning#1}}%
  3146.         \reserved@a
  3147.         \ifin@
  3148.           \@font@info{Redeclaring math alphabet \string#3}%
  3149.         \else
  3150.           \@tempswafalse
  3151.           \@latex@error{Command `\string#3' already defined}\@eha
  3152.         \fi
  3153.       \fi
  3154.     \fi
  3155.    \else
  3156.      \@tempswafalse
  3157.      \@latex@error{Unknown symbol font `#2'}\@eha
  3158.    \fi
  3159.    \if@tempswa
  3160.      \def\group@elt##1##2{%
  3161.         \expandafter\ifx\csname sym#2\endcsname##1%
  3162.         \expandafter\reserved@a\string##2\@nil
  3163.         \fi}%
  3164.      \def\reserved@a##1##2/##3\@nil{%
  3165.         \def\reserved@a{##2}}%
  3166.      \group@list
  3167.      \toks@{\relax\ifmmode \else \non@alpherr#1\fi}%
  3168.      \edef#1{\the\toks@
  3169.              \noexpand\use@mathgroup
  3170.              \expandafter\noexpand\csname M@\reserved@a\endcsname
  3171.              \csname sym#2\endcsname}%
  3172.      \def#3{\protect#1}%
  3173.    \fi
  3174. %%% File: ltfssini
  3175. %% Copyright (C) 1989-1995 Frank Mittelbach and Rainer Sch\"opf,
  3176. %% all rights reserved.
  3177. \DeclareMathVersion{normal}
  3178. \DeclareMathVersion{bold}
  3179. \DeclareRobustCommand\rmfamily
  3180.         {\not@math@alphabet\rmfamily\mathrm
  3181.          \fontfamily\rmdefault\selectfont}
  3182. \DeclareRobustCommand\sffamily
  3183.         {\not@math@alphabet\sffamily\mathsf
  3184.          \fontfamily\sfdefault\selectfont}
  3185. \DeclareRobustCommand\ttfamily
  3186.         {\not@math@alphabet\ttfamily\mathtt
  3187.          \fontfamily\ttdefault\selectfont}
  3188. \DeclareRobustCommand\bfseries
  3189.         {\not@math@alphabet\bfseries\mathbf
  3190.          \fontseries\bfdefault\selectfont}
  3191. \DeclareRobustCommand\mdseries
  3192.         {\not@math@alphabet\mdseries\relax
  3193.          \fontseries\mddefault\selectfont}
  3194. \DeclareRobustCommand\upshape
  3195.         {\not@math@alphabet\upshape\relax
  3196.          \fontshape\updefault\selectfont}
  3197. \DeclareRobustCommand\slshape
  3198.         {\not@math@alphabet\slshape\relax
  3199.          \fontshape\sldefault\selectfont}
  3200. \DeclareRobustCommand\scshape
  3201.         {\not@math@alphabet\scshape\relax
  3202.          \fontshape\scdefault\selectfont}
  3203. \DeclareRobustCommand\itshape
  3204.         {\not@math@alphabet\itshape\mathit
  3205.          \fontshape\itdefault\selectfont}
  3206. \DeclareRobustCommand\em
  3207.         {\@nomath\em \ifdim \fontdimen\@ne\font >\z@
  3208.                        \upshape \else \itshape \fi}
  3209. \def\not@math@alphabet#1#2{%
  3210.    \relax
  3211.    \ifmmode
  3212.      \@latex@error{Command \noexpand#1invalid in math mode}%
  3213.         {%
  3214.          Please
  3215.          \ifx#2\relax
  3216.             define a new math alphabet^^J%
  3217.             if you want to use a special font in math mode%
  3218.           \else
  3219.             use the math alphabet \noexpand#2instead of
  3220.             the #1command%
  3221.          \fi
  3222.          .
  3223.         }%
  3224.    \fi}
  3225. \def\boldmath{\@nomath\boldmath
  3226.               \mathversion{bold}}
  3227. \def\unboldmath{\@nomath\unboldmath
  3228.               \mathversion{normal}}
  3229. \def\math@version{normal}
  3230. \def\newfont#1#2{\@ifdefinable#1{\font#1=#2\relax}}
  3231. \def\symbol#1{\char #1\relax}
  3232. \def\@setfontsize#1#2#3{\@nomath#1%
  3233.     \ifx\protect\@typeset@protect
  3234.       \let\@currsize#1%
  3235.     \fi
  3236.     \fontsize{#2}{#3}\selectfont}
  3237. \def\@setsize#1#2#3#4{\@setfontsize#1{#4}{#2}}
  3238. \def\oldstylenums#1{%
  3239.    \begingroup
  3240.     \spaceskip\fontdimen\tw@\font
  3241.     \usefont{OML}{cmm}{\f@series}{it}%
  3242.     \mathgroup\symletters #1%
  3243.    \endgroup
  3244. \def\hexnumber@#1{\ifcase\number#1
  3245.  0\or 1\or 2\or 3\or 4\or 5\or 6\or 7\or 8\or
  3246.  9\or A\or B\or C\or D\or E\or F\fi}
  3247. \def\nfss@text#1{{\mbox{#1}}}
  3248. \DeclareRobustCommand\normalfont
  3249.                  {\usefont\encodingdefault
  3250.                           \familydefault
  3251.                           \seriesdefault
  3252.                           \shapedefault}
  3253. \let\reset@font\normalfont
  3254. \def\not@base#1{\@latex@error
  3255.   {Command \noexpand#1not provided in base LaTeX2e}%
  3256.   {Load the latexsym or the amsfonts package to
  3257.    define this symbol}}
  3258. \def\mho{\not@base\mho}
  3259. \def\Join{\not@base\Join}
  3260. \def\Box{\not@base\Box}
  3261. \def\Diamond{\not@base\Diamond}
  3262. \def\leadsto{\not@base\leadsto}
  3263. \def\sqsubset{\not@base\sqsubset}
  3264. \def\sqsupset{\not@base\sqsupset}
  3265. \def\lhd{\not@base\lhd}
  3266. \def\unlhd{\not@base\unlhd}
  3267. \def\rhd{\not@base\rhd}
  3268. \def\unrhd{\not@base\unrhd}
  3269. \DeclareErrorFont{OT1}{cmr}{m}{n}{10}  %%% don't modify this setting
  3270.                                        %%% overwrite it in fontdef.cfg
  3271.                                        %%% if necessary
  3272. \InputIfFileExists{fonttext.cfg}
  3273.            {\typeout{*************************************^^J%
  3274.                      *^^J%
  3275.                      * Local config file fonttext.cfg used^^J%
  3276.                      *^^J%
  3277.                      *************************************}%
  3278.             }
  3279.            {\input{fonttext.ltx}}
  3280. \InputIfFileExists{fontmath.cfg}
  3281.            {\typeout{*************************************^^J%
  3282.                      *^^J%
  3283.                      * Local config file fontmath.cfg used^^J%
  3284.                      *^^J%
  3285.                      *************************************}%
  3286.             }
  3287.            {\input{fontmath.ltx}}
  3288. \InputIfFileExists{preload.cfg}
  3289.            {\typeout{*************************************^^J%
  3290.                      *^^J%
  3291.                      * Local config file preload.cfg used^^J%
  3292.                      *^^J%
  3293.                      *************************************}%
  3294.             }
  3295.            {\input{preload.ltx}}
  3296. \let\@acci\' \let\@accii\` \let\@acciii\=
  3297. %%% File: ltfntcmd
  3298. %% \CharacterTable
  3299. %%  {Upper-case    \A\B\C\D\E\F\G\H\I\J\K\L\M\N\O\P\Q\R\S\T\U\V\W\X\Y\Z
  3300. %%   Lower-case    \a\b\c\d\e\f\g\h\i\j\k\l\m\n\o\p\q\r\s\t\u\v\w\x\y\z
  3301. %%   Digits        \0\1\2\3\4\5\6\7\8\9
  3302. %%   Exclamation   \!     Double quote  \"     Hash (number) \#
  3303. %%   Dollar        \$     Percent       \%     Ampersand     \&
  3304. %%   Acute accent  \'     Left paren    \(     Right paren   \)
  3305. %%   Asterisk      \*     Plus          \+     Comma         \,
  3306. %%   Minus         \-     Point         \.     Solidus       \/
  3307. %%   Colon         \:     Semicolon     \;     Less than     \<
  3308. %%   Equals        \=     Greater than  \>     Question mark \?
  3309. %%   Commercial at \@     Left bracket  \[     Backslash     \\
  3310. %%   Right bracket \]     Circumflex    \^     Underscore    \_
  3311. %%   Grave accent  \`     Left brace    \{     Vertical bar  \|
  3312. %%   Right brace   \}     Tilde         \~}
  3313. \def \DeclareTextFontCommand #1#2{%
  3314.   \DeclareRobustCommand#1[1]{%
  3315.     \ifmmode
  3316.       \nfss@text{#2##1}%
  3317.     \else
  3318.       \leavevmode
  3319.       {\text@command{##1}%
  3320.        #2\check@icl ##1\check@icr
  3321.        \expandafter}%
  3322.     \fi
  3323.                        }%
  3324. \DeclareTextFontCommand{\textrm}{\rmfamily}
  3325. \DeclareTextFontCommand{\textsf}{\sffamily}
  3326. \DeclareTextFontCommand{\texttt}{\ttfamily}
  3327. \DeclareTextFontCommand{\textnormal}{\normalfont}
  3328. \DeclareTextFontCommand{\textbf}{\bfseries}
  3329. \DeclareTextFontCommand{\textmd}{\mdseries}
  3330. \DeclareTextFontCommand{\textit}{\itshape}
  3331. \DeclareTextFontCommand{\textsl}{\slshape}
  3332. \DeclareTextFontCommand{\textsc}{\scshape}
  3333. \DeclareTextFontCommand{\textup}{\upshape}
  3334. \DeclareTextFontCommand{\emph}{\em}
  3335. \let \nocorr \relax
  3336. \def \text@command #1{%
  3337.   \def \reserved@a {#1}%
  3338.   \ifx \reserved@a \@empty
  3339.     \let \check@icl \@empty
  3340.     \let \check@icr \@empty
  3341.   \else
  3342.     \ifx \reserved@a \space
  3343.       \let \check@icl \@empty
  3344.       \let \check@icr \@empty
  3345.     \else
  3346.       \check@nocorr@ #1\nocorr\@nil
  3347.     \fi
  3348.   \fi
  3349. \def \check@nocorr@ #1#2\nocorr#3\@nil {%
  3350.   \let \check@icl \maybe@ic
  3351.   \def \check@icr {\aftergroup \maybe@ic}%
  3352.   \def \reserved@a {\nocorr}%
  3353.   \def \reserved@b {#1}%
  3354.   \def \reserved@c {#3}%
  3355.   \ifx \reserved@a \reserved@b
  3356.     \ifx \reserved@c \@empty
  3357.       \let \check@icl \@empty
  3358.     \else
  3359.       \let \check@icl \@empty
  3360.       \let \check@icr \@empty
  3361.     \fi
  3362.   \else
  3363.     \ifx \reserved@c \@empty
  3364.     \else
  3365.       \let \check@icr \@empty
  3366.     \fi
  3367.   \fi
  3368. \def \maybe@ic {\futurelet\@let@token\maybe@ic@}
  3369. \def \maybe@ic@ {%
  3370.   \ifdim \fontdimen\@ne\font>\z@
  3371.   \else
  3372.     \@tempswatrue
  3373.     \expandafter\@tfor\expandafter\reserved@a\expandafter:\expandafter=%
  3374.         \nocorrlist
  3375.     \do \test@next
  3376.     \if@tempswa \sw@slant \fi
  3377.   \fi
  3378. \def \test@next {%
  3379.   \expandafter\let\expandafter\reserved@b\expandafter=\reserved@a\relax
  3380.   \ifx\reserved@b\@let@token
  3381.     \@tempswafalse
  3382.     \let\@nextwhile\@fornoop
  3383.     \expandafter\@gobblefour
  3384.   \fi
  3385. \def \sw@slant {%
  3386.   \ifdim \lastskip=\z@
  3387.     \fix@penalty
  3388.   \else
  3389.     \skip@ \lastskip
  3390.     \unskip
  3391.     \fix@penalty
  3392.     \hskip \skip@
  3393.   \fi
  3394. \def \fix@penalty {%
  3395.   \ifnum \lastpenalty=\z@
  3396.     \@@italiccorr
  3397.   \else
  3398.     \count@ \lastpenalty
  3399.     \unpenalty
  3400.     \@@italiccorr
  3401.     \penalty \count@
  3402.   \fi
  3403. \def \nocorrlist {,.}
  3404. \ifx \nfss@text\undefined
  3405.   \def \nfss@text {\leavevmode\hbox}
  3406. \def \DeclareOldFontCommand #1#2#3{%
  3407.   \DeclareRobustCommand #1{\@fontswitch {#2}{#3}}%
  3408. \def \@fontswitch #1#2{%
  3409.   \ifmmode
  3410.      \let \math@bgroup \relax
  3411.      \def \math@egroup {\let \math@bgroup \@@math@bgroup
  3412.                         \let \math@egroup \@@math@egroup}%
  3413.      #2\relax
  3414.   \else
  3415.      #1%
  3416.   \fi
  3417. \let \@@math@bgroup \math@bgroup
  3418. \let \@@math@egroup \math@egroup
  3419. \@onlypreamble \DeclareTextFontCommand
  3420. \@onlypreamble \DeclareOldFontCommand
  3421. \def\normalsize{%
  3422.   \@latex@error {The font size command \protect\normalsize\space
  3423.               is not defined:\MessageBreak
  3424.               there is probably something wrong with
  3425.               the class file}\@eha
  3426. %%% File: ltcounts
  3427. \message{env. counters,}
  3428. \def\setcounter#1#2{\@ifundefined{c@#1}{\@nocounterr{#1}}%
  3429. {\global\csname c@#1\endcsname#2\relax}}
  3430. \def\addtocounter#1#2{\@ifundefined{c@#1}{\@nocounterr{#1}}%
  3431. {\global\advance\csname c@#1\endcsname #2\relax}}
  3432. \def\newcounter#1{\expandafter\@ifdefinable \csname c@#1\endcsname
  3433.     {\@definecounter{#1}}\@ifnextchar[{\@newctr{#1}}{}}
  3434. \def\value#1{\csname c@#1\endcsname}
  3435. \def\@newctr#1[#2]{%
  3436.   \@ifundefined{c@#2}{\@nocounterr{#2}}{\@addtoreset{#1}{#2}}}
  3437. \def\stepcounter#1{\addtocounter{#1}\@ne
  3438.     \begingroup\let\@elt\@stpelt \csname cl@#1\endcsname\endgroup}
  3439. \def\@stpelt#1{\global\csname c@#1\endcsname \z@}
  3440. \def\cl@@ckpt{\@elt{page}}
  3441. \def\@definecounter#1{\expandafter\newcount\csname c@#1\endcsname
  3442.      \setcounter{#1}\z@
  3443.      \global\expandafter\let\csname cl@#1\endcsname\@empty
  3444.      \@addtoreset{#1}{@ckpt}%
  3445.      \global\expandafter\let\csname p@#1\endcsname\@empty
  3446.      \expandafter
  3447.      \gdef\csname the#1\expandafter\endcsname\expandafter
  3448.           {\expandafter\@arabic\csname c@#1\endcsname}}
  3449. \def\@addtoreset#1#2{\expandafter\@cons\csname cl@#2\endcsname {{#1}}}
  3450. \def\arabic#1{\expandafter\@arabic\csname c@#1\endcsname}
  3451. \def\roman#1{\expandafter\@roman\csname c@#1\endcsname}
  3452. \def\Roman#1{\expandafter\@Roman\csname c@#1\endcsname}
  3453. \def\alph#1{\expandafter\@alph\csname c@#1\endcsname}
  3454. \def\Alph#1{\expandafter\@Alph\csname c@#1\endcsname}
  3455. \def\fnsymbol#1{\expandafter\@fnsymbol\csname c@#1\endcsname}
  3456. \def\@arabic#1{\number #1}  %% changed 29 Apr 86
  3457. \def\@roman#1{\romannumeral #1}
  3458. \def\@Roman#1{\expandafter\uppercase\expandafter{\romannumeral #1}}
  3459. \def\@alph#1{%
  3460.   \ifcase#1\or a\or b\or c\or d\or e\or f\or g\or h\or i\or j\or
  3461.    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
  3462.     y\or z\else\@ctrerr\fi}
  3463. \def\@Alph#1{%
  3464.   \ifcase#1\or A\or B\or C\or D\or E\or F\or G\or H\or I\or J\or
  3465.    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
  3466.     Y\or Z\else\@ctrerr\fi}
  3467. \def\@fnsymbol#1{\ensuremath{\ifcase#1\or *\or \dagger\or \ddagger\or
  3468.    \mathchar "278\or \mathchar "27B\or \|\or **\or \dagger\dagger
  3469.    \or \ddagger\ddagger \else\@ctrerr\fi}}
  3470. %%% File: ltpageno
  3471. \message{page nos.,}
  3472. \countdef\c@page=0 \c@page=1
  3473. \def\cl@page{}
  3474. \def\pagenumbering#1{%
  3475.   \global\c@page \@ne \gdef\thepage{\csname @#1\endcsname
  3476.    \c@page}}
  3477. %%% File: ltxref
  3478. \message{x-ref,}
  3479. \newif\ifG@refundefined
  3480. \def\G@refundefinedtrue{\global\let\ifG@refundefined\iftrue}
  3481. \def\G@refundefinedfalse{\global\let\ifG@refundefined\iffalse}
  3482. \def\@setref#1#2#3{%
  3483.   \ifx#1\relax
  3484.    \protect\G@refundefinedtrue
  3485.    \nfss@text{\reset@font\bfseries ??}%
  3486.    \@latex@warning{Reference `#3' on page \thepage \space
  3487.              undefined}%
  3488.   \else
  3489.    \expandafter#2#1\null
  3490.   \fi}
  3491. \def\ref#1{\expandafter\@setref\csname r@#1\endcsname\@firstoftwo{#1}}
  3492. \def\pageref#1{\expandafter\@setref\csname r@#1\endcsname
  3493.                                    \@secondoftwo{#1}}
  3494. \def\@newl@bel#1#2#3{%
  3495.   \@ifundefined{#1@#2}%
  3496.     \relax
  3497.     {\global\@multiplelabelstrue
  3498.      \@latex@warning@no@line{Label `#2' multiply defined}}%
  3499.   \global\@namedef{#1@#2}{#3}}
  3500. \def\newlabel{\@newl@bel r}
  3501. \@onlypreamble\newlabel
  3502. \@onlypreamble\@newl@bel
  3503. \newif\if@multiplelabels
  3504. \def\label#1{\@bsphack
  3505.   \protected@write\@auxout{}%
  3506.          {\string\newlabel{#1}{{\@currentlabel}{\thepage}}}%
  3507.   \@esphack}
  3508. \def\refstepcounter#1{\stepcounter{#1}%
  3509.     \protected@edef\@currentlabel
  3510.        {\csname p@#1\endcsname\csname the#1\endcsname}%
  3511. \def\@currentlabel{}
  3512. %%% File: ltlength
  3513. \message{lengths,}
  3514. \def\newlength#1{\@ifdefinable#1{\newskip#1}}
  3515. \def\setlength#1#2{#1#2\relax}
  3516. \def\addtolength#1#2{\advance#1 #2\relax}
  3517. \def\@settodim#1#2#3{\setbox\@tempboxa\hbox{{#3}}#2#1\@tempboxa
  3518.        \setbox\@tempboxa\box\voidb@x}
  3519. \def\settoheight{\@settodim\ht}
  3520. \def\settodepth {\@settodim\dp}
  3521. \def\settowidth {\@settodim\wd}
  3522. \def\@settopoint#1{\divide#1\p@\multiply#1\p@}
  3523. %%% File: ltmiscen
  3524. \message{environments,}
  3525. \def\@currenvir{document}
  3526. \@onlypreamble\document
  3527. \@onlypreamble\documentstyle
  3528. \@onlypreamble\@documentstyle
  3529. \@onlypreamble\@options
  3530. \@onlypreamble\@preamblecmds
  3531. \@onlypreamble\@optionlist
  3532. \@onlypreamble\@optionfiles
  3533. \@onlypreamble\nofiles
  3534. \@onlypreamble\includeonly
  3535. \@onlypreamble\makeindex
  3536. \@onlypreamble\makeglossary
  3537. \newif\if@ignore
  3538. \def\enddocument{%
  3539.    \@enddocumenthook
  3540.    \@checkend{document}%
  3541.    \clearpage
  3542.    \begingroup
  3543.      \if@filesw
  3544.        \immediate\closeout\@mainaux
  3545.        \def\@setckpt##1##2{}%
  3546.        \def\newlabel{\@testdef r}%
  3547.        \def\bibcite{\@testdef b}%
  3548.        \@tempswafalse
  3549.        \makeatletter \input\jobname.aux
  3550.      \fi
  3551.      \@dofilelist
  3552.      \ifdim \font@submax >\fontsubfuzz\relax
  3553.        \@font@warning{Size substitutions with differences\MessageBreak
  3554.                   up to \font@submax\space have occured.\@gobbletwo}%
  3555.      \fi
  3556.      \ifG@defaultsubs
  3557.        \@font@warning{Some font shapes were not available, defaults
  3558.                      substituted.\@gobbletwo}%
  3559.      \fi
  3560.      \ifG@refundefined
  3561.        \@latex@warning@no@line{There were undefined references}%
  3562.      \fi
  3563.      \if@filesw
  3564.        \if@multiplelabels
  3565.          \@latex@warning@no@line{There were multiply-defined labels}%
  3566.        \else
  3567.          \if@tempswa
  3568.            \@latex@warning@no@line{Label(s) may have changed.
  3569.                Rerun to get cross-references right}%
  3570.          \fi
  3571.        \fi
  3572.      \fi
  3573.    \endgroup
  3574.    \deadcycles\z@\@@end}
  3575. \def\@testdef #1#2#3{%
  3576.   \def\reserved@a{#3}\expandafter \ifx \csname #1@#2\endcsname
  3577.  \reserved@a  \else \@tempswatrue \fi}
  3578. \long\def\@writefile#1#2{%
  3579.   \@ifundefined{tf@#1}{}%
  3580.     {\@temptokena{#2}
  3581.      \immediate\write\csname tf@#1\endcsname{\the\@temptokena}%
  3582.     }%
  3583. \def\stop{\clearpage\deadcycles\z@\let\par\@@par\@@end}
  3584. \everypar{\@nodocument} %% To get an error if text appears before the
  3585. \nullfont               %% \begin{document}
  3586. \def\begin#1{%
  3587.   \@ifundefined{#1}%
  3588.     {\def\reserved@a{\@latex@error{Environment #1 undefined}\@eha}}%
  3589.     {\def\reserved@a{\def\@currenvir{#1}%
  3590.      \edef\@currenvline{\on@line}%
  3591.      \csname #1\endcsname}}%
  3592.   \global\@ignorefalse %% \global...added 2 May 90
  3593.   \begingroup\@endpefalse\reserved@a}
  3594. \def\end#1{%
  3595.   \csname end#1\endcsname\@checkend{#1}%
  3596.   \expandafter\endgroup\if@endpe\@doendpe\fi
  3597.   \if@ignore\global\@ignorefalse\ignorespaces\fi}
  3598. \def\@checkend#1{\def\reserved@a{#1}\ifx
  3599.       \reserved@a\@currenvir \else\@badend{#1}\fi}
  3600. \let\@currenvline\empty
  3601. \message{center,}
  3602. \def\@centercr{\ifhmode \unskip\else \@nolnerr\fi
  3603.        \par\@ifstar{\penalty \@M\@xcentercr}\@xcentercr}
  3604. \def\@xcentercr{\addvspace{-\parskip}\@ifnextchar
  3605.     [\@icentercr\ignorespaces}
  3606. \def\@icentercr[#1]{\vskip #1\ignorespaces}
  3607. \def\center{\trivlist \centering\item\relax}
  3608. \def\centering{\let\\\@centercr\rightskip\@flushglue\leftskip\@flushglue
  3609. \parindent\z@\parfillskip\z@skip}
  3610. \def\endcenter{\endtrivlist}
  3611. \newskip\@rightskip \@rightskip \z@skip
  3612. \def\flushleft{\trivlist \raggedright\item\relax}
  3613. \def\raggedright{%
  3614.   \let\\\@centercr\@rightskip\@flushglue \rightskip\@rightskip
  3615.   \leftskip\z@skip
  3616.   \parindent\z@}
  3617. \def\endflushleft{\endtrivlist}
  3618. \def\flushright{\trivlist \raggedleft\item\relax}
  3619. \def\raggedleft{\let\\\@centercr\rightskip\z@skip\leftskip\@flushglue
  3620.   \parindent\z@\parfillskip\z@skip}
  3621. \def\endflushright{\endtrivlist}
  3622. \message{verbatim,}
  3623. {\catcode`\^^M=13 \gdef\@gobblecr{\@ifnextchar
  3624. \@gobble\ignorespaces}}
  3625. {\catcode`\ =\active%
  3626. \gdef\@vobeyspaces{\catcode`\ \active\let \@xobeysp}}
  3627. \def\@xobeysp{\leavevmode\penalty10000\ }
  3628. \begingroup \catcode `|=0 \catcode `[= 1
  3629. \catcode`]=2 \catcode `\{=12 \catcode `\}=12
  3630. \catcode`\\=12 |gdef|@xverbatim#1\end{verbatim}[#1|end[verbatim]]
  3631. |gdef|@sxverbatim#1\end{verbatim*}[#1|end[verbatim*]]
  3632. |endgroup
  3633. \def\@verbatim{\trivlist \item\relax
  3634.   \if@minipage\else\vskip\parskip\fi
  3635.   \leftskip\@totalleftmargin\rightskip\z@skip
  3636.   \parindent\z@\parfillskip\@flushglue\parskip\z@skip
  3637.   \@@par
  3638.   \@tempswafalse
  3639.   \def\par{%
  3640.     \if@tempswa
  3641.       \leavevmode \null \@@par\penalty\interlinepenalty
  3642.     \else
  3643.       \@tempswatrue
  3644.       \ifhmode\@@par\penalty\interlinepenalty\fi
  3645.     \fi}%
  3646.   \obeylines \verbatim@font \@noligs
  3647.   \let\do\@makeother \dospecials
  3648.   \everypar \expandafter{\the\everypar \unpenalty}%
  3649. \def\verbatim{\@verbatim \frenchspacing\@vobeyspaces \@xverbatim}
  3650. \def\endverbatim{\if@newlist \leavevmode\fi\endtrivlist}
  3651. \def\verbatim@font{\normalfont\ttfamily}
  3652. \@namedef{verbatim*}{\@verbatim\@sxverbatim}
  3653. \expandafter\let\csname endverbatim*\endcsname =\endverbatim
  3654. \def\@makeother#1{\catcode`#1=12\relax}
  3655. \let\verb@balance@group\@empty
  3656. \def\verb@egroup{\global\let\verb@balance@group\@empty\egroup}
  3657. \begingroup
  3658.   \obeylines%
  3659.   \gdef\verb@eol@error{\obeylines%
  3660.     \def^^M{\verb@egroup\@latex@error{%
  3661.             \noexpand\verb ended by end of line}\@ehc}}%
  3662. \endgroup
  3663. \def\verb{\relax\ifmmode\hbox\else\leavevmode\null\fi
  3664.   \bgroup \@noligs
  3665.     \verbatim@font \verb@eol@error \let\do\@makeother \dospecials
  3666.     \@ifstar\@sverb\@verb}
  3667. \def\@sverb#1{%
  3668.   \catcode`#1\active
  3669.   \lccode`\~`#1%
  3670.   \gdef\verb@balance@group{\verb@egroup
  3671.      \@latex@error{\noexpand\verb illegal in command argument}\@ehc}%
  3672.   \aftergroup\verb@balance@group
  3673.   \lowercase{\let~\verb@egroup}}%
  3674. \def\@verb{\@vobeyspaces \frenchspacing \@sverb}
  3675. \def\verbatim@nolig@list{\do\`\do\<\do\>\do\,\do\'\do\-}
  3676. \def\do@noligs#1{%
  3677.   \catcode`#1\active
  3678.   \begingroup
  3679.      \lccode`\~=`#1\relax
  3680.      \lowercase{\endgroup\def~{\leavevmode\kern\z@\char`#1}}}
  3681. \def\@noligs{\let\do\do@noligs \verbatim@nolig@list}
  3682. %%% File: ltmath.dtx
  3683. \message{math definitions,}
  3684. %% \CharacterTable
  3685. %%  {Upper-case    \A\B\C\D\E\F\G\H\I\J\K\L\M\N\O\P\Q\R\S\T\U\V\W\X\Y\Z
  3686. %%   Lower-case    \a\b\c\d\e\f\g\h\i\j\k\l\m\n\o\p\q\r\s\t\u\v\w\x\y\z
  3687. %%   Digits        \0\1\2\3\4\5\6\7\8\9
  3688. %%   Exclamation   \!     Double quote  \"     Hash (number) \#
  3689. %%   Dollar        \$     Percent       \%     Ampersand     \&
  3690. %%   Acute accent  \'     Left paren    \(     Right paren   \)
  3691. %%   Asterisk      \*     Plus          \+     Comma         \,
  3692. %%   Minus         \-     Point         \.     Solidus       \/
  3693. %%   Colon         \:     Semicolon     \;     Less than     \<
  3694. %%   Equals        \=     Greater than  \>     Question mark \?
  3695. %%   Commercial at \@     Left bracket  \[     Backslash     \\
  3696. %%   Right bracket \]     Circumflex    \^     Underscore    \_
  3697. %%   Grave accent  \`     Left brace    \{     Vertical bar  \|
  3698. %%   Right brace   \}     Tilde         \~}
  3699. \def\log{\mathop{\operator@font log}\nolimits}
  3700. \def\lg{\mathop{\operator@font lg}\nolimits}
  3701. \def\ln{\mathop{\operator@font ln}\nolimits}
  3702. \def\lim{\mathop{\operator@font lim}}
  3703. \def\limsup{\mathop{\operator@font lim\,sup}}
  3704. \def\liminf{\mathop{\operator@font lim\,inf}}
  3705. \def\sin{\mathop{\operator@font sin}\nolimits}
  3706. \def\arcsin{\mathop{\operator@font arcsin}\nolimits}
  3707. \def\sinh{\mathop{\operator@font sinh}\nolimits}
  3708. \def\cos{\mathop{\operator@font cos}\nolimits}
  3709. \def\arccos{\mathop{\operator@font arccos}\nolimits}
  3710. \def\cosh{\mathop{\operator@font cosh}\nolimits}
  3711. \def\tan{\mathop{\operator@font tan}\nolimits}
  3712. \def\arctan{\mathop{\operator@font arctan}\nolimits}
  3713. \def\tanh{\mathop{\operator@font tanh}\nolimits}
  3714. \def\cot{\mathop{\operator@font cot}\nolimits}
  3715. \def\coth{\mathop{\operator@font coth}\nolimits}
  3716. \def\sec{\mathop{\operator@font sec}\nolimits}
  3717. \def\csc{\mathop{\operator@font csc}\nolimits}
  3718. \def\max{\mathop{\operator@font max}}
  3719. \def\min{\mathop{\operator@font min}}
  3720. \def\sup{\mathop{\operator@font sup}}
  3721. \def\inf{\mathop{\operator@font inf}}
  3722. \def\arg{\mathop{\operator@font arg}\nolimits}
  3723. \def\ker{\mathop{\operator@font ker}\nolimits}
  3724. \def\dim{\mathop{\operator@font dim}\nolimits}
  3725. \def\hom{\mathop{\operator@font hom}\nolimits}
  3726. \def\det{\mathop{\operator@font det}}
  3727. \def\exp{\mathop{\operator@font exp}\nolimits}
  3728. \def\Pr{\mathop{\operator@font Pr}}
  3729. \def\gcd{\mathop{\operator@font gcd}}
  3730. \def\deg{\mathop{\operator@font deg}\nolimits}
  3731. \def\bmod{\nonscript\mskip-\medmuskip\mkern5mu
  3732.   \mathbin{\operator@font mod}\penalty900\mkern5mu%
  3733.   \nonscript\mskip-\medmuskip}
  3734. \def\pmod#1{\allowbreak\mkern18mu({\operator@font mod}\,\,#1)}
  3735. \def\bigl{\mathopen\big}
  3736. \def\bigm{\mathrel\big}
  3737. \def\bigr{\mathclose\big}
  3738. \def\Bigl{\mathopen\Big}
  3739. \def\Bigm{\mathrel\Big}
  3740. \def\Bigr{\mathclose\Big}
  3741. \def\biggl{\mathopen\bigg}
  3742. \def\biggm{\mathrel\bigg}
  3743. \def\biggr{\mathclose\bigg}
  3744. \def\Biggl{\mathopen\Bigg}
  3745. \def\Biggm{\mathrel\Bigg}
  3746. \def\Biggr{\mathclose\Bigg}
  3747. \newdimen\jot \jot=3pt
  3748. \newcount\interdisplaylinepenalty \interdisplaylinepenalty=100
  3749. \def\choose{\atopwithdelims()}
  3750. \def\brack{\atopwithdelims[]}
  3751. \def\brace{\atopwithdelims\{\}}
  3752. \def\mathpalette#1#2{\mathchoice{#1\displaystyle{#2}}%
  3753.   {#1\textstyle{#2}}{#1\scriptstyle{#2}}{#1\scriptscriptstyle{#2}}}
  3754. \newbox\rootbox
  3755. \def\root#1\of{\setbox\rootbox\hbox{$\m@th\scriptscriptstyle{#1}$}
  3756.   \mathpalette\r@@t}
  3757. \def\r@@t#1#2{\setbox\z@\hbox{$\m@th#1\sqrtsign{#2}$}
  3758.   \dimen@\ht\z@ \advance\dimen@-\dp\z@
  3759.   \mkern5mu\raise.6\dimen@\copy\rootbox \mkern-10mu \box\z@}
  3760. \newif\ifv@ \newif\ifh@
  3761. \def\vphantom{\v@true\h@false\ph@nt}
  3762. \def\hphantom{\v@false\h@true\ph@nt}
  3763. \def\phantom{\v@true\h@true\ph@nt}
  3764. \def\ph@nt{%
  3765.   \ifmmode
  3766.     \expandafter\mathpalette\expandafter\mathph@nt
  3767.   \else
  3768.     \expandafter\makeph@nt
  3769.   \fi}
  3770. \def\makeph@nt#1{%
  3771.   \setbox\z@\hbox{\color@begingroup#1\color@endgroup}\finph@nt}
  3772. \def\mathph@nt#1#2{%
  3773.   \setbox\z@\hbox{$\m@th#1{#2}$}\finph@nt}
  3774. \def\finph@nt{%
  3775.   \setbox\tw@\null
  3776.   \ifv@ \ht\tw@\ht\z@ \dp\tw@\dp\z@\fi
  3777.   \ifh@ \wd\tw@\wd\z@\fi \box\tw@}
  3778. \def\mathstrut{\vphantom(}
  3779. \def\smash{%
  3780.   \relax % \relax, in case this comes first in \halign
  3781.   \ifmmode
  3782.     \expandafter\mathpalette\expandafter\mathsm@sh
  3783.   \else
  3784.     \expandafter\makesm@sh
  3785.   \fi}
  3786. \def\makesm@sh#1{%
  3787.   \setbox\z@\hbox{\color@begingroup#1\color@endgroup}\finsm@sh}
  3788. \def\mathsm@sh#1#2{%
  3789.   \setbox\z@\hbox{$\m@th#1{#2}$}\finsm@sh}
  3790. \def\finsm@sh{\ht\z@\z@ \dp\z@\z@ \box\z@}
  3791. \def\buildrel#1\over#2{\mathrel{\mathop{\kern\z@#2}\limits^{#1}}}
  3792. \def\cases#1{\left\{\,\vcenter{\normalbaselines\m@th
  3793.     \ialign{$##\hfil$&\quad{##}\hfil\crcr#1\crcr}}\right.}
  3794. \def\matrix#1{\null\,\vcenter{\normalbaselines\m@th
  3795.     \ialign{\hfil$##$\hfil&&\quad\hfil$##$\hfil\crcr
  3796.       \mathstrut\crcr\noalign{\kern-\baselineskip}
  3797.       #1\crcr\mathstrut\crcr\noalign{\kern-\baselineskip}}}\,}
  3798. \def\pmatrix#1{\left(\matrix{#1}\right)}
  3799. \def\bordermatrix#1{\begingroup \m@th
  3800.   \@tempdima 8.75\p@
  3801.   \setbox\z@\vbox{%
  3802.     \def\cr{\crcr\noalign{\kern2\p@\global\let\cr\endline}}%
  3803.     \ialign{$##$\hfil\kern2\p@\kern\@tempdima&\thinspace\hfil$##$\hfil
  3804.       &&\quad\hfil$##$\hfil\crcr
  3805.       \omit\strut\hfil\crcr\noalign{\kern-\baselineskip}%
  3806.       #1\crcr\omit\strut\cr}}%
  3807.   \setbox\tw@\vbox{\unvcopy\z@\global\setbox\@ne\lastbox}%
  3808.   \setbox\tw@\hbox{\unhbox\@ne\unskip\global\setbox\@ne\lastbox}%
  3809.   \setbox\tw@\hbox{$\kern\wd\@ne\kern-\@tempdima\left(\kern-\wd\@ne
  3810.     \global\setbox\@ne\vbox{\box\@ne\kern2\p@}%
  3811.     \vcenter{\kern-\ht\@ne\unvbox\z@\kern-\baselineskip}\,\right)$}%
  3812.   \null\;\vbox{\kern\ht\@ne\box\tw@}\endgroup}
  3813. \def\openup{\afterassignment\@penup\dimen@=}
  3814. \def\@penup{\advance\lineskip\dimen@
  3815.   \advance\baselineskip\dimen@
  3816.   \advance\lineskiplimit\dimen@}
  3817. \newif\ifdt@p
  3818. \def\displ@y{\global\dt@ptrue\openup\jot\m@th
  3819.   \everycr{\noalign{\ifdt@p \global\dt@pfalse \ifdim\prevdepth>-1000\p@
  3820.       \vskip-\lineskiplimit \vskip\normallineskiplimit \fi
  3821.       \else \penalty\interdisplaylinepenalty \fi}}}
  3822. \def\@lign{\tabskip\z@skip\everycr{}} % restore inside \displ@y
  3823. \def\displaylines#1{\displ@y \tabskip\z@skip
  3824.   \halign{\hb@xt@\displaywidth{$\@lign\hfil\displaystyle##\hfil$}\crcr
  3825.     #1\crcr}}
  3826. \let\sp=^ \let\sb=_
  3827. \def\>{\mskip\medmuskip}
  3828. \def\;{\mskip\thickmuskip}
  3829. \def\!{\mskip-\thinmuskip}
  3830. \def\*{\discretionary{\thinspace\the\textfont2\char2}{}{}}
  3831. \let\:=\>
  3832. {\catcode`\'=\active \gdef'{^\bgroup\prim@s}}
  3833. \def\prim@s{%
  3834.   \prime\futurelet\@let@token\pr@m@s}
  3835. \def\pr@m@s{%
  3836.   \ifx'\@let@token
  3837.     \expandafter\pr@@@s
  3838.   \else
  3839.     \ifx^\@let@token
  3840.       \expandafter\expandafter\expandafter\pr@@@t
  3841.     \else
  3842.       \egroup
  3843.     \fi
  3844.   \fi}
  3845. \def\pr@@@s#1{\prim@s} \def\pr@@@t#1#2{#2\egroup}
  3846. {\catcode`\_=\active \gdef_{\_}} % _ in math is
  3847.                                  % either subscript or \_
  3848. \def\({\relax\ifmmode\@badmath\else$\fi}
  3849. \def\){\relax\ifmmode\ifinner$\else\@badmath\fi\else \@badmath\fi}
  3850. \def\[{%
  3851.    \relax\ifmmode
  3852.       \@badmath
  3853.    \else
  3854.       \ifvmode
  3855.          \nointerlineskip
  3856.          \makebox[.6\linewidth]%
  3857.       \fi
  3858.       $$%%$$ BRACE MATCH HACK
  3859.    \fi
  3860. \def\]{%
  3861.    \relax\ifmmode
  3862.       \ifinner
  3863.          \@badmath
  3864.       \else
  3865.          $$%%$$ BRACE MATCH HACK
  3866.       \fi
  3867.    \else
  3868.       \@badmath
  3869.    \fi
  3870.    \ignorespaces
  3871. \let\math=\(
  3872. \let\endmath=\)
  3873. \def\displaymath{\[}
  3874. \def\enddisplaymath{\]\global\@ignoretrue}
  3875. \@definecounter{equation}
  3876. \def\equation{$$\refstepcounter{equation}}
  3877. \def\endequation{\eqno \hbox{\@eqnnum}$$\global\@ignoretrue}
  3878. \def\@eqnnum{{\normalfont \normalcolor (\theequation)}}
  3879. \def\stackrel#1#2{\mathrel{\mathop{#2}\limits^{#1}}}
  3880. \def\frac#1#2{{\begingroup#1\endgroup\over#2}}
  3881. \def\sqrt{\@ifnextchar[\@sqrt\sqrtsign}
  3882. \def\@sqrt[#1]{\root #1\of}
  3883. \newcount\@eqcnt
  3884. \newcount\@eqpen
  3885. \newif\if@eqnsw\@eqnswtrue
  3886. \newskip\@centering
  3887. \@centering = 0pt plus 1000pt
  3888. \def\eqnarray{%
  3889.    \stepcounter{equation}%
  3890.    \def\@currentlabel{\p@equation\theequation}%
  3891.    \global\@eqnswtrue
  3892.    \m@th
  3893.    \global\@eqcnt\z@
  3894.    \tabskip\@centering
  3895.    \let\\\@eqncr
  3896.    $$\everycr{}\halign to\displaywidth\bgroup
  3897.        \hskip\@centering$\displaystyle\tabskip\z@skip{##}$\@eqnsel
  3898.       &\global\@eqcnt\@ne\hskip \tw@\arraycolsep \hfil${##}$\hfil
  3899.       &\global\@eqcnt\tw@ \hskip \tw@\arraycolsep
  3900.          $\displaystyle{##}$\hfil\tabskip\@centering
  3901.       &\global\@eqcnt\thr@@ \hb@xt@\z@\bgroup\hss##\egroup
  3902.          \tabskip\z@skip
  3903.       \cr
  3904. \def\endeqnarray{%
  3905.       \@@eqncr
  3906.       \egroup
  3907.       \global\advance\c@equation\m@ne
  3908.    $$\global\@ignoretrue
  3909. \let\@eqnsel=\relax
  3910. \def\nonumber{\global\@eqnswfalse}
  3911. \def\@eqncr{%
  3912.    {\ifnum0=`}\fi
  3913.    \@ifstar{%
  3914.       \global\@eqpen\@M\@yeqncr
  3915.    }{%
  3916.       \global\@eqpen\interdisplaylinepenalty \@yeqncr
  3917.    }%
  3918. \def\@yeqncr{%
  3919.    \@ifnextchar [%
  3920.       \@xeqncr
  3921.       {\@xeqncr[\z@skip]}%
  3922. \def\@xeqncr[#1]{%
  3923.    \ifnum0=`{\fi}%
  3924.    \@@eqncr
  3925.    \noalign{\penalty\@eqpen\vskip\jot\vskip #1\relax}%
  3926. \def\@@eqncr{\let\reserved@a\relax
  3927.     \ifcase\@eqcnt \def\reserved@a{& & &}\or \def\reserved@a{& &}%
  3928.      \or \def\reserved@a{&}\else
  3929.        \let\reserved@a\@empty
  3930.        \@latex@error{Too many columns in eqnarray environment}\@ehc\fi
  3931.      \reserved@a \if@eqnsw\@eqnnum\stepcounter{equation}\fi
  3932.      \global\@eqnswtrue\global\@eqcnt\z@\cr}
  3933. \let\@seqncr=\@eqncr
  3934. \@namedef{eqnarray*}{\def\@eqncr{\nonumber\@seqncr}\eqnarray}
  3935. \@namedef{endeqnarray*}{\nonumber\endeqnarray}
  3936. \def\lefteqn#1{\rlap{$\displaystyle #1$}}
  3937. \DeclareRobustCommand\ensuremath[1]{\ifmmode #1\else $#1$\fi}
  3938. %%% File: ltlists.dtx
  3939. \newskip\topsep
  3940. \newskip\partopsep
  3941. \newskip\itemsep
  3942. \newskip\parsep
  3943. \newskip\@topsep
  3944. \newskip\@topsepadd
  3945. \newskip\@outerparskip
  3946. \newdimen\leftmargin
  3947. \newdimen\rightmargin
  3948. \newdimen\listparindent
  3949. \newdimen\itemindent
  3950. \newdimen\labelwidth
  3951. \newdimen\labelsep
  3952. \newdimen\linewidth
  3953. \newdimen\@totalleftmargin \@totalleftmargin=\z@
  3954. \newdimen\leftmargini
  3955. \newdimen\leftmarginii
  3956. \newdimen\leftmarginiii
  3957. \newdimen\leftmarginiv
  3958. \newdimen\leftmarginv
  3959. \newdimen\leftmarginvi
  3960. \newcount\@listdepth \@listdepth=0
  3961. \newcount\@itempenalty
  3962. \newcount\@beginparpenalty
  3963. \newcount\@endparpenalty
  3964. \newbox\@labels
  3965. \newif\if@inlabel \@inlabelfalse
  3966. \newif\if@newlist   \@newlistfalse
  3967. \newif\if@noparitem \@noparitemfalse
  3968. \newif\if@noparlist \@noparlistfalse
  3969. \newif\if@noitemarg \@noitemargfalse
  3970. \newif\if@nmbrlist  \@nmbrlistfalse
  3971. \def\list#1#2{\ifnum \@listdepth >5\relax \@toodeep
  3972.      \else \global\advance\@listdepth\@ne \fi
  3973.   \rightmargin \z@ \listparindent\z@ \itemindent\z@
  3974.   \csname @list\romannumeral\the\@listdepth\endcsname
  3975.   \def\@itemlabel{#1}\let\makelabel\@mklab \@nmbrlistfalse #2\relax
  3976.   \@trivlist
  3977.   \parskip\parsep \parindent\listparindent
  3978.   \advance\linewidth -\rightmargin \advance\linewidth -\leftmargin
  3979.   \advance\@totalleftmargin \leftmargin
  3980.   \parshape \@ne \@totalleftmargin \linewidth
  3981.   \ignorespaces}
  3982. \newcount\par@deathcycles
  3983. \def\@trivlist{\@topsepadd\topsep
  3984.   \if@noskipsec \leavevmode \fi
  3985.   \ifvmode \advance\@topsepadd\partopsep \else \unskip\par\fi
  3986.   \if@inlabel \@noparitemtrue \@noparlisttrue
  3987.     \else \@noparlistfalse \@topsep\@topsepadd \fi
  3988.     \advance\@topsep \parskip
  3989.   \leftskip\z@skip\rightskip\@rightskip \parfillskip\@flushglue
  3990.   \par@deathcycles\z@
  3991.   \@setpar{\if@newlist
  3992.              \advance\par@deathcycles\@ne
  3993.              \ifnum\par@deathcycles>\@m
  3994.                \@noitemerr{\@@par}\fi
  3995.            \else{\@@par}\fi}%
  3996.   \global\@newlisttrue \@outerparskip\parskip}
  3997. \def\trivlist{\parsep\parskip\@nmbrlistfalse
  3998.   \@trivlist \labelwidth\z@ \leftmargin\z@
  3999.   \itemindent\z@
  4000.   \let\@itemlabel\@empty
  4001.   \def\makelabel##1{##1}}
  4002. \def\endlist{\global\advance\@listdepth\m@ne
  4003.     \endtrivlist}
  4004. \def\endtrivlist{%
  4005.   \if@inlabel\indent\fi
  4006.   \if@newlist\@noitemerr\fi
  4007.   \ifhmode\unskip \par\fi
  4008.   \if@noparlist \else
  4009.     \ifdim\lastskip >\z@
  4010.       \@tempskipa\lastskip \vskip -\lastskip
  4011.       \advance\@tempskipa\parskip \advance\@tempskipa -\@outerparskip
  4012.       \vskip\@tempskipa
  4013.     \fi
  4014.     \@endparenv
  4015.   \fi
  4016. \def\@endparenv{%
  4017.   \addpenalty\@endparpenalty\addvspace\@topsepadd\@endpetrue}
  4018. \def\@doendpe{\@endpetrue
  4019.      \def\par{\@restorepar\everypar{}\par\@endpefalse}\everypar
  4020.                {\setbox\z@\lastbox\everypar{}\@endpefalse}}
  4021. \newif\if@endpe
  4022. \@endpefalse
  4023. \def\@mklab#1{\hfil #1}
  4024. \def\item{\@inmatherr\item
  4025.   \@ifnextchar [\@item{\@noitemargtrue \@item[\@itemlabel]}}
  4026. \def\@donoparitem{\@noparitemfalse
  4027.    \global\setbox\@labels\hbox{\hskip -\leftmargin
  4028.                                \unhbox\@labels
  4029.                                 \hskip \leftmargin}\if@minipage\else
  4030.   \@tempskipa\lastskip
  4031.   \vskip -\lastskip \advance\@tempskipa\@outerparskip
  4032.   \advance\@tempskipa -\parskip \vskip\@tempskipa\fi}
  4033. \def\@item[#1]{\if@noparitem \@donoparitem
  4034.   \else \if@inlabel \indent \par \fi
  4035.          \ifhmode \unskip\unskip \par \fi
  4036.          \if@newlist \if@nobreak \@nbitem \else
  4037.                         \addpenalty\@beginparpenalty
  4038.                         \addvspace\@topsep \addvspace{-\parskip}\fi
  4039.            \else \addpenalty\@itempenalty \addvspace\itemsep
  4040.           \fi
  4041.     \global\@inlabeltrue
  4042. \everypar{\global\@minipagefalse\global\@newlistfalse
  4043.           \if@inlabel
  4044.             \global\@inlabelfalse
  4045.             \kern -\parindent
  4046.             \box\@labels
  4047.             \penalty\z@
  4048.           \fi
  4049.           \everypar{}}%
  4050. \global\@nobreakfalse
  4051. \if@noitemarg \@noitemargfalse \if@nmbrlist
  4052.       \refstepcounter\@listctr\fi \fi
  4053. \sbox\@tempboxa{\makelabel{#1}}%
  4054. \global\setbox\@labels
  4055.  \hbox{\unhbox\@labels \hskip \itemindent
  4056.        \hskip -\labelwidth \hskip -\labelsep
  4057.        \ifdim \wd\@tempboxa >\labelwidth
  4058.                 \box\@tempboxa
  4059.           \else \hbox to\labelwidth {\unhbox\@tempboxa}\fi
  4060.        \hskip \labelsep}\ignorespaces}
  4061. \def\makelabel#1{\@latex@error{Lonely \string\item--perhaps a missing
  4062.         list environment}\@ehc}
  4063. \def\@nbitem{\@tempskipa\@outerparskip \advance\@tempskipa -\parskip
  4064.               \addvspace\@tempskipa}
  4065. \def\usecounter#1{\@nmbrlisttrue\def\@listctr{#1}\setcounter{#1}\z@}
  4066. \newcount\@enumdepth \@enumdepth = 0
  4067. \@definecounter{enumi}
  4068. \@definecounter{enumii}
  4069. \@definecounter{enumiii}
  4070. \@definecounter{enumiv}
  4071. \def\enumerate{%
  4072.   \ifnum \@enumdepth >\thr@@\@toodeep\else
  4073.     \advance\@enumdepth\@ne
  4074.     \edef\@enumctr{enum\romannumeral\the\@enumdepth}%
  4075.       \list
  4076.         {\csname label\@enumctr\endcsname}%
  4077.         {\usecounter\@enumctr\def\makelabel##1{\hss\llap{##1}}}%
  4078.   \fi}
  4079. \let\endenumerate =\endlist
  4080. \newcount\@itemdepth \@itemdepth = 0
  4081. \def\itemize{%
  4082.   \ifnum \@itemdepth >\thr@@\@toodeep\else
  4083.     \advance\@itemdepth\@ne
  4084.     \edef\@itemitem{labelitem\romannumeral\the\@itemdepth}%
  4085.     \list
  4086.       {\csname\@itemitem\endcsname}%
  4087.       {\def\makelabel##1{\hss\llap{##1}}}%
  4088.   \fi}
  4089. \let\enditemize =\endlist
  4090. %%% File: ltboxes
  4091. \message{boxes,}
  4092. \def\makebox{%
  4093.   \leavevmode
  4094.   \@ifnextchar(%)
  4095.     \@makepicbox
  4096.     {\@ifnextchar[\@makebox\mbox}}
  4097. \long\def\mbox#1{\leavevmode\hbox{#1}}
  4098. \def\@makebox[#1]{%
  4099.   \@ifnextchar [{\@imakebox[#1]}{\@imakebox[#1][c]}}
  4100. \long\def\@begin@tempboxa#1#2{%
  4101.    \begingroup
  4102.      \setbox\@tempboxa#1{\color@begingroup#2\color@endgroup}%
  4103.      \def\width{\wd\@tempboxa}%
  4104.      \def\height{\ht\@tempboxa}%
  4105.      \def\depth{\dp\@tempboxa}%
  4106.      \let\totalheight\@ovri
  4107.      \totalheight\height
  4108.      \advance\totalheight\depth}
  4109. \let\@end@tempboxa\endgroup
  4110. \def\bm@c{\hss\unhbox\@tempboxa\hss}
  4111. \def\bm@l{\unhbox\@tempboxa\hss}\let\bm@t\bm@l
  4112. \def\bm@r{\hss\unhbox\@tempboxa}\let\bm@b\bm@r
  4113. \def\bm@s{\unhbox\@tempboxa}
  4114. \long\def\@imakebox[#1][#2]#3{%
  4115.   \@begin@tempboxa\hbox{#3}%
  4116.     \setlength\@tempdima{#1}%       support calc
  4117.     \hb@xt@\@tempdima{\csname bm@#2\endcsname}%
  4118.   \@end@tempboxa}
  4119. \def\@makepicbox(#1,#2){%
  4120.   \@ifnextchar[{\@imakepicbox(#1,#2)}{\@imakepicbox(#1,#2)[]}}
  4121. \long\def\@imakepicbox(#1,#2)[#3]#4{%
  4122.   \vbox to#2\unitlength
  4123.    {\let\mb@b\vss \let\mb@l\hss\let\mb@r\hss
  4124.     \let\mb@t\vss
  4125.     \@tfor\reserved@a :=#3\do{%
  4126.       \if s\reserved@a
  4127.         \let\mb@l\relax\let\mb@r\relax
  4128.       \else
  4129.         \expandafter\let\csname mb@\reserved@a\endcsname\relax
  4130.       \fi}%
  4131.     \mb@t
  4132.     \hb@xt@ #1\unitlength{\mb@l #4\mb@r}%
  4133.     \mb@b
  4134.     \kern\z@}}
  4135. \let\set@color\relax
  4136. \let\color@begingroup\relax
  4137. \let\color@endgroup\relax
  4138. \let\color@setgroup\relax
  4139. \let\normalcolor\relax
  4140. \let\color@hbox\relax
  4141. \let\color@vbox\relax
  4142. \let\color@endbox\relax
  4143. \def\newsavebox#1{\@ifdefinable{#1}{\newbox#1}}
  4144. \def\savebox#1{%
  4145.   \@ifnextchar(%)
  4146.     {\@savepicbox#1}{\@ifnextchar[{\@savebox#1}{\sbox#1}}}
  4147. \long\def\sbox#1#2{\setbox#1\hbox{%
  4148.   \color@setgroup#2\color@endgroup}}
  4149. \def\@savebox#1[#2]{%
  4150.   \@ifnextchar [{\@isavebox#1[#2]}{\@isavebox#1[#2][c]}}
  4151. \long\def\@isavebox#1[#2][#3]#4{%
  4152.   \setbox#1\hbox{%
  4153.     \color@setgroup
  4154.       \@imakebox[#2][#3]{#4}%
  4155.     \color@endgroup}}
  4156. \def\@savepicbox#1(#2,#3){%
  4157.   \@ifnextchar[%]
  4158.     {\@isavepicbox#1(#2,#3)}{\@isavepicbox#1(#2,#3)[]}}
  4159. \long\def\@isavepicbox#1(#2,#3)[#4]#5{%
  4160.   \setbox#1\hbox{%
  4161.     \color@setgroup
  4162.       \@imakepicbox(#2,#3)[#4]{#5}%
  4163.     \color@endgroup}}
  4164. \def\lrbox#1{%
  4165.   \edef\reserved@a{%
  4166.     \endgroup
  4167.     \setbox#1\hbox{%
  4168.       \begingroup\aftergroup}%
  4169.         \def\noexpand\@currenvir{\@currenvir}%
  4170.         \def\noexpand\@currenvline{\on@line}}%
  4171.   \reserved@a
  4172.     \@endpefalse
  4173.     \color@setgroup
  4174.       \ignorespaces}
  4175. \def\endlrbox{\unskip\color@endgroup}
  4176. \def\usebox#1{\leavevmode\copy #1\relax}
  4177. \long\def\frame#1{%
  4178.   \leavevmode
  4179.   \hbox{%
  4180.     \hskip-\@wholewidth
  4181.     \vbox{%
  4182.       \vskip-\@wholewidth
  4183.       \hrule \@height\@wholewidth
  4184.       \hbox{%
  4185.         \vrule\@width\@wholewidth
  4186.         #1%
  4187.         \vrule\@width\@wholewidth}%
  4188.       \hrule\@height\@wholewidth
  4189.       \vskip-\@wholewidth}%
  4190.     \hskip-\@wholewidth}}
  4191. \newdimen\fboxrule
  4192. \newdimen\fboxsep
  4193. \long\def\fbox#1{%
  4194.   \leavevmode
  4195.   \setbox\@tempboxa\hbox{%
  4196.     \color@begingroup
  4197.       \kern\fboxsep{#1}\kern\fboxsep
  4198.     \color@endgroup}%
  4199.   \@frameb@x\relax}
  4200. \def\framebox{%
  4201.   \@ifnextchar(%)
  4202.     \@framepicbox{\@ifnextchar[\@framebox\fbox}}
  4203. \def\@framebox[#1]{%
  4204.   \@ifnextchar[%]
  4205.     {\@iframebox[#1]}%
  4206.     {\@iframebox[#1][c]}}
  4207. \long\def\@iframebox[#1][#2]#3{%
  4208.   \leavevmode
  4209.   \@begin@tempboxa\hbox{#3}%
  4210.     \setlength\@tempdima{#1}%
  4211.     \setbox\@tempboxa\hb@xt@\@tempdima
  4212.          {\kern\fboxsep\csname bm@#2\endcsname\kern\fboxsep}%
  4213.     \@frameb@x{\kern-\fboxrule}%
  4214.   \@end@tempboxa}
  4215. \def\@frameb@x#1{%
  4216.   \@tempdima\fboxrule
  4217.   \advance\@tempdima\fboxsep
  4218.   \advance\@tempdima\dp\@tempboxa
  4219.   \hbox{%
  4220.     \lower\@tempdima\hbox{%
  4221.       \vbox{%
  4222.         \hrule\@height\fboxrule
  4223.         \hbox{%
  4224.           \vrule\@width\fboxrule
  4225.           #1%
  4226.           \vbox{%
  4227.             \vskip\fboxsep
  4228.             \box\@tempboxa
  4229.             \vskip\fboxsep}%
  4230.           #1%
  4231.           \vrule\@width\fboxrule}%
  4232.         \hrule\@height\fboxrule}%
  4233.                           }%
  4234.         }%
  4235. \def\@framepicbox(#1,#2){%
  4236.   \@ifnextchar[{\@iframepicbox(#1,#2)}{\@iframepicbox(#1,#2)[]}}
  4237. \long\def\@iframepicbox(#1,#2)[#3]#4{%
  4238.   \frame{\@imakepicbox(#1,#2)[#3]{#4}}}
  4239. \def\parbox{%
  4240.   \@ifnextchar[%]
  4241.     \@iparbox
  4242.     {\@iiiparbox c\@empty[s]}}
  4243. \def\@iparbox[#1]{%
  4244.   \@ifnextchar[%]
  4245.     {\@iiparbox{#1}}%
  4246.     {\@iiiparbox{#1}\@empty[s]}}
  4247. \def\@iiparbox#1[#2]{%
  4248.   \@ifnextchar[%]
  4249.     {\@iiiparbox{#1}{#2}}%
  4250.     {\@iiiparbox{#1}{#2}[#1]}}
  4251. \let\@parboxto\@empty
  4252. \long\def\@iiiparbox#1#2[#3]#4#5{%
  4253.   \leavevmode
  4254.   \@pboxswfalse
  4255.   \setlength\@tempdima{#4}%
  4256.   \@begin@tempboxa\vbox{\hsize\@tempdima\@parboxrestore#5\endgraf}%
  4257.     \ifx\@empty#2\else
  4258.       \setlength\@tempdimb{#2}%
  4259.       \def\@parboxto{to\@tempdimb}%
  4260.     \fi
  4261.     \if#1b\vbox
  4262.     \else\if #1t\vtop
  4263.     \else\ifmmode\vcenter
  4264.     \else\@pboxswtrue $\vcenter
  4265.     \fi\fi\fi
  4266.     \@parboxto{\let\hss\vss\let\unhbox\unvbox
  4267.        \csname bm@#3\endcsname}%
  4268.     \if@pboxsw \m@th$\fi
  4269.   \@end@tempboxa}
  4270. \def\@arrayparboxrestore{%
  4271.   \let\par\@@par
  4272.   \let\-\@dischyph
  4273.   \let\'\@acci\let\`\@accii\let\=\@acciii
  4274.   \parindent\z@ \parskip\z@skip
  4275.   \everypar{}%
  4276.   \linewidth\hsize
  4277.   \@totalleftmargin\z@
  4278.   \leftskip\z@skip \rightskip\z@skip \@rightskip\z@skip
  4279.   \parfillskip\@flushglue \lineskip\normallineskip
  4280.   \baselineskip\normalbaselineskip
  4281.   \sloppy}
  4282. \def\@parboxrestore{\@arrayparboxrestore\let\\\@normalcr}
  4283. \newif\if@minipage \@minipagefalse
  4284. \def\minipage{%
  4285.   \@ifnextchar[%]
  4286.     \@iminipage
  4287.     {\@iiiminipage c\@empty[s]}}
  4288. \def\@iminipage[#1]{%
  4289.   \@ifnextchar[%]
  4290.     {\@iiminipage{#1}}%
  4291.     {\@iiiminipage{#1}\@empty[s]}}
  4292. \def\@iiminipage#1[#2]{%
  4293.   \@ifnextchar[%]
  4294.     {\@iiiminipage{#1}{#2}}%
  4295.     {\@iiiminipage{#1}{#2}[#1]}}
  4296. \def\@iiiminipage#1#2[#3]#4{%
  4297.   \leavevmode
  4298.   \@pboxswfalse
  4299.   \setlength\@tempdima{#4}%
  4300.   \def\@mpargs{{#1}{#2}[#3]{#4}}%
  4301.   \setbox\@tempboxa\vbox\bgroup
  4302.     \color@begingroup
  4303.       \hsize\@tempdima
  4304.       \textwidth\hsize \columnwidth\hsize
  4305.       \@parboxrestore
  4306.       \def\@mpfn{mpfootnote}\def\thempfn{\thempfootnote}\c@mpfootnote\z@
  4307.       \let\@footnotetext\@mpfootnotetext
  4308.       \let\@listdepth\@mplistdepth \@mplistdepth\z@
  4309.       \@minipagerestore\global\@minipagetrue %% \global added 24 May 89
  4310.       \everypar{\global\@minipagefalse\everypar{}}}
  4311.  \let\@minipagerestore=\relax
  4312. \def\endminipage{%
  4313.     \par
  4314.     \unskip
  4315.     \ifvoid\@mpfootins\else
  4316.       \vskip\skip\@mpfootins
  4317.       \normalcolor
  4318.       \footnoterule
  4319.       \unvbox\@mpfootins
  4320.     \fi
  4321.     \global\@minipagefalse   %% added 24 May 89
  4322.   \color@endgroup
  4323.   \egroup
  4324.   \expandafter\@iiiparbox\@mpargs{\unvbox\@tempboxa}}
  4325. \newcount\@mplistdepth
  4326. \newinsert\@mpfootins
  4327. \long\def\@mpfootnotetext#1{%
  4328.   \global\setbox\@mpfootins\vbox{%
  4329.     \unvbox\@mpfootins
  4330.     \reset@font\footnotesize
  4331.     \hsize\columnwidth
  4332.     \@parboxrestore
  4333.     \protected@edef\@currentlabel
  4334.          {\csname p@mpfootnote\endcsname\@thefnmark}%
  4335.     \color@begingroup
  4336.       \@makefntext{%
  4337.         \rule\z@\footnotesep\ignorespaces#1\@finalstrut\strutbox}%
  4338.     \color@endgroup}}
  4339. \newif\if@pboxsw
  4340. \def\rule{\@ifnextchar[\@rule{\@rule[\z@]}}
  4341. \def\@rule[#1]#2#3{%
  4342.   \@tempdima#3\advance\@tempdima #1%
  4343.   \leavevmode
  4344.   \hbox{\vrule\@width#2\@height\@tempdima\@depth-#1}}
  4345. \let\@@underline\underline
  4346. \def\underline#1{%
  4347.   \relax
  4348.   \ifmmode\@@underline{#1}%
  4349.   \else $\@@underline{\hbox{#1}}\m@th$\relax\fi}
  4350. \def\raisebox#1{%
  4351.   \leavevmode
  4352.   \@ifnextchar[{\@rsbox{#1}}{\@irsbox{#1}[]}}
  4353. \def\@rsbox#1[#2]{%
  4354.   \@ifnextchar[{\@iirsbox{#1}[#2]}{\@irsbox{#1}[#2]}}
  4355. \long\def\@irsbox#1[#2]#3{%
  4356.   \@begin@tempboxa\hbox{#3}%
  4357.     \setlength\@tempdima{#1}%
  4358.     \ifx\\#2\\\else\setlength\@tempdimb{#2}\fi
  4359.     \setbox\@tempboxa\hbox{\raise\@tempdima\box\@tempboxa}%
  4360.     \ifx\\#2\\\else\ht\@tempboxa\@tempdimb\fi
  4361.     \box\@tempboxa
  4362.   \@end@tempboxa}
  4363. \long\def\@iirsbox#1[#2][#3]#4{%
  4364.   \@begin@tempboxa\hbox{#4}%
  4365.     \setlength\@tempdima{#1}%
  4366.     \setlength\@tempdimb{#2}%
  4367.     \setlength\dimen@{#3}%
  4368.     \setbox\@tempboxa\hbox{\raise\@tempdima\box\@tempboxa}%
  4369.     \ht\@tempboxa\@tempdimb
  4370.     \dp\@tempboxa\dimen@
  4371.     \box\@tempboxa
  4372.   \@end@tempboxa}
  4373. \def\@finalstrut#1{%
  4374.   \unskip\vrule\@width\z@\@height\z@\@depth\dp#1}
  4375. \def\@@line{\hb@xt@\hsize}
  4376. \def\leftline#1{\@@line{#1\hss}}
  4377. \def\rightline#1{\@@line{\hss#1}}
  4378. \def\centerline#1{\@@line{\hss#1\hss}}
  4379. \def\rlap#1{\hb@xt@\z@{#1\hss}}
  4380. \def\llap#1{\hb@xt@\z@{\hss#1}}
  4381. %%% File: lttab
  4382. \expandafter\let\csname ver@autotabg.sty\endcsname\fmtversion
  4383. \newdimen\@gtempa
  4384. \chardef\@firsttab=\the\allocationnumber
  4385. \newdimen\@gtempa\newdimen\@gtempa\newdimen\@gtempa\newdimen\@gtempa
  4386. \newdimen\@gtempa\newdimen\@gtempa\newdimen\@gtempa\newdimen\@gtempa
  4387. \newdimen\@gtempa\newdimen\@gtempa\newdimen\@gtempa\newdimen\@gtempa
  4388. \newdimen\@gtempa
  4389. \chardef\@maxtab=\the\allocationnumber
  4390. \dimen\@firsttab=0pt
  4391. \newcount\@nxttabmar
  4392. \newcount\@curtabmar
  4393. \newcount\@curtab
  4394. \newcount\@hightab
  4395. \newcount\@tabpush
  4396. \newbox\@curline
  4397. \newbox\@curfield
  4398. \newbox\@tabfbox
  4399. \newif\if@rjfield
  4400. \gdef\@startline{\global\@curtabmar\@nxttabmar
  4401.    \global\@curtab\@curtabmar\global\setbox\@curline\hbox
  4402.     {}\@startfield\strut}
  4403. \gdef\@stopline{\unskip\@stopfield\if@rjfield \global\@rjfieldfalse
  4404.    \@tempdima\@totalleftmargin \advance\@tempdima\linewidth
  4405.  \hb@xt@\@tempdima{\@itemfudge\hskip\dimen\@curtabmar
  4406.    \box\@curline\hfil\box\@curfield}\else\@addfield
  4407.    \hbox{\@itemfudge\hskip\dimen\@curtabmar\box\@curline}\fi}
  4408. \gdef\@startfield{%
  4409.   \global\setbox\@curfield\hbox\bgroup\color@begingroup}
  4410. \gdef\@stopfield{%
  4411.   \color@endgroup\egroup}
  4412. \gdef\@contfield{%
  4413.   \global\setbox\@curfield\hbox\bgroup\color@begingroup
  4414.   \unhbox\@curfield}
  4415. \gdef\@addfield{\global\setbox\@curline\hbox{\unhbox
  4416.      \@curline\unhbox\@curfield}}
  4417. \gdef\@ifatmargin{\ifdim \wd\@curline =\z@}
  4418. \gdef\@tabcr{\@stopline \@ifstar{\penalty \@M \@xtabcr}\@xtabcr}
  4419. \gdef\@xtabcr{\@ifnextchar[\@itabcr{\@startline\ignorespaces}}
  4420. \gdef\@itabcr[#1]{\vskip #1\@startline\ignorespaces}
  4421. \gdef\kill{\@stopfield\@startline\ignorespaces}
  4422. \gdef\tabbing{\lineskip \z@skip\let\>\@rtab\let\<\@ltab\let\=\@settab
  4423.      \let\+\@tabplus\let\-\@tabminus\let\`\@tabrj\let\'\@tablab
  4424.      \let\\=\@tabcr
  4425.      \global\@hightab\@firsttab
  4426.      \global\@nxttabmar\@firsttab
  4427.      \dimen\@firsttab\@totalleftmargin
  4428.      \global\@tabpush\z@ \global\@rjfieldfalse
  4429.      \trivlist \item\relax
  4430.      \if@minipage\else\vskip\parskip\fi
  4431.      \setbox\@tabfbox\hbox{\rlap{\indent\hskip\@totalleftmargin
  4432.        \the\everypar}}\def\@itemfudge{\box\@tabfbox}%
  4433.      \@startline\ignorespaces}
  4434. \gdef\endtabbing{%
  4435.   \@stopline\ifnum\@tabpush >\z@ \@badpoptabs \fi\endtrivlist}
  4436. \gdef\@rtab{\@stopfield\@addfield\ifnum \@curtab<\@hightab
  4437.       \global\advance\@curtab \@ne \else\@badtab\fi
  4438.       \@tempdima\dimen\@curtab
  4439.       \advance\@tempdima -\dimen\@curtabmar
  4440.       \advance\@tempdima -\wd\@curline
  4441.       \global\setbox\@curline\hbox{\unhbox\@curline\hskip\@tempdima}%
  4442.       \@startfield\ignorespaces}
  4443. \gdef\@settab{\@stopfield\@addfield\ifnum \@curtab <\@maxtab
  4444.       \global\advance\@curtab \@ne \else
  4445.          \@latex@error{Tab overflow}\@ehd\fi
  4446.       \ifnum\@curtab >\@hightab
  4447.       \@hightab\@curtab\fi
  4448.       \dimen\@curtab\dimen\@curtabmar
  4449.       \advance\dimen\@curtab \wd\@curline\@startfield\ignorespaces}
  4450. \gdef\@ltab{\@ifatmargin\ifnum\@curtabmar >\@firsttab
  4451.       \global\advance\@curtab \m@ne \global\advance\@curtabmar\m@ne\else
  4452.       \@badtab\fi\else
  4453.       \@latex@error{\string\<\space in mid line}\@ehd\fi\ignorespaces}
  4454. \gdef\@tabplus {\ifnum \@nxttabmar <\@hightab
  4455.       \global\advance\@nxttabmar \@ne \else
  4456.       \@badtab\fi\ignorespaces}
  4457. \gdef\@tabminus{\ifnum\@nxttabmar >\@firsttab
  4458.       \global\advance\@nxttabmar \m@ne \else
  4459.       \@badtab\fi\ignorespaces}
  4460. \gdef\@tabrj{%
  4461.   \@stopfield\@addfield\global\@rjfieldtrue\@startfield\ignorespaces}
  4462. \gdef\@tablab{\@stopfield\global\setbox\@curline\hbox{\box\@curline
  4463.      \hskip -\wd\@curfield \hskip -\tabbingsep \box\@curfield
  4464.       \hskip \tabbingsep}\@startfield\ignorespaces}
  4465. \gdef\pushtabs{%
  4466.   \@stopfield\@addfield\global\advance\@tabpush \@ne \begingroup
  4467.        \@contfield}
  4468. \gdef\poptabs{\@stopfield\@addfield\ifnum\@tabpush >\z@ \endgroup
  4469.      \global\advance\@tabpush \m@ne \else
  4470.      \@badpoptabs\fi\@contfield}
  4471. \newdimen\tabbingsep
  4472. \def\extracolsep#1{\tabskip #1\relax}
  4473. \def\array{\let\@acol\@arrayacol \let\@classz\@arrayclassz
  4474.  \let\@classiv\@arrayclassiv
  4475.  \let\\\@arraycr\let\@halignto\@empty\@tabarray}
  4476. \def\endarray{\crcr\egroup\egroup}
  4477. \def\endtabular{\crcr\egroup\egroup $\egroup}
  4478. \expandafter \let \csname endtabular*\endcsname = \endtabular
  4479. \def\tabular{\let\@halignto\@empty\@tabular}
  4480. \@namedef{tabular*}#1{\def\@halignto{to#1}\@tabular}
  4481. \def\@tabular{\leavevmode \hbox \bgroup $\let\@acol\@tabacol
  4482.    \let\@classz\@tabclassz
  4483.    \let\@classiv\@tabclassiv \let\\\@tabularcr\@tabarray}
  4484. \def\@tabarray{\m@th\@ifnextchar[\@array{\@array[c]}}
  4485. \def\@array[#1]#2{\setbox\@arstrutbox\hbox{\vrule
  4486.      \@height\arraystretch \ht\strutbox
  4487.      \@depth\arraystretch \dp\strutbox
  4488.      \@width\z@}\@mkpream{#2}\edef\@preamble{\ialign \noexpand\@halignto
  4489.       \bgroup \@arstrut \@preamble \tabskip\z@skip \cr}%
  4490.       \let\@startpbox\@@startpbox \let\@endpbox\@@endpbox
  4491.       \let\tabularnewline\\%
  4492.       \if #1t\vtop \else \if#1b\vbox \else \vcenter \fi\fi
  4493.       \bgroup \let\par\@empty
  4494.        \let\@sharp##\let\protect\relax
  4495.        \lineskip\z@skip\baselineskip\z@skip\@preamble}
  4496. \def\@arraycr{%
  4497.   ${\ifnum0=`}\fi\@ifstar\@xarraycr\@xarraycr}
  4498. \def\@xarraycr{\@ifnextchar[\@argarraycr{\ifnum0=`{\fi}${}\cr}}
  4499. \def\@argarraycr[#1]{%
  4500.   \ifnum0=`{\fi}${}\ifdim #1>\z@ \@xargarraycr{#1}\else
  4501.    \@yargarraycr{#1}\fi}
  4502. \def\@tabularcr{%
  4503.   {\ifnum0=`}\fi\@ifstar\@xtabularcr\@xtabularcr}
  4504. \let\tabularnewline\relax
  4505. \def\@xtabularcr{\@ifnextchar[\@argtabularcr{\ifnum0=`{\fi}\cr}}
  4506. \def\@argtabularcr[#1]{\ifnum0=`{\fi}\ifdim #1>\z@
  4507.    \unskip\@xargarraycr{#1}\else \@yargarraycr{#1}\fi}
  4508. \def\@xargarraycr#1{\@tempdima #1\advance\@tempdima \dp \@arstrutbox
  4509.    \vrule \@height\z@ \@depth\@tempdima \@width\z@ \cr}
  4510. \def\@yargarraycr#1{\cr\noalign{\vskip #1}}
  4511. \def\multicolumn#1#2#3{\multispan{#1}\begingroup
  4512.   \@mkpream{#2}%
  4513.   \def\@sharp{#3}\set@typeset@protect
  4514.   \let\@startpbox\@@startpbox\let\@endpbox\@@endpbox
  4515.   \@arstrut \@preamble\hbox{}\endgroup\ignorespaces}
  4516. \def\@xexnoop #1\@@{}
  4517. \def\@expast#1{\@xexpast #1*0x\@@}
  4518. \def\@xexpast#1*#2#3#4\@@{\edef\reserved@a{#1}\@tempcnta#2\relax
  4519.     \ifnum\@tempcnta >\z@ \@whilenum\@tempcnta >\z@\do
  4520.        {\edef\reserved@a{\reserved@a#3}\advance\@tempcnta \m@ne}%
  4521.        \let\reserved@b\@xexpast
  4522.       \else \let\reserved@b\@xexnoop\fi
  4523.     \expandafter\reserved@b \reserved@a #4\@@}
  4524. \newif\if@firstamp
  4525. \def\@addamp{\if@firstamp \@firstampfalse \else
  4526.     \edef\@preamble{\@preamble &}\fi}
  4527. \def\@arrayacol{\edef\@preamble{\@preamble \hskip \arraycolsep}}
  4528. \def\@tabacol{\edef\@preamble{\@preamble \hskip \tabcolsep}}
  4529. \def\@ampacol{\@addamp \@acol}
  4530. \def\@acolampacol{\@acol\@addamp\@acol}
  4531. \def\@mkpream#1{\@firstamptrue\@lastchclass6
  4532.   \let\@preamble\@empty
  4533.   \let\protect\@unexpandable@protect
  4534.   \let\@sharp\relax
  4535.   \let\@startpbox\relax\let\@endpbox\relax
  4536.   \@expast{#1}%
  4537.   \expandafter\@tfor \expandafter
  4538.     \@nextchar \expandafter:\expandafter=\reserved@a\do
  4539.        {\@testpach\@nextchar
  4540.     \ifcase \@chclass \@classz \or \@classi \or \@classii \or \@classiii
  4541.       \or \@classiv \or\@classv \fi\@lastchclass\@chclass}%
  4542.   \ifcase \@lastchclass \@acol
  4543.       \or \or \@preamerr \@ne\or \@preamerr \tw@\or \or \@acol \fi}
  4544. \def\@arrayclassz{\ifcase \@lastchclass \@acolampacol \or \@ampacol \or
  4545.    \or \or \@addamp \or
  4546.    \@acolampacol \or \@firstampfalse \@acol \fi
  4547. \edef\@preamble{\@preamble
  4548.   \ifcase \@chnum
  4549.      \hfil$\relax\@sharp$\hfil \or $\relax\@sharp$\hfil
  4550.     \or \hfil$\relax\@sharp$\fi}}
  4551. \def\@tabclassz{\ifcase \@lastchclass \@acolampacol \or \@ampacol \or
  4552.    \or \or \@addamp \or
  4553.    \@acolampacol \or \@firstampfalse \@acol \fi
  4554. \edef\@preamble{\@preamble{%
  4555.   \ifcase \@chnum
  4556.      \hfil\ignorespaces\@sharp\unskip\hfil
  4557.      \or \ignorespaces\@sharp\unskip\hfil
  4558.      \or \hfil\hskip\z@skip \ignorespaces\@sharp\unskip\fi}}}
  4559. \def\@classi{\ifcase \@lastchclass \@acol \@arrayrule \or
  4560.    \@addtopreamble{\hskip \doublerulesep}\@arrayrule\or
  4561.    \or \or \@arrayrule \or
  4562.    \@acol \@arrayrule \or \@arrayrule \fi}
  4563. \def\@classii{\ifcase \@lastchclass \or
  4564.    \@addtopreamble{\hskip .5\arrayrulewidth}\fi}
  4565. \def\@classiii{\ifcase \@lastchclass \@acolampacol \or
  4566.    \@addamp\@acol \or
  4567.    \or \or \@addamp \or
  4568.    \@acolampacol \or \@ampacol \fi}
  4569. \def\@tabclassiv{\@addtopreamble\@nextchar}
  4570. \def\@arrayclassiv{\@addtopreamble{$\@nextchar$}}
  4571. \def\@classv{\@addtopreamble{\@startpbox{\@nextchar}\ignorespaces
  4572. \@sharp\@endpbox}}
  4573. \def\@addtopreamble#1{\edef\@preamble{\@preamble #1}}
  4574. \newcount\@chclass
  4575. \newcount\@lastchclass
  4576. \newcount\@chnum
  4577. \newdimen\arraycolsep
  4578. \newdimen\tabcolsep
  4579. \newdimen\arrayrulewidth
  4580. \newdimen\doublerulesep
  4581. \def\arraystretch{1}    % Default value.
  4582. \newbox\@arstrutbox
  4583. \def\@arstrut{%
  4584.   \relax\ifmmode\copy\@arstrutbox\else\unhcopy\@arstrutbox\fi}
  4585. \def\@arrayrule{\@addtopreamble{\hskip -.5\arrayrulewidth
  4586.    \vrule \@width \arrayrulewidth\hskip -.5\arrayrulewidth}}
  4587. \def\@testpach#1{\@chclass \ifnum \@lastchclass=\tw@ 4 \else
  4588.     \ifnum \@lastchclass=3 5 \else
  4589.      \z@ \if #1c\@chnum \z@ \else
  4590.                               \if #1l\@chnum \@ne \else
  4591.                               \if #1r\@chnum \tw@ \else
  4592.           \@chclass \if #1|\@ne \else
  4593.                     \if #1@\tw@ \else
  4594.                     \if #1p3 \else \z@ \@preamerr 0\fi
  4595.   \fi  \fi  \fi  \fi  \fi  \fi
  4596. \def\hline{%
  4597.   \noalign{\ifnum0=`}\fi\hrule \@height \arrayrulewidth \futurelet
  4598.    \reserved@a\@xhline}
  4599. \def\@xhline{\ifx\reserved@a\hline
  4600.                \vskip\doublerulesep
  4601.                \vskip-\arrayrulewidth
  4602.              \fi
  4603.       \ifnum0=`{\fi}}
  4604. \def\vline{\vrule \@width \arrayrulewidth}
  4605. \newcount\@cla
  4606. \newcount\@clb
  4607. \def\cline#1{\@cline[#1]}
  4608. \def\@cline[#1-#2]{\noalign{\global\@cla#1\relax
  4609. \global\advance\@cla\m@ne
  4610. \ifnum\@cla>\z@\global\let\@gtempa\@clinea\else
  4611.   \global\let\@gtempa\@clineb\fi
  4612. \global\@clb#2\relax
  4613. \global\advance\@clb-\@cla}\@gtempa
  4614. \noalign{\vskip-\arrayrulewidth}}
  4615. \def\@clinea{\multispan\@cla&\multispan\@clb
  4616. \unskip\leaders\hrule \@height \arrayrulewidth \hfill
  4617. \def\@clineb{\multispan\@clb
  4618. \unskip\leaders\hrule \@height \arrayrulewidth \hfill
  4619. \def\@startpbox#1{\vtop\bgroup \hsize #1\@arrayparboxrestore}
  4620. \def\@endpbox{\@finalstrut\@arstrutbox\par\egroup\hfil}
  4621. \let\@@startpbox=\@startpbox
  4622. \let\@@endpbox=\@endpbox
  4623. %%% File: ltpictur
  4624. \expandafter\let\csname ver@autopict.sty\endcsname\fmtversion
  4625. \newdimen\@wholewidth
  4626. \newdimen\@halfwidth
  4627. \newdimen\unitlength \unitlength =1pt
  4628. \newbox\@picbox
  4629. \newdimen\@picht
  4630. \long\gdef\picture#1{\pictur@#1}
  4631. \gdef\pictur@(#1){%
  4632.   \@ifnextchar({\@picture(#1)}{\@picture(#1)(0,0)}}
  4633. \gdef\@picture(#1,#2)(#3,#4){%
  4634.   \@picht#2\unitlength
  4635.   \setbox\@picbox\hb@xt@#1\unitlength\bgroup
  4636.     \hskip -#3\unitlength
  4637.     \lower #4\unitlength\hbox\bgroup
  4638.       \ignorespaces}
  4639. \gdef\endpicture{%
  4640.   \egroup\hss\egroup
  4641.     \ht\@picbox\@picht\dp\@picbox\z@
  4642.     \mbox{\box\@picbox}}
  4643. \long\gdef\put(#1,#2)#3{%
  4644.   \@killglue\raise#2\unitlength
  4645.   \hb@xt@\z@{\kern#1\unitlength #3\hss}%
  4646.   \ignorespaces}
  4647. \gdef\multiput(#1,#2)#3{%
  4648.   \@xdim #1\unitlength
  4649.   \@ydim #2\unitlength
  4650.    \@multiput(}
  4651. \long\gdef\@multiput(#1,#2)#3#4{%
  4652.   \@killglue\@multicnt #3\relax
  4653.   \@whilenum \@multicnt >\z@\do
  4654.     {\raise\@ydim\hb@xt@\z@{\kern\@xdim #4\hss}%
  4655.      \advance\@multicnt\m@ne
  4656.      \advance\@xdim#1\unitlength\advance\@ydim#2\unitlength}%
  4657.   \ignorespaces}
  4658. \gdef\@killglue{\unskip\@whiledim \lastskip >\z@\do{\unskip}}
  4659. \gdef\thinlines{\let\@linefnt\tenln \let\@circlefnt\tencirc
  4660.   \@wholewidth\fontdimen8\tenln \@halfwidth .5\@wholewidth}
  4661. \gdef\thicklines{\let\@linefnt\tenlnw \let\@circlefnt\tencircw
  4662.   \@wholewidth\fontdimen8\tenlnw \@halfwidth .5\@wholewidth}
  4663. \gdef\linethickness#1{\@wholewidth #1\relax \@halfwidth .5\@wholewidth}
  4664. \gdef\shortstack{\@ifnextchar[\@shortstack{\@shortstack[c]}}
  4665. \gdef\@shortstack[#1]{%
  4666.   \leavevmode
  4667.   \vbox\bgroup
  4668.     \baselineskip-\p@\lineskip 3\p@
  4669.     \let\mb@l\hss\let\mb@r\hss
  4670.     \expandafter\let\csname mb@#1\endcsname\relax
  4671.     \let\\\@stackcr
  4672.     \@ishortstack}
  4673. \gdef\@ishortstack#1{\ialign{\mb@l {##}\unskip\mb@r\cr #1\crcr}\egroup}
  4674. \gdef\@stackcr{\@ifstar\@ixstackcr\@ixstackcr}
  4675. \gdef\@ixstackcr{\@ifnextchar[\@istackcr{\cr\ignorespaces}}
  4676. \gdef\@istackcr[#1]{\cr\noalign{\vskip #1}\ignorespaces}
  4677. \newif\if@negarg
  4678. \gdef\line(#1,#2)#3{\@xarg #1\relax \@yarg #2\relax
  4679.   \@linelen #3\unitlength
  4680.   \ifdim\@linelen<\z@\@badlinearg\else
  4681.     \ifnum\@xarg =\z@ \@vline
  4682.       \else \ifnum\@yarg =\z@ \@hline \else \@sline\fi
  4683.     \fi
  4684.   \fi}
  4685. \gdef\@sline{%
  4686.   \ifnum\@xarg<\z@ \@negargtrue \@xarg -\@xarg \@yyarg -\@yarg
  4687.   \else \@negargfalse \@yyarg \@yarg \fi
  4688. \ifnum \@yyarg >\z@ \@tempcnta\@yyarg \else \@tempcnta -\@yyarg \fi
  4689. \ifnum\@tempcnta>6 \@badlinearg\@tempcnta\z@ \fi
  4690. \ifnum\@xarg>6 \@badlinearg\@xarg \@ne \fi
  4691. \setbox\@linechar\hbox{\@linefnt\@getlinechar(\@xarg,\@yyarg)}%
  4692. \ifnum \@yarg >\z@ \let\@upordown\raise \@clnht\z@
  4693.    \else\let\@upordown\lower \@clnht \ht\@linechar\fi
  4694. \@clnwd \wd\@linechar
  4695. \if@negarg
  4696.   \hskip -\wd\@linechar \def\reserved@a{\hskip -2\wd\@linechar}%
  4697. \else
  4698.      \let\reserved@a\relax
  4699. \@whiledim \@clnwd <\@linelen \do
  4700.   {\@upordown\@clnht\copy\@linechar
  4701.    \reserved@a
  4702.    \advance\@clnht \ht\@linechar
  4703.    \advance\@clnwd \wd\@linechar}%
  4704. \advance\@clnht -\ht\@linechar
  4705. \advance\@clnwd -\wd\@linechar
  4706. \@tempdima\@linelen\advance\@tempdima -\@clnwd
  4707. \@tempdimb\@tempdima\advance\@tempdimb -\wd\@linechar
  4708. \if@negarg \hskip -\@tempdimb \else \hskip \@tempdimb \fi
  4709. \multiply\@tempdima \@m
  4710. \@tempcnta \@tempdima
  4711. \@tempdima \wd\@linechar \divide\@tempcnta \@tempdima
  4712. \@tempdima \ht\@linechar \multiply\@tempdima \@tempcnta
  4713. \divide\@tempdima \@m
  4714. \advance\@clnht \@tempdima
  4715. \ifdim \@linelen <\wd\@linechar
  4716.    \hskip \wd\@linechar
  4717.   \else\@upordown\@clnht\copy\@linechar\fi}
  4718. \gdef\@hline{\ifnum \@xarg <\z@ \hskip -\@linelen \fi
  4719. \vrule \@height \@halfwidth \@depth \@halfwidth \@width \@linelen
  4720. \ifnum \@xarg <\z@ \hskip -\@linelen \fi}
  4721. \gdef\@getlinechar(#1,#2){\@tempcnta#1\relax\multiply\@tempcnta 8%
  4722.   \advance\@tempcnta -9\ifnum #2>\z@ \advance\@tempcnta #2\relax\else
  4723.   \advance\@tempcnta -#2\relax\advance\@tempcnta 64 \fi
  4724.   \char\@tempcnta}
  4725. \gdef\vector(#1,#2)#3{\@xarg #1\relax \@yarg #2\relax
  4726.   \@tempcnta \ifnum\@xarg<\z@ -\@xarg\else\@xarg\fi
  4727.   \ifnum\@tempcnta<5\relax
  4728.   \@linelen #3\unitlength
  4729.   \ifdim\@linelen<\z@\@badlinearg\else
  4730.     \ifnum\@xarg =\z@ \@vvector
  4731.       \else \ifnum\@yarg =\z@ \@hvector \else \@svector\fi
  4732.     \fi
  4733.   \fi
  4734.   \else\@badlinearg\fi}
  4735. \gdef\@hvector{\@hline\hb@xt@\z@{\@linefnt
  4736.  \ifnum \@xarg <\z@ \@getlarrow(1,0)\hss\else
  4737.     \hss\@getrarrow(1,0)\fi}}
  4738. \gdef\@vvector{\ifnum \@yarg <\z@ \@downvector \else \@upvector \fi}
  4739. \gdef\@svector{\@sline
  4740.   \@tempcnta\@yarg \ifnum\@tempcnta <\z@ \@tempcnta -\@tempcnta\fi
  4741.   \ifnum\@tempcnta <5%
  4742.     \hskip -\wd\@linechar
  4743.     \@upordown\@clnht \hbox{\@linefnt  \if@negarg
  4744.     \@getlarrow(\@xarg,\@yyarg)\else \@getrarrow(\@xarg,\@yyarg)\fi}%
  4745.   \else\@badlinearg\fi}
  4746. \gdef\@getlarrow(#1,#2){\ifnum #2=\z@ \@tempcnta'33 \else
  4747.   \@tempcnta #1\relax\multiply\@tempcnta \sixt@@n \advance\@tempcnta
  4748.   -9 \@tempcntb #2\relax\multiply\@tempcntb \tw@
  4749.   \ifnum \@tempcntb >\z@ \advance\@tempcnta \@tempcntb
  4750.   \else\advance\@tempcnta -\@tempcntb\advance\@tempcnta 64
  4751.   \fi\fi\char\@tempcnta}
  4752. \gdef\@getrarrow(#1,#2){\@tempcntb #2\relax
  4753. \ifnum\@tempcntb <\z@ \@tempcntb -\@tempcntb\relax\fi
  4754. \ifcase \@tempcntb\relax \@tempcnta'55 \or
  4755. \ifnum #1<\thr@@ \@tempcnta #1\relax\multiply\@tempcnta
  4756. 24\advance\@tempcnta -6 \else \ifnum #1=\thr@@ \@tempcnta 49
  4757. \else\@tempcnta 58 \fi\fi\or
  4758. \ifnum #1<\thr@@ \@tempcnta=#1\relax\multiply\@tempcnta
  4759. 24\advance\@tempcnta -\thr@@ \else \@tempcnta 51 \fi\or
  4760. \@tempcnta #1\relax\multiply\@tempcnta
  4761. \sixt@@n \advance\@tempcnta -\tw@ \else
  4762. \@tempcnta #1\relax\multiply\@tempcnta
  4763. \sixt@@n \advance\@tempcnta 7 \fi\ifnum #2<\z@ \advance\@tempcnta 64 \fi
  4764. \char\@tempcnta}
  4765. \gdef\@vline{\ifnum \@yarg <\z@ \@downline \else \@upline\fi}
  4766. \gdef\@upline{%
  4767.   \hb@xt@\z@{\hskip -\@halfwidth \vrule \@width \@wholewidth
  4768.    \@height \@linelen \@depth \z@\hss}}
  4769. \gdef\@downline{%
  4770.   \hb@xt@\z@{\hskip -\@halfwidth \vrule \@width \@wholewidth
  4771.    \@height \z@ \@depth \@linelen \hss}}
  4772. \gdef\@upvector{\@upline\setbox\@tempboxa\hbox{\@linefnt\char'66}\raise
  4773.      \@linelen \hb@xt@\z@{\lower \ht\@tempboxa\box\@tempboxa\hss}}
  4774. \gdef\@downvector{\@downline\lower \@linelen
  4775.       \hb@xt@\z@{\@linefnt\char'77\hss}}
  4776. \gdef\dashbox#1(#2,#3){\leavevmode\hb@xt@\z@{\baselineskip \z@skip
  4777. \lineskip \z@skip
  4778. \@dashdim #2\unitlength
  4779. \@dashcnt \@dashdim \advance\@dashcnt 200
  4780. \@dashdim #1\unitlength\divide\@dashcnt \@dashdim
  4781. \ifodd\@dashcnt\@dashdim \z@
  4782. \advance\@dashcnt \@ne \divide\@dashcnt \tw@
  4783. \else \divide\@dashdim \tw@ \divide\@dashcnt \tw@
  4784. \advance\@dashcnt \m@ne
  4785. \setbox\@dashbox \hbox{\vrule \@height \@halfwidth \@depth \@halfwidth
  4786. \@width \@dashdim}\put(0,0){\copy\@dashbox}%
  4787. \put(0,#3){\copy\@dashbox}%
  4788. \put(#2,0){\hskip-\@dashdim\copy\@dashbox}%
  4789. \put(#2,#3){\hskip-\@dashdim\box\@dashbox}%
  4790. \multiply\@dashdim \thr@@
  4791. \setbox\@dashbox \hbox{\vrule \@height \@halfwidth \@depth \@halfwidth
  4792. \@width #1\unitlength\hskip #1\unitlength}\@tempcnta\z@
  4793. \put(0,0){\hskip\@dashdim \@whilenum \@tempcnta <\@dashcnt
  4794. \do{\copy\@dashbox\advance\@tempcnta \@ne }}\@tempcnta\z@
  4795. \put(0,#3){\hskip\@dashdim \@whilenum \@tempcnta <\@dashcnt
  4796. \do{\copy\@dashbox\advance\@tempcnta \@ne }}%
  4797. \@dashdim #3\unitlength
  4798. \@dashcnt \@dashdim \advance\@dashcnt 200
  4799. \@dashdim #1\unitlength\divide\@dashcnt \@dashdim
  4800. \ifodd\@dashcnt \@dashdim \z@
  4801. \advance\@dashcnt \@ne \divide\@dashcnt \tw@
  4802. \else
  4803. \divide\@dashdim \tw@ \divide\@dashcnt \tw@
  4804. \advance\@dashcnt \m@ne
  4805. \setbox\@dashbox\hbox{\hskip -\@halfwidth
  4806. \vrule \@width \@wholewidth
  4807. \@height \@dashdim}\put(0,0){\copy\@dashbox}%
  4808. \put(#2,0){\copy\@dashbox}%
  4809. \put(0,#3){\lower\@dashdim\copy\@dashbox}%
  4810. \put(#2,#3){\lower\@dashdim\copy\@dashbox}%
  4811. \multiply\@dashdim \thr@@
  4812. \setbox\@dashbox\hbox{\vrule \@width \@wholewidth
  4813. \@height #1\unitlength}\@tempcnta\z@
  4814. \put(0,0){\hskip -\@halfwidth \vbox{\@whilenum \@tempcnta <\@dashcnt
  4815. \do{\vskip #1\unitlength\copy\@dashbox\advance\@tempcnta \@ne }%
  4816. \vskip\@dashdim}}\@tempcnta\z@
  4817. \put(#2,0){\hskip -\@halfwidth \vbox{\@whilenum \@tempcnta<\@dashcnt
  4818. \do{\vskip #1\unitlength\copy\@dashbox\advance\@tempcnta \@ne }%
  4819. \vskip\@dashdim}}}\@makepicbox(#2,#3)}
  4820. \newif\if@ovt
  4821. \newif\if@ovb
  4822. \newif\if@ovl
  4823. \newif\if@ovr
  4824. \newdimen\@ovxx
  4825. \newdimen\@ovyy
  4826. \newdimen\@ovdx
  4827. \newdimen\@ovdy
  4828. \newdimen\@ovro
  4829. \newdimen\@ovri
  4830. \gdef\@getcirc#1{\@tempdima #1\relax \advance\@tempdima 2\p@
  4831.   \@tempcnta\@tempdima
  4832.   \@tempdima 4\p@ \divide\@tempcnta\@tempdima
  4833.   \ifnum \@tempcnta >10\relax \@tempcnta 10\relax\fi
  4834.   \ifnum \@tempcnta >\z@ \advance\@tempcnta\m@ne
  4835.     \else \@latex@warning{Oval too small}\fi
  4836.   \multiply\@tempcnta 4\relax
  4837.   \setbox \@tempboxa \hbox{\@circlefnt
  4838.   \char \@tempcnta}\@tempdima \wd \@tempboxa}
  4839. \gdef\@put#1#2#3{\raise #2\hb@xt@\z@{\hskip #1#3\hss}}
  4840. \gdef\oval(#1,#2){\@ifnextchar[{\@oval(#1,#2)}{\@oval(#1,#2)[]}}
  4841. \gdef\@oval(#1,#2)[#3]{\begingroup\boxmaxdepth \maxdimen
  4842.   \@ovttrue \@ovbtrue \@ovltrue \@ovrtrue
  4843.   \@tfor\reserved@a :=#3\do{\csname @ov\reserved@a false\endcsname}%
  4844.   \@ovxx
  4845.   #1\unitlength \@ovyy #2\unitlength
  4846.   \@tempdimb \ifdim \@ovyy >\@ovxx \@ovxx\else \@ovyy \fi
  4847.   \advance \@tempdimb -2\p@
  4848.   \@getcirc \@tempdimb
  4849.   \@ovro \ht\@tempboxa \@ovri \dp\@tempboxa
  4850.   \@ovdx\@ovxx \advance\@ovdx -\@tempdima \divide\@ovdx \tw@
  4851.   \@ovdy\@ovyy \advance\@ovdy -\@tempdima \divide\@ovdy \tw@
  4852.   \@circlefnt \setbox\@tempboxa
  4853.   \hbox{\if@ovr \@ovvert32\kern -\@tempdima \fi
  4854.   \if@ovl \kern \@ovxx \@ovvert01\kern -\@tempdima \kern -\@ovxx \fi
  4855.   \if@ovt \@ovhorz \kern -\@ovxx \fi
  4856.   \if@ovb \raise \@ovyy \@ovhorz \fi}\advance\@ovdx\@ovro
  4857.   \advance\@ovdy\@ovro \ht\@tempboxa\z@ \dp\@tempboxa\z@
  4858.   \@put{-\@ovdx}{-\@ovdy}{\box\@tempboxa}%
  4859.   \endgroup}
  4860. \gdef\@ovvert#1#2{\vbox to\@ovyy{%
  4861.     \if@ovb \@tempcntb \@tempcnta \advance \@tempcntb #1\relax
  4862.       \kern -\@ovro \hbox{\char \@tempcntb}\nointerlineskip
  4863.     \else \kern \@ovri \kern \@ovdy \fi
  4864.     \leaders\vrule \@width \@wholewidth\vfil \nointerlineskip
  4865.     \if@ovt \@tempcntb \@tempcnta \advance \@tempcntb #2\relax
  4866.       \hbox{\char \@tempcntb}%
  4867.     \else \kern \@ovdy \kern \@ovro \fi}}
  4868. \gdef\@ovhorz{\hb@xt@\@ovxx{\kern \@ovro
  4869.     \if@ovr \else \kern \@ovdx \fi
  4870.     \leaders \hrule \@height \@wholewidth \hfil
  4871.     \if@ovl \else \kern \@ovdx \fi
  4872.     \kern \@ovri}}
  4873. \gdef\circle{\@inmatherr\circle\@ifstar\@dot\@circle}
  4874. \gdef\@circle#1{%
  4875.   \begingroup \boxmaxdepth \maxdimen \@tempdimb #1\unitlength
  4876.    \ifdim \@tempdimb >15.5\p@ \@getcirc\@tempdimb
  4877.       \@ovro\ht\@tempboxa
  4878.      \setbox\@tempboxa\hbox{\@circlefnt
  4879.       \advance\@tempcnta\tw@ \char \@tempcnta
  4880.       \advance\@tempcnta\m@ne \char \@tempcnta \kern -2\@tempdima
  4881.       \advance\@tempcnta\tw@
  4882.       \raise \@tempdima \hbox{\char\@tempcnta}\raise \@tempdima
  4883.         \box\@tempboxa}\ht\@tempboxa\z@ \dp\@tempboxa\z@
  4884.       \@put{-\@ovro}{-\@ovro}{\box\@tempboxa}%
  4885.    \else  \@circ\@tempdimb{96}\fi\endgroup}
  4886. \gdef\@dot#1{\@tempdimb #1\unitlength \@circ\@tempdimb{112}}
  4887. \gdef\@circ#1#2{\@tempdima #1\relax \advance\@tempdima .5\p@
  4888.    \@tempcnta\@tempdima \@tempdima \p@
  4889.    \divide\@tempcnta\@tempdima
  4890.    \ifnum\@tempcnta >15\relax \@tempcnta 15\relax \fi
  4891.    \ifnum \@tempcnta >\z@ \advance\@tempcnta\m@ne\fi
  4892.    \advance\@tempcnta #2\relax
  4893.    \@circlefnt \char\@tempcnta}
  4894. \global\let\@linefnt\tenln \global\let\@circlefnt\tencirc
  4895. \global\@wholewidth\fontdimen8\tenln \global\@halfwidth .5\@wholewidth
  4896. \newcount\@xarg
  4897. \newcount\@yarg
  4898. \newcount\@yyarg
  4899. \newcount\@multicnt
  4900. \newdimen\@xdim
  4901. \newdimen\@ydim
  4902. \newbox\@linechar
  4903. \newdimen\@linelen
  4904. \newdimen\@clnwd
  4905. \newdimen\@clnht
  4906. \newdimen\@dashdim
  4907. \newbox\@dashbox
  4908. \newcount\@dashcnt
  4909. \gdef\qbeziermax{500}
  4910. \newcommand\qbezier[2][0]{\bezier{#1}#2}
  4911. \gdef\bezier#1)#2(#3)#4({\@bezier#1)(#3)(}
  4912. \gdef\@bezier#1(#2,#3)(#4,#5)(#6,#7){%
  4913.   \ifnum #1=\z@
  4914.       \@ovxx #4\unitlength
  4915.         \advance\@ovxx -#2\unitlength
  4916.         \ifdim \@ovxx<\z@ \@ovxx -\@ovxx \fi
  4917.       \@ovdx #6\unitlength
  4918.         \advance\@ovdx -#4\unitlength
  4919.         \ifdim \@ovdx<\z@ \@ovdx -\@ovdx \fi
  4920.         \ifdim \@ovxx<\@ovdx \@ovxx \@ovdx \fi
  4921.       \@ovyy #5\unitlength
  4922.         \advance\@ovyy -#3\unitlength
  4923.         \ifdim \@ovyy<\z@ \@ovyy -\@ovyy \fi
  4924.       \@ovdy #7\unitlength
  4925.         \advance\@ovdy -#5\unitlength
  4926.         \ifdim \@ovdy<\z@  \@ovdy -\@ovdy \fi
  4927.         \ifdim \@ovyy<\@ovdy \@ovyy  \@ovdy \fi
  4928.       \@multicnt
  4929.          \ifdim \@ovxx>\@ovyy \@ovxx \else \@ovyy \fi
  4930.       \@ovxx .5\@halfwidth \divide\@multicnt\@ovxx
  4931.       \ifnum \qbeziermax<\@multicnt \@multicnt\qbeziermax\relax \fi
  4932.   \else \@multicnt#1\relax \fi
  4933.   \@tempcnta\@multicnt \advance\@tempcnta\@ne
  4934.   \@ovdx #4\unitlength \advance\@ovdx -#2\unitlength
  4935.       \multiply\@ovdx \tw@
  4936.   \@ovxx #6\unitlength \advance\@ovxx -#2\unitlength
  4937.       \advance\@ovxx -\@ovdx \divide\@ovxx\@multicnt
  4938.   \@ovdy #5\unitlength \advance\@ovdy -#3\unitlength
  4939.        \multiply\@ovdy \tw@
  4940.   \@ovyy #7\unitlength \advance\@ovyy -#3\unitlength
  4941.       \advance\@ovyy -\@ovdy \divide\@ovyy\@multicnt
  4942.   \setbox\@tempboxa\hbox{\vrule \@height\@halfwidth
  4943.                                \@depth \@halfwidth
  4944.                                \@width \@wholewidth}%
  4945.    \put(#2,#3){%
  4946.      \count@\z@
  4947.      \@whilenum{\count@<\@tempcnta}\do
  4948.         {\@xdim\count@\@ovxx
  4949.            \advance\@xdim\@ovdx
  4950.            \divide\@xdim\@multicnt
  4951.            \multiply\@xdim\count@
  4952.          \@ydim\count@\@ovyy
  4953.             \advance\@ydim\@ovdy
  4954.             \divide\@ydim\@multicnt
  4955.             \multiply\@ydim\count@
  4956.          \raise \@ydim
  4957.             \hb@xt@\z@{\kern\@xdim
  4958.                         \unhcopy\@tempboxa\hss}%
  4959.          \advance\count@\@ne}}}
  4960. %%% File: ltthm
  4961. \def\newtheorem#1{\@ifnextchar[{\@othm{#1}}{\@nthm{#1}}}
  4962. \def\@nthm#1#2{%
  4963. \@ifnextchar[{\@xnthm{#1}{#2}}{\@ynthm{#1}{#2}}}
  4964. \def\@xnthm#1#2[#3]{\expandafter\@ifdefinable\csname #1\endcsname
  4965. {\@definecounter{#1}\@newctr{#1}[#3]%
  4966. \expandafter\xdef\csname the#1\endcsname{\expandafter\noexpand
  4967.   \csname the#3\endcsname \@thmcountersep \@thmcounter{#1}}%
  4968. \global\@namedef{#1}{%
  4969.   \@thm{#1}{#2}}\global\@namedef{end#1}{\@endtheorem}}}
  4970. \def\@ynthm#1#2{\expandafter\@ifdefinable\csname #1\endcsname
  4971. {\@definecounter{#1}%
  4972. \expandafter\xdef\csname the#1\endcsname{\@thmcounter{#1}}%
  4973. \global\@namedef{#1}{%
  4974.   \@thm{#1}{#2}}\global\@namedef{end#1}{\@endtheorem}}}
  4975. \def\@othm#1[#2]#3{%
  4976.   \@ifundefined{c@#2}{\@nocounterr{#2}}%
  4977.   {\expandafter\@ifdefinable\csname #1\endcsname
  4978.   {\global\@namedef{the#1}{\@nameuse{the#2}}%
  4979. \global\@namedef{#1}{\@thm{#2}{#3}}%
  4980. \global\@namedef{end#1}{\@endtheorem}}}}
  4981. \def\@thm#1#2{\refstepcounter
  4982.     {#1}\@ifnextchar[{\@ythm{#1}{#2}}{\@xthm{#1}{#2}}}
  4983. \def\@xthm#1#2{\@begintheorem{#2}{\csname the#1\endcsname}\ignorespaces}
  4984. \def\@ythm#1#2[#3]{\@opargbegintheorem{#2}{\csname
  4985.        the#1\endcsname}{#3}\ignorespaces}
  4986. \def\@thmcounter#1{\noexpand\arabic{#1}}
  4987. \def\@thmcountersep{.}
  4988. \def\@begintheorem#1#2{\trivlist
  4989.    \item[\hskip \labelsep{\bfseries #1\ #2}]\itshape}
  4990. \def\@opargbegintheorem#1#2#3{\trivlist
  4991.       \item[\hskip \labelsep{\bfseries #1\ #2\ (#3)}]\itshape}
  4992. \def\@endtheorem{\endtrivlist}
  4993. %%% File: ltsect
  4994. \message{title,}
  4995. \def\title#1{\gdef\@title{#1}}
  4996. \def\@title{\@latex@error{No \noexpand\title given}\@ehc}
  4997. \def\author#1{\gdef\@author{#1}}
  4998. \def\@author{\@latex@warning@no@line{No \noexpand\author given}}
  4999. \def\date#1{\gdef\@date{#1}}
  5000. \gdef\@date{\today}
  5001. \def\thanks#1{\footnotemark
  5002.     \protected@xdef\@thanks{\@thanks
  5003.         \protect\footnotetext[\the\c@footnote]{#1}}%
  5004. \def\@thanks{}
  5005. \def\and{%%                             % \begin{tabular}
  5006. \end{tabular}\hskip 1em \@plus.17fil%
  5007. \begin{tabular}[t]{c}%% \end{tabular}
  5008. \message{sectioning,}
  5009. \newcount\@secpenalty
  5010. \@secpenalty = -300
  5011. \newif\if@noskipsec \@noskipsectrue
  5012. \def\@startsection#1#2#3#4#5#6{\if@noskipsec \leavevmode \fi
  5013.    \par \@tempskipa #4\relax
  5014.    \@afterindenttrue
  5015.    \ifdim \@tempskipa <\z@
  5016.      \@tempskipa -\@tempskipa \@afterindentfalse
  5017.    \fi
  5018.    \if@nobreak \everypar{}\else
  5019.      \addpenalty\@secpenalty\addvspace\@tempskipa
  5020.    \fi
  5021.    \@ifstar
  5022.      {\@ssect{#3}{#4}{#5}{#6}}%
  5023.      {\@dblarg{\@sect{#1}{#2}{#3}{#4}{#5}{#6}}}}
  5024. \def\@sect#1#2#3#4#5#6[#7]#8{%
  5025.      \ifnum #2>\c@secnumdepth
  5026.        \let\@svsec\@empty\else
  5027.        \refstepcounter{#1}%
  5028.        \protected@edef\@svsec{\@seccntformat{#1}\relax}%
  5029.      \fi
  5030.      \@tempskipa #5\relax
  5031.       \ifdim \@tempskipa>\z@
  5032.         \begingroup #6\relax
  5033.           \@hangfrom{\hskip #3\relax\@svsec}%
  5034.                     {\interlinepenalty \@M #8\par}%
  5035.         \endgroup
  5036.        \csname #1mark\endcsname{#7}\addcontentsline
  5037.          {toc}{#1}{\ifnum #2>\c@secnumdepth \else
  5038.                       \protect\numberline{\csname the#1\endcsname}\fi
  5039.                     #7}\else
  5040.         \def\@svsechd{#6\hskip #3\relax  %% \relax added 2 May 90
  5041.                    \@svsec #8\csname #1mark\endcsname
  5042.                       {#7}\addcontentsline
  5043.                            {toc}{#1}{\ifnum #2>\c@secnumdepth \else
  5044.                            \protect\numberline{\csname the#1\endcsname}%
  5045.                                      \fi
  5046.                        #7}}\fi
  5047.      \@xsect{#5}}
  5048. \def\@xsect#1{\@tempskipa #1\relax
  5049.       \ifdim \@tempskipa>\z@
  5050.        \par \nobreak
  5051.        \vskip \@tempskipa
  5052.        \@afterheading
  5053.     \else \global\@nobreakfalse \global\@noskipsectrue
  5054.        \everypar{\if@noskipsec \global\@noskipsecfalse
  5055.                    \clubpenalty\@M \hskip -\parindent
  5056.                    \begingroup \@svsechd \endgroup \unskip
  5057.                    \@tempskipa #1\relax
  5058.                    \hskip -\@tempskipa
  5059.                   \else \clubpenalty \@clubpenalty
  5060.                     \everypar{}\fi}\fi\ignorespaces}
  5061. \def\@seccntformat#1{\csname the#1\endcsname\quad}
  5062. \def\@ssect#1#2#3#4#5{\@tempskipa #3\relax
  5063.    \ifdim \@tempskipa>\z@
  5064.      \begingroup #4\@hangfrom{\hskip #1}{\interlinepenalty \@M #5\par}%
  5065.      \endgroup
  5066.    \else \def\@svsechd{#4\hskip #1\relax #5}\fi
  5067.     \@xsect{#3}}
  5068. \newif\if@afterindent \@afterindenttrue
  5069. \def\@afterheading{\global\@nobreaktrue
  5070.       \everypar{\if@nobreak
  5071.                    \global\@nobreakfalse
  5072.                    \clubpenalty \@M
  5073.                    \if@afterindent \else {\setbox\z@\lastbox}\fi
  5074.                  \else \clubpenalty \@clubpenalty
  5075.                     \everypar{}\fi}}
  5076. \def\@hangfrom#1{\setbox\@tempboxa\hbox{{#1}}%
  5077.       \hangindent \wd\@tempboxa\noindent\box\@tempboxa}
  5078. \newcount\c@secnumdepth
  5079. \newcount\c@tocdepth
  5080. \def\secdef#1#2{\@ifstar{#2}{\@dblarg{#1}}}
  5081. \def\sectionmark#1{}
  5082. \def\subsectionmark#1{}
  5083. \def\subsubsectionmark#1{}
  5084. \def\paragraphmark#1{}
  5085. \def\subparagraphmark#1{}
  5086. \message{contents,}
  5087. \def\@starttoc#1{\begingroup
  5088.   \makeatletter
  5089.   \@input{\jobname.#1}\if@filesw
  5090.   \expandafter\newwrite\csname tf@#1\endcsname
  5091.              \immediate\openout
  5092.                  \csname tf@#1\endcsname \jobname.#1\relax
  5093.   \fi \global\@nobreakfalse \endgroup}
  5094. \def\addcontentsline#1#2#3{%
  5095.   \addtocontents{#1}{\protect\contentsline{#2}{#3}{\thepage}}%
  5096. \long\def\addtocontents#1#2{%
  5097.   \protected@write\@auxout
  5098.       {\let\label\@gobble \let\index\@gobble \let\glossary\@gobble}%
  5099.       {\string\@writefile{#1}{#2}}%
  5100. \def\contentsline#1{\csname l@#1\endcsname}
  5101. \def\@dottedtocline#1#2#3#4#5{\ifnum #1>\c@tocdepth \else
  5102.   \vskip \z@ \@plus.2\p@
  5103.   {\leftskip #2\relax \rightskip \@tocrmarg \parfillskip -\rightskip
  5104.     \parindent #2\relax\@afterindenttrue
  5105.    \interlinepenalty\@M
  5106.    \leavevmode
  5107.    \@tempdima #3\relax
  5108.    \advance\leftskip \@tempdima \null\hskip -\leftskip
  5109.     {#4}\nobreak\leaders\hbox{$\m@th
  5110.        \mkern \@dotsep mu\hbox{.}\mkern \@dotsep
  5111.        mu$}\hfill \nobreak
  5112.            \hb@xt@\@pnumwidth{%
  5113.              \hfil\normalfont \normalcolor #5}\par}\fi}
  5114. \def\numberline#1{\hb@xt@\@tempdima{#1\hfil}}
  5115. %%% File: ltfloat
  5116. \message{floats,}
  5117. \newcount\@floatpenalty
  5118. \def\caption{\refstepcounter\@captype \@dblarg{\@caption\@captype}}
  5119. \long\def\@caption#1[#2]#3{\par\addcontentsline{\csname
  5120.   ext@#1\endcsname}{#1}{\protect\numberline{\csname
  5121.   the#1\endcsname}{\ignorespaces #2}}\begingroup
  5122.     \@parboxrestore
  5123.     \normalsize
  5124.     \@makecaption{\csname fnum@#1\endcsname}{\ignorespaces #3}\par
  5125.   \endgroup}
  5126. \def\@float#1{%
  5127.   \@ifnextchar[{\@xfloat{#1}}{\edef\reserved@a{\noexpand\@xfloat
  5128.     {#1}[\csname fps@#1\endcsname]}\reserved@a}}
  5129. \def\@dblfloat{%
  5130.   \if@twocolumn\let\reserved@a\@dbflt\else\let\reserved@a\@float\fi
  5131.   \reserved@a}
  5132. \def\@xfloat #1[#2]{%
  5133.    \def \@captype {#1}%
  5134.    \def \@fps {#2}%
  5135.    \@onelevel@sanitize \@fps
  5136.    \def \reserved@b {!}%
  5137.    \ifx \reserved@b \@fps
  5138.      \@fpsadddefault
  5139.    \else
  5140.      \ifx \@fps \@empty
  5141.        \@fpsadddefault
  5142.      \fi
  5143.    \fi
  5144.    \ifhmode
  5145.      \@bsphack
  5146.      \@floatpenalty -\@Mii
  5147.    \else
  5148.      \@floatpenalty-\@Miii
  5149.    \fi
  5150.   \ifinner
  5151.      \@parmoderr\@floatpenalty\z@
  5152.   \else
  5153.     \@next\@currbox\@freelist
  5154.       {%
  5155.        \@tempcnta \sixt@@n
  5156.        \expandafter \@tfor \expandafter \reserved@a
  5157.          \expandafter :\expandafter =\@fps
  5158.          \do
  5159.           {%
  5160.            \if \reserved@a h%
  5161.              \ifodd \@tempcnta
  5162.              \else
  5163.                \advance \@tempcnta \@ne
  5164.              \fi
  5165.            \fi
  5166.            \if \reserved@a t%
  5167.              \@setfpsbit \tw@
  5168.            \fi
  5169.            \if \reserved@a b%
  5170.              \@setfpsbit 4%
  5171.            \fi
  5172.            \if \reserved@a p%
  5173.              \@setfpsbit 8%
  5174.            \fi
  5175.            \if \reserved@a !%
  5176.              \ifnum \@tempcnta>15
  5177.                \advance\@tempcnta -\sixt@@n\relax
  5178.              \fi
  5179.            \fi
  5180.            }%
  5181.        \@tempcntb \csname ftype@\@captype \endcsname
  5182.        \multiply \@tempcntb \@xxxii
  5183.        \advance \@tempcnta \@tempcntb
  5184.        \global \count\@currbox \@tempcnta
  5185.        }%
  5186.     \@fltovf
  5187.   \fi
  5188.   \global \setbox\@currbox
  5189.     \color@vbox
  5190.       \normalcolor
  5191.       \vbox \bgroup
  5192.         \hsize\columnwidth \@parboxrestore
  5193.         \@floatboxreset
  5194. \def \@floatboxreset {%
  5195.         \reset@font
  5196.         \normalsize
  5197.         \@setnobreak
  5198.         \@setminipage
  5199. \def \@setnobreak{%
  5200.   \if@nobreak
  5201.     \def\outer@nobreak{\global\@nobreaktrue}%
  5202.     \global\@nobreakfalse
  5203.   \fi
  5204. \def \@setminipage{%
  5205.   \global\@minipagetrue
  5206.   \everypar{\global\@minipagefalse\everypar{}}%
  5207. \def\end@float{%
  5208.         \par\vskip\z@skip      %% \par\vskip\z@ added 15 Dec 87
  5209.         \global\@minipagefalse
  5210.         \outer@nobreak
  5211.       \egroup                  %% end of vbox
  5212.     \color@endbox
  5213.   \ifnum\@floatpenalty <\z@
  5214.     \@largefloatcheck
  5215.     \@cons\@currlist\@currbox
  5216.     \ifnum\@floatpenalty <-\@Mii
  5217.       \penalty -\@Miv
  5218.       \@tempdima\prevdepth    %% saving and restoring \prevdepth added
  5219.       \vbox{}%                %% 26 May 87 to prevent extra vertical
  5220.       \prevdepth \@tempdima   %% space when used in vertical mode
  5221.       \penalty\@floatpenalty
  5222.     \else
  5223.       \vadjust{\penalty -\@Miv \vbox{}\penalty\@floatpenalty}\@Esphack
  5224.     \fi
  5225.   \fi
  5226. \def\end@dblfloat{%
  5227. \if@twocolumn
  5228.         \par\vskip\z@skip      %% \par\vskip\z@ added 15 Dec 87
  5229.       \egroup                  %% end of vbox
  5230.       \outer@nobreak
  5231.     \color@endbox
  5232.   \ifnum\@floatpenalty <\z@
  5233.     \@largefloatcheck
  5234.     \@cons\@dbldeferlist\@currbox
  5235.   \fi
  5236.     \ifnum \@floatpenalty =-\@Mii \@Esphack\fi
  5237. \else
  5238.   \end@float
  5239. \let\outer@nobreak\@empty
  5240. \def \@largefloatcheck{%
  5241.   \ifdim \ht\@currbox>\textheight
  5242.     \@tempdima -\textheight
  5243.     \advance \@tempdima \ht\@currbox
  5244.     \@latex@warning {Float too large for page by \the\@tempdima}%
  5245.     \ht\@currbox \textheight
  5246.   \fi
  5247. \def\@dbflt#1{\@ifnextchar[{\@xdblfloat{#1}}{\@xdblfloat{#1}[tp]}}
  5248. \def\@xdblfloat#1[#2]{%
  5249.   \@xfloat{#1}[#2]\hsize\textwidth\linewidth\textwidth}
  5250. \def\@floatplacement{\global\@topnum\c@topnumber
  5251.     % Textpage bit, global:
  5252.    \global\@toproom \topfraction\@colht
  5253.    \global\@botnum  \c@bottomnumber
  5254.    \global\@botroom \bottomfraction\@colht
  5255.    \global\@colnum  \c@totalnumber
  5256.     % Floatpage bit, local:
  5257.    \@fpmin   \floatpagefraction\@colht}
  5258. \def \@dblfloatplacement {%
  5259.   \global \@dbltopnum \c@dbltopnumber
  5260.   \global \@dbltoproom \dbltopfraction\@colht
  5261.   \@textmin \@colht
  5262.   \advance \@textmin -\@dbltoproom
  5263.   \@fpmin \dblfloatpagefraction\textheight
  5264.   \@fptop \@dblfptop
  5265.   \@fpsep \@dblfpsep
  5266.   \@fpbot \@dblfpbot
  5267. \def\marginpar{\ifhmode \@bsphack\@floatpenalty -\@Mii\else
  5268.    \@floatpenalty-\@Miii\fi\ifinner
  5269.       \@parmoderr\@floatpenalty\z@
  5270.     \else\@next\@currbox\@freelist{}{}\@next\@marbox\@freelist{\global
  5271.       \count\@marbox\m@ne}{\@floatpenalty\z@ \@fltovf
  5272.          \def\@currbox{\@tempboxa}\def\@marbox{\@tempboxa}}\fi
  5273.      \@ifnextchar [\@xmpar\@ympar}
  5274. \long\def\@xmpar[#1]#2{\@savemarbox\@marbox{#1}\@savemarbox\@currbox
  5275.    {#2}\@xympar}
  5276. \long\def\@ympar#1{\@savemarbox\@marbox{#1}\global\setbox\@currbox
  5277.      \copy\@marbox\@xympar}
  5278. \long\def \@savemarbox #1#2{%
  5279.   \global\setbox #1%
  5280.     \color@vbox
  5281.       \vtop{%
  5282.         \hsize\marginparwidth
  5283.         \@parboxrestore
  5284.         \@marginparreset
  5285.         #2%
  5286.         \global\@minipagefalse
  5287.         \outer@nobreak
  5288.         }%
  5289.     \color@endbox
  5290. \def \@marginparreset {%
  5291.         \reset@font
  5292.         \normalsize
  5293.         \@setnobreak
  5294.         \@setminipage
  5295. \def \@xympar{%
  5296.   \ifnum\@floatpenalty <\z@\@cons\@currlist\@marbox\fi
  5297.   \setbox\@tempboxa
  5298.     \color@vbox
  5299.       \vbox \bgroup
  5300.   \end@float
  5301.   \global \@ignorefalse \@esphack
  5302. \def\reversemarginpar{\global\@mparbottom\z@ \@reversemargintrue}
  5303. \def\normalmarginpar{\global\@mparbottom\z@ \@reversemarginfalse}
  5304. \message{footnotes,}
  5305. \newinsert\footins
  5306. \skip\footins=\bigskipamount % space added when footnote is present
  5307. \count\footins=1000 % footnote magnification factor (1 to 1)
  5308. \dimen\footins=8in % maximum footnotes per page
  5309. \def\footnoterule{\kern-3\p@
  5310.   \hrule \@width 2in \kern 2.6\p@} % the \hrule is .4pt high
  5311. \@definecounter{footnote}
  5312. \def\thefootnote{\@arabic\c@footnote}
  5313. \@definecounter{mpfootnote}
  5314. \def\thempfootnote{\itshape\@alph\c@mpfootnote}
  5315. \def\@makefnmark{\hbox{\@textsuperscript{\normalfont\@thefnmark}}}
  5316. \DeclareRobustCommand*\textsuperscript[1]{%
  5317.   \@textsuperscript{\selectfont#1}}
  5318. \def\@textsuperscript#1{%
  5319.   $\m@th^{\mbox{\fontsize\sf@size\z@#1}}$}
  5320. \newdimen\footnotesep
  5321. \def\footnote{\@ifnextchar[\@xfootnote{\stepcounter\@mpfn
  5322.      \protected@xdef\@thefnmark{\thempfn}%
  5323.      \@footnotemark\@footnotetext}}
  5324. \def\@xfootnote[#1]{%
  5325.    \begingroup
  5326.      \csname c@\@mpfn\endcsname #1\relax
  5327.      \unrestored@protected@xdef\@thefnmark{\thempfn}%
  5328.    \endgroup
  5329.    \@footnotemark\@footnotetext}
  5330. \long\def\@footnotetext#1{\insert\footins{%
  5331.     \reset@font\footnotesize
  5332.     \interlinepenalty\interfootnotelinepenalty
  5333.     \splittopskip\footnotesep
  5334.     \splitmaxdepth \dp\strutbox \floatingpenalty \@MM
  5335.     \hsize\columnwidth \@parboxrestore
  5336.     \protected@edef\@currentlabel{%
  5337.        \csname p@footnote\endcsname\@thefnmark
  5338.     }%
  5339.     \color@begingroup
  5340.       \@makefntext{%
  5341.         \rule\z@\footnotesep\ignorespaces#1\@finalstrut\strutbox}
  5342.     \color@endgroup}}
  5343. \def\footnotemark{%
  5344.    \@ifnextchar[\@xfootnotemark
  5345.      {\stepcounter{footnote}%
  5346.       \protected@xdef\@thefnmark{\thefootnote}%
  5347.       \@footnotemark}}
  5348. \def\@xfootnotemark[#1]{%
  5349.    \begingroup
  5350.       \c@footnote #1\relax
  5351.       \unrestored@protected@xdef\@thefnmark{\thefootnote}%
  5352.    \endgroup
  5353.    \@footnotemark}
  5354. \def\@footnotemark{%
  5355.   \leavevmode
  5356.   \ifhmode\edef\@x@sf{\the\spacefactor}\nobreak\fi
  5357.   \@makefnmark
  5358.   \ifhmode\spacefactor\@x@sf\fi
  5359.   \relax}
  5360. \def\footnotetext{%
  5361.      \@ifnextchar [\@xfootnotenext
  5362.        {\protected@xdef\@thefnmark{\thempfn}%
  5363.     \@footnotetext}}
  5364. \def\@xfootnotenext[#1]{%
  5365.   \begingroup
  5366.      \csname c@\@mpfn\endcsname #1\relax
  5367.      \unrestored@protected@xdef\@thefnmark{\thempfn}%
  5368.   \endgroup
  5369.   \@footnotetext}
  5370. \def\@mpfn{footnote}
  5371. \def\thempfn{\thefootnote}
  5372. %%% File: ltidxglo
  5373. \message{index,}
  5374. \def\makeindex{%
  5375.   \newwrite\@indexfile
  5376.   \immediate\openout\@indexfile=\jobname.idx
  5377.   \def\index{\@bsphack\begingroup
  5378.              \@sanitize
  5379.              \@wrindex}\typeout
  5380.     {Writing index file \jobname.idx}%
  5381. \def\@wrindex#1{%
  5382.    \protected@write\@indexfile{}%
  5383.       {\string\indexentry{#1}{\thepage}}%
  5384.  \endgroup
  5385.  \@esphack
  5386. \def\index{\@bsphack\begingroup \@sanitize\@index}
  5387. \def\@index#1{\endgroup\@esphack}
  5388. \def\makeglossary{%
  5389.   \newwrite\@glossaryfile
  5390.   \immediate\openout\@glossaryfile=\jobname.glo
  5391.   \def\glossary{\@bsphack\begingroup
  5392.                 \@sanitize
  5393.                 \@wrglossary}\typeout
  5394.    {Writing glossary file \jobname.glo }%
  5395. \def\@wrglossary#1{%
  5396.    \protected@write\@glossaryfile{}%
  5397.       {\string\glossaryentry{#1}{\thepage}}%
  5398.  \endgroup
  5399.  \@esphack
  5400. \def\glossary{\@bsphack\begingroup\@sanitize\@index}
  5401. %%% File: ltbibl
  5402. \message{bibliography,}
  5403. \def\bibitem{\@ifnextchar[\@lbibitem\@bibitem}
  5404. \def\@lbibitem[#1]#2{\item[\@biblabel{#1}\hfill]\if@filesw
  5405.       {\let\protect\noexpand
  5406.        \immediate
  5407.        \write\@auxout{\string\bibcite{#2}{#1}}}\fi\ignorespaces}
  5408. \def\@bibitem#1{\item\if@filesw \immediate\write\@auxout
  5409.        {\string\bibcite{#1}{\the\value{\@listctr}}}\fi\ignorespaces}
  5410. \def\bibcite{\@newl@bel b}
  5411. \@onlypreamble\bibcite
  5412. \let\citation\@gobble
  5413. \def\cite{\@ifnextchar [{\@tempswatrue\@citex}{\@tempswafalse\@citex[]}}
  5414. \def\@citex[#1]#2{%
  5415.   \let\@citea\@empty
  5416.   \@cite{\@for\@citeb:=#2\do
  5417.     {\@citea\def\@citea{,\penalty\@m\ }%
  5418.      \edef\@citeb{\expandafter\@firstofone\@citeb}%
  5419.      \if@filesw\immediate\write\@auxout{\string\citation{\@citeb}}\fi
  5420.      \@ifundefined{b@\@citeb}{\mbox{\reset@font\bfseries ?}%
  5421.        \G@refundefinedtrue\@latex@warning
  5422.        {Citation `\@citeb' on page \thepage \space undefined}}%
  5423.      {\hbox{\csname b@\@citeb\endcsname}}}}{#1}}
  5424. \let\bibdata=\@gobble
  5425. \let\bibstyle=\@gobble
  5426. \def\bibliography#1{%
  5427.   \if@filesw
  5428.     \immediate\write\@auxout{\string\bibdata{#1}}%
  5429.   \fi
  5430.   \@input@{\jobname.bbl}}
  5431. \def\bibliographystyle#1{%
  5432.   \ifx\@begindocumenthook\@undefined\else
  5433.     \expandafter\AtBeginDocument
  5434.   \fi
  5435.     {\if@filesw
  5436.        \immediate\write\@auxout{\string\bibstyle{#1}}%
  5437.      \fi}}
  5438. \def\nocite#1{\@bsphack
  5439.   \@for\@citeb:=#1\do{%
  5440.     \edef\@citeb{\expandafter\@firstofone\@citeb}%
  5441.     \if@filesw\immediate\write\@auxout{\string\citation{\@citeb}}\fi
  5442.     \@ifundefined{b@\@citeb}{\G@refundefinedtrue
  5443.         \@latex@warning{Citation `\@citeb' undefined}}{}}%
  5444.   \@esphack}
  5445. \expandafter\let\csname b@*\endcsname\@empty
  5446. \def\@cite#1#2{[{#1\if@tempswa , #2\fi}]}
  5447. \def\@biblabel#1{[#1]}
  5448. %%% File: ltpage
  5449. \def\pagestyle#1{%
  5450.   \@ifundefined{ps@#1}%
  5451.     \undefinedpagestyle
  5452.     {\@nameuse{ps@#1}}}
  5453. \def\thispagestyle#1{%
  5454.   \@ifundefined{ps@#1}%
  5455.     \undefinedpagestyle
  5456.     {\global\@specialpagetrue\gdef\@specialstyle{#1}}}
  5457. \def\ps@empty{%
  5458.   \let\@mkboth\@gobbletwo\let\@oddhead\@empty\let\@oddfoot\@empty
  5459.   \let\@evenhead\@empty\let\@evenfoot\@empty}
  5460. \def\ps@plain{\let\@mkboth\@gobbletwo
  5461.      \let\@oddhead\@empty\def\@oddfoot{\reset@font\hfil\thepage
  5462.      \hfil}\let\@evenhead\@empty\let\@evenfoot\@oddfoot}
  5463. \let\@leftmark\@firstoftwo
  5464. \let\@rightmark\@secondoftwo
  5465. \def\markboth#1#2{\gdef\@themark{{#1}{#2}}{%
  5466.      \let\protect\@unexpandable@protect
  5467.      \let\label\relax \let\index\relax \let\glossary\relax
  5468.      \mark{\@themark}}\if@nobreak\ifvmode\nobreak\fi\fi}
  5469. \def\markright#1{{\let\protect\@unexpandable@protect
  5470.      \let\label\relax \let\index\relax \let\glossary\relax
  5471.      \expandafter\@markright\@themark
  5472.      {#1}\mark{\@themark}}\if@nobreak\ifvmode\nobreak\fi\fi}
  5473. \def\@markright#1#2#3{\gdef\@themark{{#1}{#3}}}
  5474. \def\leftmark{\expandafter\@leftmark\botmark{}{}}
  5475. \def\rightmark{\expandafter\@rightmark\firstmark{}{}}
  5476. \def\@themark{{}{}}
  5477. \def\raggedbottom{%
  5478.   \def\@textbottom{\vskip \z@ \@plus.0001fil}\let\@texttop\relax}
  5479. \def\flushbottom{%
  5480.   \let\@textbottom\relax \let\@texttop\relax}
  5481. \def\sloppy{\tolerance 9999
  5482.             \emergencystretch 3em
  5483.             \hfuzz .5\p@ \vfuzz .5\p@}
  5484. \def\sloppypar{\par\sloppy}
  5485. \def\endsloppypar{\par}
  5486. \def\fussy{%
  5487.   \emergencystretch\z@
  5488.   \tolerance 200
  5489.   \hfuzz .1\p@
  5490.   \vfuzz .1\p@}
  5491. \overfullrule 0pt
  5492. %%% File: ltoutput
  5493. \message{output,}
  5494. \maxdeadcycles = 100
  5495. \let\@elt\relax
  5496. \def\@next#1#2#3#4{\ifx#2\@empty #4\else
  5497.    \expandafter\@xnext #2\@@#1#2#3\fi}
  5498. \def\@xnext \@elt #1#2\@@#3#4{\def#3{#1}\gdef#4{#2}}
  5499. \newif \if@test
  5500. \def\@bitor#1#2{\global\@testfalse {\let\@elt\@xbitor
  5501.    \@tempcnta #1\relax #2}}
  5502. \def\@xbitor #1{\@tempcntb \count#1
  5503.    \ifnum \@tempcnta =\z@
  5504.    \else
  5505.      \divide\@tempcntb\@tempcnta
  5506.      \ifodd\@tempcntb \global\@testtrue\fi
  5507.    \fi}
  5508. \newinsert\bx@A
  5509. \newinsert\bx@B
  5510. \newinsert\bx@C
  5511. \newinsert\bx@D
  5512. \newinsert\bx@E
  5513. \newinsert\bx@F
  5514. \newinsert\bx@G
  5515. \newinsert\bx@H
  5516. \newinsert\bx@I
  5517. \newinsert\bx@J
  5518. \newinsert\bx@K
  5519. \newinsert\bx@L
  5520. \newinsert\bx@M
  5521. \newinsert\bx@N
  5522. \newinsert\bx@O
  5523. \newinsert\bx@P
  5524. \newinsert\bx@Q
  5525. \newinsert\bx@R
  5526. \gdef\@freelist{\@elt\bx@A\@elt\bx@B\@elt\bx@C\@elt\bx@D\@elt\bx@E
  5527.                \@elt\bx@F\@elt\bx@G\@elt\bx@H\@elt\bx@I\@elt\bx@J
  5528.                 \@elt\bx@K\@elt\bx@L\@elt\bx@M\@elt\bx@N
  5529.                 \@elt\bx@O\@elt\bx@P\@elt\bx@Q\@elt\bx@R}
  5530. \gdef\@toplist{}
  5531. \gdef\@botlist{}
  5532. \gdef\@midlist{}
  5533. \gdef\@currlist{}
  5534. \gdef\@deferlist{}
  5535. \gdef\@dbltoplist{}
  5536. \gdef\@dbldeferlist{}
  5537. \newdimen\topmargin
  5538. \newdimen\oddsidemargin
  5539. \newdimen\evensidemargin
  5540. \let\@themargin=\oddsidemargin
  5541. \newdimen\headheight
  5542. \newdimen\headsep
  5543. \newdimen\footskip
  5544. \newdimen\textheight
  5545. \newdimen\textwidth
  5546. \newdimen\columnwidth
  5547. \newdimen\columnsep
  5548. \newdimen\columnseprule
  5549. \newdimen\marginparwidth
  5550. \newdimen\marginparsep
  5551. \newdimen\marginparpush
  5552. \newbox\@begindvibox
  5553. \def \AtBeginDvi #1{%
  5554.   \global \setbox \@begindvibox
  5555.     \vbox{\unvbox \@begindvibox #1}%
  5556. \newdimen\@maxdepth
  5557. \@maxdepth = \maxdepth
  5558. \newdimen\paperheight
  5559. \newdimen\paperwidth
  5560. \newif \if@insert
  5561. \newif \if@fcolmade
  5562. \newif \if@specialpage \@specialpagefalse
  5563. \newif \if@firstcolumn \@firstcolumntrue
  5564. \newif \if@twocolumn   \@twocolumnfalse
  5565. \newif \if@twoside     \@twosidefalse
  5566. \newif \if@reversemargin \@reversemarginfalse
  5567. \newif \if@mparswitch  \@mparswitchfalse
  5568. \newcount \col@number
  5569. \col@number \@ne
  5570. \newcount\@topnum
  5571. \newdimen\@toproom
  5572. \newcount\@dbltopnum
  5573. \newdimen\@dbltoproom
  5574. \newcount\@botnum
  5575. \newdimen\@botroom
  5576. \newcount\@colnum
  5577. \newdimen\@textmin
  5578. \newdimen\@fpmin
  5579. \newdimen\@colht
  5580. \newdimen\@colroom
  5581. \newdimen\@pageht
  5582. \newdimen\@pagedp
  5583. \newdimen\@mparbottom \@mparbottom\z@
  5584. \newcount\@currtype
  5585. \newbox\@outputbox
  5586. \newbox\@leftcolumn
  5587. \newbox\@holdpg
  5588. \def\@thehead{\@oddhead} % initialization
  5589. \def\@thefoot{\@oddfoot}
  5590. \def\clearpage{\newpage \write\m@ne{}\vbox{}\penalty -\@Mi}
  5591. \def\cleardoublepage{\clearpage\if@twoside \ifodd\c@page\else
  5592.     \hbox{}\newpage\if@twocolumn\hbox{}\newpage\fi\fi\fi}
  5593. \def\onecolumn{%
  5594.   \clearpage
  5595.   \global\columnwidth\textwidth
  5596.   \global\hsize\columnwidth
  5597.   \global\linewidth\columnwidth
  5598.   \global\@twocolumnfalse
  5599.   \col@number \@ne
  5600.   \@floatplacement}
  5601. \def \newpage {\par\vfil\penalty -\@M}
  5602. \def \@emptycol {\vbox{}\penalty -\@M}
  5603. \def \twocolumn {%
  5604.   \clearpage
  5605.   \global\columnwidth\textwidth
  5606.   \global\advance\columnwidth-\columnsep
  5607.   \global\divide\columnwidth\tw@
  5608.   \global\hsize\columnwidth
  5609.   \global\linewidth\columnwidth
  5610.   \global\@twocolumntrue
  5611.   \global\@firstcolumntrue
  5612.   \col@number \tw@
  5613.   \@ifnextchar [\@topnewpage\@floatplacement
  5614. \long\def \@topnewpage [#1]{%
  5615.   \@next\@currbox\@freelist{}{}%
  5616.   \global \setbox\@currbox
  5617.     \color@vbox
  5618.       \normalcolor
  5619.       \vbox {%
  5620.         \hsize\textwidth
  5621.         \@parboxrestore
  5622.         \col@number \@ne
  5623.         #1%
  5624.         \vskip -\dbltextfloatsep
  5625.              }%
  5626.     \color@endbox
  5627.   \ifdim \ht\@currbox>\textheight
  5628.     \ht\@currbox \textheight
  5629.   \fi
  5630.   \global \count\@currbox \tw@
  5631.   \@tempdima -\ht\@currbox
  5632.   \advance \@tempdima -\dbltextfloatsep
  5633.   \global \advance \@colht \@tempdima
  5634.   \ifx \@dbltoplist \@empty
  5635.   \else
  5636.     \@latexerr{Float(s) lost}\@ehb
  5637.     \let \@dbltoplist \@empty
  5638.   \fi
  5639.   \@cons \@dbltoplist \@currbox
  5640.   \global \@dbltopnum \m@ne
  5641.   \ifdim \@colht<3\baselineskip
  5642.     \@latex@warning@no@line {Optional argument of \noexpand\twocolumn
  5643.                 too tall on page \thepage}%
  5644.     \@emptycol
  5645.     \if@firstcolumn
  5646.     \else
  5647.       \@emptycol
  5648.     \fi
  5649.   \else
  5650.     \global \vsize \@colht
  5651.     \global \@colroom \@colht
  5652.     \@floatplacement
  5653.   \fi
  5654. \output {%
  5655.   \let \par \@@par
  5656.   \ifnum \outputpenalty<-\@M
  5657.     \@specialoutput
  5658.   \else
  5659.     \@makecol
  5660.     \@opcol
  5661.     \@startcolumn
  5662.     \@whilesw \if@fcolmade \fi
  5663.       {%
  5664.        \@opcol\@startcolumn}%
  5665.   \fi
  5666.   \ifnum \outputpenalty>-\@Miv
  5667.     \ifdim \@colroom<2\baselineskip
  5668.       \@latex@warning@no@line {Text page \thepage\space
  5669.                                contains only floats}%
  5670.       \@emptycol
  5671.       \if@twocolumn
  5672.         \if@firstcolumn
  5673.         \else
  5674.           \@emptycol
  5675.         \fi
  5676.       \fi
  5677.     \else
  5678.       \global \vsize \@colroom
  5679.     \fi
  5680.   \else
  5681.     \global \vsize \maxdimen
  5682.   \fi
  5683. \def\@specialoutput{%
  5684.    \ifnum \outputpenalty>-\@Mii
  5685.      \@doclearpage
  5686.    \else
  5687.      \ifnum \outputpenalty<-\@Miii
  5688.        \ifnum \outputpenalty<-\@MM \deadcycles \z@ \fi
  5689.        \global \setbox\@holdpg \vbox {\unvbox\@cclv}%
  5690.      \else
  5691.        \global \setbox\@holdpg \vbox{%
  5692.                       \unvbox\@holdpg
  5693.                       \unvbox\@cclv
  5694.                       \setbox\@tempboxa \lastbox
  5695.                       \unskip
  5696.                                      }%
  5697.        \@pagedp \dp\@holdpg
  5698.        \@pageht \ht\@holdpg
  5699.        \unvbox \@holdpg
  5700.        \@next\@currbox\@currlist{%
  5701.          \ifnum \count\@currbox>\z@
  5702.            \advance \@pageht \@pagedp
  5703.            \ifvoid\footins \else
  5704.              \advance \@pageht \ht\footins
  5705.              \advance \@pageht \skip\footins
  5706.              \advance \@pageht \dp\footins
  5707.            \fi
  5708.            \ifvbox \@kludgeins
  5709.              \ifdim \wd\@kludgeins=\z@
  5710.                \advance \@pageht \ht\@kludgeins
  5711.              \fi
  5712.            \fi
  5713.            \@reinserts
  5714.            \@addtocurcol
  5715.          \else
  5716.            \@reinserts
  5717.            \@addmarginpar
  5718.          \fi
  5719.          }\@latexbug
  5720.        \ifnum \outputpenalty<\z@
  5721.          \if@nobreak
  5722.          \else
  5723.            \addpenalty \interlinepenalty
  5724.          \fi
  5725.        \fi
  5726.      \fi
  5727.    \fi
  5728. \def \@doclearpage {%
  5729.      \ifvoid\footins
  5730.        \setbox\@tempboxa\vsplit\@cclv to\z@ \unvbox\@tempboxa
  5731.        \setbox\@tempboxa\box\@cclv
  5732.        \xdef\@deferlist{\@toplist\@botlist\@deferlist}%
  5733.        \global \let \@toplist \@empty
  5734.        \global \let \@botlist \@empty
  5735.        \global \@colroom \@colht
  5736.        \ifx \@currlist\@empty
  5737.        \else
  5738.           \@latexerr{Float(s) lost}\@ehb
  5739.           \global \let \@currlist \@empty
  5740.        \fi
  5741.        \@makefcolumn\@deferlist
  5742.        \@whilesw\if@fcolmade \fi{\@opcol\@makefcolumn\@deferlist}%
  5743.        \if@twocolumn
  5744.          \if@firstcolumn
  5745.            \xdef\@dbldeferlist{\@dbltoplist\@dbldeferlist}%
  5746.            \global \let \@dbltoplist \@empty
  5747.            \global \@colht \textheight
  5748.            \begingroup
  5749.               \@dblfloatplacement
  5750.               \@makefcolumn\@dbldeferlist
  5751.               \@whilesw\if@fcolmade \fi{\@outputpage
  5752.                                         \@makefcolumn\@dbldeferlist}%
  5753.            \endgroup
  5754.          \else
  5755.            \vbox{}\clearpage
  5756.          \fi
  5757.        \fi
  5758.      \else
  5759.        \setbox\@cclv\vbox{\box\@cclv\vfil}%
  5760.        \@makecol\@opcol
  5761.        \clearpage
  5762.      \fi
  5763. \def \@opcol {%
  5764.   \if@twocolumn
  5765.     \@outputdblcol
  5766.   \else
  5767.     \@outputpage
  5768.   \fi
  5769.   \global \@mparbottom \z@ \global \@textfloatsheight \z@
  5770.   \@floatplacement
  5771. \def \@makecol {%
  5772.    \ifvoid\footins
  5773.      \setbox\@outputbox \box\@cclv
  5774.    \else
  5775.      \setbox\@outputbox \vbox {%
  5776.        \boxmaxdepth \@maxdepth
  5777.        \unvbox \@cclv
  5778.        \vskip \skip\footins
  5779.        \color@begingroup
  5780.          \normalcolor
  5781.          \footnoterule
  5782.          \unvbox \footins
  5783.        \color@endgroup
  5784.        }%
  5785.    \fi
  5786.    \xdef\@freelist{\@freelist\@midlist}%
  5787.    \global \let \@midlist \@empty
  5788.    \@combinefloats
  5789.    \ifvbox\@kludgeins
  5790.      \@makespecialcolbox
  5791.    \else
  5792.      \setbox\@outputbox \vbox to\@colht {%
  5793.        \@texttop
  5794.        \dimen@ \dp\@outputbox
  5795.        \unvbox \@outputbox
  5796.        \vskip -\dimen@
  5797.        \@textbottom
  5798.        }%
  5799.    \fi
  5800.    \global \maxdepth \@maxdepth
  5801. \def \@reinserts{%
  5802.   \ifvoid\footins\else\insert\footins{\unvbox\footins}\fi
  5803.   \ifvbox\@kludgeins\insert\@kludgeins{\unvbox\@kludgeins}\fi
  5804. \def \@makespecialcolbox {%
  5805.    \setbox\@outputbox \vbox {%
  5806.      \@texttop
  5807.      \dimen@ \dp\@outputbox
  5808.      \unvbox\@outputbox
  5809.      \vskip-\dimen@
  5810.      }%
  5811.    \@tempdima \@colht
  5812.    \ifdim \wd\@kludgeins>\z@
  5813.      \advance \@tempdima -\ht\@outputbox
  5814.      \advance \@tempdima \pageshrink
  5815.      \setbox\@outputbox \vbox to \@colht {%
  5816.        \unvbox\@outputbox
  5817.        \vskip \@tempdima
  5818.        \@textbottom
  5819.        }%
  5820.    \else
  5821.      \advance \@tempdima -\ht\@kludgeins
  5822.      \setbox \@outputbox \vbox to \@colht {%
  5823.        \vbox to \@tempdima {%
  5824.          \unvbox\@outputbox
  5825.          \@textbottom}%
  5826.        \vss}%
  5827.    \fi
  5828.    {\setbox \@tempboxa \box \@kludgeins}%
  5829. \let \@texttop \relax
  5830. \let \@textbottom \relax
  5831. \def\@activechar@info #1{%
  5832.       \@latex@info@no@line {Active #1 character found while
  5833.                             output routine is active
  5834.                             \MessageBreak
  5835.                             This may be a bug in a package file
  5836.                             you are using}%
  5837. \begingroup
  5838. \obeylines\obeyspaces%
  5839. \gdef\@resetactivechars{%
  5840. \def^^M{\@activechar@info{EOL}\space}%
  5841. \def {\@activechar@info{space}\space}}%
  5842. \endgroup
  5843. \def\@outputpage{%
  5844.   \let \protect \noexpand
  5845.   \shipout \vbox{%
  5846.     \set@typeset@protect
  5847.     \aftergroup\set@typeset@protect
  5848.     \@shipoutsetup
  5849.     \@begindvi
  5850.     \vskip \topmargin
  5851.     \moveright\@themargin \vbox {%
  5852.       \setbox\@tempboxa \vbox to\headheight{%
  5853.         \vfil
  5854.         \color@hbox
  5855.           \normalcolor
  5856.           \hb@xt@\textwidth {%
  5857.             \let \label \@gobble
  5858.             \let \index \@gobble
  5859.             \let \glossary \@gobble %% 21 Jun 91
  5860.             \@thehead
  5861.             }%
  5862.         \color@endbox
  5863.         }%                        %% 22 Feb 87
  5864.       \dp\@tempboxa \z@
  5865.       \box\@tempboxa
  5866.       \vskip \headsep
  5867.       \box\@outputbox
  5868.       \baselineskip \footskip
  5869.       \color@hbox
  5870.         \normalcolor
  5871.         \hb@xt@\textwidth{%
  5872.           \let \label \@gobble
  5873.           \let \index \@gobble      %% 22 Feb 87
  5874.           \let \glossary \@gobble   %% 21 Jun 91
  5875.           \@thefoot
  5876.           }%
  5877.       \color@endbox
  5878.       }%
  5879.     }%
  5880.   \global \@colht \textheight
  5881.   \stepcounter{page}%
  5882.   \let\firstmark\botmark
  5883. \def \@shipoutsetup {%
  5884.      \@resetactivechars
  5885.      \let\-\@dischyph
  5886.      \let\'\@acci\let\`\@accii\let\=\@acciii
  5887.      \let\\\@normalcr
  5888.      \if@specialpage
  5889.        \global\@specialpagefalse\@nameuse{ps@\@specialstyle}%
  5890.      \fi
  5891.      \if@twoside
  5892.        \ifodd\count\z@ \let\@thehead\@oddhead \let\@thefoot\@oddfoot
  5893.             \let\@themargin\oddsidemargin
  5894.        \else \let\@thehead\@evenhead
  5895.           \let\@thefoot\@evenfoot \let\@themargin\evensidemargin
  5896.        \fi
  5897.      \fi
  5898.      \reset@font
  5899.      \normalsize
  5900.      \baselineskip\z@skip \lineskip\z@skip \lineskiplimit\z@
  5901.      \let\par\@@par          %% 15 Sep 87
  5902. \def \@begindvi{%
  5903.   \unvbox \@begindvibox
  5904.   \global\let \@begindvi \@empty
  5905. \def \@combinefloats {%
  5906.     \ifx \@toplist\@empty \else \@cflt \fi
  5907.     \ifx \@botlist\@empty \else \@cflb \fi
  5908. \def \@cflt{%
  5909.     \let \@elt \@comflelt
  5910.     \setbox\@tempboxa \vbox{}%
  5911.     \@toplist
  5912.     \setbox\@outputbox \vbox{%
  5913.                              \boxmaxdepth \maxdepth
  5914.                              \unvbox\@tempboxa
  5915.                              \vskip -\floatsep
  5916.                              \topfigrule
  5917.                              \vskip \textfloatsep
  5918.                              \unvbox\@outputbox
  5919.                              }%
  5920.     \let\@elt\relax
  5921.     \xdef\@freelist{\@freelist\@toplist}%
  5922.     \global\let\@toplist\@empty
  5923. \def \@cflb {%
  5924.     \let\@elt\@comflelt
  5925.     \setbox\@tempboxa \vbox{}%
  5926.     \@botlist
  5927.     \setbox\@outputbox \vbox{%
  5928.                              \unvbox\@outputbox
  5929.                              \vskip \textfloatsep
  5930.                              \botfigrule
  5931.                              \unvbox\@tempboxa
  5932.                              \vskip -\floatsep
  5933.                              }%
  5934.     \let\@elt\relax
  5935.     \xdef\@freelist{\@freelist\@botlist}%
  5936.     \global \let \@botlist\@empty
  5937. \def\@comflelt#1{\setbox\@tempboxa
  5938.       \vbox{\unvbox\@tempboxa\box #1\vskip\floatsep}}
  5939. \def\@comdblflelt#1{\setbox\@tempboxa
  5940.       \vbox{\unvbox\@tempboxa\box #1\vskip\dblfloatsep}}
  5941. \def \@combinedblfloats{%
  5942.   \ifx \@dbltoplist \@empty
  5943.   \else
  5944.     \setbox\@tempboxa \vbox{}%
  5945.     \let \@elt \@comdblflelt
  5946.     \@dbltoplist
  5947.     \let \@elt \relax
  5948.     \xdef \@freelist {\@freelist\@dbltoplist}%
  5949.     \global\let \@dbltoplist \@empty
  5950.     \setbox\@outputbox \vbox to\textheight
  5951.       {%\boxmaxdepth\maxdepth   %% probably not needed, CAR
  5952.        \unvbox\@tempboxa\vskip-\dblfloatsep
  5953.        \ifnum \@dbltopnum>\m@ne
  5954.          \dblfigrule
  5955.        \fi
  5956.        \vskip \dbltextfloatsep
  5957.        \box\@outputbox
  5958.        }%
  5959.   \fi
  5960. \def \@startcolumn {%
  5961.   \global \@colroom \@colht
  5962.   \@tryfcolumn \@deferlist
  5963.   \if@fcolmade
  5964.   \else
  5965.     \begingroup
  5966.       \let \reserved@b \@deferlist
  5967.       \global \let \@deferlist \@empty
  5968.       \let \@elt \@scolelt
  5969.       \reserved@b
  5970.     \endgroup
  5971.   \fi
  5972. \def \@startdblcolumn {%
  5973.   \@tryfcolumn \@dbldeferlist
  5974.   \if@fcolmade
  5975.   \else
  5976.     \begingroup
  5977.       \let \reserved@b \@dbldeferlist
  5978.       \global \let \@dbldeferlist \@empty
  5979.       \let \@elt \@sdblcolelt
  5980.       \reserved@b
  5981.     \endgroup
  5982.   \fi
  5983. \def \@tryfcolumn #1{%
  5984.   \global \@fcolmadefalse
  5985.   \ifx #1\@empty
  5986.   \else
  5987.     \xdef\@trylist{#1}%
  5988.     \global \let \@failedlist \@empty
  5989.     \begingroup
  5990.       \let \@elt \@xtryfc \@trylist
  5991.     \endgroup
  5992.     \if@fcolmade
  5993.       \@vtryfc #1%
  5994.     \fi
  5995.   \fi
  5996. \def\@scolelt#1{\def\@currbox{#1}\@addtonextcol}
  5997. \def\@sdblcolelt#1{\def\@currbox{#1}\@addtodblcol}
  5998. \def\@vtryfc #1{\global\setbox\@outputbox\vbox{}\let\@elt\@wtryfc
  5999.        \@flsucceed \global\setbox\@outputbox
  6000.        \vbox to\@colht{\vskip \@fptop
  6001.        \vskip -\@fpsep \unvbox \@outputbox
  6002.        \vskip \@fpbot}\let\@elt\relax
  6003.        \xdef #1{\@failedlist\@flfail}%
  6004.        \xdef\@freelist{\@freelist\@flsucceed}}
  6005. \def\@wtryfc #1{\global\setbox\@outputbox\vbox{\unvbox\@outputbox
  6006.     \vskip\@fpsep\box #1}}
  6007. \def\@xtryfc #1{\@next\reserved@a\@trylist{}{}\@currtype
  6008.   \count #1\divide\@currtype\@xxxii \multiply\@currtype\@xxxii
  6009.   \@bitor \@currtype \@failedlist \@testfp #1\ifdim
  6010.     \ht #1>\@colht \global\@testtrue\fi
  6011.     \if@test \@cons\@failedlist #1\else \@ytryfc #1\fi}
  6012. \def\@ytryfc #1{\begingroup \gdef\@flsucceed{\@elt #1}%
  6013.   \global\let\@flfail\@empty
  6014.   \@tempdima\ht #1\let\@elt\@ztryfc \@trylist
  6015.   \ifdim \@tempdima >\@fpmin
  6016.      \global\@fcolmadetrue \else \@cons\@failedlist #1\fi
  6017.   \endgroup \if@fcolmade \let\@elt\@gobble \fi}
  6018. \def\@ztryfc #1{\@tempcnta\count #1\divide\@tempcnta\@xxxii
  6019.     \multiply\@tempcnta\@xxxii \@bitor \@tempcnta {\@failedlist
  6020.     \@flfail}\@testfp #1\@tempdimb\@tempdima
  6021.     \advance\@tempdimb\ht #1\advance
  6022.     \@tempdimb\@fpsep \ifdim \@tempdimb >\@colht \global\@testtrue\fi
  6023.     \if@test \@cons\@flfail #1\else
  6024.       \@cons\@flsucceed #1\@tempdima\@tempdimb
  6025.     \fi}
  6026. \def \@addtobot {%
  6027.    \@getfpsbit 4\relax
  6028.    \ifodd \@tempcnta
  6029.      \@flsetnum \@botnum
  6030.      \ifnum \@botnum>\z@
  6031.        \@tempswafalse
  6032.        \@flcheckspace \@botroom \@botlist
  6033.        \if@tempswa
  6034.          \global \maxdepth \z@
  6035.          \@flupdates \@botnum \@botroom \@botlist
  6036.          \@inserttrue
  6037.        \fi
  6038.      \fi
  6039.    \fi
  6040. \def \@addtotoporbot {%
  6041.    \@getfpsbit \tw@
  6042.    \ifodd \@tempcnta
  6043.      \@flsetnum \@topnum
  6044.      \ifnum \@topnum>\z@
  6045.        \@tempswafalse
  6046.        \@flcheckspace \@toproom \@toplist
  6047.        \if@tempswa
  6048.          \@bitor\@currtype{\@midlist\@botlist}%
  6049.          \if@test
  6050.          \else
  6051.           \@flupdates \@topnum \@toproom \@toplist
  6052.           \@inserttrue
  6053.          \fi
  6054.        \fi
  6055.      \fi
  6056.    \fi
  6057.    \if@insert
  6058.    \else
  6059.      \@addtobot
  6060.    \fi
  6061. \def \@addtocurcol {%
  6062.    \@insertfalse
  6063.    \@setfloattypecounts
  6064.    \ifnum \@fpstype=8
  6065.    \else
  6066.      \ifnum \@fpstype=24
  6067.      \else
  6068.        \@flsettextmin
  6069.        \advance \@textmin \@textfloatsheight
  6070.        \@reqcolroom \@pageht
  6071.        \ifdim \@textmin>\@reqcolroom
  6072.          \@reqcolroom \@textmin
  6073.        \fi
  6074.        \advance \@reqcolroom \ht\@currbox
  6075.        \ifdim \@colroom>\@reqcolroom
  6076.          \@flsetnum \@colnum
  6077.          \ifnum \@colnum>\z@
  6078.            \@bitor\@currtype\@deferlist
  6079.            \if@test
  6080.            \else
  6081.              \@bitor\@currtype\@botlist
  6082.              \if@test
  6083.                \@addtobot
  6084.              \else
  6085.                \ifodd \count\@currbox
  6086.                  \advance \@reqcolroom \intextsep
  6087.                  \ifdim \@colroom>\@reqcolroom
  6088.                    \global \advance \@colnum \m@ne
  6089.                    \global \advance \@textfloatsheight \ht\@currbox
  6090.                    \global \advance \@textfloatsheight 2\intextsep
  6091.                    \@cons \@midlist \@currbox
  6092.                    \if@nobreak
  6093.                    \else
  6094.                      \addpenalty \interlinepenalty
  6095.                    \fi
  6096.                    \vskip \intextsep
  6097.                    \box\@currbox
  6098.                    \penalty\interlinepenalty
  6099.                    \vskip\intextsep
  6100.                    \ifnum\outputpenalty <-\@Mii \vskip -\parskip\fi
  6101.                    \outputpenalty \z@
  6102.                    \@inserttrue
  6103.                  \fi
  6104.                \fi
  6105.                \if@insert
  6106.                \else
  6107.                  \@addtotoporbot
  6108.                \fi
  6109.              \fi
  6110.            \fi
  6111.          \fi
  6112.        \fi
  6113.      \fi
  6114.    \fi
  6115.    \if@insert
  6116.    \else
  6117.      \@resethfps
  6118.      \@cons\@deferlist\@currbox
  6119.    \fi
  6120. \def\@addtonextcol{%
  6121.   \begingroup
  6122.    \@insertfalse
  6123.    \@setfloattypecounts
  6124.    \ifnum \@fpstype=8
  6125.    \else
  6126.      \ifnum \@fpstype=24
  6127.      \else
  6128.        \@flsettextmin
  6129.        \@reqcolroom \ht\@currbox
  6130.        \advance \@reqcolroom \@textmin
  6131.        \ifdim \@colroom>\@reqcolroom
  6132.          \@flsetnum \@colnum
  6133.          \ifnum\@colnum>\z@
  6134.             \@bitor\@currtype\@deferlist
  6135.             \if@test
  6136.             \else
  6137.               \@addtotoporbot
  6138.             \fi
  6139.          \fi
  6140.        \fi
  6141.      \fi
  6142.    \fi
  6143.    \if@insert
  6144.    \else
  6145.      \@cons\@deferlist\@currbox
  6146.    \fi
  6147.   \endgroup
  6148. \def\@addtodblcol{%
  6149.   \begingroup
  6150.    \@insertfalse
  6151.    \@setfloattypecounts
  6152.    \@getfpsbit \tw@
  6153.    \ifodd\@tempcnta
  6154.      \@flsetnum \@dbltopnum
  6155.      \ifnum \@dbltopnum>\z@
  6156.        \@tempswafalse
  6157.        \ifdim \@dbltoproom>\ht\@currbox
  6158.          \@tempswatrue
  6159.        \else
  6160.          \ifnum \@fpstype<\sixt@@n
  6161.            \advance \@dbltoproom \@textmin
  6162.            \ifdim \@dbltoproom>\ht\@currbox
  6163.              \@tempswatrue
  6164.            \fi
  6165.            \advance \@dbltoproom -\@textmin
  6166.          \fi
  6167.        \fi
  6168.        \if@tempswa
  6169.            \@bitor \@currtype \@dbldeferlist
  6170.            \if@test
  6171.            \else
  6172.               \@tempdima -\ht\@currbox
  6173.               \advance\@tempdima
  6174.                 -\ifx \@dbltoplist\@empty \dbltextfloatsep \else
  6175.                                           \dblfloatsep \fi
  6176.               \global \advance \@dbltoproom \@tempdima
  6177.               \global \advance \@colht \@tempdima
  6178.               \global \advance \@dbltopnum \m@ne
  6179.               \@cons \@dbltoplist \@currbox
  6180.               \@inserttrue
  6181.            \fi
  6182.        \fi
  6183.      \fi
  6184.    \fi
  6185.    \if@insert
  6186.    \else
  6187.      \@cons\@dbldeferlist\@currbox
  6188.    \fi
  6189.   \endgroup
  6190. \def\@addmarginpar{\@next\@marbox\@currlist{\@cons\@freelist\@marbox
  6191.     \@cons\@freelist\@currbox}\@latexbug\@tempcnta\@ne
  6192.     \if@twocolumn
  6193.         \if@firstcolumn \@tempcnta\m@ne \fi
  6194.     \else
  6195.       \if@mparswitch
  6196.          \ifodd\c@page \else\@tempcnta\m@ne \fi
  6197.       \fi
  6198.       \if@reversemargin \@tempcnta -\@tempcnta \fi
  6199.     \fi
  6200.     \ifnum\@tempcnta <\z@  \global\setbox\@marbox\box\@currbox \fi
  6201.     \@tempdima\@mparbottom
  6202.     \advance\@tempdima -\@pageht
  6203.     \advance\@tempdima\ht\@marbox
  6204.     \ifdim\@tempdima >\z@
  6205.       \@latex@warning@no@line {Marginpar on page \thepage\space moved}%
  6206.     \else
  6207.       \@tempdima\z@
  6208.     \fi
  6209.     \global\@mparbottom\@pageht
  6210.     \global\advance\@mparbottom\@tempdima
  6211.     \global\advance\@mparbottom\dp\@marbox
  6212.     \global\advance\@mparbottom\marginparpush
  6213.     \advance\@tempdima -\ht\@marbox
  6214.     \global\setbox \@marbox
  6215.                    \vbox {\vskip \@tempdima
  6216.                           \box \@marbox}%
  6217.     \global \ht\@marbox \z@
  6218.     \global \dp\@marbox \z@
  6219.     \kern -\@pagedp
  6220.     \nointerlineskip
  6221.     \hb@xt@\columnwidth
  6222.       {\ifnum \@tempcnta >\z@
  6223.           \hskip\columnwidth \hskip\marginparsep
  6224.        \else
  6225.           \hskip -\marginparsep \hskip -\marginparwidth
  6226.        \fi
  6227.        \box\@marbox \hss}%
  6228.     \nointerlineskip
  6229.     \hbox{\vrule \@height\z@ \@width\z@ \@depth\@pagedp}}
  6230. \newinsert \@kludgeins
  6231. \dimen\@kludgeins \maxdimen
  6232. \count\@kludgeins 1000
  6233. \def \enlargethispage {%
  6234.    \@ifstar
  6235.      {%
  6236.       \@enlargepage{\hbox{\kern\p@}}}%
  6237.      {%
  6238.       \@enlargepage\@empty}%
  6239. \def\@enlargepage#1#2{%
  6240.    \@tempskipa#2\relax
  6241.    \ifdim \@tempskipa>.5\maxdimen
  6242.      \@latexerr{Suggested extra height (\the\@tempskipa)
  6243.                 dangerously large}\@eha
  6244.    \else
  6245.      \ifdim \vsize<.5\maxdimen
  6246.        \@bsphack
  6247.          \insert\@kludgeins{#1\vskip-\@tempskipa}%
  6248.        \@esphack
  6249.      \else
  6250.        \@latexerr{Page height already too large}\@eha
  6251.      \fi
  6252.    \fi
  6253. \def \suppressfloats {%
  6254.    \@ifnextchar [%
  6255.      \@flstop
  6256.     {\global \@colnum \z@}%
  6257. \def \@flstop [#1]{%
  6258.    \if t#1%
  6259.      \global \@topnum \z@
  6260.    \fi
  6261.    \if b#1%
  6262.      \global \@botnum \z@
  6263.    \fi
  6264. \newcount \@fpstype
  6265. \newdimen \@reqcolroom
  6266. \newdimen \@textfloatsheight
  6267. \def \@fpsadddefault {%
  6268.    \edef \@fps {\@fps\csname fps@\@captype \endcsname}%
  6269.    \@latex@warning {%
  6270.      No positions in optional float specifier.\MessageBreak
  6271.      Default added (so using `\@fps')}%
  6272. \def \@setfloattypecounts {%
  6273.   \@currtype \count\@currbox
  6274.   \@fpstype \count\@currbox
  6275.   \divide\@currtype\@xxxii \multiply\@currtype\@xxxii
  6276.   \advance \@fpstype -\@currtype
  6277. \def \@getfpsbit {%
  6278.    \@boxfpsbit \@currbox
  6279. \def \@boxfpsbit #1#2{%
  6280.    \@tempcnta \count#1%
  6281.    \divide \@tempcnta #2\relax
  6282. \def \@testfp #1{%
  6283.    \@boxfpsbit #18\relax % Really `#1 8' for human readers!
  6284.    \ifodd \@tempcnta
  6285.    \else
  6286.      \global \@testtrue
  6287.    \fi
  6288. \def \@setfpsbit #1{%
  6289.    \@tempcntb \@tempcnta
  6290.    \divide \@tempcntb #1\relax
  6291.    \ifodd \@tempcntb
  6292.    \else
  6293.      \advance \@tempcnta #1\relax
  6294.    \fi
  6295. \def \@resethfps {%
  6296.    \let\reserved@a\@empty
  6297.    \ifnum \@fpstype=\@ne
  6298.       \def \reserved@a {!}%
  6299.       \@fpstype 17
  6300.    \fi
  6301.    \ifnum \@fpstype=17
  6302.      \global \advance \count\@currbox \tw@
  6303.      \@latex@warning@no@line {%
  6304.        `\reserved@a h' float specifier changed to `\reserved@a ht'}%
  6305.    \fi
  6306. \def \@flsetnum #1{%
  6307.    \ifnum \@fpstype<\sixt@@n
  6308.      \ifnum #1=\z@
  6309.        #1\@ne
  6310.      \fi
  6311.    \fi
  6312. \def \@flsettextmin {%
  6313.    \ifnum \@fpstype<\sixt@@n
  6314.      \@textmin \z@
  6315.    \else
  6316.      \@textmin \textfraction\@colht
  6317.    \fi
  6318. \def \@flcheckspace #1#2{%
  6319.    \advance \@reqcolroom
  6320.      \ifx #2\@empty \textfloatsep \else \floatsep \fi
  6321.    \ifdim \@colroom>\@reqcolroom
  6322.      \ifdim #1>\ht\@currbox
  6323.        \@tempswatrue
  6324.      \else
  6325.        \ifnum \@fpstype<\sixt@@n
  6326.          \@tempswatrue
  6327.        \fi
  6328.      \fi
  6329.    \fi
  6330. \def \@flupdates #1#2#3{%
  6331.    \global \advance #1\m@ne
  6332.    \global \advance \@colnum \m@ne
  6333.    \@tempdima -\ht\@currbox
  6334.    \advance \@tempdima
  6335.      -\ifx #3\@empty \textfloatsep \else \floatsep \fi
  6336.    \global \advance #2\@tempdima
  6337.    \global \advance \@colroom \@tempdima
  6338.    \@cons #3\@currbox
  6339. \def\@makefcolumn #1{%
  6340.   \begingroup
  6341.     \@fpmin \z@
  6342.     \let \@testfp \@gobble
  6343.     \@tryfcolumn #1%
  6344.   \endgroup
  6345. \def\@outputdblcol{%
  6346.   \if@firstcolumn
  6347.     \global \@firstcolumnfalse
  6348.     \global \setbox\@leftcolumn \box\@outputbox
  6349.   \else
  6350.     \global \@firstcolumntrue
  6351.     \setbox\@outputbox \vbox {%
  6352.                          \hb@xt@\textwidth {%
  6353.                            \hb@xt@\columnwidth {%
  6354.                              \box\@leftcolumn \hss}%
  6355.                            \hfil
  6356.                            \vrule \@width\columnseprule
  6357.                            \hfil
  6358.                            \hb@xt@\columnwidth {%
  6359.                              \box\@outputbox \hss}%
  6360.                                              }%
  6361.                               }%
  6362.     \@combinedblfloats
  6363.     \@outputpage
  6364.     \begingroup
  6365.       \@dblfloatplacement
  6366.       \@startdblcolumn
  6367.       \@whilesw\if@fcolmade \fi
  6368.         {\@outputpage
  6369.          \@startdblcolumn}%
  6370.     \endgroup
  6371.   \fi
  6372. \newcount\c@topnumber
  6373. \setcounter{topnumber}{2}
  6374. \newcommand\topfraction{.7}
  6375. \newcount\c@bottomnumber
  6376. \setcounter{bottomnumber}{1}
  6377. \newcommand\bottomfraction{.3}
  6378. \newcount\c@totalnumber
  6379. \setcounter{totalnumber}{3}
  6380. \newcommand\textfraction{.2}
  6381. \newcommand\floatpagefraction{.5}
  6382. \newcount\c@dbltopnumber
  6383. \setcounter{dbltopnumber}{2}
  6384. \newcommand\dbltopfraction{.7}
  6385. \newcommand\dblfloatpagefraction{.5}
  6386. \newskip\floatsep
  6387. \newskip\textfloatsep
  6388. \newskip\intextsep
  6389. \setlength\floatsep    {12\p@ \@plus 2\p@ \@minus 2\p@}
  6390. \setlength\textfloatsep{20\p@ \@plus 2\p@ \@minus 4\p@}
  6391. \setlength\intextsep   {12\p@ \@plus 2\p@ \@minus 2\p@}
  6392. \newskip\dblfloatsep
  6393. \newskip\dbltextfloatsep
  6394. \setlength\dblfloatsep    {12\p@ \@plus 2\p@ \@minus 2\p@}
  6395. \setlength\dbltextfloatsep{20\p@ \@plus 2\p@ \@minus 4\p@}
  6396. \newskip\@fptop
  6397. \newskip\@fpsep
  6398. \newskip\@fpbot
  6399. \setlength\@fptop{0\p@ \@plus 1fil}
  6400. \setlength\@fpsep{8\p@ \@plus 2fil}
  6401. \setlength\@fpbot{0\p@ \@plus 1fil}
  6402. \newskip\@dblfptop
  6403. \newskip\@dblfpsep
  6404. \newskip\@dblfpbot
  6405. \setlength\@dblfptop{0\p@ \@plus 1fil}
  6406. \setlength\@dblfpsep{8\p@ \@plus 2fil}
  6407. \setlength\@dblfpbot{0\p@ \@plus 1fil}
  6408. \let\topfigrule=\relax
  6409. \let\botfigrule=\relax
  6410. \let\dblfigrule=\relax
  6411. %%% File: ltclass
  6412. \newif\if@compatibility
  6413. \def\@documentclasshook{%
  6414.    \ifx\@normalsize\@undefined
  6415.       \let\@normalsize\normalsize
  6416.    \fi
  6417. \let\@declaredoptions\@empty
  6418. \let\@classoptionslist\relax
  6419. \let\@unusedoptionlist\@empty
  6420. \let\CurrentOption\@empty
  6421. \let\@currname\@empty
  6422. \global\let\@currext=\@empty
  6423. \def\@clsextension{cls}
  6424. \def\@pkgextension{sty}
  6425. \@onlypreamble\@clsextension
  6426. \@onlypreamble\@pkgextension
  6427. \def\@pushfilename{%
  6428.   \xdef\@currnamestack{%
  6429.     {\@currname}%
  6430.     {\@currext}%
  6431.     {\the\catcode`\@}%
  6432.     \@currnamestack}}
  6433. \@onlypreamble\@pushfilename
  6434. \def\@popfilename{\expandafter\@p@pfilename\@currnamestack\@nil}
  6435. \@onlypreamble\@popfilename
  6436. \def\@p@pfilename#1#2#3#4\@nil{%
  6437.   \gdef\@currname{#1}%
  6438.   \gdef\@currext{#2}%
  6439.   \catcode`\@#3\relax
  6440.   \gdef\@currnamestack{#4}}
  6441. \@onlypreamble\@p@pfilename
  6442. \gdef\@currnamestack{}
  6443. \@onlypreamble\@currnamestack
  6444. \def\@ptionlist#1{%
  6445.   \@ifundefined{opt@#1}\@empty{\csname opt@#1\endcsname}}
  6446. \@onlypreamble\@ptionlist
  6447. \def\@ifpackageloaded{\@ifl@aded\@pkgextension}
  6448. \def\@ifclassloaded{\@ifl@aded\@clsextension}
  6449. \@onlypreamble\@ifpackageloaded
  6450. \@onlypreamble\@ifclassloaded
  6451. \def\@ifl@aded#1#2{%
  6452.   \expandafter\ifx\csname ver@#2.#1\endcsname\relax
  6453.     \expandafter\@secondoftwo
  6454.   \else
  6455.     \expandafter\@firstoftwo
  6456.   \fi}
  6457. \@onlypreamble\@ifl@aded
  6458. \def\@ifpackagelater{\@ifl@ter\@pkgextension}
  6459. \def\@ifclasslater{\@ifl@ter\@clsextension}
  6460. \@onlypreamble\@ifpackagelater
  6461. \@onlypreamble\@ifclasslater
  6462. \def\@ifl@ter#1#2{%
  6463.   \expandafter\@ifl@t@r
  6464.     \csname ver@#2.#1\endcsname}
  6465. \@onlypreamble\@ifl@ter
  6466. \def\@ifl@t@r#1#2{%
  6467.   \ifnum\expandafter\@parse@version#1//00\@nil<%
  6468.         \expandafter\@parse@version#2//00\@nil
  6469.     \expandafter\@secondoftwo
  6470.   \else
  6471.     \expandafter\@firstoftwo
  6472.   \fi}
  6473. \@onlypreamble\@ifl@t@r
  6474. \def\@parse@version#1/#2/#3#4#5\@nil{#1#2#3#4 }
  6475. \@onlypreamble\@parse@version
  6476. \def\@ifpackagewith{\@if@ptions\@pkgextension}
  6477. \def\@ifclasswith{\@if@ptions\@clsextension}
  6478. \@onlypreamble\@ifpackagewith
  6479. \@onlypreamble\@ifclasswith
  6480. \def\@if@ptions#1#2{%
  6481.   \@expandtwoargs\@if@pti@ns{\@ptionlist{#2.#1}}}
  6482. \@onlypreamble\@if@ptions
  6483. \def\@if@pti@ns#1#2{%
  6484.   \let\reserved@a\@firstoftwo
  6485.   \@for\reserved@b:=#2\do{%
  6486.     \expandafter\in@\expandafter{\expandafter,\reserved@b,}{,#1,}%
  6487.     \ifin@\else\let\reserved@a\@secondoftwo\fi}%
  6488.   \reserved@a}
  6489. \@onlypreamble\@if@pti@ns
  6490. \def\ProvidesPackage#1{%
  6491.   \xdef\@gtempa{#1}%
  6492.   \ifx\@gtempa\@currname\else
  6493.     \@latex@warning@no@line{You have requested
  6494.       \@cls@pkg\space`\@currname',\MessageBreak
  6495.        but the \@cls@pkg\space provides `#1'}%
  6496.   \fi
  6497.   \@ifnextchar[\@pr@videpackage{\@pr@videpackage[]}}%]
  6498. \@onlypreamble\ProvidesPackage
  6499. \def\@pr@videpackage[#1]{%
  6500.   \expandafter\xdef\csname ver@\@currname.\@currext\endcsname{#1}%
  6501.   \ifx\@currext\@clsextension
  6502.     \typeout{Document Class: \@gtempa\space#1}%
  6503.   \else
  6504.     \wlog{Package: \@gtempa\space#1}%
  6505.   \fi}
  6506. \@onlypreamble\@pr@videpackage
  6507. \let\ProvidesClass\ProvidesPackage
  6508. \@onlypreamble\ProvidesClass
  6509. \def\ProvidesFile#1{%
  6510.   \begingroup
  6511.     \catcode`\ 10 %
  6512.     \@makeother\/%
  6513.     \@ifnextchar[{\@providesfile{#1}}{\@providesfile{#1}[]}}
  6514. \def\@providesfile#1[#2]{%
  6515.     \wlog{File: #1 #2}%
  6516.     \expandafter\xdef\csname ver@#1\endcsname{#2}%
  6517.   \endgroup}
  6518. \def\@pass@ptions#1#2#3{%
  6519.   \expandafter\xdef\csname opt@#3.#1\endcsname{%
  6520.     \@ifundefined{opt@#3.#1}\@empty
  6521.       {\csname opt@#3.#1\endcsname,}%
  6522.     \zap@space#2 \@empty}}
  6523. \@onlypreamble\@pass@ptions
  6524. \def\PassOptionsToPackage{\@pass@ptions\@pkgextension}
  6525. \def\PassOptionsToClass{\@pass@ptions\@clsextension}
  6526. \@onlypreamble\PassOptionsToPackage
  6527. \@onlypreamble\PassOptionsToClass
  6528. \def\DeclareOption{%
  6529.   \let\@fileswith@pti@ns\@badrequireerror
  6530.   \@ifstar\@defdefault@ds\@declareoption}
  6531. \long\def\@declareoption#1#2{%
  6532.    \xdef\@declaredoptions{\@declaredoptions,#1}%
  6533.    \toks@{#2}%
  6534.    \expandafter\edef\csname ds@#1\endcsname{\the\toks@}}
  6535. \long\def\@defdefault@ds#1{%
  6536.   \toks@{#1}%
  6537.   \edef\default@ds{\the\toks@}}
  6538. \@onlypreamble\DeclareOption
  6539. \@onlypreamble\@declareoption
  6540. \@onlypreamble\@defdefault@ds
  6541. \def\OptionNotUsed{%
  6542.   \ifx\@currext\@clsextension
  6543.     \xdef\@unusedoptionlist{%
  6544.       \ifx\@unusedoptionlist\@empty\else\@unusedoptionlist,\fi
  6545.       \CurrentOption}%
  6546.   \fi}
  6547. \@onlypreamble\OptionNotUsed
  6548. \def\ProcessOptions{%
  6549.   \let\ds@\@empty
  6550.   \edef\@curroptions{\@ptionlist{\@currname.\@currext}}%
  6551.   \@ifstar\@xprocess@ptions\@process@ptions}
  6552. \@onlypreamble\ProcessOptions
  6553. \def\@process@ptions{%
  6554.   \@for\CurrentOption:=\@declaredoptions\do{%
  6555.     \ifx\CurrentOption\@empty\else
  6556.       \@expandtwoargs\in@{,\CurrentOption,}{%
  6557.          ,\ifx\@currext\@clsextension\else\@classoptionslist,\fi
  6558.          \@curroptions,}%
  6559.       \ifin@
  6560.         \@use@ption
  6561.         \expandafter\let\csname ds@\CurrentOption\endcsname\@empty
  6562.       \fi
  6563.     \fi}%
  6564.   \@process@pti@ns}
  6565. \@onlypreamble\@process@ptions
  6566. \def\@xprocess@ptions{%
  6567.   \ifx\@currext\@clsextension\else
  6568.     \@for\CurrentOption:=\@classoptionslist\do{%
  6569.       \ifx\CurrentOption\@empty\else
  6570.         \@expandtwoargs\in@{,\CurrentOption,}{,\@declaredoptions,}%
  6571.         \ifin@
  6572.           \@use@ption
  6573.           \expandafter\let\csname ds@\CurrentOption\endcsname\@empty
  6574.         \fi
  6575.       \fi}%
  6576.   \fi
  6577.   \@process@pti@ns}
  6578. \@onlypreamble\@xprocess@ptions
  6579. \def\@process@pti@ns{%
  6580.   \@for\CurrentOption:=\@curroptions\do{%
  6581.     \@ifundefined{ds@\CurrentOption}%
  6582.       {\@use@ption
  6583.        \default@ds}%
  6584.       \@use@ption}%
  6585.   \@for\CurrentOption:=\@declaredoptions\do{%
  6586.     \expandafter\let\csname ds@\CurrentOption\endcsname\relax}%
  6587.   \let\@fileswith@pti@ns\@@fileswith@pti@ns
  6588.   \AtEndOfPackage{\let\@unprocessedoptions\relax}}
  6589. \@onlypreamble\@process@pti@ns
  6590. \def\@options{\ProcessOptions*}
  6591. \@onlypreamble\@options
  6592. \def\@use@ption{%
  6593.   \@expandtwoargs\@removeelement\CurrentOption
  6594.   \@unusedoptionlist\@unusedoptionlist
  6595.   \csname ds@\CurrentOption\endcsname}
  6596. \@onlypreamble\@use@ption
  6597. \def\ExecuteOptions#1{%
  6598.   \def\reserved@a##1\@nil{%
  6599.     \@for\CurrentOption:=#1\do{\csname ds@\CurrentOption\endcsname}%
  6600.     \edef\CurrentOption{##1}}%
  6601.   \expandafter\reserved@a\CurrentOption\@nil}
  6602. \@onlypreamble\ExecuteOptions
  6603. \def\documentclass{%
  6604.   \let\documentclass\@twoclasseserror
  6605.   \if@compatibility\else\let\usepackage\RequirePackage\fi
  6606.   \@fileswithoptions\@clsextension}
  6607. \@onlypreamble\documentclass
  6608. \def\documentstyle{%
  6609.   \makeatletter\input{latex209.def}\makeatother
  6610.   \documentclass}
  6611. \@onlypreamble\documentstyle
  6612. \def\RequirePackage{%
  6613.   \@fileswithoptions\@pkgextension}
  6614. \@onlypreamble\RequirePackage
  6615. \def\LoadClass{%
  6616.   \ifx\@currext\@pkgextension
  6617.      \@latex@error
  6618.       {\noexpand\LoadClass in package file}%
  6619.       {You may only use \noexpand\LoadClass in a class file.}%
  6620.   \fi
  6621.   \@fileswithoptions\@clsextension}
  6622. \@onlypreamble\LoadClass
  6623. \def\usepackage#1#{%
  6624.   \@latex@error
  6625.     {\noexpand \usepackage before \string\documentclass}%
  6626.     {\noexpand \usepackage may only appear in the document
  6627.       preamble, i.e.,\MessageBreak
  6628.       between \noexpand\documentclass and
  6629.       \string\begin{document}.}%
  6630.   \@gobble}
  6631. \@onlypreamble\usepackage
  6632. \def\NeedsTeXFormat#1{%
  6633.   \def\reserved@a{#1}%
  6634.   \ifx\reserved@a\fmtname
  6635.     \expandafter\@needsformat
  6636.   \else
  6637.      \@latex@error{This file needs format `\reserved@a'%
  6638.        \MessageBreak but this is `\fmtname'}{%
  6639.        The current input file will not be processed
  6640.        further,\MessageBreak
  6641.        because it was written for some other flavor of
  6642.        TeX.\MessageBreak\@ehd}%
  6643.      \endinput \fi}
  6644. \@onlypreamble\NeedsTeXFormat
  6645. \def\@needsformat{%
  6646.   \@ifnextchar[%]
  6647.     \@needsf@rmat
  6648.     {}}
  6649. \@onlypreamble\@needsformat
  6650. \def\@needsf@rmat[#1]{%
  6651.     \@ifl@t@r\fmtversion{#1}{}%
  6652.     {\@latex@warning@no@line
  6653.         {You have requested release `#1' of LaTeX,\MessageBreak
  6654.          but only release `\fmtversion' is available}}}
  6655. \@onlypreamble\@needsf@rmat
  6656. \def\zap@space#1 #2{%
  6657.   #1%
  6658.   \ifx#2\@empty\else\expandafter\zap@space\fi
  6659.   #2}
  6660. \def\@fileswithoptions#1{%
  6661.   \@ifnextchar[%]
  6662.     {\@fileswith@ptions#1}%
  6663.     {\@fileswith@ptions#1[]}}
  6664. \@onlypreamble\@fileswithoptions
  6665. \def\@fileswith@ptions#1[#2]#3{%
  6666.   \@ifnextchar[%]
  6667.   {\@fileswith@pti@ns#1[#2]#3}%
  6668.   {\@fileswith@pti@ns#1[#2]#3[]}}
  6669. \@onlypreamble\@fileswith@ptions
  6670. \def\@fileswith@pti@ns#1[#2]#3[#4]{%
  6671.   \ifx#1\@clsextension
  6672.     \ifx\@classoptionslist\relax
  6673.       \xdef\@classoptionslist{\zap@space#2 \@empty}%
  6674.       \def\reserved@a{%
  6675.         \@onefilewithoptions#3[#2][#4]#1%
  6676.         \@documentclasshook}%
  6677.     \else
  6678.       \def\reserved@a{%
  6679.         \@onefilewithoptions#3[#2][#4]#1}%
  6680.     \fi
  6681.   \else
  6682.     \def\reserved@b##1,{%
  6683.       \ifx\@nil##1\relax\else
  6684.         \ifx\relax##1\relax\else
  6685.          \noexpand\@onefilewithoptions##1[#2][#4]\noexpand\@pkgextension
  6686.         \fi
  6687.         \expandafter\reserved@b
  6688.       \fi}%
  6689.       \edef\reserved@a{\zap@space#3 \@empty}%
  6690.       \edef\reserved@a{\expandafter\reserved@b\reserved@a,\@nil,}%
  6691.   \fi
  6692.   \reserved@a}
  6693. \@onlypreamble\@fileswith@pti@ns
  6694. \def\@onefilewithoptions#1[#2][#3]#4{%
  6695.   \@pushfilename
  6696.   \xdef\@currname{#1}%
  6697.   \global\let\@currext#4%
  6698.   \expandafter\let\csname\@currname.\@currext-h@@k\endcsname\@empty
  6699.   \let\CurrentOption\@empty
  6700.   \@reset@ptions
  6701.   \makeatletter
  6702.   \def\reserved@a{%
  6703.     \@ifl@aded\@currext{#1}%
  6704.       {\@if@ptions\@currext{#1}{#2}{}%
  6705.         {\@latex@error
  6706.             {Option clash for \@cls@pkg\space #1}%
  6707.             {The package #1 has already been loaded
  6708.              with options:\MessageBreak
  6709.              \space\space[\@ptionlist{#1.\@currext}]\MessageBreak
  6710.              There has now been an attempt to load it
  6711.               with options\MessageBreak
  6712.              \space\space[#2]\MessageBreak
  6713.              Adding the line:\MessageBreak
  6714.              \space\space\string\usepackage
  6715.                   [\@ptionlist{#1.\@currext},#2]{#1}\MessageBreak
  6716.              to your document may fix this.\MessageBreak
  6717.              Try typing \space <return> \space to proceed.}}}%
  6718.       {\@pass@ptions\@currext{#2}{#1}%
  6719.        \global\expandafter
  6720.        \let\csname ver@\@currname.\@currext\endcsname\@empty
  6721.        \InputIfFileExists
  6722.          {\@currname.\@currext}%
  6723.          {}%
  6724.          {\@missingfileerror\@currname\@currext}%
  6725.     \let\@unprocessedoptions\@@unprocessedoptions
  6726.     \csname\@currname.\@currext-h@@k\endcsname
  6727.     \expandafter\let\csname\@currname.\@currext-h@@k\endcsname
  6728.               \@undefined
  6729.     \@unprocessedoptions}
  6730.     \@ifl@ter\@currext{#1}{#3}{}%
  6731.       {\@latex@warning@no@line
  6732.          {You have requested,\on@line,
  6733.           version\MessageBreak
  6734.             `#3' of \@cls@pkg\space #1,\MessageBreak
  6735.           but only version\MessageBreak
  6736.            `\csname ver@#1.\@currext\endcsname'\MessageBreak
  6737.           is available}}%
  6738.     \ifx\@currext\@clsextension\let\LoadClass\@twoloadclasserror\fi
  6739.     \@popfilename
  6740.     \@reset@ptions}%
  6741.   \reserved@a}
  6742. \@onlypreamble\@onefilewithoptions
  6743. \let\@@fileswith@pti@ns\@fileswith@pti@ns
  6744. \@onlypreamble\@@fileswith@pti@ns
  6745. \def\@reset@ptions{%
  6746.   \global\ifx\@currext\@clsextension
  6747.     \let\default@ds\OptionNotUsed
  6748.    \else
  6749.     \let\default@ds\@unknownoptionerror
  6750.   \fi
  6751.   \global\let\ds@\@empty
  6752.   \global\let\@declaredoptions\@empty}
  6753. \@onlypreamble\@reset@ptions
  6754. \let\@begindocumenthook\@empty
  6755. \let\@enddocumenthook\@empty
  6756. \long\def\g@addto@macro#1#2{{%
  6757.   \toks@\expandafter{#1#2}%
  6758.   \xdef#1{\the\toks@}}}
  6759. \def\AtEndOfPackage{%
  6760.   \expandafter\g@addto@macro\csname\@currname.\@currext-h@@k\endcsname}
  6761. \let\AtEndOfClass\AtEndOfPackage
  6762. \@onlypreamble\AtEndOfPackage
  6763. \@onlypreamble\AtEndOfClass
  6764. \def\AtBeginDocument{\g@addto@macro\@begindocumenthook}
  6765. \def\AtEndDocument{\g@addto@macro\@enddocumenthook}
  6766. \@onlypreamble\AtBeginDocument
  6767. \def\@cls@pkg{%
  6768.   \ifx\@currext\@clsextension
  6769.     document class%
  6770.   \else
  6771.     package%
  6772.   \fi}
  6773. \@onlypreamble\@cls@pkg
  6774. \def\@unknownoptionerror{%
  6775.   \@latex@error
  6776.     {Unknown option `\CurrentOption' for \@cls@pkg\space`\@currname'}%
  6777.     {The option `\CurrentOption' was not declared in
  6778.      \@cls@pkg\space`\@currname', perhaps you\MessageBreak
  6779.       misspelled its name.
  6780.      Try typing \space <return>
  6781.      \space to proceed.}}
  6782. \@onlypreamble\@unknownoptionerror
  6783. \def\@@unprocessedoptions{%
  6784.   \ifx\@currext\@pkgextension
  6785.     \edef\@curroptions{\@ptionlist{\@currname.\@currext}}%
  6786.     \@for\CurrentOption:=\@curroptions\do\@unknownoptionerror
  6787.   \fi}
  6788. \@onlypreamble\@unprocessedoptions
  6789. \@onlypreamble\@@unprocessedoptions
  6790. \def\@badrequireerror#1[#2]#3[#4]{%
  6791.   \@latex@error
  6792.     {\noexpand\RequirePackage or \noexpand\LoadClass
  6793.          in Options Section}%
  6794.     {The \@cls@pkg\space `\@currname' is defective.\MessageBreak
  6795.      It attempts to load `#3' in the options section, i.e.,\MessageBreak
  6796.      between \noexpand\DeclareOption and \string\ProcessOptions.}}
  6797. \@onlypreamble\@badrequireerror
  6798. \def\@twoloadclasserror{%
  6799.   \@latex@error
  6800.     {Two \noexpand\LoadClass commands}%
  6801.     {You may only use one \noexpand\LoadClass in a class file}}
  6802. \@onlypreamble\@twoloadclasserror
  6803. \def\@twoclasseserror#1#{%
  6804.   \@latex@error
  6805.     {Two \noexpand\documentclass or \noexpand\documentstyle commands}%
  6806.     {The document may only declare one class.}\@gobble}
  6807. \@onlypreamble\@twoclasseserror
  6808. \def\two@digits#1{\ifnum#1<10 0\fi\number#1}
  6809. \begingroup%
  6810. \gdef\filecontents{\@tempswatrue\filec@ntents}%
  6811. \catcode`\*=11 %
  6812. \gdef\filecontents*{\@tempswafalse\filec@ntents}%
  6813. \catcode`\^^M\active%
  6814. \catcode`\^^L\active\let^^L\relax%
  6815. \catcode`\^^I\active%
  6816. \gdef\filec@ntents#1{%
  6817.   \openin\@inputcheck#1 %
  6818.   \ifeof\@inputcheck%
  6819.     \@latex@warning@no@line%
  6820.         {Writing file `\@currdir#1'}%
  6821.     \chardef\verbatim@out15 %
  6822.     \ch@ck7\verbatim@out\write%
  6823.   \else%
  6824.     \closein\@inputcheck%
  6825.     \@latex@warning@no@line%
  6826.             {File `#1' already exists on the system.\MessageBreak%
  6827.              Not generating it from this source}%
  6828.     \def\immediate##1\relax{}%
  6829.   \fi%
  6830.   \immediate\openout\verbatim@out=#1\relax%
  6831.   \if@tempswa%
  6832.     \immediate\write\verbatim@out{%
  6833.       \@percentchar\@percentchar\space LaTeX2e file `#1'^^J%
  6834.       \@percentchar\@percentchar\space  generated by the %
  6835.          `filecontents' environment^^J%
  6836.       \@percentchar\@percentchar\space from source `\jobname' on %
  6837.          \number\year/\two@digits\month/\two@digits\day.^^J%
  6838.       \@percentchar\@percentchar}\relax%
  6839.   \fi%
  6840.   \let\do\@makeother\dospecials%
  6841.   \@vwrend%
  6842. \catcode`\^^L\active%
  6843. \let\L\@undefined%
  6844. \def^^L{\@ifundefined L^^J^^J^^J}%
  6845. \catcode`\^^I\active%
  6846. \let\I\@undefined%
  6847. \def^^I{\@ifundefined I\space\space}%
  6848.   \catcode`\^^M\active%
  6849.   \def^^M##1^^M%
  6850.     {\def\reserved@b{##1}%
  6851.      \ifx\reserved@b\reserved@a%
  6852.        \expandafter\end\expandafter{\@currenvir}%
  6853.      \else%
  6854.        \immediate\write\verbatim@out{##1}\relax\expandafter^^M%
  6855.      \fi}}%
  6856. \endgroup%
  6857. \begingroup
  6858. \catcode`/=0
  6859. \catcode`<=\catcode`{
  6860. \catcode`>=\catcode`}
  6861. \catcode`|=\catcode`\%
  6862. /catcode`/\=12
  6863. /catcode`/{=12
  6864. /catcode`/}=12
  6865. /catcode`/%=12
  6866. /catcode`/*=11
  6867. /gdef/@percentchar<%>
  6868. /gdef/@vwrend</edef/reserved@a<\end{/@currenvir}>>
  6869. /gdef/endfilecontents<|
  6870.   /immediate/closeout/verbatim@out/relax
  6871.   /ifx/L/@undefined/else
  6872.     /@latex@warning@no@line<Form Feed has been converted to Blank Line>|
  6873.   /fi
  6874.   /ifx/I/@undefined/else
  6875.     /@latex@warning@no@line<Tab has been converted to Space>|
  6876.   /fi
  6877.   /immediate/write/@unused<>/relax>
  6878. /global/let/endfilecontents*/endfilecontents|
  6879. /@onlypreamble/filecontents
  6880. /@onlypreamble/endfilecontents
  6881. /@onlypreamble/filecontents*
  6882. /@onlypreamble/endfilecontents*
  6883. /endgroup
  6884. \@onlypreamble\filec@ntents
  6885. \@onlypreamble\@vwrend
  6886. %%% File: ltfinal
  6887. \def\showoverfull{\tracingonline\@ne}
  6888. \def\showoutput{\tracingonline\@ne\tracingoutput\@ne
  6889.     \showboxbreadth\maxdimen\showboxdepth\maxdimen\errorstopmode}
  6890. \tracingstats1
  6891. \errhelp{}
  6892. \newcount\@lowpenalty
  6893. \newcount\@medpenalty
  6894. \newcount\@highpenalty
  6895. \unitlength = 1pt
  6896. \fboxsep = 3pt
  6897. \fboxrule = .4pt
  6898. \@maxdepth       = \maxdepth
  6899. \vsize = 1000pt
  6900. \@colroom = \vsize
  6901. \@colht = \vsize
  6902. \textheight=.5\maxdimen
  6903. \textwidth=\textheight
  6904. \ps@empty
  6905. \InputIfFileExists{hyphen.cfg}
  6906.            {\typeout{********************************************^^J%
  6907.                      * Local configuration file hyphen.cfg used^^J%
  6908.                      ********************************************}}
  6909.            {\input{hyphen.ltx}}
  6910. \ifdim \font@submax >\z@
  6911.    \@font@warning{Size substitutions with differences\MessageBreak
  6912.                  up to \font@submax\space have occured.\MessageBreak
  6913.                 \MessageBreak
  6914.                 Please check the transcript file
  6915.                 carefully\MessageBreak
  6916.                 and redo the format generation if necessary!
  6917.                 \@gobbletwo}%
  6918.    \errhelp{Only stopped, to give you time to
  6919.             read the above message.}
  6920.    \errmessage{}
  6921. \def\font@submax{0pt}
  6922. \def\reserved@a#1#2{%
  6923.    \@tempcnta#1\relax
  6924.    \@tempcntb#2\relax
  6925.    \reserved@b
  6926. \def\reserved@b{%
  6927.    \ifnum\@tempcnta>\@tempcntb\else
  6928.       \reserved@c\@tempcnta
  6929.       \advance\@tempcnta\@ne
  6930.       \expandafter\reserved@b
  6931.    \fi
  6932. \catcode`\ =10
  6933. \catcode`\#=6
  6934. \catcode`\$=3
  6935. \catcode`\%=14
  6936. \catcode`\&=4
  6937. \catcode`\\=0
  6938. \catcode`\^=7
  6939. \catcode`\_=8
  6940. \catcode`\{=1
  6941. \catcode`\}=2
  6942. \catcode`\~=13
  6943. \catcode`\@=11
  6944. \catcode`\^^I=10
  6945. \catcode`\^^J=12
  6946. \catcode`\^^L=13
  6947. \catcode`\^^M=5
  6948. \def\reserved@c#1{\catcode#1=12\relax}
  6949. \reserved@c{`\!}
  6950. \reserved@c{`\"}
  6951. \reserved@a{`\'}{`\?}
  6952. \reserved@c{`\[}
  6953. \reserved@c{`\]}
  6954. \reserved@c{`\`}
  6955. \reserved@c{`\|}
  6956. \def\reserved@c#1{\catcode#1=11\relax}
  6957. \reserved@a{`\A}{`\Z}
  6958. \reserved@a{`\a}{`\z}
  6959. \def\reserved@c#1{\catcode#1=15\relax}
  6960. \reserved@a{0}{`\^^H}
  6961. \reserved@c{`\^^K}
  6962. \reserved@a{`\^^N}{31}
  6963.   \catcode"7F=15
  6964. \def\reserved@c#1{%
  6965.    \count@=#1\advance\count@ by -"20
  6966.    \uccode#1=\count@
  6967.    \lccode#1=#1
  6968. \reserved@a{`\a}{`\z}
  6969. \ifnum\inputlineno=\m@ne\else
  6970.   \reserved@a{"A0}{"BC}
  6971.   \reserved@a{"E0}{"FF}
  6972. \def\reserved@c#1{%
  6973.    \count@=#1\advance\count@ by "20
  6974.    \uccode#1=#1
  6975.    \lccode#1=\count@
  6976.    \sfcode#1=999
  6977. \reserved@a{`\A}{`\Z}
  6978. \ifnum\inputlineno=\m@ne\else
  6979.   \reserved@a{"80}{"9C}
  6980.   \reserved@a{"C0}{"DF}
  6981. \uccode`\^^Y=`\I     % dotless i
  6982. \lccode`\^^Y=`\^^Y   % dotless i
  6983. \uccode`\^^Z=`\J     % dotless j, ae in OT1
  6984. \lccode`\^^Z=`\^^Z   % dotless j, ae in OT1
  6985. \ifnum\inputlineno=\m@ne\else
  6986.   \lccode`\^^9d=`\i    % dotted I
  6987.   \uccode`\^^9d=`\^^9d % dotted I
  6988.   \lccode`\^^9e=`\^^9e % d-bar
  6989.   \uccode`\^^9e=`\^^d0 % d-bar
  6990. \let\reserved@a=\@undefined
  6991. \let\reserved@b=\@undefined
  6992. \let\reserved@c=\@undefined
  6993. \DeclareRobustCommand{\MakeUppercase}[1]{{%
  6994.       \def\i{I}\def\j{J}%
  6995.       \def\reserved@a##1##2{\let##1##2\reserved@a}%
  6996.       \expandafter\reserved@a\@uclclist\reserved@b{\reserved@b\@gobble}%
  6997.       \protected@edef\reserved@a{\uppercase{#1}}%
  6998.       \reserved@a
  6999.    }}
  7000. \DeclareRobustCommand{\MakeLowercase}[1]{{%
  7001.       \def\reserved@a##1##2{\let##2##1\reserved@a}%
  7002.       \expandafter\reserved@a\@uclclist\reserved@b{\reserved@b\@gobble}%
  7003.       \protected@edef\reserved@a{\lowercase{#1}}%
  7004.       \reserved@a
  7005.    }}
  7006. \def\@uclclist{\oe\OE\o\O\ae\AE\aa\AA
  7007.       \dh\DH\dj\DJ\l\L\ng\NG\ss\SS\th\TH}
  7008. \protected@edef\MakeUppercase#1{\MakeUppercase{#1}}
  7009. \protected@edef\MakeLowercase#1{\MakeLowercase{#1}}
  7010. \IfFileExists{ltpatch.ltx}
  7011.   {\typeout{***********************************^^J%
  7012.             * Applying patch file ltpatch.ltx *^^J%
  7013.             ***********************************}
  7014.    \def\fmtversion@topatch{unknown}
  7015.    \input{ltpatch.ltx}
  7016.    \ifx\fmtversion\fmtversion@topatch
  7017.       \ifx\patch@level\@undefined
  7018.         \typeout{^^J^^J^^J%
  7019.          !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!^^J%
  7020.          !! Patch file `ltpatch.ltx' not suitable for this^^J%
  7021.          !! version of LaTeX.^^J^^J%
  7022.          !! Please check if initex found an old patch file:^^J%
  7023.          !! --- if so, rename it or delete it, and redo the^^J%
  7024.          !! initex run.^^J%
  7025.          !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!^^J}%
  7026.         \batchmode \@@end
  7027.       \else
  7028.         \def\fmtversion@topatch{0}%
  7029.         \ifx\fmtversion@topatch\patch@level\else
  7030.           \def\reserved@a\typeout##1##2\reserved@a{%
  7031.                  \typeout{##1 patch level \patch@level}##2}
  7032.           \everyjob\expandafter\expandafter\expandafter{%
  7033.              \expandafter\reserved@a\the\everyjob\reserved@a}
  7034.           \let\reserved@a\relax
  7035.           \the\everyjob
  7036.         \fi
  7037.       \fi
  7038.    \else
  7039.       \typeout{^^J^^J^^J%
  7040.      !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!^^J%
  7041.      !! Patch file `ltpatch.ltx' (for version <\fmtversion@topatch>)^^J%
  7042.      !! is not suitable for version <\fmtversion> of LaTeX.^^J^^J%
  7043.      !! Please check if initex found an old patch file:^^J%
  7044.      !! --- if so, rename it or delete it, and redo the^^J%
  7045.      !!     initex run.^^J%
  7046.      !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!^^J}%
  7047.        \batchmode \@@end
  7048.    \fi
  7049.    \let\fmtversion@topatch\relax
  7050.   }{}
  7051. \let\@filelist\@gobble
  7052. \makeatother
  7053. \errorstopmode
  7054. \dump
  7055. \endinput
  7056. %% End of file `latex.ltx'.
  7057.