%% @texfile{ %% filename="amstex.tex", %% version="2.1", %% date="5-APR-1991", %% filetype="AMS-TeX: documentstyle", %% copyright="Copyright (C) American Mathematical Society, %% all rights reserved. Copying of this file is %% authorized only if either: %% (1) you make absolutely no changes to your copy %% including name; OR %% (2) if you do make changes, you first rename it to some %% other name.", %% author="American Mathematical Society", %% address="American Mathematical Society, %% Technical Support Department, %% P. O. Box 6248, %% Providence, RI 02940, %% USA", %% telephone="401-455-4080 or (in the USA) 800-321-4AMS", %% email="Internet: Tech-Support@Math.AMS.org", %% codetable="ISO/ASCII", %% checksumtype="line count", %% checksum="1797", %% keywords="amstex, ams-tex, tex", %% abstract="This file contains the AMS-TeX Version 2.1 macro %% package. It is intended to be used in conjunction with %% plain TeX. The macros defined herein are chiefly oriented %% to the construction of mathematical formulas, both display %% and nondisplay, using AMS conventions for fonts, spacing, %% and other details." %% } \def\fmtname{AmS-TeX} \let\plainfmtversion\fmtversion \def\fmtversion{2.1} \catcode`\@=11 \ifx\amstexloaded@\relax\catcode`\@=\active \endinput\else\let\amstexloaded@\relax\fi \newlinechar=`\^^J \def\W@{\immediate\write\sixt@@n} \def\CR@{\W@{^^J\fmtname - Version \fmtversion^^J% COPYRIGHT 1985, 1990, 1991 - AMERICAN MATHEMATICAL SOCIETY^^J% Use of this macro package is not restricted provided^^J% each use is acknowledged upon publication.^^J}} \CR@ \everyjob{\CR@} \message{Loading definitions for} \message{misc utility macros,} \toksdef\toks@@=2 \long\def\rightappend@#1\to#2{\toks@{\\{#1}}\toks@@ =\expandafter{#2}\xdef#2{\the\toks@@\the\toks@}\toks@{}\toks@@{}} \def\alloclist@{} \newif\ifalloc@ \def\showallocations{{\def\\{\immediate\write\m@ne}\alloclist@}\alloc@true} \def\alloc@#1#2#3#4#5{\global\advance\count1#1by\@ne \ch@ck#1#4#2\allocationnumber=\count1#1 \global#3#5=\allocationnumber \edef\next@{\string#5=\string#2\the\allocationnumber}% \expandafter\rightappend@\next@\to\alloclist@} \newcount\count@@ \newcount\count@@@ \def\FN@{\futurelet\next} \def\DN@{\def\next@} \def\DNii@{\def\nextii@} \def\RIfM@{\relax\ifmmode} \def\RIfMIfI@{\relax\ifmmode\ifinner} \def\setboxz@h{\setbox\z@\hbox} \def\wdz@{\wd\z@} \def\boxz@{\box\z@} \def\setbox@ne{\setbox\@ne} \def\wd@ne{\wd\@ne} \def\iterate{\body\expandafter\iterate\else\fi} \def\err@#1{\errmessage{AmS-TeX error: #1}} \newhelp\defaulthelp@{Sorry, I already gave what help I could...^^J Maybe you should try asking a human?^^J An error might have occurred before I noticed any problems.^^J ``If all else fails, read the instructions.''} \def\Err@{\errhelp\defaulthelp@\err@} \def\eat@#1{} \def\in@#1#2{\def\in@@##1#1##2##3\in@@{\ifx\in@##2\in@false\else\in@true\fi}% \in@@#2#1\in@\in@@} \newif\ifin@ \def\space@.{\futurelet\space@\relax} \space@. % \newhelp\athelp@ {Only certain combinations beginning with @ make sense to me.^^J Perhaps you wanted \string\@\space for a printed @?^^J I've ignored the character or group after @.} {\catcode`\~=\active % just in case \lccode`\~=`\@ \lowercase{\gdef~{\FN@\at@}}} \def\at@{\let\next@\at@@ \ifcat\noexpand\next a\else\ifcat\noexpand\next0\else \ifcat\noexpand\next\relax\else \let\next\at@@@\fi\fi\fi \next@} \def\at@@#1{\expandafter \ifx\csname\space @\string#1\endcsname\relax \expandafter\at@@@ \else \csname\space @\string#1\expandafter\endcsname\fi} \def\at@@@#1{\errhelp\athelp@ \err@{\Invalid@@ @}}%% \def\atdef@#1{\expandafter\def\csname\space @\string#1\endcsname}%% \newhelp\defahelp@{If you typed \string\define\space cs instead of \string\define\string\cs\space^^J I've substituted an inaccessible control sequence so that your^^J definition will be completed without mixing me up too badly.^^J If you typed \string\define{\string\cs} the inaccessible control sequence^^J was defined to be \string\cs, and the rest of your^^J definition appears as input.} \newhelp\defbhelp@{I've ignored your definition, because it might^^J conflict with other uses that are important to me.} \def\define{\FN@\define@} \def\define@{\ifcat\noexpand\next\relax \expandafter\define@@\else\errhelp\defahelp@ %1 \err@{\string\define\space must be followed by a control sequence}\expandafter\def\expandafter\nextii@\fi} %2 \def\undefined@@@@@@@@@@{} \def\preloaded@@@@@@@@@@{} \def\next@@@@@@@@@@{} \def\define@@#1{\ifx#1\relax\errhelp\defbhelp@ %1 \err@{\string#1\space is already defined}\DN@{\DNii@}\else \expandafter\ifx\csname\expandafter\eat@\string %2 #1@@@@@@@@@@\endcsname\undefined@@@@@@@@@@\errhelp\defbhelp@ \err@{\string#1\space can't be defined}\DN@{\DNii@}\else \expandafter\ifx\csname\expandafter\eat@\string#1\endcsname\relax %3 \global\let#1\undefined\DN@{\def#1}\else\errhelp\defbhelp@ \err@{\string#1\space is already defined}\DN@{\DNii@}\fi \fi\fi\next@} \let\redefine\def \def\predefine#1#2{\let#1#2} \def\undefine#1{\let#1\undefined} \message{page layout,} \newdimen\captionwidth@ \captionwidth@\hsize \advance\captionwidth@-1.5in \def\pagewidth#1{\hsize#1\relax \captionwidth@\hsize\advance\captionwidth@-1.5in} \def\pageheight#1{\vsize#1\relax} \def\hcorrection#1{\advance\hoffset#1\relax} \def\vcorrection#1{\advance\voffset#1\relax} \message{accents/punctuation,} \def\tie{\unskip\nobreak\ } \let\graveaccent\` \let\acuteaccent\' \let\tildeaccent\~ \let\hataccent\^ \let\underscore\_ \let\B\= \let\D\. \let\ic@\/ \def\/{\unskip\ic@} \def\textfonti{\the\textfont\@ne} \def\t#1#2{{\edef\next@{\the\font}\textfonti\accent"7F \next@#1#2}} \def~{\unskip\nobreak\ \ignorespaces} \def\.{.\spacefactor\@m} \atdef@;{\leavevmode\null;} \atdef@:{\leavevmode\null:} \atdef@?{\leavevmode\null?} \edef\@{\string @} \def\relaxnext@{\let\next\relax} \atdef@-{\relaxnext@\leavevmode \DN@{\ifx\next-\DN@-{\FN@\nextii@}\else \DN@{\leavevmode\hbox{-}}\fi\next@}% \DNii@{\ifx\next-\DN@-{\leavevmode\hbox{---}}\else \DN@{\leavevmode\hbox{--}}\fi\next@}% \FN@\next@} \def\srdr@{\kern.16667em} \def\drsr@{\kern.02778em} \def\sldl@{\drsr@} \def\dlsl@{\srdr@} \atdef@"{\unskip\relaxnext@ \DN@{\ifx\next\space@\DN@. {\FN@\nextii@}\else \DN@.{\FN@\nextii@}\fi\next@.}% \DNii@{\ifx\next`\DN@`{\FN@\nextiii@}\else \ifx\next\lq\DN@\lq{\FN@\nextiii@}\else \DN@####1{\FN@\nextiv@}\fi\fi\next@}% \def\nextiii@{\ifx\next`\DN@`{\sldl@``}\else\ifx\next\lq \DN@\lq{\sldl@``}\else\DN@{\dlsl@`}\fi\fi\next@}% \def\nextiv@{\ifx\next'\DN@'{\srdr@''}\else \ifx\next\rq\DN@\rq{\srdr@''}\else\DN@{\drsr@'}\fi\fi\next@}% \FN@\next@} \def\flushpar{\par\noindent} \def\textfontii{\the\textfont\tw@} \def\lbrace@{\delimiter"4266308 } \def\rbrace@{\delimiter"5267309 } \def\{{\RIfM@\lbrace@\else{\textfontii f}\spacefactor\@m\fi} \def\}{\RIfM@\rbrace@\else \let\@sf\empty\ifhmode\edef\@sf{\spacefactor\the\spacefactor}\fi {\textfontii g}\@sf\relax\fi} \let\lbrace\{ \let\rbrace\} \def\AmSTeX{{\textfontii A\kern-.1667em% \lower.5ex\hbox{M}\kern-.125emS}-\TeX} \message{line and page breaks,} \def\vmodeerr@#1{\Err@{\string#1\space not allowed between paragraphs}} \def\mathmodeerr@#1{\Err@{\string#1\space not allowed in math mode}} \def\linebreak{\RIfM@\mathmodeerr@\linebreak\else \ifhmode\unskip\unkern\break\else\vmodeerr@\linebreak\fi\fi} \def\slash{\unskip/\penalty\exhyphenpenalty} \newskip\saveskip@ \def\allowlinebreak{\RIfM@\mathmodeerr@\allowlinebreak\else \ifhmode\saveskip@\lastskip\unskip \allowbreak\ifdim\saveskip@>\z@\hskip\saveskip@\fi \else\vmodeerr@\allowlinebreak\fi\fi} \def\nolinebreak{\RIfM@\mathmodeerr@\nolinebreak\else \ifhmode\saveskip@\lastskip\unskip \nobreak\ifdim\saveskip@>\z@\hskip\saveskip@\fi \else\vmodeerr@\nolinebreak\fi\fi} \def\newline{\relaxnext@ \DN@{\RIfM@\expandafter\mathmodeerr@\expandafter\newline\else \ifhmode\ifx\next\par\else \expandafter\unskip\expandafter\null\expandafter\hfill\expandafter\break\fi \else \expandafter\vmodeerr@\expandafter\newline\fi\fi}% \FN@\next@} \def\dmatherr@#1{\Err@{\string#1\space not allowed in display math mode}} \def\nondmatherr@#1{\Err@{\string#1\space not allowed in non-display math mode}} \def\onlydmatherr@#1{\Err@{\string#1\space allowed only in display math mode}} \def\nonmatherr@#1{\Err@{\string#1\space allowed only in math mode}} \def\mathbreak{\RIfMIfI@\break\else \dmatherr@\mathbreak\fi\else\nonmatherr@\mathbreak\fi} \def\nomathbreak{\RIfMIfI@\nobreak\else \dmatherr@\nomathbreak\fi\else\nonmatherr@\nomathbreak\fi} \def\allowmathbreak{\RIfMIfI@\allowbreak\else \dmatherr@\allowmathbreak\fi\else\nonmatherr@\allowmathbreak\fi} \def\pagebreak{\RIfM@ \ifinner\nondmatherr@\pagebreak\else\postdisplaypenalty-\@M\fi \else\ifvmode\removelastskip\break\else\vadjust{\break}\fi\fi} \def\nopagebreak{\RIfM@ \ifinner\nondmatherr@\nopagebreak\else\postdisplaypenalty\@M\fi \else\ifvmode\nobreak\else\vadjust{\nobreak}\fi\fi} \def\nonvmodeerr@#1{\Err@{\string#1\space not allowed within a paragraph or in math}} \def\vnonvmode@#1#2{\relaxnext@\DNii@{\ifx\next\par\DN@{#1}\else \DN@{#2}\fi\next@}% \ifvmode\DN@{#1}\else \DN@{\FN@\nextii@}\fi\next@} \def\newpage{\vnonvmode@{\vfill\break}{\nonvmodeerr@\newpage}} \def\smallpagebreak{\vnonvmode@\smallbreak{\nonvmodeerr@\smallpagebreak}} \def\medpagebreak{\vnonvmode@\medbreak{\nonvmodeerr@\medpagebreak}} \def\bigpagebreak{\vnonvmode@\bigbreak{\nonvmodeerr@\bigpagebreak}} \def\NoBlackBoxes{\global\overfullrule\z@} \def\BlackBoxes{\global\overfullrule5\p@} \def\Invalid@#1{\def#1{\Err@{\Invalid@@\string#1}}} \def\Invalid@@{Invalid use of } \message{figures,} \Invalid@\caption \Invalid@\captionwidth \newdimen\smallcaptionwidth@ \def\topspace{\mid@false\ins@} \def\midspace{\mid@true\ins@} \newif\ifmid@ \def\captionfont@{} \def\ins@#1{\relaxnext@\allowbreak \smallcaptionwidth@\captionwidth@\gdef\thespace@{#1}% \DN@{\ifx\next\space@\DN@. {\FN@\nextii@}\else \DN@.{\FN@\nextii@}\fi\next@.}% \DNii@{\ifx\next\caption\DN@\caption{\FN@\nextiii@}% \else\let\next@\nextiv@\fi\next@}% \def\nextiv@{\vnonvmode@ {\ifmid@\expandafter\midinsert\else\expandafter\topinsert\fi \vbox to\thespace@{}\endinsert} {\ifmid@\nonvmodeerr@\midspace\else\nonvmodeerr@\topspace\fi}}% \def\nextiii@{\ifx\next\captionwidth\expandafter\nextv@ \else\expandafter\nextvi@\fi}% \def\nextv@\captionwidth##1##2{\smallcaptionwidth@##1\relax\nextvi@{##2}}% \def\nextvi@##1{\def\thecaption@{\captionfont@##1}% \DN@{\ifx\next\space@\DN@. {\FN@\nextvii@}\else \DN@.{\FN@\nextvii@}\fi\next@.}% \FN@\next@}% \def\nextvii@{\vnonvmode@ {\ifmid@\expandafter\midinsert\else \expandafter\topinsert\fi\vbox to\thespace@{}\nobreak\smallskip \setboxz@h{\noindent\ignorespaces\thecaption@\unskip}% \ifdim\wdz@>\smallcaptionwidth@\centerline{\vbox{\hsize\smallcaptionwidth@ \noindent\ignorespaces\thecaption@\unskip}}% \else\centerline{\boxz@}\fi\endinsert} {\ifmid@\nonvmodeerr@\midspace \else\nonvmodeerr@\topspace\fi}}% \FN@\next@} \message{comments,} \def\newcodes@{\catcode`\\12\catcode`\{12\catcode`\}12\catcode`\#12% \catcode`\%12\relax} \def\oldcodes@{\catcode`\\0\catcode`\{1\catcode`\}2\catcode`\#6% \catcode`\%14\relax} \def\comment{\newcodes@\endlinechar=10 \comment@} {\lccode`\0=`\\ \lowercase{\gdef\comment@#1^^J{\comment@@#10endcomment\comment@@@}% \gdef\comment@@#10endcomment{\FN@\comment@@@}% \gdef\comment@@@#1\comment@@@{\ifx\next\comment@@@\let\next\comment@ \else\def\next{\oldcodes@\endlinechar=`\^^M\relax}% \fi\next}}} \def\pr@m@s{\ifx'\next\DN@##1{\prim@s}\else\let\next@\egroup\fi\next@} \def\prime{{\null\prime@\null}} \mathchardef\prime@="0230 \let\dsize\displaystyle \let\tsize\textstyle \let\ssize\scriptstyle \let\sssize\scriptscriptstyle \message{math spacing,} \def\,{\RIfM@\mskip\thinmuskip\relax\else\kern.16667em\fi} \def\!{\RIfM@\mskip-\thinmuskip\relax\else\kern-.16667em\fi} \let\thinspace\, \let\negthinspace\! \def\medspace{\RIfM@\mskip\medmuskip\relax\else\kern.222222em\fi} \def\negmedspace{\RIfM@\mskip-\medmuskip\relax\else\kern-.222222em\fi} \def\thickspace{\RIfM@\mskip\thickmuskip\relax\else\kern.27777em\fi} \let\;\thickspace \def\negthickspace{\RIfM@\mskip-\thickmuskip\relax\else \kern-.27777em\fi} \atdef@,{\RIfM@\mskip.1\thinmuskip\else\leavevmode\null,\fi} \atdef@!{\RIfM@\mskip-.1\thinmuskip\else\leavevmode\null!\fi} \atdef@.{\RIfM@&&\else\leavevmode.\spacefactor3000 \fi} \def\and{\DOTSB\;\mathchar"3026 \;} \def\implies{\DOTSB\;\Longrightarrow\;} \def\impliedby{\DOTSB\;\Longleftarrow\;} \message{fractions,} \def\frac#1#2{{#1\over#2}} \def\dfrac#1#2{{\displaystyle{#1\over#2}}} \def\tfrac#1#2{{\textstyle{#1\over#2}}} \newdimen\ex@ \ex@.2326ex \Invalid@\thickness \def\thickfrac{\relaxnext@ \DN@{\ifx\next\thickness\let\next@\nextii@\else \DN@{\nextii@\thickness1}\fi\next@}% \DNii@\thickness##1##2##3{{##2\above##1\ex@##3}}% \FN@\next@} \def\fracwithdelims#1#2#3#4{{#3\overwithdelims#1#2#4}} \def\thickfracwithdelims#1#2{\relaxnext@\def\ldelim@{#1}\def\rdelim@{#2}% \DN@{\ifx\next\thickness\let\next@\nextii@\else \DN@{\nextii@\thickness1}\fi\next@}% \DNii@\thickness##1##2##3{{##2\abovewithdelims \ldelim@\rdelim@##1\ex@##3}}% \FN@\next@} \def\binom#1#2{{#1\choose#2}} \def\dbinom#1#2{{\displaystyle{#1\choose#2}}} \def\tbinom#1#2{{\textstyle{#1\choose#2}}} \def\:{\nobreak\hskip.1111em\mathpunct{}\nonscript\mkern-\thinmuskip{:}\hskip .3333emplus.0555em\relax} \def\snug{\unskip\kern-\mathsurround} \message{smash commands,} \def\topsmash{\top@true\bot@false\smash@} \def\botsmash{\top@false\bot@true\smash@} \newif\iftop@ \newif\ifbot@ \def\smash{\top@true\bot@true\smash@} \def\smash@{\RIfM@\expandafter\mathpalette\expandafter\mathsm@sh\else \expandafter\makesm@sh\fi} \def\finsm@sh{\iftop@\ht\z@\z@\fi\ifbot@\dp\z@\z@\fi\leavevmode\boxz@} \message{large operator symbols,} \def\LimitsOnSums{\global\let\slimits@\displaylimits} \def\NoLimitsOnSums{\global\let\slimits@\nolimits} \LimitsOnSums \mathchardef\coprod@="1360 \def\coprod{\DOTSB\coprod@\slimits@} \mathchardef\bigvee@="1357 \def\bigvee{\DOTSB\bigvee@\slimits@} \mathchardef\bigwedge@="1356 \def\bigwedge{\DOTSB\bigwedge@\slimits@} \mathchardef\biguplus@="1355 \def\biguplus{\DOTSB\biguplus@\slimits@} \mathchardef\bigcap@="1354 \def\bigcap{\DOTSB\bigcap@\slimits@} \mathchardef\bigcup@="1353 \def\bigcup{\DOTSB\bigcup@\slimits@} \mathchardef\prod@="1351 \def\prod{\DOTSB\prod@\slimits@} \mathchardef\sum@="1350 \def\sum{\DOTSB\sum@\slimits@} \mathchardef\bigotimes@="134E \def\bigotimes{\DOTSB\bigotimes@\slimits@} \mathchardef\bigoplus@="134C \def\bigoplus{\DOTSB\bigoplus@\slimits@} \mathchardef\bigodot@="134A \def\bigodot{\DOTSB\bigodot@\slimits@} \mathchardef\bigsqcup@="1346 \def\bigsqcup{\DOTSB\bigsqcup@\slimits@} \message{integrals,} \def\LimitsOnInts{\global\let\ilimits@\displaylimits} \def\NoLimitsOnInts{\global\let\ilimits@\nolimits} \NoLimitsOnInts \def\int{\DOTSI\intop\ilimits@} \def\oint{\DOTSI\ointop\ilimits@} \def\intic@{\mathchoice{\hskip.5em}{\hskip.4em}{\hskip.4em}{\hskip.4em}} \def\negintic@{\mathchoice {\hskip-.5em}{\hskip-.4em}{\hskip-.4em}{\hskip-.4em}} \def\intkern@{\mathchoice{\!\!\!}{\!\!}{\!\!}{\!\!}} \def\intdots@{\mathchoice{\plaincdots@} {{\cdotp}\mkern1.5mu{\cdotp}\mkern1.5mu{\cdotp}} {{\cdotp}\mkern1mu{\cdotp}\mkern1mu{\cdotp}} {{\cdotp}\mkern1mu{\cdotp}\mkern1mu{\cdotp}}} \newcount\intno@ \def\iint{\DOTSI\intno@\tw@\FN@\ints@} \def\iiint{\DOTSI\intno@\thr@@\FN@\ints@} \def\iiiint{\DOTSI\intno@4 \FN@\ints@} \def\idotsint{\DOTSI\intno@\z@\FN@\ints@} \def\ints@{\findlimits@\ints@@} \newif\iflimtoken@ \newif\iflimits@ \def\findlimits@{\limtoken@true\ifx\next\limits\limits@true \else\ifx\next\nolimits\limits@false\else \limtoken@false\ifx\ilimits@\nolimits\limits@false\else \ifinner\limits@false\else\limits@true\fi\fi\fi\fi} \def\multint@{\int\ifnum\intno@=\z@\intdots@ %1 \else\intkern@\fi %2 \ifnum\intno@>\tw@\int\intkern@\fi %3 \ifnum\intno@>\thr@@\int\intkern@\fi %4 \int} %5 \def\multintlimits@{\intop\ifnum\intno@=\z@\intdots@\else\intkern@\fi \ifnum\intno@>\tw@\intop\intkern@\fi \ifnum\intno@>\thr@@\intop\intkern@\fi\intop} \def\ints@@{\iflimtoken@ %1 \def\ints@@@{\iflimits@\negintic@\mathop{\intic@\multintlimits@}\limits %2 \else\multint@\nolimits\fi %3 \eat@} %4 \else %5 \def\ints@@@{\iflimits@\negintic@ \mathop{\intic@\multintlimits@}\limits\else \multint@\nolimits\fi}\fi\ints@@@} \def\LimitsOnNames{\global\let\nlimits@\displaylimits} \def\NoLimitsOnNames{\global\let\nlimits@\nolimits@} \LimitsOnNames \def\nolimits@{\relaxnext@ \DN@{\ifx\next\limits\DN@\limits{\nolimits}\else \let\next@\nolimits\fi\next@}% \FN@\next@} \message{operator names,} \def\newmcodes@{\mathcode`\'"27\mathcode`\*"2A\mathcode`\."613A% \mathcode`\-"2D\mathcode`\/"2F\mathcode`\:"603A } \def\operatorname#1{\mathop{\newmcodes@\kern\z@\fam\z@#1}\nolimits@} \def\operatornamewithlimits#1{\mathop{\newmcodes@\kern\z@\fam\z@#1}\nlimits@} \def\qopname@#1{\mathop{\fam\z@#1}\nolimits@} \def\qopnamewl@#1{\mathop{\fam\z@#1}\nlimits@} \def\arccos{\qopname@{arccos}} \def\arcsin{\qopname@{arcsin}} \def\arctan{\qopname@{arctan}} \def\arg{\qopname@{arg}} \def\cos{\qopname@{cos}} \def\cosh{\qopname@{cosh}} \def\cot{\qopname@{cot}} \def\coth{\qopname@{coth}} \def\csc{\qopname@{csc}} \def\deg{\qopname@{deg}} \def\det{\qopnamewl@{det}} \def\dim{\qopname@{dim}} \def\exp{\qopname@{exp}} \def\gcd{\qopnamewl@{gcd}} \def\hom{\qopname@{hom}} \def\inf{\qopnamewl@{inf}} \def\injlim{\qopnamewl@{inj\,lim}} \def\ker{\qopname@{ker}} \def\lg{\qopname@{lg}} \def\lim{\qopnamewl@{lim}} \def\liminf{\qopnamewl@{lim\,inf}} \def\limsup{\qopnamewl@{lim\,sup}} \def\ln{\qopname@{ln}} \def\log{\qopname@{log}} \def\max{\qopnamewl@{max}} \def\min{\qopnamewl@{min}} \def\Pr{\qopnamewl@{Pr}} \def\projlim{\qopnamewl@{proj\,lim}} \def\sec{\qopname@{sec}} \def\sin{\qopname@{sin}} \def\sinh{\qopname@{sinh}} \def\sup{\qopnamewl@{sup}} \def\tan{\qopname@{tan}} \def\tanh{\qopname@{tanh}} \def\varinjlim{\mathop{\vtop{\ialign{##\crcr \hfil\rm lim\hfil\crcr\noalign{\nointerlineskip}\rightarrowfill\crcr \noalign{\nointerlineskip\kern-\ex@}\crcr}}}} \def\varprojlim{\mathop{\vtop{\ialign{##\crcr \hfil\rm lim\hfil\crcr\noalign{\nointerlineskip}\leftarrowfill\crcr \noalign{\nointerlineskip\kern-\ex@}\crcr}}}} \def\varliminf{\mathop{\underline{\vrule height\z@ depth.2exwidth\z@ \hbox{\rm lim}}}} \def\varlimsup{\mathop{\overline{\hbox{\rm lim}}}} \newdimen\buffer@ \buffer@\fontdimen13 \tenex \newdimen\buffer \buffer\buffer@ \def\ChangeBuffer#1{\fontdimen13 \tenex#1\relax \global\buffer\fontdimen13 \tenex} \def\ResetBuffer{\fontdimen13 \tenex\buffer@\global\buffer\buffer@} \def\shave#1{\mathop{\hbox{$\m@th\fontdimen13 \tenex\z@ %1 \displaystyle{#1}$}}\fontdimen13 \tenex\buffer} \def\topshave#1{\mathop{\topsmash{\displaystyle{#1}}\vphantom{\shave{#1}}}} \def\botshave#1{\mathop{\botsmash{\displaystyle{#1}}\vphantom{\shave{#1}}}} \message{multilevel sub/superscripts,} \Invalid@\\ \def\Let@{\relax\iffalse{\fi\let\\=\cr\iffalse}\fi} \Invalid@\vspace \def\vspace@{\def\vspace##1{\crcr\noalign{\vskip##1\relax}}} \def\multilimits@{\bgroup\vspace@\Let@ \baselineskip\fontdimen10 \scriptfont\tw@ \advance\baselineskip\fontdimen12 \scriptfont\tw@ \lineskip\thr@@\fontdimen8 \scriptfont\thr@@ \lineskiplimit\lineskip \vbox\bgroup\ialign\bgroup\hfil$\m@th\scriptstyle{##}$\hfil\crcr} \def\Sb{_\multilimits@} \def\endSb{\crcr\egroup\egroup\egroup} \def\Sp{^\multilimits@} \let\endSp\endSb \def\spreadlines#1{\RIfMIfI@\onlydmatherr@\spreadlines\else \openup#1\relax\fi\else\onlydmatherr@\spreadlines\fi} \def\Mathstrut@{\copy\Mathstrutbox@} \newbox\Mathstrutbox@ \setbox\Mathstrutbox@\null \setboxz@h{$\m@th($} \ht\Mathstrutbox@\ht\z@ \dp\Mathstrutbox@\dp\z@ \message{matrices,} \newdimen\spreadmlines@ \def\spreadmatrixlines#1{\RIfMIfI@ \onlydmatherr@\spreadmatrixlines\else \spreadmlines@#1\relax\fi\else\onlydmatherr@\spreadmatrixlines\fi} \def\matrix{\null\,\vcenter\bgroup\Let@\vspace@ \normalbaselines\openup\spreadmlines@\ialign \bgroup\hfil$\m@th##$\hfil&&\quad\hfil$\m@th##$\hfil\crcr \Mathstrut@\crcr\noalign{\kern-\baselineskip}} \def\endmatrix{\crcr\Mathstrut@\crcr\noalign{\kern-\baselineskip}\egroup \egroup\,} \def\format{\crcr\egroup\iffalse{\fi\ifnum`}=0 \fi\format@} \newtoks\hashtoks@ \hashtoks@{#} \def\format@#1\\{\def\preamble@{#1}% \def\l{$\m@th\the\hashtoks@$\hfil}% \def\c{\hfil$\m@th\the\hashtoks@$\hfil}% \def\r{\hfil$\m@th\the\hashtoks@$}% \edef\preamble@@{\preamble@}\ifnum`{=0 \fi\iffalse}\fi \ialign\bgroup\span\preamble@@\crcr} \def\smallmatrix{\null\,\vcenter\bgroup\vspace@\Let@ \baselineskip9\ex@\lineskip\ex@ \ialign\bgroup\hfil$\m@th\scriptstyle{##}$\hfil&&\thickspace\hfil $\m@th\scriptstyle{##}$\hfil\crcr} \def\endsmallmatrix{\crcr\egroup\egroup\,} \def\pmatrix{\left(\matrix} \def\endpmatrix{\endmatrix\right)} \def\bmatrix{\left[\matrix} \def\endbmatrix{\endmatrix\right]} \def\vmatrix{\left|\matrix} \def\endvmatrix{\endmatrix\right|} \def\Vmatrix{\left\|\matrix} \def\endVmatrix{\endmatrix\right\|} \def\hdots{\mathinner{\ldotp\ldotp\ldotp}} \newmuskip\dotsspace@ \dotsspace@1.5mu \def\strip@#1 {#1} \def\spacehdots#1\for#2{\multispan{#2}\xleaders \hbox{$\m@th\mkern\strip@#1 \dotsspace@.\mkern\strip@#1 \dotsspace@$}\hfill} \def\hdotsfor#1{\spacehdots\@ne\for{#1}} \def\multispan@#1{\omit\mscount#1\unskip\loop\ifnum\mscount>\@ne\sp@n\repeat} \def\spaceinnerhdots#1\for#2\after#3{\multispan@{\strip@#2 }#3\xleaders \hbox{$\m@th\mkern\strip@#1 \dotsspace@.\mkern\strip@#1 \dotsspace@$}\hfill} \def\innerhdotsfor#1\after#2{\spaceinnerhdots\@ne\for#1\after{#2}} \def\cases{\bgroup\spreadmlines@\jot\left\{\,\matrix\format\l&\quad\l\\} \def\endcases{\endmatrix\right.\egroup} \message{multiline displays,} \newif\ifinany@ \newif\ifinalign@ \newif\ifingather@ \def\strut@{\copy\strutbox@} \newbox\strutbox@ \setbox\strutbox@\hbox{\vrule height8\p@ depth3\p@ width\z@} \def\topaligned{\null\,\vtop\aligned@} \def\botaligned{\null\,\vbox\aligned@} \def\aligned{\null\,\vcenter\aligned@} \def\aligned@{\bgroup\vspace@\Let@ \ifinany@\else\openup\jot\fi\ialign \bgroup\hfil\strut@$\m@th\displaystyle{##}$& $\m@th\displaystyle{{}##}$\hfil\crcr} \def\endaligned{\crcr\egroup\egroup} \let\endtopaligned\endaligned \let\endbotaligned\endaligned \def\alignedat#1{\null\,\vcenter\bgroup\doat@{#1}\vspace@\Let@ \ifinany@\else\openup\jot\fi\ialign\bgroup\span\preamble@@\crcr} \newcount\atcount@ \def\doat@#1{\toks@{\hfil\strut@$\m@th \displaystyle{\the\hashtoks@}$&$\m@th\displaystyle {{}\the\hashtoks@}$\hfil}% %1 \atcount@#1\relax\advance\atcount@\m@ne %2 \loop\ifnum\atcount@>\z@\toks@=\expandafter{\the\toks@&\hfil$\m@th \displaystyle{\the\hashtoks@}$&$\m@th \displaystyle{{}\the\hashtoks@}$\hfil}\advance \atcount@\m@ne\repeat %3 \xdef\preamble@{\the\toks@}\xdef\preamble@@{\preamble@}} \let\endalignedat\endaligned \def\gathered{\null\,\vcenter\bgroup\vspace@\Let@ \ifinany@\else\openup\jot\fi\ialign \bgroup\hfil\strut@$\m@th\displaystyle{##}$\hfil\crcr} \def\endgathered{\crcr\egroup\egroup} \newif\iftagsleft@ \def\TagsOnLeft{\global\tagsleft@true} \def\TagsOnRight{\global\tagsleft@false} \TagsOnLeft \newif\ifmathtags@ \def\TagsAsMath{\global\mathtags@true} \def\TagsAsText{\global\mathtags@false} \TagsAsText \def\tagform@#1{\hbox{\rm(\ignorespaces#1\unskip)}} \def\thetag{\leavevmode\tagform@} \def\tag#1$${\iftagsleft@\leqno\else\eqno\fi %1 \maketag@#1\maketag@ %2 $$} %3 \def\maketag@{\FN@\maketag@@} \def\maketag@@{\ifx\next"\expandafter\maketag@@@\else\expandafter\maketag@@@@ \fi} \def\maketag@@@"#1"#2\maketag@{\hbox{\rm#1}} %1 \def\maketag@@@@#1\maketag@{\ifmathtags@\tagform@{$\m@th#1$}\else \tagform@{#1}\fi} \interdisplaylinepenalty\@M \def\allowdisplaybreaks{\RIfMIfI@ \onlydmatherr@\allowdisplaybreaks\else \interdisplaylinepenalty\z@\fi\else\onlydmatherr@\allowdisplaybreaks\fi} \Invalid@\allowdisplaybreak \Invalid@\displaybreak \Invalid@\intertext \def\allowdisplaybreak@{\def\allowdisplaybreak{\crcr\noalign{\allowbreak}}} \def\displaybreak@{\def\displaybreak{\crcr\noalign{\break}}} \def\intertext@{\def\intertext##1{\crcr\noalign{% \penalty\postdisplaypenalty \vskip\belowdisplayskip \vbox{\normalbaselines\noindent##1}% \penalty\predisplaypenalty \vskip\abovedisplayskip}}} \newskip\centering@ \centering@\z@ plus\@m\p@ \def\align{\relax\ifingather@\DN@{\csname align (in \string\gather)\endcsname}\else \ifmmode\ifinner\DN@{\onlydmatherr@\align}\else \let\next@\align@\fi \else\DN@{\onlydmatherr@\align}\fi\fi\next@} \newhelp\andhelp@ {An extra & here is so disastrous that you should probably exit^^J and fix things up.} \newif\iftag@ \newcount\and@ \def\align@{\inalign@true\inany@true \vspace@\allowdisplaybreak@\displaybreak@\intertext@ \def\tag{\global\tag@true\ifnum\and@=\z@\DN@{&&}\else \DN@{&}\fi\next@}% \iftagsleft@\DN@{\csname align \endcsname}\else \DN@{\csname align \space\endcsname}\fi\next@} \def\Tag@{\iftag@\else\errhelp\andhelp@\err@{Extra & on this line}\fi} \newdimen\lwidth@ \newdimen\rwidth@ \newdimen\maxlwidth@ \newdimen\maxrwidth@ \newdimen\totwidth@ \def\measure@#1\endalign{\lwidth@\z@\rwidth@\z@\maxlwidth@\z@\maxrwidth@\z@ \global\and@\z@ %1 \setbox@ne\vbox %2 {\everycr{\noalign{\global\tag@false\global\and@\z@}}\Let@ %3 \halign{\setboxz@h{$\m@th\displaystyle{\@lign##}$}% %4 \global\lwidth@\wdz@ %5 \ifdim\lwidth@>\maxlwidth@\global\maxlwidth@\lwidth@\fi %6 \global\advance\and@\@ne %7 &\setboxz@h{$\m@th\displaystyle{{}\@lign##}$}\global\rwidth@\wdz@ %8 \ifdim\rwidth@>\maxrwidth@\global\maxrwidth@\rwidth@\fi %9 \global\advance\and@\@ne %10 &\Tag@ \eat@{##}\crcr#1\crcr}}% %11 \totwidth@\maxlwidth@\advance\totwidth@\maxrwidth@} %12 \def\displ@y@{\global\dt@ptrue\openup\jot \everycr{\noalign{\global\tag@false\global\and@\z@\ifdt@p\global\dt@pfalse \vskip-\lineskiplimit\vskip\normallineskiplimit\else \penalty\interdisplaylinepenalty\fi}}} \def\black@#1{\noalign{\ifdim#1>\displaywidth \dimen@\prevdepth\nointerlineskip %1 \vskip-\ht\strutbox@\vskip-\dp\strutbox@ %2 \vbox{\noindent\hbox to#1{\strut@\hfill}}% %3 \prevdepth\dimen@ %4 \fi}} \expandafter\def\csname align \space\endcsname#1\endalign {\measure@#1\endalign\global\and@\z@ %1 \ifingather@\everycr{\noalign{\global\and@\z@}}\else\displ@y@\fi %2 \Let@\tabskip\centering@ %3 \halign to\displaywidth {\hfil\strut@\setboxz@h{$\m@th\displaystyle{\@lign##}$}% %4 \global\lwidth@\wdz@\boxz@\global\advance\and@\@ne %5 \tabskip\z@skip %6 &\setboxz@h{$\m@th\displaystyle{{}\@lign##}$}% %7 \global\rwidth@\wdz@\boxz@\hfill\global\advance\and@\@ne %8 \tabskip\centering@ %9 &\setboxz@h{\@lign\strut@\maketag@##\maketag@}% %10 \dimen@\displaywidth\advance\dimen@-\totwidth@ \divide\dimen@\tw@\advance\dimen@\maxrwidth@\advance\dimen@-\rwidth@ %11 \ifdim\dimen@<\tw@\wdz@\llap{\vtop{\normalbaselines\null\boxz@}}% %12 \else\llap{\boxz@}\fi %13 \tabskip\z@skip %14 \crcr#1\crcr %15 \black@\totwidth@}} %16 \newdimen\lineht@ \expandafter\def\csname align \endcsname#1\endalign{\measure@#1\endalign \global\and@\z@ \ifdim\totwidth@>\displaywidth\let\displaywidth@\totwidth@\else \let\displaywidth@\displaywidth\fi %1 \ifingather@\everycr{\noalign{\global\and@\z@}}\else\displ@y@\fi \Let@\tabskip\centering@\halign to\displaywidth {\hfil\strut@\setboxz@h{$\m@th\displaystyle{\@lign##}$}% \global\lwidth@\wdz@\global\lineht@\ht\z@ %2 \boxz@\global\advance\and@\@ne \tabskip\z@skip&\setboxz@h{$\m@th\displaystyle{{}\@lign##}$}% \global\rwidth@\wdz@\ifdim\ht\z@>\lineht@\global\lineht@\ht\z@\fi %3 \boxz@\hfil\global\advance\and@\@ne \tabskip\centering@&\kern-\displaywidth@ %4 \setboxz@h{\@lign\strut@\maketag@##\maketag@}% \dimen@\displaywidth\advance\dimen@-\totwidth@ \divide\dimen@\tw@\advance\dimen@\maxlwidth@\advance\dimen@-\lwidth@ \ifdim\dimen@<\tw@\wdz@ \rlap{\vbox{\normalbaselines\boxz@\vbox to\lineht@{}}}\else \rlap{\boxz@}\fi \tabskip\displaywidth@\crcr#1\crcr\black@\totwidth@}} \expandafter\def\csname align (in \string\gather)\endcsname #1\endalign{\vcenter{\align@#1\endalign}} \Invalid@\endalign \newif\ifxat@ \def\alignat{\RIfMIfI@\DN@{\onlydmatherr@\alignat}\else \DN@{\csname alignat \endcsname}\fi\else \DN@{\onlydmatherr@\alignat}\fi\next@} \newif\ifmeasuring@ \newbox\savealignat@ \expandafter\def\csname alignat \endcsname#1#2\endalignat %1 {\inany@true\xat@false \def\tag{\global\tag@true\count@#1\relax\multiply\count@\tw@ \xdef\tag@{}\loop\ifnum\count@>\and@\xdef\tag@{&\tag@}\advance\count@\m@ne \repeat\tag@}% \vspace@\allowdisplaybreak@\displaybreak@\intertext@ \displ@y@\measuring@true %2 \setbox\savealignat@\hbox{$\m@th\displaystyle\Let@ \attag@{#1}% %3 \vbox{\halign{\span\preamble@@\crcr#2\crcr}}$}% \measuring@false %4 \Let@\attag@{#1}% %5 \tabskip\centering@\halign to\displaywidth {\span\preamble@@\crcr#2\crcr %6 \black@{\wd\savealignat@}}} %7 \Invalid@\endalignat \def\xalignat{\RIfMIfI@ \DN@{\onlydmatherr@\xalignat}\else \DN@{\csname xalignat \endcsname}\fi\else \DN@{\onlydmatherr@\xalignat}\fi\next@} \expandafter\def\csname xalignat \endcsname#1#2\endxalignat {\inany@true\xat@true \def\tag{\global\tag@true\def\tag@{}\count@#1\relax\multiply\count@\tw@ \loop\ifnum\count@>\and@\xdef\tag@{&\tag@}\advance\count@\m@ne\repeat\tag@}% \vspace@\allowdisplaybreak@\displaybreak@\intertext@ \displ@y@\measuring@true\setbox\savealignat@\hbox{$\m@th\displaystyle\Let@ \attag@{#1}\vbox{\halign{\span\preamble@@\crcr#2\crcr}}$}% \measuring@false\Let@ \attag@{#1}\tabskip\centering@\halign to\displaywidth {\span\preamble@@\crcr#2\crcr\black@{\wd\savealignat@}}} \def\attag@#1{\let\Maketag@\maketag@\let\TAG@\Tag@ %1 \let\Tag@=0\let\maketag@=0% %2 \ifmeasuring@\def\llap@##1{\setboxz@h{##1}\hbox to\tw@\wdz@{}}% \def\rlap@##1{\setboxz@h{##1}\hbox to\tw@\wdz@{}}\else \let\llap@\llap\let\rlap@\rlap\fi %3 \toks@{\hfil\strut@$\m@th\displaystyle{\@lign\the\hashtoks@}$\tabskip\z@skip \global\advance\and@\@ne&$\m@th\displaystyle{{}\@lign\the\hashtoks@}$\hfil \ifxat@\tabskip\centering@\fi\global\advance\and@\@ne}% %4 \iftagsleft@ \toks@@{\tabskip\centering@&\Tag@\kern-\displaywidth \rlap@{\@lign\maketag@\the\hashtoks@\maketag@}% \global\advance\and@\@ne\tabskip\displaywidth}\else \toks@@{\tabskip\centering@&\Tag@\llap@{\@lign\maketag@ \the\hashtoks@\maketag@}\global\advance\and@\@ne\tabskip\z@skip}\fi %5 \atcount@#1\relax\advance\atcount@\m@ne \loop\ifnum\atcount@>\z@ \toks@=\expandafter{\the\toks@&\hfil$\m@th\displaystyle{\@lign \the\hashtoks@}$\global\advance\and@\@ne \tabskip\z@skip&$\m@th\displaystyle{{}\@lign\the\hashtoks@}$\hfil\ifxat@ \tabskip\centering@\fi\global\advance\and@\@ne}\advance\atcount@\m@ne \repeat %6 \xdef\preamble@{\the\toks@\the\toks@@}% %7 \xdef\preamble@@{\preamble@}% %8 \let\maketag@\Maketag@\let\Tag@\TAG@} %9 \Invalid@\endxalignat \def\xxalignat{\RIfMIfI@ \DN@{\onlydmatherr@\xxalignat}\else\DN@{\csname xxalignat \endcsname}\fi\else \DN@{\onlydmatherr@\xxalignat}\fi\next@} \expandafter\def\csname xxalignat \endcsname#1#2\endxxalignat{\inany@true \vspace@\allowdisplaybreak@\displaybreak@\intertext@ \displ@y\setbox\savealignat@\hbox{$\m@th\displaystyle\Let@ \xxattag@{#1}\vbox{\halign{\span\preamble@@\crcr#2\crcr}}$}% \Let@\xxattag@{#1}\tabskip\z@skip\halign to\displaywidth {\span\preamble@@\crcr#2\crcr\black@{\wd\savealignat@}}} \def\xxattag@#1{\toks@{\tabskip\z@skip\hfil\strut@ $\m@th\displaystyle{\the\hashtoks@}$&% $\m@th\displaystyle{{}\the\hashtoks@}$\hfil\tabskip\centering@&}% \atcount@#1\relax\advance\atcount@\m@ne\loop\ifnum\atcount@>\z@ \toks@=\expandafter{\the\toks@&\hfil$\m@th\displaystyle{\the\hashtoks@}$% \tabskip\z@skip&$\m@th\displaystyle{{}\the\hashtoks@}$\hfil \tabskip\centering@}\advance\atcount@\m@ne\repeat \xdef\preamble@{\the\toks@\tabskip\z@skip}\xdef\preamble@@{\preamble@}} \Invalid@\endxxalignat \newdimen\gwidth@ \newdimen\gmaxwidth@ \def\gmeasure@#1\endgather{\gwidth@\z@\gmaxwidth@\z@\setbox@ne\vbox{\Let@ \halign{\setboxz@h{$\m@th\displaystyle{##}$}\global\gwidth@\wdz@ \ifdim\gwidth@>\gmaxwidth@\global\gmaxwidth@\gwidth@\fi &\eat@{##}\crcr#1\crcr}}} \def\gather{\RIfMIfI@\DN@{\onlydmatherr@\gather}\else \ingather@true\inany@true\def\tag{&}% \vspace@\allowdisplaybreak@\displaybreak@\intertext@ \displ@y\Let@ \iftagsleft@\DN@{\csname gather \endcsname}\else \DN@{\csname gather \space\endcsname}\fi\fi \else\DN@{\onlydmatherr@\gather}\fi\next@} \expandafter\def\csname gather \space\endcsname#1\endgather {\gmeasure@#1\endgather\tabskip\centering@ \halign to\displaywidth{\hfil\strut@\setboxz@h{$\m@th\displaystyle{##}$}% \global\gwidth@\wdz@\boxz@\hfil& \setboxz@h{\strut@{\maketag@##\maketag@}}% \dimen@\displaywidth\advance\dimen@-\gwidth@ \ifdim\dimen@>\tw@\wdz@\llap{\boxz@}\else \llap{\vtop{\normalbaselines\null\boxz@}}\fi \tabskip\z@skip\crcr#1\crcr\black@\gmaxwidth@}} \newdimen\glineht@ \expandafter\def\csname gather \endcsname#1\endgather{\gmeasure@#1\endgather \ifdim\gmaxwidth@>\displaywidth\let\gdisplaywidth@\gmaxwidth@\else \let\gdisplaywidth@\displaywidth\fi\tabskip\centering@\halign to\displaywidth {\hfil\strut@\setboxz@h{$\m@th\displaystyle{##}$}% \global\gwidth@\wdz@\global\glineht@\ht\z@\boxz@\hfil&\kern-\gdisplaywidth@ \setboxz@h{\strut@{\maketag@##\maketag@}}% \dimen@\displaywidth\advance\dimen@-\gwidth@ \ifdim\dimen@>\tw@\wdz@\rlap{\boxz@}\else \rlap{\vbox{\normalbaselines\boxz@\vbox to\glineht@{}}}\fi \tabskip\gdisplaywidth@\crcr#1\crcr\black@\gmaxwidth@}} \newif\ifctagsplit@ \def\CenteredTagsOnSplits{\global\ctagsplit@true} \def\TopOrBottomTagsOnSplits{\global\ctagsplit@false} \TopOrBottomTagsOnSplits \def\split{\relax\ifinany@\let\next@\insplit@\else \ifmmode\ifinner\def\next@{\onlydmatherr@\split}\else \let\next@\outsplit@\fi\else \def\next@{\onlydmatherr@\split}\fi\fi\next@} \def\insplit@{\global\setbox\z@\vbox\bgroup\vspace@\Let@\ialign\bgroup \hfil\strut@$\m@th\displaystyle{##}$&$\m@th\displaystyle{{}##}$\hfill\crcr} \def\endsplit{\crcr\egroup\egroup\iftagsleft@\expandafter\lendsplit@\else \expandafter\rendsplit@\fi} \def\rendsplit@{\global\setbox9 \vbox {\unvcopy\z@\global\setbox8 \lastbox\unskip}% %1 \setbox@ne\hbox{\unhcopy8 \unskip\global\setbox\tw@\lastbox \unskip\global\setbox\thr@@\lastbox}% %2 \global\setbox7 \hbox{\unhbox\tw@\unskip}% %3 \ifinalign@\ifctagsplit@ %4 \gdef\split@{\hbox to\wd\thr@@{}& \vcenter{\vbox{\moveleft\wd\thr@@\boxz@}}}% %5 \else\gdef\split@{&\vbox{\moveleft\wd\thr@@\box9}\crcr \box\thr@@&\box7}\fi %6 \else %7 \ifctagsplit@\gdef\split@{\vcenter{\boxz@}}\else \gdef\split@{\box9\crcr\hbox{\box\thr@@\box7}}\fi \fi \split@} %8 \def\lendsplit@{\global\setbox9\vtop{\unvcopy\z@}% %1 \setbox@ne\vbox{\unvcopy\z@\global\setbox8\lastbox}% %2 \setbox@ne\hbox{\unhcopy8\unskip\setbox\tw@\lastbox \unskip\global\setbox\thr@@\lastbox}% %3 \ifinalign@\ifctagsplit@ %4 \gdef\split@{\hbox to\wd\thr@@{}& \vcenter{\vbox{\moveleft\wd\thr@@\box9}}}% %5 \else %6 \gdef\split@{\hbox to\wd\thr@@{}&\vbox{\moveleft\wd\thr@@\box9}}\fi \else \ifctagsplit@\gdef\split@{\vcenter{\box9}}\else \gdef\split@{\box9}\fi \fi\split@} \def\outsplit@#1$${\align\insplit@#1\endalign$$} \newdimen\multlinegap@ \multlinegap@1em \newdimen\multlinetaggap@ \multlinetaggap@1em \def\MultlineGap#1{\global\multlinegap@#1\relax} \def\multlinegap#1{\RIfMIfI@\onlydmatherr@\multlinegap\else \multlinegap@#1\relax\fi\else\onlydmatherr@\multlinegap\fi} \def\nomultlinegap{\multlinegap{\z@}} \def\multline{\RIfMIfI@ \DN@{\onlydmatherr@\multline}\else \DN@{\multline@}\fi\else \DN@{\onlydmatherr@\multline}\fi\next@} \newif\iftagin@ \def\tagin@#1{\tagin@false\in@\tag{#1}\ifin@\tagin@true\fi} \def\multline@#1$${\inany@true\vspace@\allowdisplaybreak@\displaybreak@ \tagin@{#1}\iftagsleft@\DN@{\multline@l#1$$}\else \DN@{\multline@r#1$$}\fi\next@} \newdimen\mwidth@ \def\rmmeasure@#1\endmultline{% \def\shoveleft##1{##1}\def\shoveright##1{##1}% %1 \setbox@ne\vbox{\Let@\halign{\setboxz@h {$\m@th\@lign\displaystyle{}##$}\global\mwidth@\wdz@ \crcr#1\crcr}}} \newdimen\mlineht@ \newif\ifzerocr@ \newif\ifonecr@ \def\lmmeasure@#1\endmultline{\global\zerocr@true\global\onecr@false \everycr{\noalign{\ifonecr@\global\onecr@false\fi \ifzerocr@\global\zerocr@false\global\onecr@true\fi}}% %1 \def\shoveleft##1{##1}\def\shoveright##1{##1}% \setbox@ne\vbox{\Let@\halign{\setboxz@h {$\m@th\@lign\displaystyle{}##$}\ifonecr@\global\mwidth@\wdz@ \global\mlineht@\ht\z@\fi\crcr#1\crcr}}} \newbox\mtagbox@ \newdimen\ltwidth@ \newdimen\rtwidth@ \def\multline@l#1$${\iftagin@\DN@{\lmultline@@#1$$}\else \DN@{\setbox\mtagbox@\null\ltwidth@\z@\rtwidth@\z@ \lmultline@@@#1$$}\fi\next@} \def\lmultline@@#1\endmultline\tag#2$${% \setbox\mtagbox@\hbox{\maketag@#2\maketag@}% %1 \lmmeasure@#1\endmultline\dimen@\mwidth@\advance\dimen@\wd\mtagbox@ \advance\dimen@\multlinetaggap@ %2 \ifdim\dimen@>\displaywidth\ltwidth@\z@\else\ltwidth@\wd\mtagbox@\fi %3 \lmultline@@@#1\endmultline$$} \def\lmultline@@@{\displ@y \def\shoveright##1{##1\hfilneg\hskip\multlinegap@}% \def\shoveleft##1{\setboxz@h{$\m@th\displaystyle{}##1$}% \setbox@ne\hbox{$\m@th\displaystyle##1$}% \hfilneg \iftagin@ \ifdim\ltwidth@>\z@\hskip\ltwidth@\hskip\multlinetaggap@\fi \else\hskip\multlinegap@\fi\hskip.5\wd@ne\hskip-.5\wdz@##1}% %1 \halign\bgroup\Let@\hbox to\displaywidth {\strut@$\m@th\displaystyle\hfil{}##\hfil$}\crcr \hfilneg %2 \iftagin@ %3 \ifdim\ltwidth@>\z@ %4 \box\mtagbox@\hskip\multlinetaggap@ %5 \else \rlap{\vbox{\normalbaselines\hbox{\strut@\box\mtagbox@}% \vbox to\mlineht@{}}}\fi %6 \else\hskip\multlinegap@\fi} %7 \def\multline@r#1$${\iftagin@\DN@{\rmultline@@#1$$}\else \DN@{\setbox\mtagbox@\null\ltwidth@\z@\rtwidth@\z@ \rmultline@@@#1$$}\fi\next@} \def\rmultline@@#1\endmultline\tag#2$${\ltwidth@\z@ \setbox\mtagbox@\hbox{\maketag@#2\maketag@}% \rmmeasure@#1\endmultline\dimen@\mwidth@\advance\dimen@\wd\mtagbox@ \advance\dimen@\multlinetaggap@ \ifdim\dimen@>\displaywidth\rtwidth@\z@\else\rtwidth@\wd\mtagbox@\fi \rmultline@@@#1\endmultline$$} \def\rmultline@@@{\displ@y \def\shoveright##1{##1\hfilneg\iftagin@\ifdim\rtwidth@>\z@ \hskip\rtwidth@\hskip\multlinetaggap@\fi\else\hskip\multlinegap@\fi}% \def\shoveleft##1{\setboxz@h{$\m@th\displaystyle{}##1$}% \setbox@ne\hbox{$\m@th\displaystyle##1$}% \hfilneg\hskip\multlinegap@\hskip.5\wd@ne\hskip-.5\wdz@##1}% \halign\bgroup\Let@\hbox to\displaywidth {\strut@$\m@th\displaystyle\hfil{}##\hfil$}\crcr \hfilneg\hskip\multlinegap@} \def\endmultline{\iftagsleft@\expandafter\lendmultline@\else \expandafter\rendmultline@\fi} \def\lendmultline@{\hfilneg\hskip\multlinegap@\crcr\egroup} \def\rendmultline@{\iftagin@ %1 \ifdim\rtwidth@>\z@ %2 \hskip\multlinetaggap@\box\mtagbox@ %3 \else\llap{\vtop{\normalbaselines\null\hbox{\strut@\box\mtagbox@}}}\fi %4 \else\hskip\multlinegap@\fi %5 \hfilneg\crcr\egroup} \def\bmod{\mskip-\medmuskip\mkern5mu\mathbin{\fam\z@ mod}\penalty900 \mkern5mu\mskip-\medmuskip} \def\pmod#1{\allowbreak\ifinner\mkern8mu\else\mkern18mu\fi ({\fam\z@ mod}\,\,#1)} \def\pod#1{\allowbreak\ifinner\mkern8mu\else\mkern18mu\fi(#1)} \def\mod#1{\allowbreak\ifinner\mkern12mu\else\mkern18mu\fi{\fam\z@ mod}\,\,#1} \message{continued fractions,} \newcount\cfraccount@ \def\cfrac{\bgroup\bgroup\advance\cfraccount@\@ne\strut \iffalse{\fi\def\\{\over\displaystyle}\iffalse}\fi} \def\lcfrac{\bgroup\bgroup\advance\cfraccount@\@ne\strut \iffalse{\fi\def\\{\hfill\over\displaystyle}\iffalse}\fi} \def\rcfrac{\bgroup\bgroup\advance\cfraccount@\@ne\strut\hfill \iffalse{\fi\def\\{\over\displaystyle}\iffalse}\fi} \def\gloop@#1\repeat{\gdef\body{#1}\iterate} \def\endcfrac{\gloop@\ifnum\cfraccount@>\z@\global\advance\cfraccount@\m@ne \egroup\hskip-\nulldelimiterspace\egroup\repeat} \message{compound symbols,} \def\binrel@#1{\setboxz@h{\thinmuskip0mu \medmuskip\m@ne mu\thickmuskip\@ne mu$#1\m@th$}% \setbox@ne\hbox{\thinmuskip0mu\medmuskip\m@ne mu\thickmuskip \@ne mu${}#1{}\m@th$}% \setbox\tw@\hbox{\hskip\wd@ne\hskip-\wdz@}} \def\overset#1\to#2{\binrel@{#2}\ifdim\wd\tw@<\z@ \mathbin{\mathop{\kern\z@#2}\limits^{#1}}\else\ifdim\wd\tw@>\z@ \mathrel{\mathop{\kern\z@#2}\limits^{#1}}\else {\mathop{\kern\z@#2}\limits^{#1}}{}\fi\fi} \def\underset#1\to#2{\binrel@{#2}\ifdim\wd\tw@<\z@ \mathbin{\mathop{\kern\z@#2}\limits_{#1}}\else\ifdim\wd\tw@>\z@ \mathrel{\mathop{\kern\z@#2}\limits_{#1}}\else {\mathop{\kern\z@#2}\limits_{#1}}{}\fi\fi} \def\oversetbrace#1\to#2{\overbrace{#2}^{#1}} \def\undersetbrace#1\to#2{\underbrace{#2}_{#1}} \def\sideset#1\and#2\to#3{% \setbox@ne\hbox{$\dsize{\vphantom{#3}}#1{#3}\m@th$}% \setbox\tw@\hbox{$\dsize{#3}#2\m@th$}% \hskip\wd@ne\hskip-\wd\tw@\mathop{\hskip\wd\tw@\hskip-\wd@ne {\vphantom{#3}}#1{#3}#2}} \def\rightarrowfill@#1{\setboxz@h{$#1-\m@th$}\ht\z@\z@ $#1\m@th\copy\z@\mkern-6mu\cleaders \hbox{$#1\mkern-2mu\box\z@\mkern-2mu$}\hfill \mkern-6mu\mathord\rightarrow$} \def\leftarrowfill@#1{\setboxz@h{$#1-\m@th$}\ht\z@\z@ $#1\m@th\mathord\leftarrow\mkern-6mu\cleaders \hbox{$#1\mkern-2mu\copy\z@\mkern-2mu$}\hfill \mkern-6mu\box\z@$} \def\leftrightarrowfill@#1{\setboxz@h{$#1-\m@th$}\ht\z@\z@ $#1\m@th\mathord\leftarrow\mkern-6mu\cleaders \hbox{$#1\mkern-2mu\box\z@\mkern-2mu$}\hfill \mkern-6mu\mathord\rightarrow$} \def\overrightarrow{\mathpalette\overrightarrow@} \def\overrightarrow@#1#2{\vbox{\ialign{##\crcr\rightarrowfill@#1\crcr \noalign{\kern-\ex@\nointerlineskip}$\m@th\hfil#1#2\hfil$\crcr}}} \let\overarrow\overrightarrow \def\overleftarrow{\mathpalette\overleftarrow@} \def\overleftarrow@#1#2{\vbox{\ialign{##\crcr\leftarrowfill@#1\crcr \noalign{\kern-\ex@\nointerlineskip}$\m@th\hfil#1#2\hfil$\crcr}}} \def\overleftrightarrow{\mathpalette\overleftrightarrow@} \def\overleftrightarrow@#1#2{\vbox{\ialign{##\crcr\leftrightarrowfill@#1\crcr \noalign{\kern-\ex@\nointerlineskip}$\m@th\hfil#1#2\hfil$\crcr}}} \def\underrightarrow{\mathpalette\underrightarrow@} \def\underrightarrow@#1#2{\vtop{\ialign{##\crcr$\m@th\hfil#1#2\hfil$\crcr \noalign{\nointerlineskip}\rightarrowfill@#1\crcr}}} \let\underarrow\underrightarrow \def\underleftarrow{\mathpalette\underleftarrow@} \def\underleftarrow@#1#2{\vtop{\ialign{##\crcr$\m@th\hfil#1#2\hfil$\crcr \noalign{\nointerlineskip}\leftarrowfill@#1\crcr}}} \def\underleftrightarrow{\mathpalette\underleftrightarrow@} \def\underleftrightarrow@#1#2{\vtop{\ialign{##\crcr$\m@th\hfil#1#2\hfil$\crcr \noalign{\nointerlineskip}\leftrightarrowfill@#1\crcr}}} \message{various kinds of dots,} \let\DOTSI\relax \let\DOTSB\relax \let\DOTSX\relax \newif\ifmath@ {\uccode`7=`\\ \uccode`8=`m \uccode`9=`a \uccode`0=`t \uccode`!=`h \uppercase{\gdef\math@#1#2#3#4#5#6\math@{\global\math@false\ifx 7#1\ifx 8#2% \ifx 9#3\ifx 0#4\ifx !#5\xdef\meaning@{#6}\global\math@true\fi\fi\fi\fi\fi}}} \newif\ifmathch@ {\uccode`7=`c \uccode`8=`h \uccode`9=`\" \uppercase{\gdef\mathch@#1#2#3#4#5#6\mathch@{\global\mathch@false \ifx 7#1\ifx 8#2\ifx 9#5\global\mathch@true\xdef\meaning@{9#6}\fi\fi\fi}}} \newcount\classnum@ \def\getmathch@#1.#2\getmathch@{\classnum@#1 \divide\classnum@4096 \ifcase\number\classnum@\or\or\gdef\thedots@{\dotsb@}\or \gdef\thedots@{\dotsb@}\fi} \newif\ifmathbin@ {\uccode`4=`b \uccode`5=`i \uccode`6=`n \uppercase{\gdef\mathbin@#1#2#3{\relaxnext@ \DNii@##1\mathbin@{\ifx\space@\next\global\mathbin@true\fi}% \global\mathbin@false\DN@##1\mathbin@{}% \ifx 4#1\ifx 5#2\ifx 6#3\DN@{\FN@\nextii@}\fi\fi\fi\next@}}} \newif\ifmathrel@ {\uccode`4=`r \uccode`5=`e \uccode`6=`l \uppercase{\gdef\mathrel@#1#2#3{\relaxnext@ \DNii@##1\mathrel@{\ifx\space@\next\global\mathrel@true\fi}% \global\mathrel@false\DN@##1\mathrel@{}% \ifx 4#1\ifx 5#2\ifx 6#3\DN@{\FN@\nextii@}\fi\fi\fi\next@}}} \newif\ifmacro@ {\uccode`5=`m \uccode`6=`a \uccode`7=`c \uppercase{\gdef\macro@#1#2#3#4\macro@{\global\macro@false \ifx 5#1\ifx 6#2\ifx 7#3\global\macro@true \xdef\meaning@{\macro@@#4\macro@@}\fi\fi\fi}}} \def\macro@@#1->#2\macro@@{#2} \newif\ifDOTS@ \newcount\DOTSCASE@ {\uccode`6=`\\ \uccode`7=`D \uccode`8=`O \uccode`9=`T \uccode`0=`S \uppercase{\gdef\DOTS@#1#2#3#4#5{\global\DOTS@false\DN@##1\DOTS@{}% \ifx 6#1\ifx 7#2\ifx 8#3\ifx 9#4\ifx 0#5\let\next@\DOTS@@\fi\fi\fi\fi\fi \next@}}} {\uccode`3=`B \uccode`4=`I \uccode`5=`X \uppercase{\gdef\DOTS@@#1{\relaxnext@ \DNii@##1\DOTS@{\ifx\space@\next\global\DOTS@true\fi}% \DN@{\FN@\nextii@}% \ifx 3#1\global\DOTSCASE@\z@\else \ifx 4#1\global\DOTSCASE@\@ne\else \ifx 5#1\global\DOTSCASE@\tw@\else\DN@##1\DOTS@{}% \fi\fi\fi\next@}}} \newif\ifnot@ {\uccode`5=`\\ \uccode`6=`n \uccode`7=`o \uccode`8=`t \uppercase{\gdef\not@#1#2#3#4{\relaxnext@ \DNii@##1\not@{\ifx\space@\next\global\not@true\fi}% \global\not@false\DN@##1\not@{}% \ifx 5#1\ifx 6#2\ifx 7#3\ifx 8#4\DN@{\FN@\nextii@}\fi\fi\fi \fi\next@}}} \newif\ifkeybin@ \def\keybin@{\keybin@true \ifx\next+\else\ifx\next=\else\ifx\next<\else\ifx\next>\else\ifx\next-\else \ifx\next*\else\ifx\next:\else\keybin@false\fi\fi\fi\fi\fi\fi\fi} \def\dots{\RIfM@\expandafter\mdots@\else\expandafter\tdots@\fi} \def\tdots@{\unskip\relaxnext@ \DN@{$\m@th\mathinner{\ldotp\ldotp\ldotp}\, \ifx\next,\,$\else\ifx\next.\,$\else\ifx\next;\,$\else\ifx\next:\,$\else \ifx\next?\,$\else\ifx\next!\,$\else$ \fi\fi\fi\fi\fi\fi}% \ \FN@\next@} \def\mdots@{\FN@\mdots@@} \def\mdots@@{\gdef\thedots@{\dotso@}% %1 \ifx\next\boldkey\gdef\thedots@\boldkey{\boldkeydots@}\else %2 \ifx\next\boldsymbol\gdef\thedots@\boldsymbol{\boldsymboldots@}\else %3 \ifx,\next\gdef\thedots@{\dotsc}% %4 \else\ifx\not\next\gdef\thedots@{\dotsb@}% %5 \else\keybin@ \ifkeybin@\gdef\thedots@{\dotsb@}% %6 \else\xdef\meaning@{\meaning\next..........}\xdef\meaning@@{\meaning@}% %7 \expandafter\math@\meaning@\math@ \ifmath@ \expandafter\mathch@\meaning@\mathch@ \ifmathch@\expandafter\getmathch@\meaning@\getmathch@\fi %8 \else\expandafter\macro@\meaning@@\macro@ %9 \ifmacro@ %10 \expandafter\not@\meaning@\not@\ifnot@\gdef\thedots@{\dotsb@}% %11 \else\expandafter\DOTS@\meaning@\DOTS@ \ifDOTS@ \ifcase\number\DOTSCASE@\gdef\thedots@{\dotsb@}% \or\gdef\thedots@{\dotsi}\else\fi %12 \else\expandafter\math@\meaning@\math@ %13 \ifmath@\expandafter\mathbin@\meaning@\mathbin@ \ifmathbin@\gdef\thedots@{\dotsb@}% %14 \else\expandafter\mathrel@\meaning@\mathrel@ \ifmathrel@\gdef\thedots@{\dotsb@}% %15 \fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi \thedots@} \def\plainldots@{\mathinner{\ldotp\ldotp\ldotp}} \def\plaincdots@{\mathinner{\cdotp\cdotp\cdotp}} \def\dotsi{\!\plaincdots@} \let\dotsb@\plaincdots@ \newif\ifextra@ \newif\ifrightdelim@ \def\rightdelim@{\global\rightdelim@true %1 \ifx\next)\else %2 \ifx\next]\else \ifx\next\rbrack\else \ifx\next\}\else \ifx\next\rbrace\else \ifx\next\rangle\else \ifx\next\rceil\else \ifx\next\rfloor\else \ifx\next\rgroup\else \ifx\next\rmoustache\else \ifx\next\right\else \ifx\next\bigr\else \ifx\next\biggr\else \ifx\next\Bigr\else %3 \ifx\next\Biggr\else\global\rightdelim@false \fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi} \def\extra@{% \global\extra@false\rightdelim@\ifrightdelim@\global\extra@true %1 \else\ifx\next$\global\extra@true %2 \else\xdef\meaning@{\meaning\next..........}% %3 \expandafter\macro@\meaning@\macro@\ifmacro@ %4 \expandafter\DOTS@\meaning@\DOTS@ \ifDOTS@ \ifnum\DOTSCASE@=\tw@\global\extra@true %5 \fi\fi\fi\fi\fi} \newif\ifbold@ \def\dotso@{\relaxnext@ \ifbold@ \let\next\delayed@ \DNii@{\extra@\plainldots@\ifextra@\,\fi}% \else \DNii@{\DN@{\extra@\plainldots@\ifextra@\,\fi}\FN@\next@}% \fi \nextii@} \def\extrap@#1{% \ifx\next,\DN@{#1\,}\else \ifx\next;\DN@{#1\,}\else \ifx\next.\DN@{#1\,}\else\extra@ \ifextra@\DN@{#1\,}\else \let\next@#1\fi\fi\fi\fi\next@} \def\ldots{\DN@{\extrap@\plainldots@}% \FN@\next@} \def\cdots{\DN@{\extrap@\plaincdots@}% \FN@\next@} \let\dotso\ldots \let\dotsb\cdots \let\dotsm\dotsb \def\dotsc{\relaxnext@ \DN@{\ifx\next;\plainldots@\,\else \ifx\next.\plainldots@\,\else\extra@\plainldots@ \ifextra@\,\fi\fi\fi}% \FN@\next@} \def\cdot{\mathchar"2201 } \def\longrightarrow{\DOTSB\relbar\joinrel\rightarrow} \def\Longrightarrow{\DOTSB\Relbar\joinrel\Rightarrow} \def\longleftarrow{\DOTSB\leftarrow\joinrel\relbar} \def\Longleftarrow{\DOTSB\Leftarrow\joinrel\Relbar} \def\longleftrightarrow{\DOTSB\leftarrow\joinrel\rightarrow} \def\Longleftrightarrow{\DOTSB\Leftarrow\joinrel\Rightarrow} \def\mapsto{\DOTSB\mapstochar\rightarrow} \def\longmapsto{\DOTSB\mapstochar\longrightarrow} \def\hookrightarrow{\DOTSB\lhook\joinrel\rightarrow} \def\hookleftarrow{\DOTSB\leftarrow\joinrel\rhook} \def\doteq{\DOTSB\buildrel\textstyle.\over=} \def\iff{\DOTSB\;\Longleftrightarrow\;} \message{special superscripts,} \def\dddot#1{{\mathop{#1}\limits^{\vbox to-1.4\ex@{\kern-\tw@\ex@ \hbox{\rm...}\vss}}}} \def\ddddot#1{{\mathop{#1}\limits^{\vbox to-1.4\ex@{\kern-\tw@\ex@ \hbox{\rm....}\vss}}}} \def\sphat{^{\mathchoice{}{}% {\,\,\botsmash{\hbox{\lower4\ex@\hbox{$\m@th\widehat{\null}$}}}}% {\,\botsmash{\hbox{\lower3\ex@\hbox{$\m@th\hat{\null}$}}}}}} \def\spcheck{^\vee} \def\sptilde{^\sim} \def\spacute{^{\!\botsmash{\hbox{\lower\@ne ex\hbox{\'{}}}}}} \def\spgrave{^{\mathchoice{}{}{}{\!}% \botsmash{\hbox{\lower\@ne ex\hbox{\`{}}}}}} \def\spdot{^{\hbox{\raise\ex@\hbox{\rm.}}}} \def\spddot{^{\hbox{\raise\ex@\hbox{\rm..}}}} \def\spdddot{^{\hbox{\raise\ex@\hbox{\rm...}}}} \def\spddddot{^{\hbox{\raise\ex@\hbox{\rm....}}}} \def\spbreve{^{\!\botsmash{\hbox{\lower4\ex@\hbox{\u{}}}}}} \def\spbar{^-} \def\spvec{^\rightarrow} \message{\string\text,} \def\textonlyfont@#1#2{\def#1{\RIfM@ \Err@{Use \string#1\space only in text}\else#2\fi}} \textonlyfont@\rm\tenrm \textonlyfont@\it\tenit \textonlyfont@\sl\tensl \textonlyfont@\bf\tenbf \def\oldnos#1{\RIfM@{\mathcode`\,="013B \fam\@ne#1}\else \leavevmode\hbox{$\m@th\mathcode`\,="013B \fam\@ne#1$}\fi} \def\text{\RIfM@\expandafter\text@\else\expandafter\text@@\fi} \def\text@@#1{\leavevmode\hbox{#1}} \def\mathhexbox@#1#2#3{\text{$\m@th\mathchar"#1#2#3$}} \def\dag{{\mathhexbox@279}} \def\ddag{{\mathhexbox@27A}} \def\S{{\mathhexbox@278}} \def\P{{\mathhexbox@27B}} \newif\iffirstchoice@ \firstchoice@true \def\text@#1{\mathchoice {\hbox{\everymath{\displaystyle}\def\textfonti{\the\textfont\@ne}% \def\textfontii{\the\textfont\tw@}\textdef@@ T#1}} {\hbox{\firstchoice@false \everymath{\textstyle}\def\textfonti{\the\textfont\@ne}% \def\textfontii{\the\textfont\tw@}\textdef@@ T#1}} {\hbox{\firstchoice@false \everymath{\scriptstyle}\def\textfonti{\the\scriptfont\@ne}% \def\textfontii{\the\scriptfont\tw@}\textdef@@ S\rm#1}} {\hbox{\firstchoice@false \everymath{\scriptscriptstyle}\def\textfonti {\the\scriptscriptfont\@ne}% \def\textfontii{\the\scriptscriptfont\tw@}\textdef@@ s\rm#1}}} \def\textdef@@#1{\textdef@#1\rm\textdef@#1\bf\textdef@#1\sl\textdef@#1\it} \def\rmfam{0} \def\textdef@#1#2{% \DN@{\csname\expandafter\eat@\string#2fam\endcsname}% \if S#1\edef#2{\the\scriptfont\next@\relax}% \else\if s#1\edef#2{\the\scriptscriptfont\next@\relax}% \else\edef#2{\the\textfont\next@\relax}\fi\fi} \scriptfont\itfam\tenit \scriptscriptfont\itfam\tenit \scriptfont\slfam\tensl \scriptscriptfont\slfam\tensl \newif\iftopfolded@ \newif\ifbotfolded@ \def\topfoldedtext{\topfolded@true\botfolded@false\foldedtext@} \def\botfoldedtext{\botfolded@true\topfolded@false\foldedtext@} \def\foldedtext{\topfolded@false\botfolded@false\foldedtext@} \Invalid@\foldedwidth \def\foldedtext@{\relaxnext@ \DN@{\ifx\next\foldedwidth\let\next@\nextii@\else \DN@{\nextii@\foldedwidth{.3\hsize}}\fi\next@}% \DNii@\foldedwidth##1##2{\setbox\z@\vbox {\normalbaselines\hsize##1\relax \tolerance1600 \noindent\ignorespaces##2}\ifbotfolded@\boxz@\else \iftopfolded@\vtop{\unvbox\z@}\else\vcenter{\boxz@}\fi\fi}% \FN@\next@} \message{math font commands,} \def\bold{\RIfM@\expandafter\bold@\else \expandafter\nonmatherr@\expandafter\bold\fi} \def\bold@#1{{\bold@@{#1}}} \def\bold@@#1{\fam\bffam\relax#1} \def\slanted{\RIfM@\expandafter\slanted@\else \expandafter\nonmatherr@\expandafter\slanted\fi} \def\slanted@#1{{\slanted@@{#1}}} \def\slanted@@#1{\fam\slfam\relax#1} \def\roman{\RIfM@\expandafter\roman@\else \expandafter\nonmatherr@\expandafter\roman\fi} \def\roman@#1{{\roman@@{#1}}} \def\roman@@#1{\fam\rmfam\relax#1} \def\italic{\RIfM@\expandafter\italic@\else \expandafter\nonmatherr@\expandafter\italic\fi} \def\italic@#1{{\italic@@{#1}}} \def\italic@@#1{\fam\itfam\relax#1} \def\Cal{\RIfM@\expandafter\Cal@\else \expandafter\nonmatherr@\expandafter\Cal\fi} \def\Cal@#1{{\Cal@@{#1}}} \def\Cal@@#1{\noaccents@\fam\tw@#1} \mathchardef\Gamma="0000 \mathchardef\Delta="0001 \mathchardef\Theta="0002 \mathchardef\Lambda="0003 \mathchardef\Xi="0004 \mathchardef\Pi="0005 \mathchardef\Sigma="0006 \mathchardef\Upsilon="0007 \mathchardef\Phi="0008 \mathchardef\Psi="0009 \mathchardef\Omega="000A \mathchardef\varGamma="0100 \mathchardef\varDelta="0101 \mathchardef\varTheta="0102 \mathchardef\varLambda="0103 \mathchardef\varXi="0104 \mathchardef\varPi="0105 \mathchardef\varSigma="0106 \mathchardef\varUpsilon="0107 \mathchardef\varPhi="0108 \mathchardef\varPsi="0109 \mathchardef\varOmega="010A \let\alloc@@\alloc@ \def\hexnumber@#1{\ifcase#1 0\or 1\or 2\or 3\or 4\or 5\or 6\or 7\or 8\or 9\or A\or B\or C\or D\or E\or F\fi} \def\loadmsam{% \font@\tenmsa=msam10 \font@\sevenmsa=msam7 \font@\fivemsa=msam5 \alloc@@8\fam\chardef\sixt@@n\msafam \textfont\msafam=\tenmsa \scriptfont\msafam=\sevenmsa \scriptscriptfont\msafam=\fivemsa \edef\next{\hexnumber@\msafam}% \mathchardef\dabar@"0\next39 \edef\dashrightarrow{\mathrel{\dabar@\dabar@\mathchar"0\next4B}}% \edef\dashleftarrow{\mathrel{\mathchar"0\next4C\dabar@\dabar@}}% \let\dasharrow\dashrightarrow \edef\ulcorner{\delimiter"4\next70\next70 }% \edef\urcorner{\delimiter"5\next71\next71 }% \edef\llcorner{\delimiter"4\next78\next78 }% \edef\lrcorner{\delimiter"5\next79\next79 }% \edef\yen{{\noexpand\mathhexbox@\next55}}% \edef\checkmark{{\noexpand\mathhexbox@\next58}}% \edef\circledR{{\noexpand\mathhexbox@\next72}}% \edef\maltese{{\noexpand\mathhexbox@\next7A}}% \global\let\loadmsam\empty}% \def\loadmsbm{% \font@\tenmsb=msbm10 \font@\sevenmsb=msbm7 \font@\fivemsb=msbm5 \alloc@@8\fam\chardef\sixt@@n\msbfam \textfont\msbfam=\tenmsb \scriptfont\msbfam=\sevenmsb \scriptscriptfont\msbfam=\fivemsb \global\let\loadmsbm\empty } \def\widehat#1{\ifx\undefined\msbfam \DN@{362}% \else \setboxz@h{$\m@th#1$}% \edef\next@{\ifdim\wdz@>\tw@ em% \hexnumber@\msbfam 5B% \else 362\fi}\fi \mathaccent"0\next@{#1}} \def\widetilde#1{\ifx\undefined\msbfam \DN@{365}% \else \setboxz@h{$\m@th#1$}% \edef\next@{\ifdim\wdz@>\tw@ em% \hexnumber@\msbfam 5D% \else 365\fi}\fi \mathaccent"0\next@{#1}} \message{\string\newsymbol,} \def\newsymbol#1#2#3#4#5{\define#1{}% \count@#2\relax \advance\count@\m@ne % to push case 0 to the \else clause \ifcase\count@ \ifx\undefined\msafam\loadmsam\fi \let\next@\msafam \or \ifx\undefined\msbfam\loadmsbm\fi \let\next@\msbfam \else \Err@{\Invalid@@\string\newsymbol}\let\next@\tw@\fi \mathchardef#1="#3\hexnumber@\next@#4#5\space} \def\UseAMSsymbols{\loadmsam\loadmsbm \input amssym.tex } \def\Bbb{\RIfM@\expandafter\Bbb@\else \expandafter\nonmatherr@\expandafter\Bbb\fi} \def\Bbb@#1{{\Bbb@@{#1}}} \def\Bbb@@#1{\noaccents@\fam\msbfam\relax#1} \message{bold Greek and bold symbols,} \def\loadbold{% \font@\tencmmib=cmmib10 \font@\sevencmmib=cmmib7 \font@\fivecmmib=cmmib5 \skewchar\tencmmib'177 \skewchar\sevencmmib'177 \skewchar\fivecmmib'177 \alloc@@8\fam\chardef\sixt@@n\cmmibfam \textfont\cmmibfam\tencmmib \scriptfont\cmmibfam\sevencmmib \scriptscriptfont\cmmibfam\fivecmmib \font@\tencmbsy=cmbsy10 \font@\sevencmbsy=cmbsy7 \font@\fivecmbsy=cmbsy5 \skewchar\tencmbsy'60 \skewchar\sevencmbsy'60 \skewchar\fivecmbsy'60 \alloc@@8\fam\chardef\sixt@@n\cmbsyfam \textfont\cmbsyfam\tencmbsy \scriptfont\cmbsyfam\sevencmbsy \scriptscriptfont\cmbsyfam\fivecmbsy \let\loadbold\empty } \def\boldnotloaded#1{\Err@{\ifcase#1\or First\else Second\fi bold symbol font not loaded}} \def\mathchari@#1#2#3{\ifx\undefined\cmmibfam \boldnotloaded@\@ne \else\mathchar"#1\hexnumber@\cmmibfam#2#3\space \fi} \def\mathcharii@#1#2#3{\ifx\undefined\cmbsyfam \boldnotloaded\tw@ \else \mathchar"#1\hexnumber@\cmbsyfam#2#3\space\fi} \edef\bffam@{\hexnumber@\bffam} \def\boldkey#1{\ifcat\noexpand#1A% \ifx\undefined\cmmibfam \boldnotloaded\@ne \else {\fam\cmmibfam#1}\fi \else \ifx#1!\mathchar"5\bffam@21 \else \ifx#1(\mathchar"4\bffam@28 \else\ifx#1)\mathchar"5\bffam@29 \else \ifx#1+\mathchar"2\bffam@2B \else\ifx#1:\mathchar"3\bffam@3A \else \ifx#1;\mathchar"6\bffam@3B \else\ifx#1=\mathchar"3\bffam@3D \else \ifx#1?\mathchar"5\bffam@3F \else\ifx#1[\mathchar"4\bffam@5B \else \ifx#1]\mathchar"5\bffam@5D \else \ifx#1,\mathchari@63B \else \ifx#1-\mathcharii@200 \else \ifx#1.\mathchari@03A \else \ifx#1/\mathchari@03D \else \ifx#1<\mathchari@33C \else \ifx#1>\mathchari@33E \else \ifx#1*\mathcharii@203 \else \ifx#1|\mathcharii@06A \else \ifx#10\bold0\else\ifx#11\bold1\else\ifx#12\bold2\else\ifx#13\bold3\else \ifx#14\bold4\else\ifx#15\bold5\else\ifx#16\bold6\else\ifx#17\bold7\else \ifx#18\bold8\else\ifx#19\bold9\else \Err@{\string\boldkey\space can't be used with #1}% \fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi \fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi} \def\boldsymbol#1{% \DN@{\Err@{You can't use \string\boldsymbol\space with \string#1}#1}% \ifcat\noexpand#1A% \let\next@\relax \ifx\undefined\cmmibfam \boldnotloaded\@ne \else {\fam\cmmibfam#1}\fi \else \xdef\meaning@{\meaning#1.........}% \expandafter\math@\meaning@\math@ \ifmath@ \expandafter\mathch@\meaning@\mathch@ \ifmathch@ \expandafter\boldsymbol@@\meaning@\boldsymbol@@ \fi \else \expandafter\macro@\meaning@\macro@ \expandafter\delim@\meaning@\delim@ \ifdelim@ \expandafter\delim@@\meaning@\delim@@ \else \boldsymbol@{#1}% \fi \fi \fi \next@} \def\mathhexboxii@#1#2{\ifx\undefined\cmbsyfam \boldnotloaded\tw@ \else \mathhexbox@{\hexnumber@\cmbsyfam}{#1}{#2}\fi} \def\boldsymbol@#1{\let\next@\relax\let\next#1% \ifx\next\cdot\mathcharii@201 \else \ifx\next\prime{{\null\mathcharii@030 \null}}\else \ifx\next\lbrack\mathchar"4\bffam@5B \else \ifx\next\rbrack\mathchar"5\bffam@5D \else \ifx\next\{\mathcharii@466 \else \ifx\next\lbrace\mathcharii@466 \else \ifx\next\}\mathcharii@567 \else \ifx\next\rbrace\mathcharii@567 \else \ifx\next\surd{{\mathcharii@170}}\else \ifx\next\S{{\mathhexboxii@78}}\else \ifx\next\P{{\mathhexboxii@7B}}\else \ifx\next\dag{{\mathhexboxii@79}}\else \ifx\next\ddag{{\mathhexboxii@7A}}\else \DN@{\Err@{You can't use \string\boldsymbol\space with \string#1}#1}% \fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi} \def\boldsymbol@@#1.#2\boldsymbol@@{\classnum@#1 \count@@@\classnum@ %1 \divide\classnum@4096 \count@\classnum@ %2 \multiply\count@4096 \advance\count@@@-\count@ \count@@\count@@@ %3 \divide\count@@@\@cclvi \count@\count@@ %4 \multiply\count@@@\@cclvi \advance\count@@-\count@@@ %5 \divide\count@@@\@cclvi %6 \multiply\classnum@4096 \advance\classnum@\count@@ %7 \ifnum\count@@@=\z@ %8 \count@"\bffam@ \multiply\count@\@cclvi \advance\classnum@\count@ \DN@{\mathchar\number\classnum@}% \else \ifnum\count@@@=\@ne %9 \ifx\undefined\cmmibfam \DN@{\boldnotloaded\@ne}% \else \count@\cmmibfam \multiply\count@\@cclvi \advance\classnum@\count@ \DN@{\mathchar\number\classnum@}\fi \else \ifnum\count@@@=\tw@ %10 \ifx\undefined\cmbsyfam \DN@{\boldnotloaded\tw@}% \else \count@\cmbsyfam \multiply\count@\@cclvi \advance\classnum@\count@ \DN@{\mathchar\number\classnum@}% \fi \fi \fi \fi} \newif\ifdelim@ \newcount\delimcount@ {\uccode`6=`\\ \uccode`7=`d \uccode`8=`e \uccode`9=`l \uppercase{\gdef\delim@#1#2#3#4#5\delim@ {\delim@false\ifx 6#1\ifx 7#2\ifx 8#3\ifx 9#4\delim@true \xdef\meaning@{#5}\fi\fi\fi\fi}}} \def\delim@@#1"#2#3#4#5#6\delim@@{\if#32% \let\next@\relax \ifx\undefined\cmbsyfam \boldnotloaded\@ne \else \mathcharii@#2#4#5\space \fi\fi} \def\vert{\delimiter"026A30C } \def\Vert{\delimiter"026B30D } \let\|\Vert \def\backslash{\delimiter"026E30F } \def\boldkeydots@#1{\bold@true\let\next=#1\let\delayed@=#1\mdots@@ \boldkey#1\bold@false} % = required! \def\boldsymboldots@#1{\bold@true\let\next#1\let\delayed@#1\mdots@@ \boldsymbol#1\bold@false} \message{Euler fonts,} \def\loadeufm{\loadmathfont{eufm}} \def\loadeufb{\loadmathfont{eufb}} \def\loadeusm{\loadmathfont{eusm}} \def\loadeusb{\loadmathfont{eusb}} \def\loadeurm{\loadmathfont{eurm}} \def\loadeurb{\loadmathfont{eurb}} \def\frak{\mathfont@\frak} \def\frakfam{\eufmfam} \let\goth\frak \def\loadmathfont#1{% \expandafter\font@\csname ten#1\endcsname=#110 \expandafter\font@\csname seven#1\endcsname=#17 \expandafter\font@\csname five#1\endcsname=#15 \edef\next{\noexpand\alloc@@8\fam\chardef\sixt@@n \expandafter\noexpand\csname#1fam\endcsname}% \next \textfont\csname#1fam\endcsname \csname ten#1\endcsname \scriptfont\csname#1fam\endcsname \csname seven#1\endcsname \scriptscriptfont\csname#1fam\endcsname \csname five#1\endcsname \expandafter\def\csname #1\expandafter\endcsname\expandafter{% \expandafter\mathfont@\csname#1\endcsname}% \expandafter\gdef\csname load#1\endcsname{}% } \def\mathfont@#1{\RIfM@\expandafter\mathfont@@\expandafter#1\else \expandafter\nonmatherr@\expandafter#1\fi} \def\mathfont@@#1#2{{\mathfont@@@#1{#2}}} \def\mathfont@@@#1#2{\noaccents@ \fam\csname\expandafter\eat@\string#1fam\endcsname \relax#2} \message{math accents,} \def\accentclass@{7} \def\noaccents@{\def\accentclass@{0}} \def\makeacc@#1#2{\def#1{\mathaccent"\accentclass@#2 }} \makeacc@\hat{05E} \makeacc@\check{014} \makeacc@\tilde{07E} \makeacc@\acute{013} \makeacc@\grave{012} \makeacc@\dot{05F} \makeacc@\ddot{07F} \makeacc@\breve{015} \makeacc@\bar{016} \def\vec{\mathaccent"017E } \newcount\skewcharcount@ \newcount\familycount@ \def\theskewchar@{\familycount@\@ne \global\skewcharcount@\the\skewchar\textfont\@ne %1 \ifnum\fam>\m@ne\ifnum\fam<16 \global\familycount@\the\fam\relax \global\skewcharcount@\the\skewchar\textfont\the\fam\relax\fi\fi %2 \ifnum\skewcharcount@>\m@ne \ifnum\skewcharcount@<128 \multiply\familycount@256 \global\advance\skewcharcount@\familycount@ \global\advance\skewcharcount@28672 \mathchar\skewcharcount@\else \global\skewcharcount@\m@ne\fi\else \global\skewcharcount@\m@ne\fi} %3 \newcount\pointcount@ \def\getpoints@#1.#2\getpoints@{\pointcount@#1 } \newdimen\accentdimen@ \newcount\accentmu@ \def\dimentomu@{\multiply\accentdimen@ 100 \expandafter\getpoints@\the\accentdimen@\getpoints@ \multiply\pointcount@18 \divide\pointcount@\@m \global\accentmu@\pointcount@} \def\Makeacc@#1#2{\def#1{\RIfM@\DN@{\mathaccent@ {"\accentclass@#2 }}\else\DN@{\nonmatherr@{#1}}\fi\next@}} \def\unbracefonts@{\let\Cal@\Cal@@\let\roman@\roman@@\let\bold@\bold@@ \let\slanted@\slanted@@} \def\mathaccent@#1#2{\ifnum\fam=\m@ne\xdef\thefam@{1}\else \xdef\thefam@{\the\fam}\fi %1 \accentdimen@\z@ %2 \setboxz@h{\unbracefonts@$\m@th\fam\thefam@\relax#2$}% %3 \ifdim\accentdimen@=\z@\DN@{\mathaccent#1{#2}}% %4 \setbox@ne\hbox{\unbracefonts@$\m@th\fam\thefam@\relax#2\theskewchar@$}% %5a \setbox\tw@\hbox{$\m@th\ifnum\skewcharcount@=\m@ne\else \mathchar\skewcharcount@\fi$}% %5b \global\accentdimen@\wd@ne\global\advance\accentdimen@-\wdz@ \global\advance\accentdimen@-\wd\tw@ %5c \global\multiply\accentdimen@\tw@ \dimentomu@\global\advance\accentmu@\@ne %5d \else\DN@{{\mathaccent#1{#2\mkern\accentmu@ mu}% \mkern-\accentmu@ mu}{}}\fi %6 \next@}\Makeacc@\Hat{05E} \Makeacc@\Check{014} \Makeacc@\Tilde{07E} \Makeacc@\Acute{013} \Makeacc@\Grave{012} \Makeacc@\Dot{05F} \Makeacc@\Ddot{07F} \Makeacc@\Breve{015} \Makeacc@\Bar{016} \def\Vec{\RIfM@\DN@{\mathaccent@{"017E }}\else \DN@{\nonmatherr@\Vec}\fi\next@} \def\accentedsymbol#1#2{\csname newbox\expandafter\endcsname \csname\expandafter\eat@\string#1@box\endcsname \expandafter\setbox\csname\expandafter\eat@ \string#1@box\endcsname\hbox{$\m@th#2$}\define #1{\copy\csname\expandafter\eat@\string#1@box\endcsname{}}} \message{roots,} \def\sqrt#1{\radical"270370 {#1}} \let\underline@\underline \let\overline@\overline \def\underline#1{\underline@{#1}} \def\overline#1{\overline@{#1}} \Invalid@\leftroot \Invalid@\uproot \newcount\uproot@ \newcount\leftroot@ \def\root{\relaxnext@ \DN@{\ifx\next\uproot\let\next@\nextii@\else \ifx\next\leftroot\let\next@\nextiii@\else \let\next@\plainroot@\fi\fi\next@}% \DNii@\uproot##1{\uproot@##1\relax\FN@\nextiv@}% \def\nextiv@{\ifx\next\space@\DN@. {\FN@\nextv@}\else \DN@.{\FN@\nextv@}\fi\next@.}% \def\nextv@{\ifx\next\leftroot\let\next@\nextvi@\else \let\next@\plainroot@\fi\next@}% \def\nextvi@\leftroot##1{\leftroot@##1\relax\plainroot@}% \def\nextiii@\leftroot##1{\leftroot@##1\relax\FN@\nextvii@}% \def\nextvii@{\ifx\next\space@ \DN@. {\FN@\nextviii@}\else \DN@.{\FN@\nextviii@}\fi\next@.}% \def\nextviii@{\ifx\next\uproot\let\next@\nextix@\else \let\next@\plainroot@\fi\next@}% \def\nextix@\uproot##1{\uproot@##1\relax\plainroot@}% \bgroup\uproot@\z@\leftroot@\z@\FN@\next@} \def\plainroot@#1\of#2{\setbox\rootbox\hbox{$\m@th\scriptscriptstyle{#1}$}% \mathchoice{\r@@t\displaystyle{#2}}{\r@@t\textstyle{#2}} {\r@@t\scriptstyle{#2}}{\r@@t\scriptscriptstyle{#2}}\egroup} \def\r@@t#1#2{\setboxz@h{$\m@th#1\sqrt{#2}$}% \dimen@\ht\z@\advance\dimen@-\dp\z@ \setbox@ne\hbox{$\m@th#1\mskip\uproot@ mu$}\advance\dimen@ 1.667\wd@ne \mkern-\leftroot@ mu\mkern5mu\raise.6\dimen@\copy\rootbox \mkern-10mu\mkern\leftroot@ mu\boxz@} \def\boxed#1{\setboxz@h{$\m@th\displaystyle{#1}$}\dimen@.4\ex@ \advance\dimen@3\ex@\advance\dimen@\dp\z@ \hbox{\lower\dimen@\hbox{% \vbox{\hrule height.4\ex@ \hbox{\vrule width.4\ex@\hskip3\ex@\vbox{\vskip3\ex@\boxz@\vskip3\ex@}% \hskip3\ex@\vrule width.4\ex@}\hrule height.4\ex@}% }}} \message{commutative diagrams,} \let\ampersand@\relax \newdimen\minaw@ \minaw@11.11128\ex@ \newdimen\minCDaw@ \minCDaw@2.5pc \def\minCDarrowwidth#1{\RIfMIfI@\onlydmatherr@\minCDarrowwidth \else\minCDaw@#1\relax\fi\else\onlydmatherr@\minCDarrowwidth\fi} \newif\ifCD@ \def\CD{\bgroup\vspace@\relax\iffalse{\fi\let\ampersand@&\iffalse}\fi \CD@true\vcenter\bgroup\Let@\tabskip\z@skip\baselineskip20\ex@ \lineskip3\ex@\lineskiplimit3\ex@\halign\bgroup &\hfill$\m@th##$\hfill\crcr} \def\endCD{\crcr\egroup\egroup\egroup} \newdimen\bigaw@ \atdef@>#1>#2>{\ampersand@ %1 \setboxz@h{$\m@th\ssize\;{#1}\;\;$}% %2 \setbox@ne\hbox{$\m@th\ssize\;{#2}\;\;$}% %3 \setbox\tw@\hbox{$\m@th#2$}% %4 \ifCD@\global\bigaw@\minCDaw@\else\global\bigaw@\minaw@\fi %5 \ifdim\wdz@>\bigaw@\global\bigaw@\wdz@\fi \ifdim\wd@ne>\bigaw@\global\bigaw@\wd@ne\fi %6 \ifCD@\enskip\fi %7 \ifdim\wd\tw@>\z@ \mathrel{\mathop{\hbox to\bigaw@{\rightarrowfill@\displaystyle}}% \limits^{#1}_{#2}}% %8 \else\mathrel{\mathop{\hbox to\bigaw@{\rightarrowfill@\displaystyle}}% \limits^{#1}}\fi %9 \ifCD@\enskip\fi %10 \ampersand@} %11 \atdef@<#1<#2<{\ampersand@\setboxz@h{$\m@th\ssize\;\;{#1}\;$}% \setbox@ne\hbox{$\m@th\ssize\;\;{#2}\;$}\setbox\tw@\hbox{$\m@th#2$}% \ifCD@\global\bigaw@\minCDaw@\else\global\bigaw@\minaw@\fi \ifdim\wdz@>\bigaw@\global\bigaw@\wdz@\fi \ifdim\wd@ne>\bigaw@\global\bigaw@\wd@ne\fi \ifCD@\enskip\fi \ifdim\wd\tw@>\z@ \mathrel{\mathop{\hbox to\bigaw@{\leftarrowfill@\displaystyle}}% \limits^{#1}_{#2}}\else \mathrel{\mathop{\hbox to\bigaw@{\leftarrowfill@\displaystyle}}% \limits^{#1}}\fi \ifCD@\enskip\fi\ampersand@} \begingroup \catcode`\~=\active \lccode`\~=`\@ \lowercase{% \global\atdef@)#1)#2){~>#1>#2>} \global\atdef@(#1(#2({~<#1<#2<}} \endgroup \atdef@ A#1A#2A{\llap{$\m@th\vcenter{\hbox {$\ssize#1$}}$}\Big\uparrow\rlap{$\m@th\vcenter{\hbox{$\ssize#2$}}$}&&} \atdef@ V#1V#2V{\llap{$\m@th\vcenter{\hbox {$\ssize#1$}}$}\Big\downarrow\rlap{$\m@th\vcenter{\hbox{$\ssize#2$}}$}&&} \atdef@={&\enskip\mathrel {\vbox{\hrule width\minCDaw@\vskip3\ex@\hrule width \minCDaw@}}\enskip&} \atdef@|{\Big\Vert&&} \atdef@\vert{\Big\Vert&&} \def\pretend#1\haswidth#2{\setboxz@h{$\m@th\scriptstyle{#2}$}\hbox to\wdz@{\hfill$\m@th\scriptstyle{#1}$\hfill}} \message{poor man's bold,} \def\pmb{\RIfM@\expandafter\mathpalette\expandafter\pmb@\else \expandafter\pmb@@\fi} \def\pmb@@#1{\leavevmode\setboxz@h{#1}% \dimen@-\wdz@ \kern-.5\ex@\copy\z@ \kern\dimen@\kern.25\ex@\raise.4\ex@\copy\z@ \kern\dimen@\kern.25\ex@\box\z@ } \def\binrel@@#1{\ifdim\wd2<\z@\mathbin{#1}\else\ifdim\wd\tw@>\z@ \mathrel{#1}\else{#1}\fi\fi} \newdimen\pmbraise@ % Note: because of the use of \mathpalette, if \pmb@ is % applied to a single math italic character (or a single % character from some other slanted math font), the italic % correction will be added. This will cause subscripts % to fall too far away from the character in some % cases, e.g., $\pmb{T}_1$ or $\pmb{\Cal T}_1$. \def\pmb@#1#2{\setbox\thr@@\hbox{$\m@th#1{#2}$}% \setbox4\hbox{$\m@th#1\mkern.5mu$}\pmbraise@\wd4\relax \binrel@{#2}% \dimen@-\wd\thr@@ \binrel@@{% \mkern-.8mu\copy\thr@@ \kern\dimen@\mkern.4mu\raise\pmbraise@\copy\thr@@ \kern\dimen@\mkern.4mu\box\thr@@ }} \def\documentstyle#1{\W@{}\input #1.sty\relax} \message{syntax check,} %\font\dummyft@=dummy %\fontdimen1 \dummyft@=\z@ %\fontdimen2 \dummyft@=\z@ %\fontdimen3 \dummyft@=\z@ %\fontdimen4 \dummyft@=\z@ %\fontdimen5 \dummyft@=\z@ %\fontdimen6 \dummyft@=\z@ %\fontdimen7 \dummyft@=\z@ %\fontdimen8 \dummyft@=\z@ %\fontdimen9 \dummyft@=\z@ %\fontdimen10 \dummyft@=\z@ %\fontdimen11 \dummyft@=\z@ %\fontdimen12 \dummyft@=\z@ %\fontdimen13 \dummyft@=\z@ %\fontdimen14 \dummyft@=\z@ %\fontdimen15 \dummyft@=\z@ %\fontdimen16 \dummyft@=\z@ %\fontdimen17 \dummyft@=\z@ %\fontdimen18 \dummyft@=\z@ %\fontdimen19 \dummyft@=\z@ %\fontdimen20 \dummyft@=\z@ %\fontdimen21 \dummyft@=\z@ %\fontdimen22 \dummyft@=\z@ \def\fontlist@{\\{\tenrm}\\{\sevenrm}\\{\fiverm}\\{\teni}\\{\seveni}% \\{\fivei}\\{\tensy}\\{\sevensy}\\{\fivesy}\\{\tenex}\\{\tenbf}\\{\sevenbf}% \\{\fivebf}\\{\tensl}\\{\tenit}} \def\font@#1=#2 {\rightappend@#1\to\fontlist@\font#1=#2 } \def\dodummy@{{\def\\##1{\global\let##1\dummyft@}\fontlist@}} \def\nopages@{\output{\setbox\z@\box\@cclv \deadcycles\z@}% \alloc@5\toks\toksdef\@cclvi\output} \let\galleys\nopages@ \newif\ifsyntax@ \newcount\countxviii@ \def\syntax{\syntax@true\dodummy@\countxviii@\count18 \loop\ifnum\countxviii@>\m@ne\textfont\countxviii@=\dummyft@ \scriptfont\countxviii@=\dummyft@\scriptscriptfont\countxviii@=\dummyft@ \advance\countxviii@\m@ne\repeat %1 \dummyft@\tracinglostchars\z@\nopages@\frenchspacing\hbadness\@M} \def\first@#1#2\end{#1} \def\printoptions{\W@{Do you want S(yntax check), G(alleys) or P(ages)?}% \message{Type S, G or P, followed by : }% \begingroup % to localize the following change to \endlinechar: \endlinechar\m@ne % to prevent a space or \par in \ans@ from ^^M \read\m@ne to\ans@ % Define \ans@ to uppercase itself, and default to P if the user % just pressed . \edef\ans@{\uppercase{\def\noexpand\ans@{% \expandafter\first@\ans@ P\end}}}% % Cast the new definition of \ans@ outside the group \expandafter\endgroup\ans@ \if\ans@ P% fine, no action needs to be taken \else \if\ans@ S\syntax \else \if\ans@ G\galleys \else\message{? Unknown option: \ans@; using the `pages' option.}% \fi\fi\fi} \def\alloc@#1#2#3#4#5{\global\advance\count1#1by\@ne \ch@ck#1#4#2\allocationnumber=\count1#1 \global#3#5=\allocationnumber \ifalloc@\wlog{\string#5=\string#2\the\allocationnumber}\fi} \def\document{\def\alloclist@{}\def\fontlist@{}} \let\enddocument\bye \let\plainproclaim\proclaim \let\plainfootnote\footnote \let\proclaim\undefined \let\footnote\undefined \let\=\undefined \let\>\undefined \let\cal\undefined \let\mit\undefined \let\oldstyle\undefined \catcode`\@=\active \message{... finished} \endinput