]> git.uio.no Git - u/mrichter/AliRoot.git/blob - PWG1/doc/comparison/amstex.sty
Updates in D+ histos and ntuples (Renu, Francesco, Elena)
[u/mrichter/AliRoot.git] / PWG1 / doc / comparison / amstex.sty
1 %%% ====================================================================
2 %%%  @LaTeX-file{
3 %%%     filename  = "amstex.sty",
4 %%%     version   = "1.2f",
5 %%%     date      = "1999/11/15",
6 %%%     time      = "14:07:07 EST",
7 %%%     checksum  = "05218 2043 3020 71018",
8 %%%     author    = "American Mathematical Society",
9 %%%     copyright = "Copyright 1995, 1999 American Mathematical Society,
10 %%%                  all rights reserved.  Copying of this file is
11 %%%                  authorized only if either:
12 %%%                  (1) you make absolutely no changes to your copy,
13 %%%                  including name; OR
14 %%%                  (2) if you do make changes, you first rename it
15 %%%                  to some other name.",
16 %%%     address   = "American Mathematical Society,
17 %%%                  Technical Support,
18 %%%                  Electronic Products and Services,
19 %%%                  P. O. Box 6248,
20 %%%                  Providence, RI 02940,
21 %%%                  USA",
22 %%%     telephone = "401-455-4080 or (in the USA and Canada)
23 %%%                  800-321-4AMS (321-4267)",
24 %%%     FAX       = "401-331-3842",
25 %%%     email     = "tech-support@math.ams.org (Internet)",
26 %%%     keywords  = "latex, amslatex, ams-latex, math, amstex, ams-tex",
27 %%%     supported = "yes",
28 %%%     abstract  = "This package provides a variety of extra
29 %%%                  mathematical features, largely derived from
30 %%%                  AMS-\TeX{}. It was superseded in 1995 by the
31 %%%                  amsmath package.",
32 %%%     docstring = "The checksum field above contains a CRC-16 checksum
33 %%%                  as the first value, followed by the equivalent of
34 %%%                  the standard UNIX wc (word count) utility output of
35 %%%                  lines, words, and characters.  This is produced by
36 %%%                  Robert Solovay's checksum utility.",
37 %%%  }
38 %%% ====================================================================
39 %    This file was generated from version 1.2beta of amstex.dtx and then
40 %    underwent additional hand-editing.
41 \if@compatibility \else \catcode`\%=9 \fi
42 %\PackageError{amstex}{%
43 %Package `amstex' is obsolete, substituting `amsmath'}{You
44 %should use \string\usepackage{amsmath} instead. If
45 %that does not give satisfactory results, rename your previous copy
46 %of amstex.sty to amstex12beta.sty and call it with
47 %\string\usepackage{amstex12beta}.}
48 %\catcode`\%=14 \relax \input{amsmath.sty}\endinput
49 %
50 \ProvidesPackage{amstex}[1999/11/15 v1.2f AMS extra math features]
51 \let\@amsfonts=T
52 \DeclareOption{noamsfonts}{\let\@amsfonts=F}
53 \DeclareOption{psamsfonts}{\let\@amsfonts=P}
54 \DeclareOption{intlimits}{\let\ilimits@\displaylimits}
55 \DeclareOption{nointlimits}{\let\ilimits@\nolimits}
56 \DeclareOption{sumlimits}{\let\slimits@\displaylimits}
57 \DeclareOption{nosumlimits}{\let\slimits@\nolimits}
58 \DeclareOption{namelimits}{\let\nlimits@\displaylimits}
59 \DeclareOption{nonamelimits}{\let\nlimits@\nolimits}
60 \newif\ifctagsplit@
61 \newif\iftagsleft@
62 \DeclareOption{leqno}{\tagsleft@true}
63 \DeclareOption{reqno}{\tagsleft@false}
64 \DeclareOption{centertags}{\ctagsplit@true}
65 \DeclareOption{tbtags}{\ctagsplit@false}
66 \newif\if@fleqn
67 \newskip\@mathmargin
68 \@mathmargin\@centering
69 \DeclareOption{fleqn}{%
70     \@fleqntrue
71     \@mathmargin\m@ne sp
72     \AtBeginDocument{%
73         \ifdim\@mathmargin=\m@ne sp
74             \@mathmargin\leftmargini
75         \fi
76     }%
77 }
78 \DeclareOption{righttag}{\tagsleft@false}
79 \DeclareOption{ctagsplt}{\ctagsplit@true}
80 \DeclareOption{intlim}{\let\ilimits@\displaylimits}
81 \DeclareOption{nosumlim}{\let\slimits@\nolimits}
82 \DeclareOption{nonamelm}{\let\nlimits@\nolimits}
83 \ExecuteOptions{nointlimits,sumlimits,namelimits,centertags}
84 \ProcessOptions
85 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
86 %% In this section \RequirePackage statements were replaced with the
87 %% contents of the referenced files.
88 %%%     filename        = "amsgen.dtx",
89 %%%     version         = "1.2beta",
90 %%%     date            = "1994/12/13",
91 \providecommand{\@saveprimitive}[2]{\begingroup\escapechar`\\\relax
92   \edef\@tempa{\string#1}\edef\@tempb{\meaning#1}%
93   \ifx\@tempa\@tempb \global\let#2#1%
94   \else
95     \edef\@tempb{\meaning#2}%
96     \ifx\@tempa\@tempb
97     \else
98       \@latex@error{Unable to properly define \string#2; primitive
99       \noexpand#1no longer primitive}\@eha
100     \fi
101   \fi
102   \endgroup}
103 \let\@xp=\expandafter
104 \let\@nx=\noexpand
105 \newtoks\@emptytoks
106 \def\@oparg#1[#2]{\@ifnextchar[{#1}{#1[#2]}}
107 \def\@ifempty#1{\@xifempty#1@@..\@nil}
108 \long\def\@xifempty#1#2@#3#4#5\@nil{%
109   \ifx#3#4\@xp\@firstoftwo\else\@xp\@secondoftwo\fi}
110 \long\def\@ifnotempty#1{\@ifempty{#1}{}}
111 \def\FN@{\futurelet\@let@token}
112 \def\DN@{\def\next@}
113 \def\RIfM@{\relax\ifmmode}
114 \def\setboxz@h{\setbox\z@\hbox}
115 \def\wdz@{\wd\z@}
116 \def\boxz@{\box\z@}
117 \def\relaxnext@{\let\@let@token\relax}
118 \def\new@ifnextchar#1#2#3{%
119   \let\@tempe #1\def\@tempa{#2}\def\@tempb{#3}\futurelet
120     \@tempc\new@ifnch}
121 \def\new@ifnch{\ifx\@tempc \@tempe \let\@tempd\@tempa
122              \else\let\@tempd\@tempb\fi\@tempd}
123 \def\new@ifstar#1#2{\new@ifnextchar *{\def\@tempa*{#1}\@tempa}{#2}}
124 \@ifundefined{every@math@size}{%
125 \let\every@math@size=\every@size
126 \def\glb@settings{%
127      \expandafter\ifx\csname S@\f@size\endcsname\relax
128        \calculate@math@sizes
129      \fi
130      \csname S@\f@size\endcsname
131       \ifmath@fonts
132         \begingroup
133           \escapechar\m@ne
134           \csname mv@\math@version \endcsname
135           \globaldefs\@ne
136           \let \glb@currsize \f@size
137           \math@fonts
138         \endgroup
139         \the\every@math@size
140       \else
141       \fi
142 }
143 \def\set@fontsize#1#2#3{%
144     \@defaultunits\@tempdimb#2pt\relax\@nnil
145     \edef\f@size{\strip@pt\@tempdimb}%
146     \@defaultunits\@tempskipa#3pt\relax\@nnil
147     \edef\f@baselineskip{\the\@tempskipa}%
148     \edef\f@linespread{#1}%
149     \let\baselinestretch\f@linespread
150       \def\size@update{%
151         \baselineskip\f@baselineskip\relax
152         \baselineskip\f@linespread\baselineskip
153         \normalbaselineskip\baselineskip
154         \setbox\strutbox\hbox{%
155           \vrule\@height.7\baselineskip
156                 \@depth.3\baselineskip
157                 \@width\z@}%
158 %%%     \the\every@size
159         \let\size@update\relax}%
160   }
161 }{}% end \@ifundefined test
162 \newdimen\ex@
163 \addto@hook\every@math@size{\compute@ex@}
164 \def\compute@ex@{%
165   \begingroup
166   \dimen@-\f@size\p@
167   \ifdim\dimen@<-20\p@
168     \global\ex@ 1.5\p@
169   \else
170     \advance\dimen@10\p@ \multiply\dimen@\tw@
171     \edef\@tempa{\ifdim\dimen@>\z@ -\fi}%
172     \dimen@ \ifdim\dimen@<\z@ -\fi \dimen@
173     \advance\dimen@-\@m sp % fudge factor
174     \vfuzz\p@
175     \def\do{\ifdim\dimen@>\z@
176       \vfuzz=.97\vfuzz
177       \advance\dimen@ -\p@
178       \@xp\do \fi}%
179     \do
180     \dimen@\p@ \advance\dimen@-\vfuzz
181     \global\ex@\p@
182     \global\advance\ex@ \@tempa\dimen@
183   \fi
184   \endgroup
185 }
186 \def\@addpunct#1{\ifnum\spacefactor>\@m \else#1\fi}
187 \def\frenchspacing{\sfcode`\.1006\sfcode`\?1005\sfcode`\!1004%
188   \sfcode`\:1003\sfcode`\;1002\sfcode`\,1001 }
189 \def\@mathmeasure#1#2#3{\setbox#1\hbox{\frozen@everymath\@emptytoks
190   \m@th$#2#3$}}
191 \def\nomath@env{\PackageError{amstex}{%
192   \string\begin{\@currenvir} allowed only in paragraph mode%
193 }\@ehb% "You've lost some text"
194 }
195 \def\Invalid@@{Invalid use of \string}
196 \def\nonmatherr@#1{\PackageError{amsfonts}%
197     {\noexpand#1allowed only in math mode}\@ehd}
198 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
199 %%%     filename        = "amstext.dtx",
200 %%%     version         = "1.2beta",
201 %%%     date            = "1994/12/13",
202 \DeclareRobustCommand{\text}{%
203   \ifmmode\expandafter\text@\else\expandafter\mbox\fi}
204 \let\nfss@text\text
205 \def\text@#1{\mathchoice
206   {\textdef@\displaystyle\f@size{#1}}%
207   {\textdef@\textstyle\tf@size{\firstchoice@false #1}}%
208   {\textdef@\textstyle\sf@size{\firstchoice@false #1}}%
209   {\textdef@\textstyle \ssf@size{\firstchoice@false #1}}%
210   \check@mathfonts
211 }
212 \def\textdef@#1#2#3{\hbox{{%
213                     \everymath{#1}%
214                     \let\f@size#2\selectfont
215                     #3}}}
216 \newif\iffirstchoice@
217 \firstchoice@true
218 \def\stepcounter#1{%
219   \iffirstchoice@
220      \global\expandafter\advance\csname c@#1\endcsname \@ne
221      \begingroup
222          \let\@elt\@stpelt
223          \csname cl@#1\endcsname
224      \endgroup
225   \fi}
226 \toks@{\iffirstchoice@\else\@xp\@gobblefour\fi\protect}
227 \edef\GenericInfo{\the\toks@
228   \@xp\@nx\csname GenericInfo \endcsname}
229 \edef\GenericWarning{\the\toks@
230   \@xp\@nx\csname GenericWarning \endcsname}
231 \toks@{\iffirstchoice@\else
232   \@xp\@xp\@xp\@gobblefour
233   \@xp\@gobbletwo\fi\protect}
234 \edef\GenericError{\the\toks@
235   \@xp\@nx\csname GenericError \endcsname}
236 \def\label#1{\@bsphack\iffirstchoice@\if@filesw {\let\thepage\relax
237    \def\protect{\noexpand\noexpand\noexpand}%
238 \xdef\@gtempa{\write\@auxout{\string
239       \newlabel{#1}{{\@currentlabel}{\thepage}}}}}\@gtempa
240    \if@nobreak \ifvmode\nobreak\fi\fi\fi\fi\@esphack}
241 \begingroup \catcode`\"=12
242 \gdef\mathhexbox#1#2#3{\text{$\m@th\mathchar"#1#2#3$}}
243 \endgroup
244 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
245 %%%     filename        = "amsfonts.dtx",
246 %%%     version         = "1.2beta",
247 %%%     date            = "1994/12/13",
248 \newbox\Mathstrutbox@
249 \setbox\Mathstrutbox@=\hbox{}
250 \def\Mathstrut@{\copy\Mathstrutbox@}
251 \addto@hook\every@math@size{\setbox\z@\hbox{\normalfont(}%
252   \ht\Mathstrutbox@\ht\z@ \dp\Mathstrutbox@\dp\z@}
253 \newbox\strutbox@
254 \def\strut@{\copy\strutbox@}
255 \addto@hook\every@math@size{%
256   \global\setbox\strutbox@\hbox{\lower.5\normallineskiplimit
257          \vbox{\kern-\normallineskiplimit\copy\strutbox}}}
258 \def\big{\bBigg@\@ne}
259 \def\Big{\bBigg@{1.5}}
260 \def\bigg{\bBigg@\tw@}
261 \def\Bigg{\bBigg@{2.5}}
262 \def\bBigg@#1#2{%
263    {%
264     \hbox{$\left#2\vcenter to#1\big@size{}\right.%
265            \n@space
266      $}}}
267 \addto@hook\every@math@size{%
268   \global\big@size 1.2\ht\Mathstrutbox@
269   \global\advance\big@size 1.2\dp\Mathstrutbox@ }
270 \newdimen\big@size
271 %% msam, msbm, eufm fonts dealt with at end of file
272 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
273 %%%     filename        = "amsbsy.dtx",
274 %%%     version         = "1.2beta",
275 %%%     date            = "1994/10/27",
276 \DeclareRobustCommand{\boldsymbol}[1]{%
277   \begingroup
278   \let\@nomath\@gobble \mathversion{bold}%
279   \math@atom{#1}{%
280   \mathchoice%
281     {\hbox{$\m@th\displaystyle#1$}}%
282     {\hbox{$\m@th\textstyle#1$}}%
283     {\hbox{$\m@th\scriptstyle#1$}}%
284     {\hbox{$\m@th\scriptscriptstyle#1$}}}%
285   \endgroup}
286 \def\math@atom#1#2{%
287    \binrel@{#1}\binrel@@{#2}}
288 \DeclareRobustCommand{\pmb}{%
289   \ifmmode\else \expandafter\pmb@@\fi\mathpalette\pmb@}
290 \def\pmb@@#1#2#3{\leavevmode\setboxz@h{#3}%
291    \dimen@-\wdz@
292    \kern-.5\ex@\copy\z@
293    \kern\dimen@\kern.25\ex@\raise.4\ex@\copy\z@
294    \kern\dimen@\kern.25\ex@\box\z@
295 }
296 \newdimen\pmbraise@
297 \def\pmb@#1#2{\setbox8\hbox{$\m@th#1{#2}$}%
298   \setboxz@h{$\m@th#1\mkern.5mu$}\pmbraise@\wdz@
299   \binrel@{#2}%
300   \dimen@-\wd8 %
301   \binrel@@{%
302     \mkern-.8mu\copy8 %
303     \kern\dimen@\mkern.4mu\raise\pmbraise@\copy8 %
304     \kern\dimen@\mkern.4mu\box8 }%
305 }
306 \def\binrel@#1{\begingroup
307   \setboxz@h{\thinmuskip0mu
308     \medmuskip\m@ne mu\thickmuskip\@ne mu
309     \setbox\tw@\hbox{$#1\m@th$}\kern-\wd\tw@
310     ${}#1{}\m@th$}%
311   \edef\@tempa{\endgroup\let\noexpand\binrel@@
312     \ifdim\wdz@<\z@ \mathbin
313     \else\ifdim\wdz@>\z@ \mathrel
314     \else \relax\fi\fi}%
315   \@tempa
316 }
317 \let\binrel@@\relax
318 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
319 \def\AmSTeX{\protect\AmS-\protect\TeX{}}
320 \def\AmS{{\protect\AmSfont
321   A\kern-.1667em\lower.5ex\hbox{M}\kern-.125emS}}
322 \def\AmSfont{%
323   \usefont{OMS}{cmsy}{\if\@xp\@car\f@series\@nil bb\else m\fi}{n}}
324 \def\prim@s{\prime\futurelet\@let@token\pr@m@s}
325 \def\pr@m@s{%
326   \ifx\@let@token'\DN@##1{\prim@s}\else\let\next@\egroup\fi\next@}
327 \let\@prime=\prime
328 \renewcommand{\prime}{{\kern\z@\@prime}}
329 \DeclareRobustCommand{\mspace}[3]{%
330   \ifmmode\mskip#1#2\else\kern#1#3\fi\relax}
331 \renewcommand{\,}{\mspace+\thinmuskip{.1667em}}
332 \let\thinspace\,
333 \renewcommand{\!}{\mspace-\thinmuskip{.1667em}}
334 \let\negthinspace\!
335 \renewcommand{\:}{\mspace+\medmuskip{.2222em}}
336 \let\medspace\:
337 \newcommand{\negmedspace}{\mspace-\medmuskip{.2222em}}
338 \renewcommand{\;}{\mspace+\thickmuskip{.2777em}}
339 \let\thickspace\;
340 \newcommand{\negthickspace}{\mspace-\thickmuskip{.2777em}}
341 \def\implies{\DOTSB\;\Longrightarrow\;}
342 \def\impliedby{\DOTSB\;\Longleftarrow\;}
343 \begingroup \catcode`\"=12 % in case activated by a preceding package
344 \gdef\And{\DOTSB\;\mathchar"3026 \;}
345 \gdef\lvert{\delimiter"426A30C }
346 \gdef\rvert{\delimiter"526A30C }
347 \gdef\lVert{\delimiter"426B30D }
348 \gdef\rVert{\delimiter"526B30D }
349 \endgroup % restore "
350 \DeclareRobustCommand{\frac}{\new@ifnextchar[{\frfrac{}}{\frfrac{}[]}}
351 \def\frfrac#1[#2]#3#4{\def\next@{#2}%
352   \ifx\next@\@empty \def\next@{#1{#3\over#4}}%
353   \else \def\next@{{#1{#3\above#2\relax#4}}}%
354   \fi
355   \next@}
356 \def\dfrac{\protect\frfrac\displaystyle[]}
357 \def\tfrac{\protect\frfrac\textstyle[]}
358 \DeclareRobustCommand{\binom}{\frbinom{}}
359 \def\frbinom#1#2#3{{#1{#2\atopwithdelims()#3}}}
360 \def\dbinom{\protect\frbinom\displaystyle}
361 \def\tbinom{\protect\frbinom\textstyle}
362 \def\colon{\nobreak\mskip2mu\mathpunct{}\nonscript
363   \mkern-\thinmuskip{:}\mskip6muplus1mu\relax}
364 \begingroup \catcode`\"=12
365 \DeclareMathSymbol{\coprod@}{\mathop}{largesymbols}{"60}
366 \gdef\coprod{\DOTSB\coprod@\slimits@}
367 \DeclareMathSymbol{\bigvee@}{\mathop}{largesymbols}{"57}
368 \gdef\bigvee{\DOTSB\bigvee@\slimits@}
369 \DeclareMathSymbol{\bigwedge@}{\mathop}{largesymbols}{"56}
370 \gdef\bigwedge{\DOTSB\bigwedge@\slimits@}
371 \DeclareMathSymbol{\biguplus@}{\mathop}{largesymbols}{"55}
372 \gdef\biguplus{\DOTSB\biguplus@\slimits@}
373 \DeclareMathSymbol{\bigcap@}{\mathop}{largesymbols}{"54}
374 \gdef\bigcap{\DOTSB\bigcap@\slimits@}
375 \DeclareMathSymbol{\bigcup@}{\mathop}{largesymbols}{"53}
376 \gdef\bigcup{\DOTSB\bigcup@\slimits@}
377 \DeclareMathSymbol{\prod@}{\mathop}{largesymbols}{"51}
378 \gdef\prod{\DOTSB\prod@\slimits@}
379 \DeclareMathSymbol{\sum@}{\mathop}{largesymbols}{"50}
380 \gdef\sum{\DOTSB\sum@\slimits@}
381 \DeclareMathSymbol{\bigotimes@}{\mathop}{largesymbols}{"4E}
382 \gdef\bigotimes{\DOTSB\bigotimes@\slimits@}
383 \DeclareMathSymbol{\bigoplus@}{\mathop}{largesymbols}{"4C}
384 \gdef\bigoplus{\DOTSB\bigoplus@\slimits@}
385 \DeclareMathSymbol{\bigodot@}{\mathop}{largesymbols}{"4A}
386 \gdef\bigodot{\DOTSB\bigodot@\slimits@}
387 \DeclareMathSymbol{\bigsqcup@}{\mathop}{largesymbols}{"46}
388 \gdef\bigsqcup{\DOTSB\bigsqcup@\slimits@}
389 \endgroup
390 \def\dddot#1{{\mathop{#1}\limits^{\vbox to-1.4\ex@{\kern-\tw@\ex@
391  \hbox{\normalfont ...}\vss}}}}
392 \def\ddddot#1{{\mathop{#1}\limits^{\vbox to-1.4\ex@{\kern-\tw@\ex@
393  \hbox{\normalfont....}\vss}}}}
394 \def~{\nobreakspace}
395 \DeclareRobustCommand{\nobreakspace}{\unskip\nobreak\ \ignorespaces}
396 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
397 \newif\if@display
398 \everydisplay\expandafter{\the\everydisplay \@displaytrue}
399 \def\int{\DOTSI\intop\ilimits@}
400 \def\oint{\DOTSI\ointop\ilimits@}
401 \def\intkern@{\mkern-6mu\mathchoice{\mkern-3mu}{}{}{}}
402 \def\intdots@{\mathchoice{\@cdots}%
403  {{\cdotp}\mkern1.5mu{\cdotp}\mkern1.5mu{\cdotp}}%
404  {{\cdotp}\mkern1mu{\cdotp}\mkern1mu{\cdotp}}%
405  {{\cdotp}\mkern1mu{\cdotp}\mkern1mu{\cdotp}}}
406
407 \def\iint{\DOTSI\protect\ints@\tw@}
408 \def\iiint{\DOTSI\protect\ints@\thr@@}
409 \def\iiiint{\DOTSI\protect\ints@{4}}
410 \def\idotsint{\DOTSI\protect\ints@\z@}
411
412 \def\ints@#1{%
413   \mkern-7mu\mathchoice{\mkern-2mu}{}{}{}%
414   \mathop{\mkern7mu\mathchoice{\mkern2mu}{}{}{}%
415     \intop\ifnum#1=\z@\intdots@
416     \else\intkern@\fi
417     \ifnum#1>\tw@\intop\intkern@\fi
418     \ifnum#1>\thr@@\intop\intkern@\fi
419     \intop
420   }\ilimits@
421 }
422 \def\nolimits@{%
423   \DN@{\nolimits\ifx\@let@token\limits\expandafter\@gobble\fi}%
424   \FN@\next@}
425 \begingroup \catcode`\"=12
426 \gdef\newmcodes@{\mathcode`\'39\mathcode`\*42\mathcode`\."613A%
427  \mathcode`\-45\mathcode`\/47\mathcode`\:"603A\relax}
428 \endgroup
429 \DeclareRobustCommand{\operatorname}{%
430   \@ifstar{\qopname\newmcodes@ n}%
431           {\qopname\newmcodes@{no}}}%
432 \DeclareRobustCommand{\qopname}[3]{\mathop{#1\kern\z@\operator@font#3}%
433   \csname #2limits@\endcsname}
434 \def\arccos{\qopname\relax{no}{arccos}}
435 \def\arcsin{\qopname\relax{no}{arcsin}}
436 \def\arctan{\qopname\relax{no}{arctan}}
437 \def\arg{\qopname\relax{no}{arg}}
438 \def\cos{\qopname\relax{no}{cos}}
439 \def\cosh{\qopname\relax{no}{cosh}}
440 \def\cot{\qopname\relax{no}{cot}}
441 \def\coth{\qopname\relax{no}{coth}}
442 \def\csc{\qopname\relax{no}{csc}}
443 \def\deg{\qopname\relax{no}{deg}}
444 \def\det{\qopname\relax n{det}}
445 \def\dim{\qopname\relax{no}{dim}}
446 \def\exp{\qopname\relax{no}{exp}}
447 \def\gcd{\qopname\relax n{gcd}}
448 \def\hom{\qopname\relax{no}{hom}}
449 \def\inf{\qopname\relax n{inf}}
450 \def\injlim{\qopname\relax n{inj\,lim}}
451 \def\ker{\qopname\relax{no}{ker}}
452 \def\lg{\qopname\relax{no}{lg}}
453 \def\lim{\qopname\relax n{lim}}
454 \def\liminf{\qopname\relax n{lim\,inf}}
455 \def\limsup{\qopname\relax n{lim\,sup}}
456 \def\ln{\qopname\relax{no}{ln}}
457 \def\log{\qopname\relax{no}{log}}
458 \def\max{\qopname\relax n{max}}
459 \def\min{\qopname\relax n{min}}
460 \def\Pr{\qopname\relax n{Pr}}
461 \def\projlim{\qopname\relax n{proj\,lim}}
462 \def\sec{\qopname\relax{no}{sec}}
463 \def\sin{\qopname\relax{no}{sin}}
464 \def\sinh{\qopname\relax{no}{sinh}}
465 \def\sup{\qopname\relax n{sup}}
466 \def\tan{\qopname\relax{no}{tan}}
467 \def\tanh{\qopname\relax{no}{tanh}}
468 \def\operator@font{\mathgroup\symoperators}
469 \def\operatornamewithlimits{\operatorname*}
470 \def\varlim@#1#2{\mathop{\vtop{\ialign{##\crcr
471  \hfil$#1\m@th\operator@font lim$\hfil\crcr
472  \noalign{\nointerlineskip\kern\ex@}#2#1\crcr
473  \noalign{\nointerlineskip\kern-\ex@}\crcr}}}}
474 \def\varinjlim{\mathpalette\varlim@\rightarrowfill@}
475 \def\varprojlim{\mathpalette\varlim@\leftarrowfill@}
476 \def\varliminf{\mathpalette\varliminf@{}}
477 \def\varliminf@#1{\mathop{\@@underline{\vrule\@depth.2\ex@\@width\z@
478    \hbox{$#1\m@th\operator@font lim$}}}}
479 \def\varlimsup{\mathpalette\varlimsup@{}}
480 \def\varlimsup@#1{\mathop{\@@overline
481   {\hbox{$#1\m@th\operator@font lim$}}}}
482 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
483 \def\numberwithin#1#2{\@ifundefined{c@#1}{\@nocounterr{#1}}{%
484   \@ifundefined{c@#2}{\@nocnterr{#2}}{%
485   \@addtoreset{#1}{#2}%
486   \toks@\expandafter\expandafter\expandafter{\csname the#1\endcsname}%
487   \expandafter\xdef\csname the#1\endcsname
488     {\expandafter\noexpand\csname the#2\endcsname
489      .\the\toks@}}}}
490 \def\eqref#1{\textup{\tagform@{\ref{#1}}}}
491 \def\bmod{\mskip-\medmuskip\mkern5mu\mathbin
492   {\operator@font mod}\penalty900
493   \mkern5mu\mskip-\medmuskip}
494 \def\pod#1{\allowbreak\if@display\mkern18mu\else\mkern8mu\fi(#1)}
495 \def\pmod#1{\pod{{\operator@font mod}\mkern6mu#1}}
496 \def\mod#1{\allowbreak\if@display\mkern18mu
497   \else\mkern12mu\fi{\operator@font mod}\,\,#1}
498 \newcommand{\cfrac}[3][c]{{\displaystyle\frac{%
499   \strut\ifx r#1\hfill\fi#2\ifx l#1\hfill\fi}{#3}}%
500   \kern-\nulldelimiterspace}
501 \def\lcfrac{\cfrac[l]}
502 \def\rcfrac{\cfrac[r]}
503 \def\overset#1#2{\binrel@{#2}%
504   \binrel@@{\mathop{\kern\z@#2}\limits^{#1}}}
505 \def\underset#1#2{\binrel@{#2}%
506   \binrel@@{\mathop{\kern\z@#2}\limits_{#1}}}
507 \def\sideset#1#2#3{%
508   \setbox\z@\hbox{$\displaystyle{\vphantom{#3}}#1{#3}\m@th$}%
509   \setbox\tw@\hbox{$\displaystyle{#3}#2\m@th$}%
510   \hskip\wd\z@\hskip-\wd\tw@\mathop{\hskip\wd\tw@\hskip-\wd\z@
511   {\vphantom{#3}}#1{#3}#2}}
512 \renewcommand{\smash}[2][tb]{%
513   \def\smash@{#1}%
514   \ifmmode\expandafter\mathpalette\expandafter\mathsm@sh\else
515         \expandafter\makesm@sh\fi{#2}}
516 \def\finsm@sh{\def\mb@t{\ht\z@\z@}\def\mb@b{\dp\z@\z@}%
517   \def\mb@tb{\mb@t\mb@b}%
518   {\csname mb@\smash@\endcsname}%
519   \leavevmode\boxz@}
520 \def\rightarrowfill@#1{\m@th\setboxz@h{$#1\relbar$}\ht\z@\z@
521   $#1\copy\z@\mkern-6mu\cleaders
522   \hbox{$#1\mkern-2mu\box\z@\mkern-2mu$}\hfill
523   \mkern-6mu\mathord\rightarrow$}
524 \def\leftarrowfill@#1{\m@th\setboxz@h{$#1\relbar$}\ht\z@\z@
525   $#1\mathord\leftarrow\mkern-6mu\cleaders
526   \hbox{$#1\mkern-2mu\copy\z@\mkern-2mu$}\hfill
527   \mkern-6mu\box\z@$}
528 \def\leftrightarrowfill@#1{\m@th\setboxz@h{$#1\relbar$}\ht\z@\z@
529   $#1\mathord\leftarrow\mkern-6mu\cleaders
530   \hbox{$#1\mkern-2mu\box\z@\mkern-2mu$}\hfill
531   \mkern-6mu\mathord\rightarrow$}
532 \def\overarrow@#1#2#3{\vbox{\ialign{##\crcr#1#2\crcr
533  \noalign{\kern-\ex@\nointerlineskip}$\m@th\hfil#2#3\hfil$\crcr}}}
534 \def\overrightarrow{\mathpalette{\overarrow@\rightarrowfill@}}
535 \def\overleftarrow{\mathpalette{\overarrow@\leftarrowfill@}}
536 \def\overleftrightarrow{\mathpalette{\overarrow@\leftrightarrowfill@}}
537 \def\underarrow@#1#2#3{%
538  \vtop{\ialign{##\crcr$\m@th\hfil#2#3\hfil$\crcr
539  \noalign{\nointerlineskip\kern-.5\ex@}#1#2\crcr}}}
540 \def\underrightarrow{\mathpalette{\underarrow@\rightarrowfill@}}
541 \def\underleftarrow{\mathpalette{\underarrow@\leftarrowfill@}}
542 \def\underleftrightarrow{\mathpalette{\underarrow@\leftrightarrowfill@}}
543 \let\ifgtest@\iffalse                              % initial value
544 \def\gtest@true{\global\let\ifgtest@\iftrue}
545 \def\gtest@false{\global\let\ifgtest@\iffalse}
546 \let\DOTSI\relax
547 \let\DOTSB\relax
548 \let\DOTSX\relax
549 {\uccode`7=`\\ \uccode`8=`m \uccode`9=`a \uccode`0=`t \uccode`!=`h
550  \uppercase{%
551   \gdef\math@#1#2#3#4#5#6\math@{\gtest@false\ifx 7#1\ifx 8#2%
552   \ifx 9#3\ifx 0#4\ifx !#5\xdef\meaning@{#6}\gtest@true
553   \fi\fi\fi\fi\fi}}}
554 {\uccode`7=`c \uccode`8=`h \uccode`9=`\"
555  \uppercase{\gdef\mathch@#1#2#3#4#5#6\mathch@{\gtest@false
556   \ifx 7#1\ifx 8#2\ifx 9#5\gtest@true\xdef\meaning@{9#6}\fi\fi\fi}}}
557 \newcount\classnum@
558 \def\getmathch@#1.#2\getmathch@{\classnum@#1 \divide\classnum@4096
559  \ifcase\number\classnum@\or\or\gdef\thedots@{\dotsb@}\or
560  \gdef\thedots@{\dotsb@}\fi}
561 {\uccode`4=`b \uccode`5=`i \uccode`6=`n
562  \uppercase{\gdef\mathbin@#1#2#3{\relaxnext@
563   \def\nextii@##1\mathbin@{\ifx\@sptoken\@let@token\gtest@true\fi}%
564   \gtest@false\DN@##1\mathbin@{}%
565  \ifx 4#1\ifx 5#2\ifx 6#3\DN@{\FN@\nextii@}\fi\fi\fi\next@}}}
566 {\uccode`4=`r \uccode`5=`e \uccode`6=`l
567  \uppercase{\gdef\mathrel@#1#2#3{\relaxnext@
568   \def\nextii@##1\mathrel@{\ifx\@sptoken\@let@token\gtest@true\fi}%
569  \gtest@false\DN@##1\mathrel@{}%
570  \ifx 4#1\ifx 5#2\ifx 6#3\DN@{\FN@\nextii@}\fi\fi\fi\next@}}}
571 {\uccode`5=`m \uccode`6=`a \uccode`7=`c
572  \uppercase{\gdef\macro@#1#2#3#4\macro@{\gtest@false
573   \ifx 5#1\ifx 6#2\ifx 7#3\gtest@true
574   \xdef\meaning@{\macro@@#4\macro@@}\fi\fi\fi}}}
575 \def\macro@@#1->#2\macro@@{#2}
576 \newcount\DOTSCASE@
577 {\uccode`6=`\\ \uccode`7=`D \uccode`8=`O \uccode`9=`T \uccode`0=`S
578  \uppercase{\gdef\DOTS@#1#2#3#4#5{\gtest@false\DN@##1\DOTS@{}%
579   \ifx 6#1\ifx 7#2\ifx 8#3\ifx 9#4\ifx 0#5\let\next@\DOTS@@
580   \fi\fi\fi\fi\fi
581   \next@}}}
582 {\uccode`3=`B \uccode`4=`I \uccode`5=`X
583  \uppercase{\gdef\DOTS@@#1{\relaxnext@
584   \def\nextii@##1\DOTS@{\ifx\@sptoken\@let@token\gtest@true\fi}%
585   \DN@{\FN@\nextii@}%
586   \ifx 3#1\global\DOTSCASE@\z@\else
587   \ifx 4#1\global\DOTSCASE@\@ne\else
588   \ifx 5#1\global\DOTSCASE@\tw@\else\DN@##1\DOTS@{}%
589   \fi\fi\fi\next@}}}
590 {\uccode`5=`\\ \uccode`6=`n \uccode`7=`o \uccode`8=`t
591  \uppercase{\gdef\not@#1#2#3#4{\relaxnext@
592   \def\nextii@##1\not@{\ifx\@sptoken\@let@token\gtest@true\fi}%
593  \gtest@false\DN@##1\not@{}%
594  \ifx 5#1\ifx 6#2\ifx 7#3\ifx 8#4\DN@{\FN@\nextii@}\fi\fi\fi
595  \fi\next@}}}
596 \def\keybin@{\gtest@true
597   \ifx\@let@token+\else\ifx\@let@token=\else\ifx\@let@token<%
598   \else\ifx\@let@token>\else\ifx\@let@token-\else\ifx\@let@token*%
599   \else\ifx\@let@token:\else\gtest@false\fi\fi\fi\fi\fi\fi\fi}
600 \@ifundefined{@ldots}{\def\@ldots{\mathellipsis}}{}
601 \DeclareRobustCommand{\dots}{\relax
602   \csname\ifmmode m\else t\fi dots@\endcsname}
603 \def\tdots@{\leavevmode\unskip\relaxnext@
604  \DN@{$\m@th\@ldots\,
605    \ifx\@let@token,\,$\else\ifx\@let@token.\,$\else\ifx\@let@token;\,$%
606    \else\ifx\@let@token:\,$\else\ifx\@let@token?\,$%
607    \else\ifx\@let@token!\,$\else$ \fi\fi\fi\fi\fi\fi}%
608  \ \FN@\next@}
609 \def\mdots@{\FN@\mdots@@}
610 \def\mdots@@{\gdef\thedots@{\dotso@}%
611  \ifx\@let@token\boldsymbol\gdef\thedots@\boldsymbol{\boldsymboldots@}%
612  \else\ifx,\@let@token\gdef\thedots@{\dotsc}%
613  \else\ifx\not\@let@token\gdef\thedots@{\dotsb@}%
614  \else\keybin@
615  \ifgtest@\gdef\thedots@{\dotsb@}%
616  \else\xdef\meaning@{\meaning\@let@token..........}%
617   \xdef\meaning@@{\meaning@}%
618   \expandafter\math@\meaning@\math@
619   \ifgtest@
620    \expandafter\mathch@\meaning@\mathch@
621    \ifgtest@\expandafter\getmathch@\meaning@\getmathch@\fi
622   \else\expandafter\macro@\meaning@@\macro@
623   \ifgtest@
624    \expandafter\not@\meaning@\not@\ifgtest@\gdef\thedots@{\dotsb@}%
625   \else\expandafter\DOTS@\meaning@\DOTS@
626   \ifgtest@
627    \ifcase\number\DOTSCASE@\gdef\thedots@{\dotsb@}%
628     \or\gdef\thedots@{\dotsi}\else\fi
629   \else\expandafter\math@\meaning@\math@
630   \ifgtest@\expandafter\mathbin@\meaning@\mathbin@
631   \ifgtest@\gdef\thedots@{\dotsb@}%
632   \else\expandafter\mathrel@\meaning@\mathrel@
633   \ifgtest@\gdef\thedots@{\dotsb@}%
634   \fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi
635  \thedots@}
636 \def\boldsymboldots@#1{%
637  \bold@true\let\@let@token=#1\let\delayed@=#1\mdots@@
638  \boldsymbol#1\bold@false}
639 \def\@cdots{\mathinner{\cdotp\cdotp\cdotp}}
640 \def\dotsi{\!\@cdots}
641 \let\dotsb@\@cdots
642 \def\rightdelim@{\gtest@true
643  \ifx\@let@token)\else
644  \ifx\@let@token]\else
645  \ifx\@let@token\rbrack\else
646  \ifx\@let@token\}\else
647  \ifx\@let@token\rbrace\else
648  \ifx\@let@token\rangle\else
649  \ifx\@let@token\rceil\else
650  \ifx\@let@token\rfloor\else
651  \ifx\@let@token\rgroup\else
652  \ifx\@let@token\rmoustache\else
653  \ifx\@let@token\right\else
654  \ifx\@let@token\bigr\else
655  \ifx\@let@token\biggr\else
656  \ifx\@let@token\Bigr\else
657  \ifx\@let@token\Biggr\else\gtest@false
658  \fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi}
659 \def\extra@{%
660  \rightdelim@\ifgtest@
661  \else\ifx\@let@token$\gtest@true
662  \else\xdef\meaning@{\meaning\@let@token..........}%
663  \expandafter\macro@\meaning@\macro@\ifgtest@
664  \expandafter\DOTS@\meaning@\DOTS@
665  \ifgtest@
666  \ifnum\DOTSCASE@=\tw@\gtest@true\else\gtest@false
667  \fi\fi\fi\fi\fi}
668 \newif\ifbold@
669 \def\dotso@{\relaxnext@
670  \ifbold@
671   \let\@let@token\delayed@
672   \def\nextii@{\extra@\@ldots\ifgtest@\,\fi}%
673  \else
674   \def\nextii@{\DN@{\extra@\@ldots\ifgtest@\,\fi}\FN@\next@}%
675  \fi
676  \nextii@}
677 \def\extrap@#1{%
678  \DN@{#1\,}%
679  \ifx\@let@token,\else
680  \ifx\@let@token;\else
681  \ifx\@let@token.\else\extra@
682  \ifgtest@\else
683  \let\next@#1\fi\fi\fi\fi\next@}
684 \DeclareRobustCommand{\ldots}{\relax
685   \ifmmode \DN@{\extrap@\@ldots}%
686   \else \let\next@\tdots@\fi
687   \FN@\next@}
688 \DeclareRobustCommand{\cdots}{\DN@{\extrap@\@cdots}\FN@\next@}
689 \let\dotso\ldots
690 \let\dotsb\cdots
691 \let\dotsm\dotsb
692 \DeclareRobustCommand{\dotsc}{%
693   \DN@{\ifx\@let@token;\@ldots\,%
694        \else \ifx\@let@token.\@ldots\,%
695        \else \extra@\@ldots \ifgtest@\,\fi
696        \fi\fi}%
697   \FN@\next@}
698 \def\longrightarrow{\DOTSB\relbar\joinrel\rightarrow}
699 \def\Longrightarrow{\DOTSB\Relbar\joinrel\Rightarrow}
700 \def\longleftarrow{\DOTSB\leftarrow\joinrel\relbar}
701 \def\Longleftarrow{\DOTSB\Leftarrow\joinrel\Relbar}
702 \def\longleftrightarrow{\DOTSB\leftarrow\joinrel\rightarrow}
703 \def\Longleftrightarrow{\DOTSB\Leftarrow\joinrel\Rightarrow}
704 \def\mapsto{\DOTSB\mapstochar\rightarrow}
705 \def\longmapsto{\DOTSB\mapstochar\longrightarrow}
706 \def\hookrightarrow{\DOTSB\lhook\joinrel\rightarrow}
707 \def\hookleftarrow{\DOTSB\leftarrow\joinrel\rhook}
708 \def\doteq{\DOTSB\buildrel\textstyle.\over=}
709 \def\iff{\DOTSB\;\Longleftrightarrow\;}
710 \begingroup \catcode`\"=12
711 \mathchardef\@tempa="7000
712 \ifx\@tempa\Gamma
713   \DeclareMathSymbol{\Gamma}{\mathord}{operators}{"00}
714   \DeclareMathSymbol{\Delta}{\mathord}{operators}{"01}
715   \DeclareMathSymbol{\Theta}{\mathord}{operators}{"02}
716   \DeclareMathSymbol{\Lambda}{\mathord}{operators}{"03}
717   \DeclareMathSymbol{\Xi}{\mathord}{operators}{"04}
718   \DeclareMathSymbol{\Pi}{\mathord}{operators}{"05}
719   \DeclareMathSymbol{\Sigma}{\mathord}{operators}{"06}
720   \DeclareMathSymbol{\Upsilon}{\mathord}{operators}{"07}
721   \DeclareMathSymbol{\Phi}{\mathord}{operators}{"08}
722   \DeclareMathSymbol{\Psi}{\mathord}{operators}{"09}
723   \DeclareMathSymbol{\Omega}{\mathord}{operators}{"0A}
724   \DeclareMathSymbol{\varGamma}{\mathord}{letters}{"00}
725   \DeclareMathSymbol{\varDelta}{\mathord}{letters}{"01}
726   \DeclareMathSymbol{\varTheta}{\mathord}{letters}{"02}
727   \DeclareMathSymbol{\varLambda}{\mathord}{letters}{"03}
728   \DeclareMathSymbol{\varXi}{\mathord}{letters}{"04}
729   \DeclareMathSymbol{\varPi}{\mathord}{letters}{"05}
730   \DeclareMathSymbol{\varSigma}{\mathord}{letters}{"06}
731   \DeclareMathSymbol{\varUpsilon}{\mathord}{letters}{"07}
732   \DeclareMathSymbol{\varPhi}{\mathord}{letters}{"08}
733   \DeclareMathSymbol{\varPsi}{\mathord}{letters}{"09}
734   \DeclareMathSymbol{\varOmega}{\mathord}{letters}{"0A}
735 \fi
736 \endgroup
737 \def\accentclass@{7}
738 \def\noaccents@{\def\accentclass@{0}}
739 \DeclareFontEncoding{OML}{}{\noaccents@}
740 \DeclareFontEncoding{OMS}{}{\noaccents@}
741 \edef\@tempa#1#2{\def#1{\mathaccent\string"\noexpand\accentclass@#2 }}
742 \@tempa\hat{05E}\@tempa\check{014}\@tempa\tilde{07E}\@tempa\acute{013}
743 \@tempa\grave{012}\@tempa\dot{05F}\@tempa\ddot{07F}\@tempa\breve{015}
744 \@tempa\bar{016}
745 \newcount\skewcharcount@
746 \newcount\familycount@
747 \def\theskewchar@{\familycount@\@ne
748  \global\skewcharcount@\the\skewchar\textfont\@ne
749  \ifnum\mathgroup>\m@ne\ifnum\mathgroup<16
750   \global\familycount@\the\mathgroup\relax
751   \global\skewcharcount@\the\skewchar\textfont\the\mathgroup\relax\fi\fi
752  \ifnum\skewcharcount@>\m@ne
753   \ifnum\skewcharcount@<128
754   \multiply\familycount@256
755   \global\advance\skewcharcount@\familycount@
756   \global\advance\skewcharcount@28672
757   \mathchar\skewcharcount@\else
758   \global\skewcharcount@\m@ne\fi\else
759  \global\skewcharcount@\m@ne\fi}
760 \newcount\pointcount@
761 \def\getpoints@#1.#2\getpoints@{\pointcount@#1 }
762 \newdimen\accentdimen@
763 \newcount\accentmu@
764 \def\dimentomu@{\multiply\accentdimen@ 100
765  \expandafter\getpoints@\the\accentdimen@\getpoints@
766  \multiply\pointcount@18
767  \divide\pointcount@\@m
768  \global\accentmu@\pointcount@}
769 \def\mathaccent@#1#2{\ifnum\mathgroup=\m@ne\xdef\thefam@{1}\else
770  \xdef\thefam@{\the\mathgroup}\fi
771  \accentdimen@\z@
772  \setboxz@h{\unbracefonts@$\m@th\mathgroup\thefam@\relax#2$}%
773  \ifdim\accentdimen@=\z@\DN@{\mathaccent#1{#2}}%
774   \setbox\@ne\hbox{\unbracefonts@
775     $\m@th\mathgroup\thefam@\relax#2\theskewchar@$}
776   \setbox\tw@\hbox{$\m@th\ifnum\skewcharcount@=\m@ne\else
777    \mathchar\skewcharcount@\fi$}%
778   \global\accentdimen@\wd\@ne\global\advance\accentdimen@-\wdz@
779   \global\advance\accentdimen@-\wd\tw@
780   \global\multiply\accentdimen@\tw@
781   \dimentomu@\global\advance\accentmu@\@ne
782  \else\DN@{{\mathaccent#1{#2\mkern\accentmu@ mu}%
783     \mkern-\accentmu@ mu}{}}\fi
784  \next@}
785 \def\unbracefonts@{\let\math@bgroup\@empty\let\math@egroup\@empty}
786 \begingroup \catcode`\"=12
787 \def\@tempa#1#2{\gdef#1{\RIfM@\DN@{\mathaccent@{"\accentclass@#2 }}%
788   \else\DN@{\nonmatherr@{#1}}\fi\next@}}
789 \@tempa\Hat{05E}\@tempa\Check{014}\@tempa\Tilde{07E}\@tempa\Acute{013}
790 \@tempa\Grave{012}\@tempa\Dot{05F}\@tempa\Ddot{07F}\@tempa\Breve{015}
791 \@tempa\Bar{016}
792 \gdef\Vec{\RIfM@\DN@{\mathaccent@{"017E }}\else
793  \DN@{\nonmatherr@\Vec}\fi\next@}
794 \endgroup
795 \begingroup \catcode`\"=12
796 \gdef\@@sqrt#1{\radical"270370 {#1}}
797 \endgroup
798 \@saveprimitive\overline\@@overline
799 \def\overline#1{\@@overline{#1}}
800 \def\boxed#1{\fbox{\m@th$\displaystyle#1$}}
801 \def\setb@ck{\iffirstchoice@\global\advance\c@equation\m@ne\fi}
802 \newcount\dspbrk@lvl
803 \dspbrk@lvl=-1
804 \interdisplaylinepenalty\@M
805 \def\allowdisplaybreaks{%
806   \new@ifnextchar[\allowdspbrks@{\allowdspbrks@[4]}}
807 \def\allowdspbrks@[#1]{%
808   \interdisplaylinepenalty\getdsp@pen{#1}}
809 \def\getdsp@pen#1{%
810   \ifcase #1\relax \@M
811     \or 9999
812     \or 6999
813     \or 2999
814     \or \z@\fi}
815 \def\displaybreak{\PackageError{amstex}{\Invalid@@\displaybreak}\@eha}
816 \def\displaybreak@{%
817   \def\displaybreak{\new@ifnextchar[\dspbrk@{\dspbrk@[4]}}}
818 \def\dspbrk@[#1]{\global\dspbrk@lvl #1\relax}
819 \def\math@cr{{\ifnum0=`}\fi
820   \new@ifstar{\global\@eqpen\@M\math@cr@}%
821           {\global\@eqpen
822              \ifnum\dspbrk@lvl <\z@ \interdisplaylinepenalty
823               \else -\@getpen\dspbrk@lvl \fi
824            \math@cr@}}
825 \def\math@cr@{\new@ifnextchar[\math@cr@@{\math@cr@@[\z@]}}
826 \def\math@cr@@[#1]{\ifnum0=`{\fi}\math@cr@@@
827   \noalign{\vskip#1\relax}}
828 \def\Let@{\let\\\math@cr}
829 \def\restore@math@cr{\def\math@cr@@@{\cr}}
830 \restore@math@cr
831 \def\intertext{\PackageError{amstex}{\Invalid@@\intertext}\@eha}
832 \def\intertext@{\def\intertext##1{\noalign{%
833   \penalty\postdisplaypenalty\vskip\belowdisplayskip
834   \vbox{\normalbaselines\noindent##1}%
835   \penalty\predisplaypenalty\vskip\abovedisplayskip}}}
836 \newhelp\tag@help
837   {tag cannot be used at this point.\space
838    If you don't understand why^^Jyou should consult
839    the documentation.^^JBut don't worry: just continue, and I'll
840    forget what happened.}
841 \def\gobble@tag{\new@ifstar\@gobble\@gobble}
842 \def\invalid@tag#1{\PackageError{amstex}{#1}{\the\tag@help}\gobble@tag}
843 \def\dft@tag{\invalid@tag{\string\tag\space not allowed here}}
844 \def\default@tag{\let\tag\dft@tag}
845 \default@tag
846 \def\maketag@@{\new@ifstar\maketag@@@\tagform@}
847 \def\maketag@@@#1{\hbox{\m@th\normalfont#1}}
848 \def\tagform@#1{\maketag@@@{(\ignorespaces#1\unskip)}}
849 \def\thetag{\leavevmode\tagform@}
850 \def\make@df@tag{\new@ifstar\make@df@tag@@\make@df@tag@@@}
851 \def\make@df@tag@@#1{%
852   \def\@currentlabel{#1}%
853   \gdef\df@tag{\maketag@@@{#1}}}
854 \def\make@df@tag@@@#1{\@seteqlabel{#1}\gdef\df@tag{\tagform@{#1}}}
855 \def\@seteqlabel#1{\toks@\@xp{\p@equation{#1}}%
856   \edef\@currentlabel{\the\toks@}}
857 \def\notag{\nonumber}
858 \iftagsleft@
859 \def\@eqnnum{\hbox to1sp{}\rlap{\normalfont
860     \hskip -\displaywidth\tagform@\theequation}}
861 \fi
862
863 \let\@adjusttag\@empty
864
865 \def\adjusttag#1{\skip@#1\relax\gdef\@adjusttag{#1}}
866
867 \def\@movetag{%
868     \ifx\@adjusttag\@empty \else
869         \vskip\@adjusttag\relax
870         \global\let\@adjusttag\@empty
871     \fi
872 }
873 \def\multilimits@{\bgroup
874   \Let@
875   \restore@math@cr
876   \default@tag
877  \baselineskip\fontdimen10 \scriptfont\tw@
878  \advance\baselineskip\fontdimen12 \scriptfont\tw@
879  \lineskip\thr@@\fontdimen8 \scriptfont\thr@@
880  \lineskiplimit\lineskip
881  \vbox\bgroup\ialign\bgroup\hfil$\m@th\scriptstyle{##}$\hfil\crcr}
882 \def\Sb{_\multilimits@}
883 \def\Sp{^\multilimits@}
884 \def\endSb{\crcr\egroup\egroup\egroup}
885 \let\endSp=\endSb
886 \def\smallmatrix{\null\,\vcenter\bgroup
887  \Let@\restore@math@cr\default@tag
888  \baselineskip6\ex@ \lineskip1.5\ex@ \lineskiplimit\lineskip
889  \ialign\bgroup\hfil$\m@th\scriptstyle{##}$\hfil&&\thickspace\hfil
890  $\m@th\scriptstyle{##}$\hfil\crcr}
891 \def\endsmallmatrix{\crcr\egroup\egroup\,}
892 \newcount\c@MaxMatrixCols
893 \c@MaxMatrixCols=10
894
895 \def\matrix{\hskip -\arraycolsep\array{*\c@MaxMatrixCols c}}
896 \def\endmatrix{\endarray \hskip -\arraycolsep}
897 \@ifundefined{prepnext@tok}{%
898   \def\@array[#1]#2{%
899     \setbox\@arstrutbox\hbox{\vrule\@height\arraystretch\ht\strutbox
900        \@depth\arraystretch\dp\strutbox \@width\z@}%
901     \@mkpream{#2}\edef\@preamble{\ialign \noexpand\@halignto
902     \bgroup \tabskip\z@ \@arstrut \@preamble \tabskip\z@ \cr}%
903     \let\@startpbox\@@startpbox \let\@endpbox\@@endpbox
904     \if #1t\vtop \else \if#1b\vbox \else \vcenter \fi\fi
905     \bgroup \let\par\@empty
906     \let\@sharp##\let\protect\relax
907     \lineskip\z@\baselineskip\z@\@preamble}%
908 \begingroup \lccode`\~=`\@ \catcode`\~=\active % just to be sure!
909 \lowercase{%
910 \gdef\@xexpast#1*#2#3#4\@@{\begingroup
911   \def~{@}\edef\reserved@a{#1}\@tempcnta#2\relax
912   \ifnum\@tempcnta >\z@
913     \@whilenum\@tempcnta >\z@\do
914       {\edef\reserved@a{\reserved@a#3}\advance\@tempcnta \m@ne}%
915     \let\reserved@b\@xexpast
916   \else \let\reserved@b\@xexnoop\fi
917   \expandafter\reserved@b \reserved@a #4\@@
918   \expandafter\endgroup
919   \expandafter\def\expandafter\reserved@a\expandafter{\reserved@a}%
920   \let\@tempa\reserved@a
921 }% End of \@xexpast
922 }% End of \lowercase
923 \endgroup
924 }{}% End of \@ifundefined test.
925 \def\pmatrix{\left(\matrix}
926 \def\endpmatrix{\endmatrix\right)}
927 \def\bmatrix{\left[\matrix}
928 \def\endbmatrix{\endmatrix\right]}
929 \def\vmatrix{\left|\matrix}
930 \def\endvmatrix{\endmatrix\right|}
931 \def\Vmatrix{\left\|\matrix}
932 \def\endVmatrix{\endmatrix\right\|}
933 \let\hdots\@ldots
934 \def\hdotsfor#1{\if\noexpand#1[\expandafter\shdots@for\else
935                 \hdots@for\@ne{#1}\fi}
936 \newmuskip\dotsspace@
937 \def\shdots@for#1]{\hdots@for{#1}}
938 \def\hdots@for#1#2{\multicolumn{#2}c%
939   {\m@th\dotsspace@1.5mu\mkern-#1\dotsspace@
940    \xleaders\hbox{$\m@th\mkern#1\dotsspace@.\mkern#1\dotsspace@$}%
941            \hfill
942    \mkern-#1\dotsspace@}%
943    }
944 \def\cases{\left\{\def\arraystretch{1.2}\hskip-\arraycolsep
945   \array{l@{\quad}l}}
946 \def\endcases{\endarray\hskip-\arraycolsep\right.}
947 \newif\ifinany@
948 \newif\ifinalign@
949 \newif\ifingather@
950 \newcount\and@
951 \newif\iftag@
952 \newhelp\andhelp@
953 {An extra & here is so disastrous that you should probably exit^^J
954 and fix things up.}
955 \newif\ifst@rred
956 \newtoks\@envbody
957 \def\addto@envbody#1{\@envbody\expandafter{\the\@envbody#1}}
958 \def\collect@body#1{%
959   \@envbody{}%
960   \def\process@envbody{%
961     \expandafter#1\expandafter{\the\@envbody}}%
962   \expandafter\let\csname\@currenvir\endcsname\collect@@body
963   \csname\@currenvir\endcsname}
964 \def\collect@@body#1\end#2{%
965   \def\@tempa{#2}%
966   \ifx\@tempa\@currenvir
967     \addto@envbody{#1}%
968     \expandafter\edef\csname\@currenvir\endcsname
969       {\noexpand\process@envbody\noexpand\end{\@tempa}}%
970   \else
971     \addto@envbody{#1\end{#2}}%
972   \fi
973   \csname\@currenvir\endcsname}
974 \newenvironment{aligned}{%
975   \relax\ifmmode\else\nonmatherr@{\begin{aligned}}\fi
976   \null\,\new@ifnextchar[{\aligned@}{\aligned@[c]}%
977 }{%
978   \crcr\egroup\egroup
979 }
980 \def\aligned@[#1]{%
981   \if #1t\vtop \else \if#1b\vbox \else \vcenter \fi\fi
982   \bgroup
983    \Let@\restore@math@cr
984    \default@tag
985    \ifinany@\else\openup\jot\fi
986    \ialign\bgroup\hfil\strut@$\m@th\displaystyle{##}$&%
987     $\m@th\displaystyle{{}##}$\hfil\crcr}
988 \newtoks\hashtoks@
989 \hashtoks@{#}
990 \newcount\atcount@
991 \def\doat@#1{\toks@{\hfil\strut@$\m@th
992   \displaystyle{\the\hashtoks@}$&$\m@th\displaystyle
993   {{}\the\hashtoks@}$\hfil}%
994  \atcount@#1\relax\advance\atcount@\m@ne
995  \loop\ifnum\atcount@>\z@\toks@\expandafter{\the\toks@&\hfil$\m@th
996   \displaystyle{\the\hashtoks@}$&$\m@th
997   \displaystyle{{}\the\hashtoks@}$\hfil}\advance
998  \atcount@\m@ne\repeat
999  \xdef\preamble@{\the\toks@}\xdef\preamble@@{\preamble@}}
1000 \newenvironment{alignedat}[2][c]{%
1001   \null\,%
1002   \if #1t\vtop \else \if#1b\vbox \else \vcenter \fi\fi
1003   \bgroup\doat@{#2}\Let@ \restore@math@cr\default@tag
1004   \ifinany@\else\openup\jot\fi\ialign\bgroup\span\preamble@@\crcr
1005 }{%
1006   \endaligned
1007 }
1008 \newenvironment{gathered}[1][c]{%
1009   \relax\ifmmode\else\nonmatherr@{\begin{gathered}}\fi
1010   \null\,%
1011   \if #1t\vtop \else \if#1b\vbox \else \vcenter \fi\fi
1012   \bgroup\Let@\restore@math@cr
1013   \ifinany@\else\openup\jot\fi\ialign
1014   \bgroup\hfil\strut@$\m@th\displaystyle##$\hfil\crcr
1015 }{%
1016   \endaligned
1017 }
1018 \def\tag@in@align{\relax
1019   \iftag@\DN@{\invalid@tag{Multiple \string\tag}}\else
1020    \global\tag@true
1021    \if@eqnsw\global\@eqnswfalse\fi
1022    \let\next@\make@df@tag\fi
1023   \next@}
1024 \def\math@cr@@@align{%
1025   \if@eqnsw\global\tag@true\fi
1026   \iftag@
1027    \ifcase\and@
1028     \DN@{&&}\else
1029     \DN@{&}\fi\else
1030     \let\next@\relax\fi
1031   \next@
1032   \relax
1033   \if@eqnsw\tagform@\theequation\stepcounter{equation}\else
1034   \iftag@\df@tag\fi\fi
1035   \global\@eqnswtrue\cr}
1036 \def\Tag@{\relax\iftag@\else\firstchoice@true
1037   \PackageError{amstex}{%
1038   Extra & on this line%
1039   }{\the\andhelp@% "An extra & here is disastrous"
1040 }\fi}
1041 \newdimen\lwidth@
1042 \newdimen\rwidth@
1043 \newdimen\maxlwidth@
1044 \newdimen\maxrwidth@
1045 \newdimen\totwidth@
1046 \def\measure@#1{\lwidth@\z@\rwidth@\z@\maxlwidth@\z@\maxrwidth@\z@
1047  \global\and@\z@
1048  \setbox\@ne\vbox{%
1049    \everycr{\noalign{\global\tag@false\global\and@\z@}}\Let@
1050    \let\tag\gobble@tag
1051    \let\notag\@empty \let\nonumber\@empty
1052    \firstchoice@false
1053     \halign{\setboxz@h{$\m@th\displaystyle{\@lign##}$}%
1054      \global\lwidth@\wdz@
1055      \ifdim\lwidth@>\maxlwidth@\global\maxlwidth@\lwidth@\fi
1056      \global\advance\and@\@ne
1057      &\setboxz@h{$\m@th\displaystyle{{}\@lign##}$}%
1058      \global\rwidth@\wdz@
1059      \ifdim\rwidth@>\maxrwidth@\global\maxrwidth@\rwidth@\fi
1060      \global\advance\and@\@ne
1061      &\Tag@\@gobble{##}\crcr#1\crcr}}%
1062  \totwidth@\maxlwidth@\advance\totwidth@\maxrwidth@}
1063 \def\displ@y{\global\dt@ptrue\openup\jot\m@th
1064   \everycr{\noalign{\ifdt@p \global\dt@pfalse
1065       \vskip-\lineskiplimit \vskip\normallineskiplimit
1066       \else \penalty\@eqpen \fi}}}
1067 \def\displ@y@{\global\dt@ptrue\openup\jot
1068   \everycr{\noalign{\global\tag@false
1069                    \global\and@\z@
1070                    \global\dspbrk@lvl\m@ne
1071                    \ifdt@p\global\dt@pfalse
1072       \vskip-\lineskiplimit\vskip\normallineskiplimit\else
1073       \penalty\@eqpen\fi}}}
1074 \def\black@#1{\noalign{\ifdim#1>\displaywidth
1075  \dimen@\prevdepth\nointerlineskip
1076  \vskip-\ht\strutbox@\vskip-\dp\strutbox@
1077  \vbox{\noindent\hbox to#1{\strut@\hfill}}%
1078  \prevdepth\dimen@
1079  \fi}}
1080 \def\align{\ifingather@
1081   {\ifnum0=`}\fi
1082   \DN@{\@nameuse{align (in \string\gather)}}%
1083   \else \ifmmode\nomath@env
1084     \DN@{\let\endalign\relax\@gobble}\else
1085   $$\stepcounter{equation}%
1086   \st@rredfalse\let\next@\align@\fi\fi
1087  \collect@body\next@}
1088 \@namedef{align*}{\ifingather@
1089   {\ifnum0=`}\fi
1090   \DN@{\@nameuse{align* (in \string\gather)}}\else
1091    \ifmmode\nomath@env
1092     \DN@{\@namedef{endalign*}{}\@gobble}\else
1093    $$\st@rredtrue
1094   \let\next@\align@\fi\fi
1095  \collect@body\next@}
1096 \newdimen\lineht@
1097 \def\align@{\inalign@true\inany@true
1098  \displaybreak@\intertext@
1099  \let\math@cr@@@\math@cr@@@align
1100  \let\tag\tag@in@align
1101  \global\and@\z@\global\dspbrk@lvl\m@ne
1102  \iftagsleft@\DN@{\@nameuse{align }}\else
1103   \DN@{\@nameuse{align \space}}\fi\next@}
1104 \@namedef{align }#1{%
1105     \measure@{#1}%
1106     \global\and@\z@
1107     \global\dspbrk@lvl\m@ne
1108     \if@fleqn %%*F
1109         \advance\totwidth@\@mathmargin %%*F
1110     \fi %%*F
1111     \ifdim\totwidth@>\displaywidth
1112         \let\displaywidth@\totwidth@
1113     \else
1114         \let\displaywidth@\displaywidth
1115     \fi
1116     \ifingather@
1117         \everycr{%
1118             \noalign{%
1119                 \global\and@\z@
1120                 \global\dspbrk@lvl\m@ne
1121             }%
1122         }%
1123     \else
1124         \displ@y@
1125     \fi
1126     \Let@
1127     \ifst@rred\else\@seteqlabel\theequation\fi
1128     \tabskip\@mathmargin %%*F
1129     \dimen@\displaywidth %%*F
1130     \if@fleqn %%*F
1131         \ifingather@ %%*F
1132             \tabskip\z@skip %%*F
1133             \advance\dimen@-\@mathmargin %%*F
1134         \fi %%*F
1135     \fi %%*F
1136     \halign to\dimen@\bgroup %%*F
1137         \ifst@rred\nonumber\fi
1138         \hfil
1139         \strut@
1140         \setboxz@h{\global\tag@false$\m@th\displaystyle{\@lign##}$}%
1141         \global\lwidth@\wdz@
1142         \global\lineht@\ht\z@
1143         \boxz@
1144         \global\advance\and@\@ne
1145         \tabskip\z@skip
1146        &\setboxz@h{$\m@th\displaystyle{{}\@lign##}$}%
1147         \global\rwidth@\wdz@
1148         \ifdim\ht\z@>\lineht@
1149             \global\lineht@\ht\z@
1150         \fi
1151         \boxz@
1152         \hfil
1153         \global\advance\and@\@ne
1154         \tabskip\@centering
1155        &\kern-\displaywidth@
1156         \setboxz@h{\@lign\strut@{##}}%
1157         \if@fleqn %%*F
1158             \dimen@\@mathmargin %%*F
1159             \advance\dimen@\maxlwidth@ %%*F
1160             \advance\dimen@-\lwidth@ %%*F
1161         \else %%*F
1162             \dimen@\displaywidth
1163             \advance\dimen@-\totwidth@
1164             \divide\dimen@\tw@
1165             \advance\dimen@\maxlwidth@
1166             \advance\dimen@-\lwidth@
1167         \fi %%*F
1168         \ifdim\dimen@<\tw@\wdz@
1169             \rlap{\vbox{\normalbaselines\boxz@\vbox to\lineht@{}}}%
1170         \else
1171             \rlap{\boxz@}%
1172         \fi
1173         \tabskip\displaywidth@
1174         \crcr
1175         #1%
1176 }
1177 \@namedef{align \space}#1{%
1178     \measure@{#1}%
1179     \if@fleqn %%*F
1180         \advance\totwidth@\@mathmargin %%*F
1181     \fi %%*F
1182     \global\and@\z@
1183     \global\dspbrk@lvl\m@ne
1184     \ifingather@
1185         \everycr{\noalign{\global\and@\z@\global\dspbrk@lvl\m@ne}}%
1186     \else
1187         \displ@y@
1188     \fi
1189     \Let@
1190     \ifst@rred\else\@seteqlabel\theequation\fi
1191     \tabskip\@mathmargin %%*F
1192     \dimen@\displaywidth %%*F
1193     \if@fleqn %%*
1194         \ifingather@ %%*F
1195             \tabskip\z@skip %%*F
1196             \advance\dimen@-\@mathmargin %%*F
1197         \fi %%*F
1198     \fi %%*F
1199      \halign to\dimen@\bgroup %%*F
1200         \ifst@rred\nonumber\fi
1201         \hfil
1202         \strut@
1203         \setboxz@h{\global\tag@false$\m@th\displaystyle{\@lign##}$}%
1204         \global\lwidth@\wdz@\boxz@
1205         \global\advance\and@\@ne
1206         \tabskip\z@skip
1207        &\setboxz@h{$\m@th\displaystyle{{}\@lign##}$}%
1208         \global\rwidth@\wdz@
1209         \boxz@
1210         \hfill
1211         \global\advance\and@\@ne
1212         \tabskip\@centering
1213        &\setboxz@h{\@lign\strut@{##}}%
1214         \dimen@\displaywidth
1215         \advance\dimen@-\totwidth@
1216         \divide\dimen@\tw@
1217         \advance\dimen@\maxrwidth@
1218         \advance\dimen@-\rwidth@
1219         \ifdim\dimen@<\tw@\wdz@
1220             \llap{\vtop{\@movetag\normalbaselines\null\boxz@}}%%*T
1221         \else
1222             \llap{\boxz@}%
1223         \fi
1224         \tabskip\z@skip
1225         \crcr#1%
1226 }
1227 \def\endalign{\math@cr@@@align
1228   \black@\totwidth@
1229   \egroup$$\global\@ignoretrue\setb@ck}
1230
1231 \@namedef{endalign*}{\math@cr@@@align\black@\totwidth@
1232   \egroup$$\global\@ignoretrue}
1233 \@namedef{align (in \string\gather)}{%
1234   \ifst@rred\stepcounter{equation}\fi
1235   \def\endalign{\@nameuse{endalign (in \string\gather)}\ifnum0=`{\fi}}%
1236   \vcenter\bgroup\st@rredfalse
1237     \collect@body\align@}
1238 \@namedef{endalign (in \string\gather)}{%
1239   \math@cr@@@align\black@\totwidth@
1240   \egroup\egroup
1241   \ifst@rred\setb@ck\fi% this ifst@rred is set by the enclosing gather
1242   \global\tag@false\global\@eqnswfalse}
1243 \@namedef{align* (in \string\gather)}{%
1244   \@namedef{endalign*}{\@nameuse{endalign* (in \string\gather)}%
1245                        \ifnum0=`{\fi}}%
1246   \vcenter\bgroup\st@rredtrue
1247     \collect@body\align@}
1248 \@namedef{endalign* (in \string\gather)}{%
1249   \math@cr@@@align\black@\totwidth@\egroup\egroup
1250   \global\tag@false\global\@eqnswfalse}
1251 \newif\ifxat@
1252 \def\alignat#1{%
1253  \ifmmode\nomath@env\DN@{\let\endalignat\relax\@gobble}\else$$%
1254  \st@rredfalse\stepcounter{equation}\@seteqlabel\theequation
1255  \DN@{\@nameuse{alignat }#1}\fi
1256  \collect@body\next@}
1257 \@namedef{alignat*}#1{%
1258  \ifmmode\nomath@env\DN@{\@namedef{endalignat*}{}\@gobble}\else$$%
1259  \st@rredtrue
1260  \DN@{\@nameuse{alignat }#1}\fi
1261  \collect@body\next@}
1262 \newif\ifmeasuring@
1263 \newbox\savealignat@
1264 \def\math@cr@@@alignat{%
1265   \if@eqnsw\global\tag@true\fi
1266   \iftag@
1267    \multiply\count@\tw@
1268    \xdef\next@{}\loop\ifnum\count@>\and@\xdef\next@{&\next@}%
1269     \advance\count@\m@ne\repeat\else
1270    \let\next@\relax\fi
1271   \next@
1272   \relax
1273   \if@eqnsw\tagform@\theequation\stepcounter{equation}\else
1274   \iftag@\df@tag\fi\fi
1275   \global\@eqnswtrue\cr}%
1276 \@namedef{alignat }#1#2{%
1277     \inany@true
1278     \xat@false
1279     \let\tag\tag@in@align
1280     \def\math@cr@@@{\count@#1\relax \math@cr@@@alignat}%
1281     \displaybreak@
1282     \intertext@
1283     \displ@y@
1284     \ifst@rred
1285         \global\@eqnswfalse
1286     \else
1287         \global\@eqnswtrue
1288     \fi
1289     \measuring@true
1290     \setbox\savealignat@\hbox{%
1291         $\m@th\displaystyle\Let@
1292         \attag@{#1}%
1293         \vbox{\firstchoice@false\halign{\span\preamble@@\crcr#2\crcr}}$%
1294     }%
1295     \measuring@false
1296     \Let@
1297     \attag@{#1}%
1298     \tabskip\@mathmargin %%*F
1299     \halign to\displaywidth\bgroup
1300         \span\preamble@@\crcr
1301         #2%
1302 }
1303 \def\endalignat{\math@cr@@@\black@{\wd\savealignat@}%
1304      \egroup\setb@ck$$\global\@ignoretrue}
1305 \@namedef{endalignat*}{\math@cr@@@\black@{\wd\savealignat@}\egroup
1306   $$\global\@ignoretrue}
1307 \def\xalignat#1{%
1308  \ifmmode\nomath@env\DN@{\let\endxalignat\relax\@gobble}\else$$%
1309  \st@rredfalse\stepcounter{equation}\@seteqlabel\theequation
1310  \DN@{\@nameuse{xalignat }#1}\fi
1311  \collect@body\next@}
1312 \@namedef{xalignat*}#1{%
1313  \ifmmode\nomath@env\DN@{\@namedef{endxalignat*}{}\@gobble}\else$$%
1314  \st@rredtrue
1315  \DN@{\@nameuse{xalignat }#1}\fi
1316  \collect@body\next@}
1317 \let\endxalignat=\endalignat
1318
1319 \expandafter\let\csname endxalignat*\expandafter
1320   \endcsname\csname endalignat*\endcsname
1321 \@namedef{xalignat }#1#2{%
1322     \inany@true
1323     \xat@true
1324     \let\tag\tag@in@align
1325     \def\math@cr@@@{\count@#1\relax\math@cr@@@alignat}%
1326     \displaybreak@
1327     \intertext@
1328     \displ@y@
1329     \measuring@true
1330     \setbox\savealignat@\hbox{%
1331         $\m@th\displaystyle\Let@
1332         \attag@{#1}%
1333         \vbox{%
1334             \firstchoice@false
1335             \halign{\span\preamble@@\crcr#2\crcr}%
1336         }%
1337         $%
1338     }%
1339     \measuring@false
1340     \Let@
1341     \attag@{#1}%
1342     \tabskip\@mathmargin %%*F
1343     \halign to\displaywidth\bgroup
1344         \span\preamble@@\crcr#2%
1345 }
1346 \def\attag@#1{%
1347  \let\TAG@\Tag@\let\Tag@0%
1348  \ifmeasuring@\def\llap@##1{\setboxz@h{##1}\hbox to\tw@\wdz@{}}%
1349   \def\rlap@##1{\setboxz@h{##1}\hbox to\tw@\wdz@{}}\else
1350   \let\llap@\llap\let\rlap@\rlap\fi
1351  \toks@{\hfil\strut@$\m@th\displaystyle{\@lign\the\hashtoks@}$%
1352   \tabskip\z@skip
1353   \global\advance\and@\@ne
1354   &$\m@th\displaystyle{{}\@lign\the\hashtoks@}$\hfil
1355   \ifxat@\tabskip\@centering\fi\global\advance\and@\@ne}%
1356  \iftagsleft@
1357   \@temptokena{\tabskip\@centering&\Tag@\kern-\displaywidth
1358    \rlap@{\@lign
1359      \the\hashtoks@
1360     }%
1361    \global\advance\and@\@ne\tabskip\displaywidth}\else
1362   \@temptokena{\tabskip\@centering&\Tag@\llap@{\@lign
1363    \the\hashtoks@
1364   }\global\advance\and@\@ne\tabskip\z@skip}\fi
1365  \atcount@#1\relax\advance\atcount@\m@ne
1366  \loop\ifnum\atcount@>\z@
1367  \toks@\expandafter{\the\toks@&\hfil$\m@th\displaystyle{\@lign
1368   \the\hashtoks@}$\global\advance\and@\@ne
1369   \tabskip\z@skip
1370   &$\m@th\displaystyle{{}\@lign\the\hashtoks@}$\hfil\ifxat@
1371   \tabskip\@centering\fi\global\advance\and@\@ne}\advance\atcount@\m@ne
1372  \repeat
1373  \xdef\preamble@{\the\toks@\the\@temptokena}%
1374  \xdef\preamble@@{\ifst@rred\noexpand\nonumber\fi\preamble@}%
1375  \let\Tag@\TAG@}
1376 \def\xxalignat#1{%
1377  \ifmmode\nomath@env\DN@{\let\endxxalignat\relax\@gobble}\else$$%
1378  \DN@{\@nameuse{xxalignat }#1}\fi
1379  \collect@body\next@}
1380 \@namedef{xxalignat }#1#2{\inany@true
1381  \displaybreak@\intertext@
1382  \displ@y\setbox\savealignat@\hbox{$\m@th\displaystyle\Let@
1383  \xxattag@{#1}%
1384  \vbox{\firstchoice@false\halign{\span\preamble@@\crcr#2\crcr}}$}%
1385  \Let@\xxattag@{#1}\tabskip\z@skip\halign to\displaywidth\bgroup
1386   \span\preamble@@\crcr#2}
1387 \expandafter\let\expandafter\endxxalignat\csname endxalignat*\endcsname
1388 \def\xxattag@#1{\toks@{\tabskip\z@skip\hfil\strut@
1389  $\m@th\displaystyle{\the\hashtoks@}$&%
1390  $\m@th\displaystyle{{}\the\hashtoks@}$\hfil\tabskip\@centering&}%
1391  \atcount@#1\relax\advance\atcount@\m@ne\loop\ifnum\atcount@>\z@
1392  \toks@
1393   \expandafter
1394    {\the\toks@&\hfil$\m@th\displaystyle{\the\hashtoks@}$%
1395   \tabskip\z@skip&$\m@th\displaystyle{{}\the\hashtoks@}$\hfil
1396   \tabskip\@centering}\advance\atcount@\m@ne\repeat
1397  \xdef\preamble@{\the\toks@\tabskip\z@skip}\xdef\preamble@@{\preamble@}}
1398 \newdimen\gwidth@
1399 \newdimen\gmaxwidth@
1400 \def\gmeasure@#1{\gwidth@\z@\gmaxwidth@\z@\setbox\@ne\vbox{\Let@
1401  \firstchoice@false\let\tag\gobble@tag
1402  \halign{\setboxz@h{$\m@th\displaystyle{##}$}\global\gwidth@\wdz@
1403  \ifdim\gwidth@>\gmaxwidth@\global\gmaxwidth@\gwidth@\fi
1404  &\@gobble{##}\crcr#1\crcr}}}
1405 \def\math@cr@@@gather{%
1406   \if@eqnsw\global\tag@true\fi
1407   \iftag@
1408     \DN@{&\relax \if@eqnsw
1409                     \tagform@\theequation \stepcounter{equation}%
1410                  \else\iftag@\df@tag\fi\fi}%
1411   \else
1412     \expandafter\@gobble\fi
1413   \next@
1414   \global\@eqnswtrue\cr}
1415 \def\gather{%
1416  \ifmmode\nomath@env\DN@{\let\endgather\relax\@gobble}\else $$%
1417   \ingather@true\inany@true
1418   \stepcounter{equation}%
1419   \let\tag\tag@in@align\st@rredfalse
1420   \displaybreak@\intertext@
1421   \displ@y
1422   \Let@\@seteqlabel\theequation
1423   \let\math@cr@@@\math@cr@@@gather
1424   \iftagsleft@\DN@{\@nameuse{gather }}\else
1425    \DN@{\@nameuse{gather \space}}\fi\fi
1426  \collect@body\next@}
1427 \@namedef{gather*}{%
1428  \ifmmode\nomath@env\DN@{\@namedef{endgather*}{}\@gobble}\else $$%
1429   \ingather@true\inany@true
1430   \let\tag\tag@in@align\st@rredtrue
1431   \displaybreak@\intertext@
1432   \displ@y\Let@
1433   \let\math@cr@@@\math@cr@@@gather
1434   \iftagsleft@\DN@{\@nameuse{gather }}\else
1435    \DN@{\@nameuse{gather \space}}\fi\fi
1436  \collect@body\next@}
1437 \newdimen\glineht@
1438 \@namedef{gather \space}#1{%
1439     \gmeasure@{#1}%
1440     \if@fleqn %%*F
1441         \advance\gmaxwidth@\@mathmargin %%*F
1442     \fi %%*F
1443     \global\dt@ptrue
1444     \tabskip\@mathmargin %%*F
1445     \halign to\displaywidth\bgroup
1446         \ifst@rred\nonumber\else\global\@eqnswtrue\fi
1447         \if@fleqn\else\hfil\fi %%*F
1448         \strut@
1449         \setboxz@h{\global\tag@false$\m@th\displaystyle{##}$}%
1450         \global\gwidth@\wdz@\boxz@
1451         \hfil
1452         \tabskip\@centering %%*F
1453        &\setboxz@h{\strut@{##}}%
1454         \dimen@\displaywidth
1455         \advance\dimen@-\gwidth@
1456         \if@fleqn %%*F
1457             \advance\dimen@-\@mathmargin %%*F
1458         \else %%*F
1459             \divide\dimen@\tw@ %%*B
1460         \fi %%*F
1461         \ifdim\dimen@<\tw@\wdz@ %%*
1462             \llap{\vtop{\@movetag\normalbaselines\null\boxz@}}%%*T %%*
1463         \else
1464             \llap{\boxz@}% %%*
1465         \fi
1466         \tabskip\z@skip
1467         \crcr
1468         #1%
1469 }
1470 \def\endgather{\math@cr
1471   \black@\gmaxwidth@\egroup $$\setb@ck\global\@ignoretrue}
1472
1473 \@namedef{endgather*}{\math@cr
1474   \black@\gmaxwidth@\egroup $$\global\@ignoretrue}
1475 \@namedef{gather }#1{%
1476     \gmeasure@{#1}%
1477     \global\dt@ptrue
1478     \if@fleqn %%*F
1479         \advance\gmaxwidth@\@mathmargin %%*F
1480     \fi %%*F
1481     \ifdim\gmaxwidth@>\displaywidth
1482         \let\gdisplaywidth@\gmaxwidth@
1483     \else
1484         \let\gdisplaywidth@\displaywidth
1485     \fi
1486     \tabskip\@mathmargin %%*F
1487     \halign to\displaywidth\bgroup
1488         \ifst@rred\nonumber\else\global\@eqnswtrue\fi
1489         \if@fleqn\else\hfil\fi %%*F
1490         \strut@
1491         \setboxz@h{\global\tag@false$\m@th\displaystyle{##}$}%
1492         \global\gwidth@\wdz@
1493         \global\glineht@\ht\z@
1494         \boxz@
1495         \hfil
1496         \tabskip\@centering %%*F
1497        &\kern-\gdisplaywidth@
1498         \setboxz@h{\strut@{##}}%
1499         \if@fleqn %%*F
1500             \dimen@\@mathmargin %%*F
1501         \else %%*F
1502             \dimen@\displaywidth
1503             \advance\dimen@-\gwidth@
1504             \divide\dimen@\tw@ %%*B
1505         \fi %%*F
1506         \ifdim\dimen@<\tw@\wdz@ %%*
1507             \rlap{\vbox{\normalbaselines\boxz@\vbox to\glineht@{}}}% %%*
1508         \else
1509             \rlap{\boxz@}% %%*
1510         \fi
1511         \tabskip\gdisplaywidth@
1512         \crcr
1513         #1%
1514 }
1515 \def\split{%
1516  \ifinany@\let\next@\insplit@\else
1517   \DN@{\PackageError{amstex}{\string\begin{split} is not allowed
1518     here.  Try the `aligned' environment.}\@ehb}\fi
1519  \next@}
1520 \def\insplit@{\global\setbox\z@\vbox\bgroup
1521   \Let@ \restore@math@cr \default@tag % disallow use of \tag here
1522   \ialign\bgroup \hfil\strut@
1523    $\m@th\displaystyle{##}$&$\m@th\displaystyle{{}##}$\hfill\crcr}
1524 \def\endsplit{\crcr\egroup\egroup
1525  \iftagsleft@\expandafter\lendsplit@\else
1526   \expandafter\rendsplit@\fi}
1527 \def\rendsplit@{\global\setbox9 \vbox
1528  {\unvcopy\z@\global\setbox8 \lastbox\unskip}%
1529  \setbox\@ne\hbox{\unhcopy8 \unskip\global\setbox\tw@\lastbox
1530  \unskip\global\setbox\thr@@\lastbox}%
1531  \global\setbox7 \hbox{\unhbox\tw@\unskip}%
1532  \ifinalign@\ifctagsplit@
1533   \gdef\split@{\hbox to\wd\thr@@{}&
1534    \vcenter{\vbox{\moveleft\wd\thr@@\boxz@}}}%
1535  \else\gdef\split@{&\vbox{\moveleft\wd\thr@@\box9}\crcr
1536   \box\thr@@&\box7}\fi
1537  \else
1538   \ifctagsplit@\gdef\split@{\vcenter{\boxz@}}\else
1539   \gdef\split@{\box9\crcr\hbox{\box\thr@@\box7}}\fi
1540  \fi
1541  \aftergroup\split@}
1542 \def\lendsplit@{\global\setbox9\vtop{\unvcopy\z@}%
1543  \setbox\@ne\vbox{\unvcopy\z@\global\setbox8\lastbox}%
1544  \setbox\@ne\hbox{\unhcopy8\unskip\setbox\tw@\lastbox
1545   \unskip\global\setbox\thr@@\lastbox}%
1546  \ifinalign@\ifctagsplit@
1547   \gdef\split@{\hbox to\wd\thr@@{}&
1548   \vcenter{\vbox{\moveleft\wd\thr@@\box9}}}%
1549   \else
1550   \gdef\split@{\hbox to\wd\thr@@{}&\vbox{\moveleft\wd\thr@@\box9}}\fi
1551  \else
1552   \ifctagsplit@\gdef\split@{\vcenter{\box9}}\else
1553   \gdef\split@{\box9}\fi
1554  \fi\aftergroup\split@}
1555 \newdimen\multlinegap
1556 \multlinegap10pt
1557 \newdimen\multlinetaggap@
1558 \multlinetaggap@10pt
1559 \def\multline{%
1560  \ifmmode\nomath@env\DN@{\let\endmultline\relax\@gobble}%
1561  \else $$\DN@{\collect@body\multline@}\fi
1562  \st@rredfalse\@eqnswtrue \@seteqlabel\theequation
1563  \stepcounter{equation}\next@}
1564 \@namedef{multline*}{%
1565  \ifmmode\nomath@env\DN@{\@namedef{endmultline*}{}\@gobble}%
1566  \else $$\DN@{\collect@body\multline@}\fi
1567  \st@rredtrue\@eqnswfalse \let\@currentlabel\@empty
1568  \next@}
1569 \def\multline@{\inany@true\displaybreak@
1570  \global\tag@false
1571  \def\tag{\ifst@rred\else
1572    \global\advance\c@equation\m@ne\fi\tag@in@align}%
1573  \iftagsleft@
1574   \expandafter\lmultline@@\else
1575   \expandafter\rmultline@@\fi}
1576 \newdimen\mwidth@
1577 \def\rmmeasure@#1{%
1578  \def\shoveleft##1{##1}\def\shoveright##1{##1}%
1579  \setbox\@ne\vbox{\firstchoice@false\Let@\halign{\setboxz@h
1580   {$\m@th\@lign\displaystyle{}##$}\global\mwidth@\wdz@
1581   \crcr#1\crcr}}}
1582 \newdimen\mlineht@
1583 \newif\ifzerocr@
1584 \newif\ifonecr@
1585 \def\lmmeasure@#1{\global\zerocr@true\global\onecr@false
1586  \everycr{\noalign{\ifonecr@\global\onecr@false\fi
1587   \ifzerocr@\global\zerocr@false\global\onecr@true\fi}}%
1588   \def\shoveleft##1{##1}\def\shoveright##1{##1}%
1589  \setbox\@ne\vbox{\Let@\firstchoice@false\halign{\setboxz@h
1590   {$\m@th\@lign\displaystyle{}##$}\ifonecr@\global\mwidth@\wdz@
1591   \global\mlineht@\ht\z@\fi\crcr#1\crcr}}}
1592 \newbox\mtagbox@
1593 \newdimen\ltwidth@
1594 \newdimen\rtwidth@
1595 \def\lmultline@@#1{%
1596     \lmmeasure@{#1}%
1597     \setbox\mtagbox@\hbox{%
1598         \iftag@
1599             \df@tag
1600         \else
1601             \if@eqnsw
1602                 \global\tag@true
1603                 \tagform@\theequation
1604             \fi
1605         \fi
1606     }%
1607     \dimen@\mwidth@
1608     \advance\dimen@\wd\mtagbox@
1609     \advance\dimen@\multlinetaggap@
1610     \if@fleqn %%*F
1611         \advance\dimen@\@mathmargin %%*F
1612     \fi %%*F
1613     \ifdim\dimen@>\displaywidth
1614         \ltwidth@\z@
1615     \else
1616         \ltwidth@\wd\mtagbox@
1617     \fi
1618     \lmultline@@@#1
1619 }
1620 \def\lmultline@@@{%
1621     \displ@y
1622     \def\shoveright##1{##1\hfilneg\hskip\multlinegap}%
1623     \if@fleqn %%*F
1624         \def\shoveleft##1{##1}% %%*F
1625     \else %%*F
1626         \def\shoveleft##1{%
1627                 \setboxz@h{$\m@th\displaystyle{}##1$}%
1628                 \setbox\@ne\hbox{$\m@th\displaystyle##1$}%
1629                 \hfilneg
1630                 \iftag@
1631                     \ifdim\ltwidth@>\z@
1632                         \hskip\ltwidth@
1633                         \hskip\multlinetaggap@
1634                     \fi
1635                 \else
1636                     \hskip\multlinegap
1637                 \fi
1638                 \hskip.5\wd\@ne
1639                 \hskip-.5\wdz@##1%
1640         }%
1641     \fi %%*F
1642     \if@fleqn %%*F
1643         \tabskip\@mathmargin %%*F
1644     \else %%*F
1645         \tabskip\z@skip %%*
1646     \fi %%*F
1647     \totwidth@\displaywidth %%*F
1648     \if@fleqn %%*F
1649         \advance\totwidth@-\@mathmargin %%*F
1650     \fi %%*F
1651     \halign\bgroup
1652         \Let@
1653         \let\tag\gobble@tag
1654         \hbox to\totwidth@{% %%*F
1655             \strut@$\m@th\displaystyle
1656             \if@fleqn %%*F
1657                 \hskip 0pt plus 1000pt %%*F
1658             \else %%*F
1659                 \hfil
1660             \fi %%*F
1661             {}##\hfil$%
1662         }%
1663         \crcr
1664         \if@fleqn %%*F
1665             \hskip-\@mathmargin %%*F
1666         \else %%*F
1667             \hfilneg
1668         \fi %%*F
1669         \iftag@
1670             \ifdim\ltwidth@>\z@
1671                 \box\mtagbox@
1672                 \hskip\multlinetaggap@
1673             \else
1674                 \rlap{%
1675                     \vbox{%
1676                         \normalbaselines
1677                         \hbox{\strut@\box\mtagbox@}%
1678                         \vbox to\mlineht@{}%
1679                     }%
1680                 }%
1681                 \hskip\multlinegap %%*
1682             \fi
1683         \else
1684             \hskip\multlinegap
1685         \fi
1686 }
1687 \def\rmultline@@#1{%
1688     \rmmeasure@{#1}%
1689     \setbox\mtagbox@\hbox{%
1690         \iftag@
1691             \df@tag
1692         \else
1693             \if@eqnsw
1694                 \global\tag@true
1695                 \tagform@\theequation
1696             \fi
1697         \fi
1698     }%
1699     \dimen@\mwidth@
1700     \advance\dimen@\wd\mtagbox@
1701     \advance\dimen@\multlinetaggap@
1702     \if@fleqn %%*F
1703         \advance\dimen@\@mathmargin %%*F
1704     \fi %%*F
1705     \ifdim\dimen@>\displaywidth
1706         \rtwidth@\z@
1707     \else
1708         \rtwidth@\wd\mtagbox@
1709     \fi
1710     \rmultline@@@#1
1711 }
1712 \def\rmultline@@@{%
1713     \displ@y
1714     \def\shoveright##1{%
1715         ##1%
1716         \hfilneg
1717         \iftag@
1718             \ifdim\rtwidth@>\z@
1719                 \hskip\rtwidth@
1720                 \hskip\multlinetaggap@
1721             \fi
1722         \else
1723             \hskip\multlinegap
1724         \fi
1725     }%
1726     \if@fleqn %%*F
1727         \def\shoveleft##1{##1}% %%*F
1728     \else %%*F
1729         \def\shoveleft##1{%
1730             \setboxz@h{$\m@th\displaystyle{}##1$}%
1731             \setbox\@ne\hbox{$\m@th\displaystyle##1$}%
1732             \hfilneg
1733             \hskip\multlinegap
1734             \hskip.5\wd\@ne
1735             \hskip-.5\wdz@
1736             ##1%
1737         }%
1738     \fi %%*F
1739     \if@fleqn %%*F
1740         \tabskip\@mathmargin %%*F
1741     \else %%*F
1742         \tabskip\z@skip %%*
1743     \fi %%*F
1744     \totwidth@\displaywidth %%*F
1745     \if@fleqn %%*F
1746         \advance\totwidth@-\@mathmargin %%*F
1747     \fi %%*F
1748     \halign\bgroup
1749         \Let@
1750         \let\tag\gobble@tag
1751         \hbox to\totwidth@{%
1752             \strut@$\m@th\displaystyle
1753             \if@fleqn %%*F
1754                 \hskip 0pt plus 1000pt %%*F
1755             \else %%*F
1756                 \hfil
1757             \fi %%*F
1758             {}##\hfil$%
1759         }%
1760         \crcr
1761         \if@fleqn %%*F
1762             \hskip-\@mathmargin %%*F
1763         \else %%*F
1764             \hfilneg
1765         \fi %%*F
1766         \hskip\multlinegap
1767 }
1768 \def\endmultline{\iftagsleft@\expandafter\lendmultline@\else
1769   \expandafter\rendmultline@\fi\global\@ignoretrue}
1770 \expandafter\let\csname endmultline*\endcsname=\endmultline
1771 \def\lendmultline@{\hfilneg\hskip\multlinegap\crcr\egroup$$}
1772 \def\rendmultline@{%
1773     \iftag@
1774         \ifdim\rtwidth@>\z@
1775             \hskip\multlinetaggap@
1776             \box\mtagbox@
1777         \else
1778             \hskip\multlinegap %%*
1779             \llap{%
1780                 \vtop{%
1781                     \@movetag %%*T
1782                     \normalbaselines\null\hbox{\strut@\box\mtagbox@}%
1783                 }%
1784             }%
1785         \fi
1786     \else
1787         \hskip\multlinegap
1788     \fi
1789     \hfilneg
1790     \crcr
1791     \egroup$$%
1792 }
1793 \expandafter\def
1794  \expandafter\@arrayparboxrestore
1795   \expandafter{\@arrayparboxrestore
1796                \inany@false\ingather@false\inalign@false
1797    \default@tag}
1798 \def\equation{\gather\def\\{\PackageError{amstex}{\Invalid@@\\}\@eha}}
1799 \def\endequation{\endgather}
1800 \newenvironment{equation*}{%
1801   \equation
1802 }{%
1803   \nonumber\endequation
1804 }
1805 \newcounter{parentequation}% Counter for ``parent equation''.
1806 \newenvironment{subequations}{%
1807   \refstepcounter{equation}%
1808   \begingroup % conservative approach
1809   \let\protect\@nx
1810   \edef\@tempa{\def\@nx\theparentequation{\theequation}}%
1811   \@xp\endgroup\@tempa
1812   \setcounter{parentequation}{\value{equation}}%
1813   \setcounter{equation}{0}%
1814   \def\theequation{\theparentequation\alph{equation}}%
1815   \ignorespaces
1816 }{%
1817   \setcounter{equation}{\value{parentequation}}%
1818   \global\@ignoretrue
1819 }
1820 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
1821 \def\atdef@#1{\expandafter\def\csname\space @\string#1\endcsname}
1822 \begingroup \catcode`\@=\active
1823 \gdef @{\Iat}
1824 \endgroup
1825 \DeclareRobustCommand{\Iat}{\FN@\at@}
1826 \def\at@{\let\next@\at@@
1827  \ifcat\noexpand\@let@token a\else
1828  \ifcat\noexpand\@let@token0\else
1829  \ifcat\noexpand\@let@token\relax\else
1830  \let\@let@token@\at@@@\fi\fi\fi\next@}
1831 \def\at@@#1{\expandafter
1832   \@ifundefined{ @\string#1}%
1833     {\DN@{\at@@@#1}}%
1834     {\DN@{\csname\space @\string#1\endcsname}}%
1835   \next@}%
1836 \def\at@@@{\PackageError{amstex}{\Invalid@@ @}%
1837   {\the\athelp@}% "I'll assume you wanted @@"
1838   \char64\relax}
1839 \newhelp\athelp@
1840 {Only certain combinations beginning with @ make sense to me.^^J%
1841 I'll assume you wanted @@ for a printed @.}
1842 \atdef@ @{{\atchar}}% to define @@
1843 \chardef\atchar=64
1844 \def\makeatother{\catcode64=\active}
1845 \def\@tempa#1#2#3#4#5#6{%
1846   {#1}{#2}\ifnum0#6=0{13}\@xp\@gobblefour
1847   \else{#3}\fi\@tempa{#4}{#5}{#6}}%
1848 \xdef\@currnamestack{\@xp\@tempa\@currnamestack{}{}{0}}
1849 {\def\@makeother{\noexpand\@makeother\noexpand}
1850 \xdef\@sanitize{\@sanitize\@makeother\@}}
1851 {\def\do{\noexpand\do\noexpand}
1852 \xdef\dospecials{\dospecials\do\@}}
1853 \atdef@,{\ifmmode\mskip.1\thinmuskip\else \nonmatherr@{@,}\fi}
1854 \atdef@!{\RIfM@\mskip-.1\thinmuskip\else \nonmatherr@{@!}\fi}
1855
1856 \@ifpackageloaded{amscd}{%
1857 }{%
1858 \atdef@>#1>#2>{%
1859   \global\bigaw@\minaw@
1860   \setboxz@h{$\m@th\scriptstyle\;{#1}\;\;$}%
1861   \ifdim\wdz@>\bigaw@ \global\bigaw@\wdz@ \fi
1862   \@ifnotempty{#2}{\setbox\@ne\hbox{$\m@th\scriptstyle\;{#2}\;\;$}%
1863     \ifdim\wd\@ne>\bigaw@ \global\bigaw@\wd\@ne \fi}%
1864    \mathrel{\mathop{\hbox to\bigaw@{\rightarrowfill@\displaystyle}}%
1865      \limits^{#1}\@ifnotempty{#2}{_{#2}}}%
1866 }% end of @>>>
1867 \atdef@<#1<#2<{%
1868   \global\bigaw@\minaw@
1869   \setboxz@h{$\m@th\scriptstyle\;\;{#1}\;$}%
1870   \ifdim\wdz@>\bigaw@ \global\bigaw@\wdz@ \fi
1871   \@ifnotempty{#2}{\setbox\@ne\hbox{$\m@th\scriptstyle\;\;{#2}\;$}%
1872     \ifdim\wd\@ne>\bigaw@ \global\bigaw@\wd\@ne \fi}%
1873   \mathrel{\mathop{\hbox to\bigaw@{\leftarrowfill@\displaystyle}}%
1874       \limits^{#1}\@ifnotempty{#2}{_{#2}}}%
1875 }% end of @<<<
1876 }% end of @ifpackageloaded
1877 \@ifundefined{minaw@}{\newdimen\minaw@}{}
1878 \minaw@11.111pt
1879 \@ifundefined{bigaw@}{\newdimen\bigaw@}{}
1880 \atdef@-{\let\next-%%
1881   \DN@{\ifx\next-%%
1882     \def\next-{\setbox\z@\hbox{-}\unhbox\z@\FN@\next@}%%
1883     \expandafter\next \else\nobreak\fi}%%
1884   \next@-}%%
1885 \def\leftroot{\PackageError{amstex}{\Invalid@@\leftroot}\@eha}
1886 \def\uproot{\PackageError{amstex}{\Invalid@@\uproot}\@eha}
1887 \newcount\uproot@
1888 \newcount\leftroot@
1889 \def\root{\relaxnext@
1890   \DN@{\ifx\@let@token\uproot\let\next@\nextii@\else
1891    \ifx\@let@token\leftroot\let\next@\nextiii@\else
1892    \let\next@\plainroot@\fi\fi\next@}%
1893   \def\nextii@\uproot##1{\uproot@##1\relax\FN@\nextiv@}%
1894   \def\nextiv@{\ifx\@let@token\@sptoken\DN@. {\FN@\nextv@}\else
1895    \DN@.{\FN@\nextv@}\fi\next@.}%
1896   \def\nextv@{\ifx\@let@token\leftroot\let\next@\nextvi@\else
1897    \let\next@\plainroot@\fi\next@}%
1898   \def\nextvi@\leftroot##1{\leftroot@##1\relax\plainroot@}%
1899    \def\nextiii@\leftroot##1{\leftroot@##1\relax\FN@\nextvii@}%
1900   \def\nextvii@{\ifx\@let@token\@sptoken
1901    \DN@. {\FN@\nextviii@}\else
1902    \DN@.{\FN@\nextviii@}\fi\next@.}%
1903   \def\nextviii@{\ifx\@let@token\uproot\let\next@\nextix@\else
1904    \let\next@\plainroot@\fi\next@}%
1905   \def\nextix@\uproot##1{\uproot@##1\relax\plainroot@}%
1906   \bgroup\uproot@\z@\leftroot@\z@\FN@\next@}
1907 \def\plainroot@#1\of#2{\setbox\rootbox\hbox{%
1908  $\m@th\scriptscriptstyle{#1}$}%
1909  \mathchoice{\r@@t\displaystyle{#2}}{\r@@t\textstyle{#2}}
1910  {\r@@t\scriptstyle{#2}}{\r@@t\scriptscriptstyle{#2}}\egroup}
1911 \def\r@@t#1#2{\setboxz@h{$\m@th#1\@@sqrt{#2}$}%
1912  \dimen@\ht\z@\advance\dimen@-\dp\z@
1913  \setbox\@ne\hbox{$\m@th#1\mskip\uproot@ mu$}%
1914  \advance\dimen@ by1.667\wd\@ne
1915  \mkern-\leftroot@ mu\mkern5mu\raise.6\dimen@\copy\rootbox
1916  \mkern-10mu\mkern\leftroot@ mu\boxz@}
1917 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
1918 %% Fragment from old amsfonts.sty to deal with msam, msbm, eufm fonts;
1919 %% omit if `noamsfonts' option was specified.
1920 \ifx F\@amsfonts \endinput \fi
1921 \DeclareSymbolFont{AMSa}{U}{msa}{m}{n}
1922 \DeclareSymbolFont{AMSb}{U}{msb}{m}{n}
1923 \ifx P\@amsfonts
1924   \DeclareFontFamily{U}{msa}{}%
1925   \DeclareFontShape{U}{msa}{m}{n}{<-6>msam5<6-8>msam7<8->msam10}{}%
1926   \DeclareFontFamily{U}{msb}{}%
1927   \DeclareFontShape{U}{msb}{m}{n}{<-6>msbm5<6-8>msbm7<8->msbm10}{}%
1928   \DeclareFontFamily{U}{euf}{}%
1929   \DeclareFontShape{U}{euf}{m}{n}{<-6>eufm5<6-8>eufm7<8->eufm10}{}%
1930   \DeclareFontShape{U}{euf}{b}{n}{<-6>eufb5<6-8>eufb7<8->eufb10}{}%
1931 \fi
1932 \@ifundefined{yen}{%
1933   \edef\yen{\noexpand\mathhexbox{\hexnumber@\symAMSa}55}
1934 }{}
1935 \@ifundefined{checkmark}{%
1936   \edef\checkmark{\noexpand\mathhexbox{\hexnumber@\symAMSa}58}
1937 }{}
1938 \@ifundefined{circledR}{%
1939   \edef\circledR{\noexpand\mathhexbox{\hexnumber@\symAMSa}72}
1940 }{}
1941 \@ifundefined{maltese}{%
1942   \edef\maltese{\noexpand\mathhexbox{\hexnumber@\symAMSa}7A}
1943 }{}
1944 \begingroup \catcode`\"=12
1945 \DeclareMathDelimiter\ulcorner{\mathopen} {AMSa}{"70}{AMSa}{"70}
1946 \DeclareMathDelimiter\urcorner{\mathclose}{AMSa}{"71}{AMSa}{"71}
1947 \DeclareMathDelimiter\llcorner{\mathopen} {AMSa}{"78}{AMSa}{"78}
1948 \DeclareMathDelimiter\lrcorner{\mathclose}{AMSa}{"79}{AMSa}{"79}
1949 \xdef\widehat#1{\noexpand\@mathmeasure\z@\textstyle{#1}%
1950   \noexpand\ifdim\noexpand\wdz@>\tw@ em%
1951   \mathaccent"0\hexnumber@\symAMSb 5B{#1}%
1952   \noexpand\else\mathaccent"0362{#1}\noexpand\fi}
1953 \xdef\widetilde#1{\noexpand\@mathmeasure\z@\textstyle{#1}%
1954   \noexpand\ifdim\noexpand\wdz@>\tw@ em%
1955   \mathaccent"0\hexnumber@\symAMSb 5D{#1}%
1956   \noexpand\else\mathaccent"0365{#1}\noexpand\fi}
1957 \DeclareMathSymbol\dabar@{\mathord}{AMSa}{"39}
1958 \xdef\dashrightarrow{\mathrel{\dabar@\dabar@
1959                               \mathchar"0\hexnumber@\symAMSa 4B}}%
1960 \xdef\dashleftarrow{\mathrel{\mathchar"0\hexnumber@\symAMSa 4C\dabar@
1961                               \dabar@}}%
1962 \global\let\dasharrow\dashrightarrow
1963 \global\let\rightleftharpoons\undefined
1964 \DeclareMathSymbol\rightleftharpoons{\mathrel}{AMSa}{"0A}
1965 \global\let\angle\undefined
1966 \DeclareMathSymbol\angle            {\mathord}{AMSa}{"5C}
1967 \global\let\hbar\undefined
1968 \DeclareMathSymbol\hbar             {\mathord}{AMSb}{"7E}
1969 \global\let\sqsubset\undefined
1970 \DeclareMathSymbol\sqsubset         {\mathrel}{AMSa}{"40}
1971 \global\let\sqsupset\undefined
1972 \DeclareMathSymbol\sqsupset         {\mathrel}{AMSa}{"41}
1973 \global\let\mho\undefined
1974 \DeclareMathSymbol\mho              {\mathord}{AMSb}{"66}
1975 \DeclareMathSymbol\square           {\mathord}{AMSa}{"03}
1976 \DeclareMathSymbol\lozenge          {\mathord}{AMSa}{"06}
1977 \DeclareMathSymbol\vartriangleright {\mathrel}{AMSa}{"42}
1978 \DeclareMathSymbol\vartriangleleft  {\mathrel}{AMSa}{"43}
1979 \DeclareMathSymbol\trianglerighteq  {\mathrel}{AMSa}{"44}
1980 \DeclareMathSymbol\trianglelefteq   {\mathrel}{AMSa}{"45}
1981 \DeclareMathSymbol\rightsquigarrow  {\mathrel}{AMSa}{"20}
1982 \def\@tempa{\not@base\lhd}
1983 \ifx\lhd\@tempa
1984  \global\let\lhd\vartriangleleft
1985  \global\let\unlhd\trianglelefteq
1986  \global\let\rhd\vartriangleright
1987  \global\let\unrhd\trianglerighteq
1988  \global\let\Box\square
1989  \global\let\Diamond\lozenge
1990  \global\let\leadsto\rightsquigarrow
1991 \xdef\Join{\mathrel{\mathchar"0\hexnumber@\symAMSb 6F\mkern-13.8mu%
1992   \mathchar"0\hexnumber@\symAMSb 6E}}
1993 \fi
1994 \endgroup
1995 \DeclareMathAlphabet\mathfrak{U}{euf}{m}{n}
1996 \SetMathAlphabet\mathfrak{bold}{U}{euf}{b}{n}
1997 \DeclareSymbolFontAlphabet{\mathbb}{AMSb}
1998 \DeclareFontEncodingDefaults{\relax}{\def\accentclass@{7}}
1999 \def\frak{\mathfrak}
2000 \def\Bbb{\mathbb}
2001 \def\bold{\mathbf}
2002 \begingroup \catcode`\"=12 \relax
2003 \gdef\newsymbol#1#2#3#4#5{%
2004   \@ifdefinable#1{%
2005      \edef\next@
2006        {\ifcase #2 \or
2007           \hexnumber@\symAMSa\or
2008           \hexnumber@\symAMSb\fi}%
2009      \ifx\next@\@empty
2010        \PackageError{amsfonts}{\Invalid@@\newsymbol}\@ehd%
2011      \else
2012       \global\mathchardef#1"#3\next@#4#5
2013      \fi}}
2014 \endgroup
2015 %%   Some odds and ends
2016 \def\sphat{^{\mathchoice{}{}%
2017  {\,\,\smash[b]{\hbox{\lower4\ex@\hbox{$\m@th\widehat{\null}$}}}}%
2018  {\,\smash[b]{\hbox{\lower3\ex@\hbox{$\m@th\hat{\null}$}}}}}}
2019 \def\spcheck{^\vee}
2020 \def\sptilde{^\sim}
2021 \def\spdot{^{\hbox{\raise\ex@\hbox{\normalfont .}}}}
2022 \def\spddot{^{\hbox{\raise\ex@\hbox{\normalfont ..}}}}
2023 \def\spdddot{^{\hbox{\raise\ex@\hbox{\normalfont...}}}}
2024 \def\spbreve{^{\!\smash[b]{\hbox{\lower4\ex@\hbox{\u{}}}}}}
2025 \def\fracwithdelims#1#2{\new@ifnextchar[{\fracwithdelims@#1#2}%
2026   {\fracwithdelims@#1#2[\@empty]}}
2027 \def\fracwithdelims@#1#2[#3]#4#5{\relax
2028   \ifx\@empty#3{#4\overwithdelims#1#2#5}\else
2029   {#4\abovewithdelims#1#2#3\relax#5}\fi}
2030 \def\accentedsymbol#1#2{%
2031   \expandafter\newbox
2032     \csname\expandafter\@gobble\string#1@box\endcsname
2033   \expandafter\setbox
2034     \csname\expandafter\@gobble\string#1@box\endcsname
2035       \hbox{$\m@th#2$}%
2036   \newcommand{#1}{%
2037     \expandafter\copy
2038       \csname\expandafter\@gobble\string#1@box\endcsname{}}%
2039 }
2040 \def~{\nobreakspace}
2041 \DeclareRobustCommand{\nobreakspace}{\unskip\nobreak\ \ignorespaces}
2042 %%
2043 %% End of file `amstex.sty'.