From 7c55de4fbb8a3fd98697b47aa5500a56a590f2c0 Mon Sep 17 00:00:00 2001 From: Karl Berry Date: Sun, 27 Aug 2006 18:26:03 +0000 Subject: amslatex package amsmath update from latex-tds (27aug06) git-svn-id: svn://tug.org/texlive/trunk@2050 c570f23f-e606-0410-a88d-b1316a301751 --- Master/texmf-dist/tex/latex/amsmath/amsbsy.sty | 98 + Master/texmf-dist/tex/latex/amsmath/amscd.sty | 171 ++ Master/texmf-dist/tex/latex/amsmath/amsgen.sty | 160 ++ Master/texmf-dist/tex/latex/amsmath/amsmath.sty | 2670 +++++++++++++++++++++++ Master/texmf-dist/tex/latex/amsmath/amsopn.sty | 132 ++ Master/texmf-dist/tex/latex/amsmath/amstex.sty | 2043 +++++++++++++++++ Master/texmf-dist/tex/latex/amsmath/amstext.sty | 101 + Master/texmf-dist/tex/latex/amsmath/amsxtra.sty | 80 + 8 files changed, 5455 insertions(+) create mode 100644 Master/texmf-dist/tex/latex/amsmath/amsbsy.sty create mode 100644 Master/texmf-dist/tex/latex/amsmath/amscd.sty create mode 100644 Master/texmf-dist/tex/latex/amsmath/amsgen.sty create mode 100644 Master/texmf-dist/tex/latex/amsmath/amsmath.sty create mode 100644 Master/texmf-dist/tex/latex/amsmath/amsopn.sty create mode 100644 Master/texmf-dist/tex/latex/amsmath/amstex.sty create mode 100644 Master/texmf-dist/tex/latex/amsmath/amstext.sty create mode 100644 Master/texmf-dist/tex/latex/amsmath/amsxtra.sty (limited to 'Master/texmf-dist/tex/latex/amsmath') diff --git a/Master/texmf-dist/tex/latex/amsmath/amsbsy.sty b/Master/texmf-dist/tex/latex/amsmath/amsbsy.sty new file mode 100644 index 00000000000..0e64d1b2e28 --- /dev/null +++ b/Master/texmf-dist/tex/latex/amsmath/amsbsy.sty @@ -0,0 +1,98 @@ +%% +%% This is file `amsbsy.sty', +%% generated with the docstrip utility. +%% +%% The original source files were: +%% +%% amsbsy.dtx +%% +%%% ==================================================================== +%%% @LaTeX-file{ +%%% filename = "amsbsy.dtx", +%%% version = "1.2d", +%%% date = "1999/11/29", +%%% time = "14:26:42 EST", +%%% author = "American Mathematical Society", +%%% copyright = "Copyright 1995 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.", +%%% address = "American Mathematical Society, +%%% Technical Support, +%%% Electronic Products and Services, +%%% P. O. Box 6248, +%%% Providence, RI 02940, +%%% USA", +%%% telephone = "401-455-4080 or (in the USA and Canada) +%%% 800-321-4AMS (321-4267)", +%%% FAX = "401-331-3842", +%%% checksum = "08988 251 1238 9625", +%%% email = "tech-support@ams.org (Internet)", +%%% codetable = "ISO/ASCII", +%%% keywords = "latex, bold symbol, pmb", +%%% supported = "yes", +%%% abstract = "This is a \LaTeX{} package that provides a command +%%% for producing bold math symbols when appropriate +%%% fonts exist, and a `poor man's bold' command that +%%% can be applied when no appropriate bold font +%%% is available.", +%%% docstring = "The checksum field above contains a CRC-16 +%%% checksum as the first value, followed by the +%%% equivalent of the standard UNIX wc (word +%%% count) utility output of lines, words, and +%%% characters. This is produced by Robert +%%% Solovay's checksum utility.", +%%% } +%%% ==================================================================== +\NeedsTeXFormat{LaTeX2e}% LaTeX 2.09 can't be used (nor non-LaTeX) +[1994/12/01]% LaTeX date must December 1994 or later +\ProvidesPackage{amsbsy}[1999/11/29 v1.2d] +\RequirePackage{amsgen} +\DeclareRobustCommand{\boldsymbol}[1]{% + \begingroup + \let\@nomath\@gobble \mathversion{bold}% + \math@atom{#1}{% + \mathchoice% + {\hbox{$\m@th\displaystyle#1$}}% + {\hbox{$\m@th\textstyle#1$}}% + {\hbox{$\m@th\scriptstyle#1$}}% + {\hbox{$\m@th\scriptscriptstyle#1$}}}% + \endgroup} +\def\math@atom#1#2{% + \binrel@{#1}\binrel@@{#2}} +\DeclareRobustCommand{\pmb}{% + \ifmmode\else \expandafter\pmb@@\fi\mathpalette\pmb@} +\def\pmb@@#1#2#3{\leavevmode\setboxz@h{#3}% + \dimen@-\wdz@ + \kern-.5\ex@\copy\z@ + \kern\dimen@\kern.25\ex@\raise.4\ex@\copy\z@ + \kern\dimen@\kern.25\ex@\box\z@ +} +\newdimen\pmbraise@ +\def\pmb@#1#2{\setbox8\hbox{$\m@th#1{#2}$}% + \setboxz@h{$\m@th#1\mkern.5mu$}\pmbraise@\wdz@ + \binrel@{#2}% + \dimen@-\wd8 % + \binrel@@{% + \mkern-.8mu\copy8 % + \kern\dimen@\mkern.4mu\raise\pmbraise@\copy8 % + \kern\dimen@\mkern.4mu\box8 }% +} +\def\binrel@#1{\begingroup + \setboxz@h{\thinmuskip0mu + \medmuskip\m@ne mu\thickmuskip\@ne mu + \setbox\tw@\hbox{$#1\m@th$}\kern-\wd\tw@ + ${}#1{}\m@th$}% + \edef\@tempa{\endgroup\let\noexpand\binrel@@ + \ifdim\wdz@<\z@ \mathbin + \else\ifdim\wdz@>\z@ \mathrel + \else \relax\fi\fi}% + \@tempa +} +\let\binrel@@\relax +\endinput +%% +%% End of file `amsbsy.sty'. diff --git a/Master/texmf-dist/tex/latex/amsmath/amscd.sty b/Master/texmf-dist/tex/latex/amsmath/amscd.sty new file mode 100644 index 00000000000..56a4e958001 --- /dev/null +++ b/Master/texmf-dist/tex/latex/amsmath/amscd.sty @@ -0,0 +1,171 @@ +%% +%% This is file `amscd.sty', +%% generated with the docstrip utility. +%% +%% The original source files were: +%% +%% amscd.dtx +%% +%%% ==================================================================== +%%% @LaTeX-file{ +%%% filename = "amscd.dtx", +%%% version = "2.0", +%%% date = "1999/11/29", +%%% time = "14:30:07 EST", +%%% author = "American Mathematical Society", +%%% copyright = "Copyright 1995, 1999 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.", +%%% address = "American Mathematical Society, +%%% Technical Support, +%%% Electronic Products and Services, +%%% P. O. Box 6248, +%%% Providence, RI 02940, +%%% USA", +%%% telephone = "401-455-4080 or (in the USA and Canada) +%%% 800-321-4AMS (321-4267)", +%%% FAX = "401-331-3842", +%%% checksum = "07428 333 1152 12117", +%%% email = "tech-support@ams.org (Internet)", +%%% codetable = "ISO/ASCII", +%%% keywords = "latex, commutative diagram", +%%% supported = "yes", +%%% abstract = "This is a \LaTeX{} package that adapts the +%%% commutative diagram macros of AMS-\TeX{} for +%%% use in \LaTeX{}", +%%% docstring = "The checksum field above contains a CRC-16 +%%% checksum as the first value, followed by the +%%% equivalent of the standard UNIX wc (word +%%% count) utility output of lines, words, and +%%% characters. This is produced by Robert +%%% Solovay's checksum utility.", +%%% } +%%% ==================================================================== +\NeedsTeXFormat{LaTeX2e}% LaTeX 2.09 can't be used (nor non-LaTeX) +[1994/12/01]% LaTeX date must December 1994 or later +\ProvidesPackage{amscd}[1999/11/29 v1.2d] +\RequirePackage{amsgen} +\@ifundefined{math@cr}{% + \def\math@cr{{\ifnum0=`}\fi + \@ifstar{\global\@eqpen\@M\math@cr@}% + {\global\@eqpen\interdisplaylinepenalty \math@cr@}} + \def\math@cr@{\new@ifnextchar[\math@cr@@{\math@cr@@[\z@]}} + \def\math@cr@@[#1]{\ifnum0=`{\fi}\math@cr@@@ + \noalign{\vskip#1\relax}} + \def\restore@math@cr{\def\math@cr@@@{\cr}} +}{} +\restore@math@cr +\@ifundefined{rightarrowfill@}{ + \def\rightarrowfill@#1{\m@th\setboxz@h{$#1-$}\ht\z@\z@ + $#1\copy\z@\mkern-6mu\cleaders + \hbox{$#1\mkern-2mu\box\z@\mkern-2mu$}\hfill + \mkern-6mu\mathord\rightarrow$} + \def\leftarrowfill@#1{\m@th\setboxz@h{$#1-$}\ht\z@\z@ + $#1\mathord\leftarrow\mkern-6mu\cleaders + \hbox{$#1\mkern-2mu\copy\z@\mkern-2mu$}\hfill + \mkern-6mu\box\z@$} + \def\leftrightarrowfill@#1{\m@th\setboxz@h{$#1-$}\ht\z@\z@ + $#1\mathord\leftarrow\mkern-6mu\cleaders + \hbox{$#1\mkern-2mu\box\z@\mkern-2mu$}\hfill + \mkern-6mu\mathord\rightarrow$} +}{} +\def\atdef@#1{\expandafter\def\csname\space @\string#1\endcsname} +\@ifundefined{Iat}{% + \DeclareRobustCommand{\Iat}{\FN@\at@} +}{} +\begingroup \catcode`\@=\active +\csname if\string @compatibility\endcsname +\else \fam=\mathcode`\@ + \xdef @{\mathchar\number\fam\space } +\fi +\gdef\CDat{\let @=\Iat} +\endgroup +\mathcode`\@="8000 % make @ pseudo-active in math +\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 + \DN@{\at@@@#1}% + \else + \DN@{\csname\space @\string#1\endcsname}% + \fi\next@}% +\@ifundefined{default@tag}{% + \def\default@tag{% + \def\tag{\PackageError{amscd}{\protect\tag\space not allowed + here}\@eha}}% +}{}% +\@ifundefined{at@@@}{% + \def\at@@@{\PackageError{amscd}{\Invalid@@ @}{\the\athelp@}\char64\relax} +}{} +\@ifundefined{athelp@}{\csname newhelp\endcsname\athelp@ +{Only certain combinations beginning with @ make sense to me.^^J% +I'll assume you wanted @@ for a printed @.}}{} +\@ifundefined{minaw@}{\newdimen\minaw@}{} +\@ifundefined{bigaw@}{\newdimen\bigaw@}{} +\minaw@11.111pt +\newdimen\minCDarrowwidth +\minCDarrowwidth2.5pc +\newif\ifCD@ +\let\ampersand@\relax +\newenvironment{CD}{% + \CDat + \bgroup\relax\iffalse{\fi\let\ampersand@&\iffalse}\fi + \CD@true\vcenter\bgroup\let\\\math@cr\restore@math@cr\default@tag + \tabskip\z@skip\baselineskip20\ex@ + \lineskip3\ex@\lineskiplimit3\ex@\halign\bgroup + &\hfill$\m@th##$\hfill\crcr +}{% + \crcr\egroup\egroup\egroup +} +\def\CD@check#1#2{\ifCD@\DN@{#2}\else + \DN@{\PackageError{amscd}{@\protect#1 not + allowed outside of the CD environment}\@eha}% + \fi\next@} +\atdef@>#1>#2>{\ampersand@ + \ifCD@ \global\bigaw@\minCDarrowwidth \else \global\bigaw@\minaw@ \fi + \setboxz@h{$\m@th\scriptstyle\;{#1}\;\;$}% + \ifdim\wdz@>\bigaw@\global\bigaw@\wdz@\fi + \@ifnotempty{#2}{\setbox\@ne\hbox{$\m@th\scriptstyle\;{#2}\;\;$}% + \ifdim\wd\@ne>\bigaw@\global\bigaw@\wd\@ne\fi}% + \ifCD@\enskip\fi + \mathrel{\mathop{\hbox to\bigaw@{\rightarrowfill@\displaystyle}}% + \limits^{#1}\@ifnotempty{#2}{_{#2}}}% + \ifCD@\enskip\fi \ampersand@} +\atdef@<#1<#2<{\ampersand@ + \ifCD@ \global\bigaw@\minCDarrowwidth \else \global\bigaw@\minaw@ \fi + \setboxz@h{$\m@th\scriptstyle\;\;{#1}\;$}% + \ifdim\wdz@>\bigaw@ \global\bigaw@\wdz@ \fi + \@ifnotempty{#2}{\setbox\@ne\hbox{$\m@th\scriptstyle\;\;{#2}\;$}% + \ifdim\wd\@ne>\bigaw@ \global\bigaw@\wd\@ne \fi}% + \ifCD@\enskip\fi + \mathrel{\mathop{\hbox to\bigaw@{\leftarrowfill@\displaystyle}}% + \limits^{#1}\@ifnotempty{#2}{_{#2}}}% + \ifCD@\enskip\fi \ampersand@} +\begingroup \catcode`\~=\active \lccode`\~=`\@ +\lowercase{% + \global\atdef@)#1)#2){~>#1>#2>} + \global\atdef@(#1(#2({~<#1<#2<} +}% end lowercase +\endgroup +\atdef@ A#1A#2A{\CD@check{A..A..A}{\llap{$\m@th\vcenter{\hbox + {$\scriptstyle#1$}}$}\Big\uparrow + \rlap{$\m@th\vcenter{\hbox{$\scriptstyle#2$}}$}&&}} +\atdef@ V#1V#2V{\CD@check{V..V..V}{\llap{$\m@th\vcenter{\hbox + {$\scriptstyle#1$}}$}\Big\downarrow + \rlap{$\m@th\vcenter{\hbox{$\scriptstyle#2$}}$}&&}} +\atdef@={\CD@check={&\enskip\mathrel + {\vbox{\hrule\@width\minCDarrowwidth\vskip2\ex@\hrule\@width + \minCDarrowwidth}}\enskip&}} +\atdef@|{\CD@check|{\Big\Vert&&}} +\atdef@\vert{\CD@check\vert{\Big\Vert&&}} +\atdef@.{\CD@check.{&&}} +\endinput +%% +%% End of file `amscd.sty'. diff --git a/Master/texmf-dist/tex/latex/amsmath/amsgen.sty b/Master/texmf-dist/tex/latex/amsmath/amsgen.sty new file mode 100644 index 00000000000..9d39357a496 --- /dev/null +++ b/Master/texmf-dist/tex/latex/amsmath/amsgen.sty @@ -0,0 +1,160 @@ +%% +%% This is file `amsgen.sty', +%% generated with the docstrip utility. +%% +%% The original source files were: +%% +%% amsgen.dtx +%% +%%% ==================================================================== +%%% @LaTeX-file{ +%%% filename = "amsgen.dtx", +%%% version = "2.0", +%%% date = "1999/11/30", +%%% time = "12:33:33 EST", +%%% author = "American Mathematical Society", +%%% copyright = "Copyright 1995, 1999 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.", +%%% address = "American Mathematical Society, +%%% Technical Support, +%%% Electronic Products and Services, +%%% P. O. Box 6248, +%%% Providence, RI 02940, +%%% USA", +%%% telephone = "401-455-4080 or (in the USA and Canada) +%%% 800-321-4AMS (321-4267)", +%%% FAX = "401-331-3842", +%%% checksum = "07569 396 1613 14368", +%%% email = "tech-support@ams.org (Internet)", +%%% codetable = "ISO/ASCII", +%%% keywords = "latex, amslatex, ams-latex", +%%% supported = "yes", +%%% abstract = "This is part of the AMS-\LaTeX{} distribution. +%%% It contains some general internal macros shared +%%% by several different files in AMS-\LaTeX{}.", +%%% docstring = "The checksum field above contains a CRC-16 +%%% checksum as the first value, followed by the +%%% equivalent of the standard UNIX wc (word +%%% count) utility output of lines, words, and +%%% characters. This is produced by Robert +%%% Solovay's checksum utility.", +%%% } +%%% ==================================================================== +\NeedsTeXFormat{LaTeX2e}% LaTeX 2.09 can't be used (nor non-LaTeX) +[1994/12/01]% LaTeX date must December 1994 or later +\ProvidesFile{amsgen.sty}[1999/11/30 v2.0] +\providecommand{\@saveprimitive}[2]{\begingroup\escapechar`\\\relax + \edef\@tempa{\string#1}\edef\@tempb{\meaning#1}% + \ifx\@tempa\@tempb \global\let#2#1% + \else + \edef\@tempb{\meaning#2}% + \ifx\@tempa\@tempb + \else + \@latex@error{Unable to properly define \string#2; primitive + \noexpand#1no longer primitive}\@eha + \fi + \fi + \endgroup} +\let\@xp=\expandafter +\let\@nx=\noexpand +\newtoks\@emptytoks +\def\@oparg#1[#2]{\@ifnextchar[{#1}{#1[#2]}} +\long\def\@ifempty#1{\@xifempty#1@@..\@nil} +\long\def\@xifempty#1#2@#3#4#5\@nil{% + \ifx#3#4\@xp\@firstoftwo\else\@xp\@secondoftwo\fi} +\long\def\@ifnotempty#1{\@ifempty{#1}{}} +\def\FN@{\futurelet\@let@token} +\def\DN@{\def\next@} +\def\RIfM@{\relax\ifmmode} +\def\setboxz@h{\setbox\z@\hbox} +\def\wdz@{\wd\z@} +\def\boxz@{\box\z@} +\def\relaxnext@{\let\@let@token\relax} +\long\def\new@ifnextchar#1#2#3{% + \let\reserved@d= #1% + \def\reserved@a{#2}\def\reserved@b{#3}% + \futurelet\@let@token\new@ifnch +} +\def\new@ifnch{% + \ifx\@let@token\reserved@d \let\reserved@b\reserved@a \fi + \reserved@b +} +\def\@ifstar#1#2{\new@ifnextchar *{\def\reserved@a*{#1}\reserved@a}{#2}} +\@ifundefined{every@math@size}{% +\let\every@math@size=\every@size +\def\glb@settings{% + \expandafter\ifx\csname S@\f@size\endcsname\relax + \calculate@math@sizes + \fi + \csname S@\f@size\endcsname + \ifmath@fonts + \begingroup + \escapechar\m@ne + \csname mv@\math@version \endcsname + \globaldefs\@ne + \let \glb@currsize \f@size + \math@fonts + \endgroup + \the\every@math@size + \else + \fi +} +\def\set@fontsize#1#2#3{% + \@defaultunits\@tempdimb#2pt\relax\@nnil + \edef\f@size{\strip@pt\@tempdimb}% + \@defaultunits\@tempskipa#3pt\relax\@nnil + \edef\f@baselineskip{\the\@tempskipa}% + \edef\f@linespread{#1}% + \let\baselinestretch\f@linespread + \def\size@update{% + \baselineskip\f@baselineskip\relax + \baselineskip\f@linespread\baselineskip + \normalbaselineskip\baselineskip + \setbox\strutbox\hbox{% + \vrule\@height.7\baselineskip + \@depth.3\baselineskip + \@width\z@}% +%%% \the\every@size + \let\size@update\relax}% + } +}{}% end \@ifundefined test +\newdimen\ex@ +\addto@hook\every@math@size{\compute@ex@} +\def\compute@ex@{% + \begingroup + \dimen@-\f@size\p@ + \ifdim\dimen@<-20\p@ + \global\ex@ 1.5\p@ + \else + \advance\dimen@10\p@ \multiply\dimen@\tw@ + \edef\@tempa{\ifdim\dimen@>\z@ -\fi}% + \dimen@ \ifdim\dimen@<\z@ -\fi \dimen@ + \advance\dimen@-\@m sp % fudge factor + \vfuzz\p@ + \def\do{\ifdim\dimen@>\z@ + \vfuzz=.97\vfuzz + \advance\dimen@ -\p@ + \@xp\do \fi}% + \do + \dimen@\p@ \advance\dimen@-\vfuzz + \global\ex@\p@ + \global\advance\ex@ \@tempa\dimen@ + \fi + \endgroup +} +\def\@addpunct#1{\ifnum\spacefactor>\@m \else#1\fi} +\def\frenchspacing{\sfcode`\.1006\sfcode`\?1005\sfcode`\!1004% + \sfcode`\:1003\sfcode`\;1002\sfcode`\,1001 } +\def\nomath@env{\@amsmath@err{% + \string\begin{\@currenvir} allowed only in paragraph mode% +}\@ehb% "You've lost some text" +} +\def\Invalid@@{Invalid use of \string} +\endinput +%% +%% End of file `amsgen.sty'. diff --git a/Master/texmf-dist/tex/latex/amsmath/amsmath.sty b/Master/texmf-dist/tex/latex/amsmath/amsmath.sty new file mode 100644 index 00000000000..8d22f7aeb0f --- /dev/null +++ b/Master/texmf-dist/tex/latex/amsmath/amsmath.sty @@ -0,0 +1,2670 @@ +%% +%% This is file `amsmath.sty', +%% generated with the docstrip utility. +%% +%% The original source files were: +%% +%% amsmath.dtx +%% +%%% ==================================================================== +%%% @LaTeX-file{ +%%% filename = "amsmath.dtx", +%%% version = "2.13", +%%% date = "2000/07/18", +%%% time = "08:16:41 EDT", +%%% author = "American Mathematical Society", +%%% copyright = "Copyright 1995, 2000 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.", +%%% address = "American Mathematical Society, +%%% Technical Support, +%%% Publications Technical Group, +%%% P. O. Box 6248, +%%% Providence, RI 02940, +%%% USA", +%%% telephone = "401-455-4080 or (in the USA and Canada) +%%% 800-321-4AMS (321-4267)", +%%% FAX = "401-331-3842", +%%% checksum = "38084 5829 21569 202795", +%%% email = "tech-support@ams.org (Internet)", +%%% codetable = "ISO/ASCII", +%%% keywords = "latex, amslatex, math, amsmath", +%%% supported = "yes", +%%% abstract = "This is a \LaTeX{} package that provides a variety of +%%% extra mathematical features, largely derived from +%%% AMS-\TeX{}.", +%%% docstring = "The checksum field above contains a CRC-16 checksum +%%% as the first value, followed by the equivalent of +%%% the standard UNIX wc (word count) utility output of +%%% lines, words, and characters. This is produced by +%%% Robert Solovay's checksum utility.", +%%% } +%%% ==================================================================== +\NeedsTeXFormat{LaTeX2e}% LaTeX 2.09 can't be used (nor non-LaTeX) +[1994/12/01]% LaTeX date must be December 1994 or later +\ProvidesPackage{amsmath}[2000/07/18 v2.13 AMS math features] +\edef\@temp{\catcode 96=\number\catcode 96 } +\catcode\string `\`=12 +\def\do#1{\catcode\number`#1=\number\catcode`#1} +\edef\@temp{% + \noexpand\AtEndOfPackage{% + \@temp + \do\"\do\'\do\(\do\)\do\*\do\+\do\,\do\-\do\.% + \do\/\do\<\do\=\do\>\do\[\do\]\do\^\do\_\relax + }% +} +\@temp +\def\do#1{\catcode\number`#1=12 } +\do\"\do\'\do\(\do\)\do\*\do\+\do\,\do\-\do\. +\do\/\do\<\do\=\do\>\do\[\do\] +\catcode`\^=7 \catcode`\_=8 +\DeclareOption{intlimits}{\let\ilimits@\displaylimits} +\DeclareOption{nointlimits}{\let\ilimits@\nolimits} +\DeclareOption{sumlimits}{\let\slimits@\displaylimits} +\DeclareOption{nosumlimits}{\let\slimits@\nolimits} +\DeclareOption{namelimits}{\PassOptionsToPackage{namelimits}{amsopn}} +\DeclareOption{nonamelimits}{% + \PassOptionsToPackage{nonamelimits}{amsopn}} +\newif\ifctagsplit@ +\newif\iftagsleft@ +\DeclareOption{leqno}{\tagsleft@true} +\DeclareOption{reqno}{\tagsleft@false} +\DeclareOption{centertags}{\ctagsplit@true} +\DeclareOption{tbtags}{\ctagsplit@false} +\DeclareOption{cmex10}{% + \ifnum\cmex@opt=\@ne \def\cmex@opt{0}% + \else \def\cmex@opt{10}\fi +} +\@ifundefined{cmex@opt}{\def\cmex@opt{7}}{} +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +\newif\if@fleqn +\newskip\@mathmargin +\@mathmargin\@centering +\DeclareOption{fleqn}{% + \@fleqntrue + \@mathmargin = -1sp + \let\mathindent=\@mathmargin + \AtBeginDocument{% + \ifdim\@mathmargin= -1sp + \@mathmargin\leftmargini minus\leftmargini + \fi + }% +} +\DeclareOption{?}{} +\ExecuteOptions{nointlimits,sumlimits,namelimits,centertags} +\ProcessOptions\par +\@ifpackagewith{amsmath}{?}{% + \typeout{^^J% +Documentation for the amsmath package is found in amsldoc.dvi^^J% +(or .pdf or .tex).^^J% +^^J% +See also http://www.ams.org/tex/amslatex.html.^^J% +^^J% +Note: Using the first edition of The LaTeX Companion (1994) without^^J% +errata as a guide for amsmath use is not recommended.^^J% + }% +}{% + \typeout{% +For additional information on amsmath, use the \lq ?\rq\space option.% + }% +} +\ifnum\cmex@opt=7 \relax + \DeclareFontShape{OMX}{cmex}{m}{n}{% + <-8>cmex7<8>cmex8<9>cmex9% + <10><10.95><12><14.4><17.28><20.74><24.88>cmex10% + }{}% + \expandafter\let\csname OMX/cmex/m/n/10\endcsname\relax +\else + \ifnum\cmex@opt=\z@ % need to override cmex7 fontdef from amsfonts + \begingroup + \fontencoding{OMX}\fontfamily{cmex}% + \expandafter\let\csname OMX+cmex\endcsname\relax + \try@load@fontshape + \endgroup + \expandafter\let\csname OMX/cmex/m/n/10\endcsname\relax + \def\cmex@opt{10}% + \fi +\fi +\RequirePackage{amstext}[1995/01/25] +\RequirePackage{amsbsy}[1995/01/20] +\RequirePackage{amsopn}[1995/01/20] +\def\@amsmath@err{\PackageError{amsmath}} +\providecommand{\AmS}{{\protect\AmSfont + A\kern-.1667em\lower.5ex\hbox{M}\kern-.125emS}} +\newcommand{\AmSfont}{% + \usefont{OMS}{cmsy}{\if\@xp\@car\f@series\@nil bb\else m\fi}{n}} +\def\@mathmeasure#1#2#3{\setbox#1\hbox{\frozen@everymath\@emptytoks + \m@th$#2#3$}} +\@ifundefined{inf@bad}{% + \newcount\inf@bad \inf@bad=1000000 \relax +}{} +\DeclareRobustCommand{\tmspace}[3]{% + \ifmmode\mskip#1#2\else\kern#1#3\fi\relax} +\renewcommand{\,}{\tmspace+\thinmuskip{.1667em}} +\let\thinspace\, +\renewcommand{\!}{\tmspace-\thinmuskip{.1667em}} +\let\negthinspace\! +\renewcommand{\:}{\tmspace+\medmuskip{.2222em}} +\let\medspace\: +\newcommand{\negmedspace}{\tmspace-\medmuskip{.2222em}} +\renewcommand{\;}{\tmspace+\thickmuskip{.2777em}} +\let\thickspace\; +\newcommand{\negthickspace}{\tmspace-\thickmuskip{.2777em}} +\newcommand{\mspace}[1]{\mskip#1\relax} +\def\@tempa#1#2\@nil{% + \ifx\delimiter#1\@tempcnta#2\relax\else\@tempcnta\z@\fi +} +\@xp\@tempa\vert\@empty\@nil +\ifnum\@tempcnta>\z@ + \advance\@tempcnta "4000000 + \xdef\lvert{\delimiter\number\@tempcnta\space } + \advance\@tempcnta "1000000 + \xdef\rvert{\delimiter\number\@tempcnta\space } +\else + \ifx\@@undefined\lvert + % Fall back to cmex encoding since we don't know what else to do. + \DeclareMathDelimiter{\lvert} + {\mathopen}{symbols}{"6A}{largesymbols}{"0C} + \DeclareMathDelimiter{\rvert} + {\mathclose}{symbols}{"6A}{largesymbols}{"0C} + \fi +\fi +\@xp\@tempa\Vert\@empty\@nil +\ifnum\@tempcnta>\z@ + \advance\@tempcnta "4000000 + \xdef\lVert{\delimiter\number\@tempcnta\space } + \advance\@tempcnta "1000000 + \xdef\rVert{\delimiter\number\@tempcnta\space } +\else + \ifx\@@undefined\lVert + \DeclareMathDelimiter{\lVert} + {\mathopen}{symbols}{"6B}{largesymbols}{"0D} + \DeclareMathDelimiter{\rVert} + {\mathclose}{symbols}{"6B}{largesymbols}{"0D} + \fi +\fi +\@saveprimitive\over\@@over +\@saveprimitive\atop\@@atop +\@saveprimitive\above\@@above +\@saveprimitive\overwithdelims\@@overwithdelims +\@saveprimitive\atopwithdelims\@@atopwithdelims +\@saveprimitive\abovewithdelims\@@abovewithdelims +\DeclareRobustCommand{\primfrac}[1]{% + \PackageWarning{amsmath}{% +Foreign command \@backslashchar#1;\MessageBreak +\protect\frac\space or \protect\genfrac\space should be used instead% +\MessageBreak + } + \global\@xp\let\csname#1\@xp\endcsname\csname @@#1\endcsname + \csname#1\endcsname +} +\renewcommand{\over}{\primfrac{over}} +\renewcommand{\atop}{\primfrac{atop}} +\renewcommand{\above}{\primfrac{above}} +\renewcommand{\overwithdelims}{\primfrac{overwithdelims}} +\renewcommand{\atopwithdelims}{\primfrac{atopwithdelims}} +\renewcommand{\abovewithdelims}{\primfrac{abovewithdelims}} +\DeclareRobustCommand{\frac}[2]{{\begingroup#1\endgroup\@@over#2}} +\newcommand{\dfrac}{\genfrac{}{}{}0} +\newcommand{\tfrac}{\genfrac{}{}{}1} +\DeclareRobustCommand{\binom}{\genfrac()\z@{}} +\newcommand{\dbinom}{\genfrac(){0pt}0} +\newcommand{\tbinom}{\genfrac(){0pt}1} +\DeclareRobustCommand{\genfrac}[4]{% + \def\@tempa{#1#2}% + \edef\@tempb{\@nx\@genfrac\@mathstyle{#4}% + \csname @@\ifx @#3@over\else above\fi + \ifx\@tempa\@empty \else withdelims\fi\endcsname} + \@tempb{#1#2#3}} +\def\@genfrac#1#2#3#4#5{{#1{\begingroup#4\endgroup#2#3\relax#5}}} +\def\@mathstyle#1{% + \ifx\@empty#1\@empty\relax + \else\ifcase#1\displaystyle % case 0 + \or\textstyle\or\scriptstyle\else\scriptscriptstyle\fi\fi} +\begingroup +\edef\@tempa{\string\mathchar"} +\def\@tempb#1"#2\@nil{#1"} +\edef\@tempc{\expandafter\@tempb\meaning\coprod "\@nil} +\ifx\@tempa\@tempc + \global\let\coprod@\coprod + \gdef\coprod{\DOTSB\coprod@\slimits@} + \global\let\bigvee@\bigvee + \gdef\bigvee{\DOTSB\bigvee@\slimits@} + \global\let\bigwedge@\bigwedge + \gdef\bigwedge{\DOTSB\bigwedge@\slimits@} + \global\let\biguplus@\biguplus + \gdef\biguplus{\DOTSB\biguplus@\slimits@} + \global\let\bigcap@\bigcap + \gdef\bigcap{\DOTSB\bigcap@\slimits@} + \global\let\bigcup@\bigcup + \gdef\bigcup{\DOTSB\bigcup@\slimits@} + \global\let\prod@\prod + \gdef\prod{\DOTSB\prod@\slimits@} + \global\let\sum@\sum + \gdef\sum{\DOTSB\sum@\slimits@} + \global\let\bigotimes@\bigotimes + \gdef\bigotimes{\DOTSB\bigotimes@\slimits@} + \global\let\bigoplus@\bigoplus + \gdef\bigoplus{\DOTSB\bigoplus@\slimits@} + \global\let\bigodot@\bigodot + \gdef\bigodot{\DOTSB\bigodot@\slimits@} + \global\let\bigsqcup@\bigsqcup + \gdef\bigsqcup{\DOTSB\bigsqcup@\slimits@} +\fi +\endgroup +\newcommand{\leftroot}{\@amsmath@err{\Invalid@@\leftroot}\@eha} +\newcommand{\uproot}{\@amsmath@err{\Invalid@@\uproot}\@eha} +\newcount\uproot@ +\newcount\leftroot@ +\renewcommand{\root}{\relaxnext@ + \DN@{\ifx\@let@token\uproot\let\next@\nextii@\else + \ifx\@let@token\leftroot\let\next@\nextiii@\else + \let\next@\plainroot@\fi\fi\next@}% + \def\nextii@\uproot##1{\uproot@##1\relax\FN@\nextiv@}% + \def\nextiv@{\ifx\@let@token\@sptoken\DN@. {\FN@\nextv@}\else + \DN@.{\FN@\nextv@}\fi\next@.}% + \def\nextv@{\ifx\@let@token\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\@let@token\@sptoken + \DN@. {\FN@\nextviii@}\else + \DN@.{\FN@\nextviii@}\fi\next@.}% + \def\nextviii@{\ifx\@let@token\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} + +\@ifundefined{sqrtsign}{\let\sqrtsign\@@sqrt}{} +\def\r@@t#1#2{\setboxz@h{$\m@th#1\sqrtsign{#2}$}% + \dimen@\ht\z@\advance\dimen@-\dp\z@ + \setbox\@ne\hbox{$\m@th#1\mskip\uproot@ mu$}% + \advance\dimen@ by1.667\wd\@ne + \mkern-\leftroot@ mu\mkern5mu\raise.6\dimen@\copy\rootbox + \mkern-10mu\mkern\leftroot@ mu\boxz@} +\@ifundefined{varGamma}{% + \DeclareMathSymbol{\varGamma}{\mathord}{letters}{"00} + \DeclareMathSymbol{\varDelta}{\mathord}{letters}{"01} + \DeclareMathSymbol{\varTheta}{\mathord}{letters}{"02} + \DeclareMathSymbol{\varLambda}{\mathord}{letters}{"03} + \DeclareMathSymbol{\varXi}{\mathord}{letters}{"04} + \DeclareMathSymbol{\varPi}{\mathord}{letters}{"05} + \DeclareMathSymbol{\varSigma}{\mathord}{letters}{"06} + \DeclareMathSymbol{\varUpsilon}{\mathord}{letters}{"07} + \DeclareMathSymbol{\varPhi}{\mathord}{letters}{"08} + \DeclareMathSymbol{\varPsi}{\mathord}{letters}{"09} + \DeclareMathSymbol{\varOmega}{\mathord}{letters}{"0A} +}{} +\@saveprimitive\overline\@@overline +\DeclareRobustCommand{\overline}[1]{\@@overline{#1}} +\newcommand{\boxed}[1]{\fbox{\m@th$\displaystyle#1$}} +\newcommand{\implies}{\DOTSB\;\Longrightarrow\;} +\newcommand{\impliedby}{\DOTSB\;\Longleftarrow\;} +\def\And{\DOTSB\;\mathchar"3026 \;} +\newcommand{\nobreakdash}{\leavevmode + \toks@\@emptytoks \def\@tempa##1{\toks@\@xp{\the\toks@-}\FN@\next@}% + \DN@{\ifx\@let@token-\@xp\@tempa + \else\setboxz@h{\the\toks@\nobreak}\unhbox\z@\fi}% + \FN@\next@ +} +\renewcommand{\colon}{\nobreak\mskip2mu\mathpunct{}\nonscript + \mkern-\thinmuskip{:}\mskip6muplus1mu\relax} +\let\ifgtest@\iffalse % initial value +\def\gtest@true{\global\let\ifgtest@\iftrue} +\def\gtest@false{\global\let\ifgtest@\iffalse} +\let\DOTSI\relax +\let\DOTSB\relax +\let\DOTSX\relax +{\uccode`7=`\\ \uccode`8=`m \uccode`9=`a \uccode`0=`t \uccode`!=`h + \uppercase{% + \gdef\math@#1#2#3#4#5#6\math@{\gtest@false\ifx 7#1\ifx 8#2% + \ifx 9#3\ifx 0#4\ifx !#5\xdef\meaning@{#6}\gtest@true + \fi\fi\fi\fi\fi}}} +{\uccode`7=`c \uccode`8=`h \uccode`9=`\" + \uppercase{\gdef\mathch@#1#2#3#4#5#6\mathch@{\gtest@false + \ifx 7#1\ifx 8#2\ifx 9#5\gtest@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} +{\uccode`4=`b \uccode`5=`i \uccode`6=`n + \uppercase{\gdef\mathbin@#1#2#3{\relaxnext@ + \def\nextii@##1\mathbin@{\ifx\@sptoken\@let@token\gtest@true\fi}% + \gtest@false\DN@##1\mathbin@{}% + \ifx 4#1\ifx 5#2\ifx 6#3\DN@{\FN@\nextii@}\fi\fi\fi\next@}}} +{\uccode`4=`r \uccode`5=`e \uccode`6=`l + \uppercase{\gdef\mathrel@#1#2#3{\relaxnext@ + \def\nextii@##1\mathrel@{\ifx\@sptoken\@let@token\gtest@true\fi}% + \gtest@false\DN@##1\mathrel@{}% + \ifx 4#1\ifx 5#2\ifx 6#3\DN@{\FN@\nextii@}\fi\fi\fi\next@}}} +{\uccode`5=`m \uccode`6=`a \uccode`7=`c + \uppercase{\gdef\macro@#1#2#3#4\macro@{\gtest@false + \ifx 5#1\ifx 6#2\ifx 7#3\gtest@true + \xdef\meaning@{\macro@@#4\macro@@}\fi\fi\fi}}} +\def\macro@@#1->#2\macro@@{#2} +\newcount\DOTSCASE@ +{\uccode`6=`\\ \uccode`7=`D \uccode`8=`O \uccode`9=`T \uccode`0=`S + \uppercase{\gdef\DOTS@#1#2#3#4#5{\gtest@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@ + \def\nextii@##1\DOTS@{\ifx\@sptoken\@let@token\gtest@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@}}} +{\uccode`5=`\\ \uccode`6=`n \uccode`7=`o \uccode`8=`t + \uppercase{\gdef\not@#1#2#3#4{\relaxnext@ + \def\nextii@##1\not@{\ifx\@sptoken\@let@token\gtest@true\fi}% + \gtest@false\DN@##1\not@{}% + \ifx 5#1\ifx 6#2\ifx 7#3\ifx 8#4\DN@{\FN@\nextii@}\fi\fi\fi + \fi\next@}}} +\def\keybin@{\gtest@true + \ifx\@let@token+\else\ifx\@let@token=\else + \ifx\@let@token<\else\ifx\@let@token>\else + \ifx\@let@token-\else\ifx\@let@token*\else\ifx\@let@token:\else + \gtest@false\fi\fi\fi\fi\fi\fi\fi} +\@ifundefined{@ldots}{\def\@ldots{\mathellipsis}}{} +\DeclareRobustCommand{\ldots}{% + \ifmmode \mathellipsis \else \textellipsis \fi +} +\DeclareRobustCommand{\dots}{% + \ifmmode \@xp\mdots@\else \@xp\textellipsis \fi +} +\def\tdots@{\leavevmode\unskip\relaxnext@ + \DN@{$\m@th\@ldots\, + \ifx\@let@token,\,$\else\ifx\@let@token.\,$\else + \ifx\@let@token;\,$\else\ifx\@let@token:\,$\else + \ifx\@let@token?\,$\else\ifx\@let@token!\,$\else + $ \fi\fi\fi\fi\fi\fi}% + \ \FN@\next@} +\def\mdots@{\FN@\mdots@@} +\def\mdots@@{\gdef\thedots@{\dotso@}% + \ifx\@let@token\boldsymbol \gdef\thedots@\boldsymbol{\boldsymboldots@}% + \else\ifx,\@let@token \gdef\thedots@{\dotsc}% + \else\ifx\not\@let@token \gdef\thedots@{\dotsb@}% + \else\keybin@ + \ifgtest@\gdef\thedots@{\dotsb@}% + \else\xdef\meaning@{\meaning\@let@token..........}% + \xdef\meaning@@{\meaning@}% + \@xp\math@\meaning@\math@ + \ifgtest@ + \@xp\mathch@\meaning@\mathch@ + \ifgtest@\@xp\getmathch@\meaning@\getmathch@\fi + \else\@xp\macro@\meaning@@\macro@ + \ifgtest@ + \@xp\not@\meaning@\not@\ifgtest@\gdef\thedots@{\dotsb@}% + \else\@xp\DOTS@\meaning@\DOTS@ + \ifgtest@ + \ifcase\number\DOTSCASE@\gdef\thedots@{\dotsb@}% + \or\gdef\thedots@{\dotsi}\else\fi + \else\@xp\math@\meaning@\math@ + \ifgtest@\@xp\mathbin@\meaning@\mathbin@ + \ifgtest@\gdef\thedots@{\dotsb@}% + \else\@xp\mathrel@\meaning@\mathrel@ + \ifgtest@\gdef\thedots@{\dotsb@}% + \fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi + \thedots@} +\def\boldsymboldots@#1{% + \bold@true\let\@let@token=#1\let\delayed@=#1\mdots@@ + \boldsymbol#1\bold@false} +\def\@cdots{\mathinner{\cdotp\cdotp\cdotp}} +\newcommand{\dotsi}{\!\@cdots} +\let\dotsb@\@cdots +\def\rightdelim@{\gtest@true + \ifx\@let@token)\else + \ifx\@let@token]\else + \ifx\@let@token\rbrack\else + \ifx\@let@token\}\else + \ifx\@let@token\rbrace\else + \ifx\@let@token\rangle\else + \ifx\@let@token\rceil\else + \ifx\@let@token\rfloor\else + \ifx\@let@token\rgroup\else + \ifx\@let@token\rmoustache\else + \ifx\@let@token\right\else + \ifx\@let@token\bigr\else + \ifx\@let@token\biggr\else + \ifx\@let@token\Bigr\else + \ifx\@let@token\Biggr\else\gtest@false + \fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi} +\def\extra@{% + \rightdelim@\ifgtest@ + \else\ifx\@let@token$\gtest@true + \else\xdef\meaning@{\meaning\@let@token..........}% + \@xp\macro@\meaning@\macro@\ifgtest@ + \@xp\DOTS@\meaning@\DOTS@ + \ifgtest@ + \ifnum\DOTSCASE@=\tw@\gtest@true\else\gtest@false + \fi\fi\fi\fi\fi} +\newif\ifbold@ +\def\dotso@{\relaxnext@ + \ifbold@ + \let\@let@token\delayed@ + \def\nextii@{\extra@\@ldots\ifgtest@\,\fi}% + \else + \def\nextii@{\DN@{\extra@\@ldots\ifgtest@\,\fi}\FN@\next@}% + \fi + \nextii@} +\def\extrap@#1{% + \DN@{#1\,}% + \ifx\@let@token,\else + \ifx\@let@token;\else + \ifx\@let@token.\else\extra@ + \ifgtest@\else + \let\next@#1\fi\fi\fi\fi\next@} +\DeclareRobustCommand{\cdots}{\DN@{\extrap@\@cdots}\FN@\next@} +\let\dotsb\cdots +\let\dotsm\cdots +\DeclareRobustCommand{\dotso}{\relax + \ifmmode \DN@{\extrap@\@ldots}% + \else \let\next@\tdots@\fi + \FN@\next@} +\DeclareRobustCommand{\dotsc}{% + \DN@{\ifx\@let@token;\@ldots\,% + \else \ifx\@let@token.\@ldots\,% + \else \extra@\@ldots \ifgtest@\,\fi + \fi\fi}% + \FN@\next@} +\renewcommand{\longrightarrow}{% + \DOTSB\protect\relbar\protect\joinrel\rightarrow} +\renewcommand{\Longrightarrow}{% + \DOTSB\protect\Relbar\protect\joinrel\Rightarrow} +\renewcommand{\longleftarrow}{% + \DOTSB\leftarrow\protect\joinrel\protect\relbar} +\renewcommand{\Longleftarrow}{% + \DOTSB\Leftarrow\protect\joinrel\protect\Relbar} +\renewcommand{\longleftrightarrow}{\DOTSB\leftarrow\joinrel\rightarrow} +\renewcommand{\Longleftrightarrow}{\DOTSB\Leftarrow\joinrel\Rightarrow} +\renewcommand{\mapsto}{\DOTSB\mapstochar\rightarrow} +\renewcommand{\longmapsto}{\DOTSB\mapstochar\longrightarrow} +\renewcommand{\hookrightarrow}{\DOTSB\lhook\joinrel\rightarrow} +\renewcommand{\hookleftarrow}{\DOTSB\leftarrow\joinrel\rhook} +\renewcommand{\iff}{\DOTSB\;\Longleftrightarrow\;} +\renewcommand{\doteq}{% + \DOTSB\mathrel{\mathop{\kern0pt =}\limits^{\textstyle.}}} +\newif\if@display +\everydisplay\@xp{\the\everydisplay \@displaytrue} +\renewcommand{\int}{\DOTSI\intop\ilimits@} +\renewcommand{\oint}{\DOTSI\ointop\ilimits@} +\def\intkern@{\mkern-6mu\mathchoice{\mkern-3mu}{}{}{}} +\def\intdots@{\mathchoice{\@cdots}% + {{\cdotp}\mkern1.5mu{\cdotp}\mkern1.5mu{\cdotp}}% + {{\cdotp}\mkern1mu{\cdotp}\mkern1mu{\cdotp}}% + {{\cdotp}\mkern1mu{\cdotp}\mkern1mu{\cdotp}}} +\newcommand{\iint}{\DOTSI\protect\MultiIntegral{2}} +\newcommand{\iiint}{\DOTSI\protect\MultiIntegral{3}} +\newcommand{\iiiint}{\DOTSI\protect\MultiIntegral{4}} +\newcommand{\idotsint}{\DOTSI\protect\MultiIntegral{0}} +\newcommand{\MultiIntegral}[1]{% + \edef\ints@c{\noexpand\intop + \ifnum#1=\z@\noexpand\intdots@\else\noexpand\intkern@\fi + \ifnum#1>\tw@\noexpand\intop\noexpand\intkern@\fi + \ifnum#1>\thr@@\noexpand\intop\noexpand\intkern@\fi + \noexpand\intop + \noexpand\ilimits@ + }% + \futurelet\@let@token\ints@a +} +\def\ints@a{% + \ifx\limits\@let@token \ints@b + \else \ifx\displaylimits\@let@token \ints@b + \else\ifx\ilimits@\displaylimits \ints@b + \fi\fi\fi + \ints@c +} +\def\ints@b{% + \mkern-7mu\mathchoice{\mkern-2mu}{}{}{}% + \mathop\bgroup + \mkern7mu\mathchoice{\mkern2mu}{}{}{}% + \let\ilimits@\egroup +}% +\newbox\Mathstrutbox@ +\setbox\Mathstrutbox@=\hbox{} +\def\Mathstrut@{\copy\Mathstrutbox@} +\def\resetMathstrut@{% + \setbox\z@\hbox{% + \mathchardef\@tempa\mathcode`\(\relax + \def\@tempb##1"##2##3{\the\textfont"##3\char"}% + \expandafter\@tempb\meaning\@tempa \relax + }% + \ht\Mathstrutbox@\ht\z@ \dp\Mathstrutbox@\dp\z@ +} +\addto@hook\every@math@size{\resetMathstrut@} +\newbox\strutbox@ +\def\strut@{\copy\strutbox@} +\def\reset@strutbox@{% + \global\setbox\strutbox@\hbox{% + \lower.5\normallineskiplimit + \vbox{\kern-\normallineskiplimit\copy\strutbox}}} +\addto@hook\every@math@size{\reset@strutbox@} +\AtBeginDocument{\reset@strutbox@} +\renewcommand{\big}{\bBigg@\@ne} +\renewcommand{\Big}{\bBigg@{1.5}} +\renewcommand{\bigg}{\bBigg@\tw@} +\renewcommand{\Bigg}{\bBigg@{2.5}} +\def\bBigg@#1#2{% + {\@mathmeasure\z@{\nulldelimiterspace\z@}% + {\left#2\vcenter to#1\big@size{}\right.}% + \box\z@}} +\addto@hook\every@math@size{% + \global\big@size 1.2\ht\Mathstrutbox@ + \global\advance\big@size 1.2\dp\Mathstrutbox@ } +\newdimen\big@size +\def\accentclass@{7} +\def\noaccents@{\def\accentclass@{0}} +\DeclareFontEncoding{OML}{}{\noaccents@} +\DeclareFontEncoding{OMS}{}{\noaccents@} +\newcommand{\dddot}[1]{% + {\mathop{#1}\limits^{\vbox to-1.4\ex@{\kern-\tw@\ex@ + \hbox{\normalfont ...}\vss}}}} +\newcommand{\ddddot}[1]{% + {\mathop{#1}\limits^{\vbox to-1.4\ex@{\kern-\tw@\ex@ + \hbox{\normalfont....}\vss}}}} +\def\set@mathaccent#1#2#3#4{% + \xdef#2{\@nx\protect\@nx\mathaccentV + {\@xp\@gobble\string#2}\hexnumber@#1#4}% +} +\def\@tempa#1{\@xp\@tempb\meaning#1\@nil#1} +\def\@tempb#1>#2#3 #4\@nil#5{% + \@xp\ifx\csname#3\endcsname\mathaccent + \@tempc#4?"7777\@nil#5% + \else + \PackageWarningNoLine{amsmath}{% + Unable to redefine math accent \string#5}% + \fi +} +\def\@tempc#1"#2#3#4#5#6\@nil#7{% + \chardef\@tempd="#3\relax\set@mathaccent\@tempd{#7}{#2}{#4#5}} +\@tempa{\hat} +\@tempa{\check} +\@tempa{\tilde} +\@tempa{\acute} +\@tempa{\grave} +\@tempa{\dot} +\@tempa{\ddot} +\@tempa{\breve} +\@tempa{\bar} +\@tempa{\vec} +\@ifundefined{mathring}{% + \DeclareMathAccent{\mathring}{\mathalpha}{operators}{"17} +}{% + \@tempa{\mathring} +} +%%\@tempa\widetilde +%%\@tempa\widehat +\newcommand{\acc@check}{} +\newcommand{\acc@error}{} +\def\acc@check{\@ifnextchar\@empty\relax\acc@error} +\def\acc@error{% + \@amsmath@err{% + Improper argument for math accent:\MessageBreak + Extra braces must be added to prevent wrong output% + }\@ehc +} +\newcount\macc@depth +\long\def\@gobblethree#1#2#3{} +\def\mathaccentV#1#2#3#4#5{% + \ifmmode + \gdef\macc@tmp{\macc@depth\@ne}% + \setbox\z@\hbox{% + \let\mathaccentV\macc@test + \let\use@mathgroup\@gobbletwo \let\select@group\@gobblethree + \frozen@everymath{}$#5$% + }% + \macc@tmp + \ifnum\macc@depth=\@ne + \global\let\macc@nucleus\@empty + \mathaccent"\accentclass@ + \else + \@xp\macc@nested + \fi + #2#3#4{#5}% + \macc@nucleus + \else + \@xp\nonmatherr@\csname#1\endcsname + \fi +} +\def\macc@test#1#2#3#4{\xdef\macc@tmp{\macc@tmp\advance\macc@depth\@ne}} +\def\macc@group{-1} +\def\macc@nested#1#2#3#4{% + \begingroup + \let\math@bgroup\@empty \let\math@egroup\macc@set@skewchar + \mathsurround\z@ \frozen@everymath{\mathgroup\macc@group\relax}% + \macc@set@skewchar\relax + \let\mathaccentV\macc@nested@a + \macc@nested@a\relax#1#2#3{#4}% + \endgroup +} +\let\macc@palette\mathpalette +\def\macc@nested@a#1#2#3#4#5{% + \ifnum\macc@group=\mathgroup + \else \macc@set@skewchar\relax \edef\macc@group{\the\mathgroup}% + \fi + \mathchardef\macc@code "\accentclass@ #2#3#4\relax + \macc@palette\macc@a{#5}% +} +\def\macc@set@skewchar#1{% + \begingroup + \ifnum\mathgroup=\m@ne \let\@tempa\@ne + \else + \ifnum\skewchar\textfont\mathgroup=\m@ne \let\@tempa\@ne + \else \let\@tempa\mathgroup + \fi + \fi + \count@=\skewchar\textfont\@tempa + \advance\count@"7100 + \edef\@tempa{\endgroup + \mathchardef\noexpand\macc@skewchar=\number\count@\relax}% + \@tempa + #1% +} +\def\macc@a#1#2{% + \begingroup + \let\macc@style#1\relax + \def\macc@palette##1{##1\macc@style}% + \advance\macc@depth\m@ne + \ifnum\macc@depth=\z@ + \gdef\macc@nucleus{#2}% + \setbox\z@\hbox{$#1#2\@empty{}\macc@skewchar$}% + \setbox\tw@\hbox{$#1#2\@empty\macc@skewchar$}% + \dimen@\tw@\wd\tw@ \advance\dimen@-\tw@\wd\z@ + \xdef\macc@kerna{\the\dimen@\relax}% + \setbox4\hbox{$#1#2\acc@check\@empty$}% + \global\setbox\@ne\hbox to\wd4{}% + \ht\@ne\ht4 \dp\@ne\dp4 + \xdef\macc@kernb{\the\wd4\relax}% + \mathaccent\macc@code{\box\@ne\kern\macc@kerna}% + \else + \mathaccent\macc@code{\let\macc@adjust\@empty #1#2\@empty}% + \macc@adjust + \fi + \endgroup +} +\def\macc@adjust{% + \dimen@\macc@kerna\advance\dimen@\macc@kernb + \kern-\dimen@ +} +\def\Hat{\hat} +\def\Check{\check} +\def\Tilde{\tilde} +\def\Acute{\acute} +\def\Grave{\grave} +\def\Dot{\dot} +\def\Ddot{\ddot} +\def\Breve{\breve} +\def\Bar{\bar} +\def\Vec{\vec} +\def\nonmatherr@#1{\@amsmath@err{\protect + #1 allowed only in math mode}\@ehd} +\renewcommand{\bmod}{\nonscript\mskip-\medmuskip\mkern5mu\mathbin + {\operator@font mod}\penalty900 + \mkern5mu\nonscript\mskip-\medmuskip} +\newcommand{\pod}[1]{\allowbreak + \if@display\mkern18mu\else\mkern8mu\fi(#1)} +\renewcommand{\pmod}[1]{\pod{{\operator@font mod}\mkern6mu#1}} +\newcommand{\mod}[1]{\allowbreak\if@display\mkern18mu + \else\mkern12mu\fi{\operator@font mod}\,\,#1} +\newcommand{\cfrac}[3][c]{{\displaystyle\frac{% + \strut\ifx r#1\hfill\fi#2\ifx l#1\hfill\fi}{#3}}% + \kern-\nulldelimiterspace} +\newcommand{\overset}[2]{\binrel@{#2}% + \binrel@@{\mathop{\kern\z@#2}\limits^{#1}}} +\newcommand{\underset}[2]{\binrel@{#2}% + \binrel@@{\mathop{\kern\z@#2}\limits_{#1}}} +\newcommand{\sideset}[3]{% + \@mathmeasure\z@\displaystyle{#3}% + \global\setbox\@ne\vbox to\ht\z@{}\dp\@ne\dp\z@ + \setbox\tw@\box\@ne + \@mathmeasure4\displaystyle{\copy\tw@#1}% + \@mathmeasure6\displaystyle{#3\nolimits#2}% + \dimen@-\wd6 \advance\dimen@\wd4 \advance\dimen@\wd\z@ + \hbox to\dimen@{}\mathop{\kern-\dimen@\box4\box6}% +} +\renewcommand{\smash}[1][tb]{% + \def\mb@t{\ht}\def\mb@b{\dp}\def\mb@tb{\ht\z@\z@\dp}% + \edef\finsm@sh{\csname mb@#1\endcsname\z@\z@ \box\z@}% + \ifmmode \@xp\mathpalette\@xp\mathsm@sh + \else \@xp\makesm@sh + \fi +} +\mathchardef\std@minus\mathcode`\-\relax +\mathchardef\std@equal\mathcode`\=\relax +\AtBeginDocument{% + \mathchardef\std@minus\mathcode`\-\relax + \mathchardef\std@equal\mathcode`\=\relax +} +\def\relbar{\mathrel{\mathpalette\mathsm@sh\std@minus}} +\def\Relbar{\mathrel\std@equal} +\def\arrowfill@#1#2#3#4{% + $\m@th\thickmuskip0mu\medmuskip\thickmuskip\thinmuskip\thickmuskip + \relax#4#1\mkern-7mu% + \cleaders\hbox{$#4\mkern-2mu#2\mkern-2mu$}\hfill + \mkern-7mu#3$% +} +\def\leftarrowfill@{\arrowfill@\leftarrow\relbar\relbar} +\def\rightarrowfill@{\arrowfill@\relbar\relbar\rightarrow} +\def\leftrightarrowfill@{\arrowfill@\leftarrow\relbar\rightarrow} +\def\Leftarrowfill@{\arrowfill@\Leftarrow\Relbar\Relbar} +\def\Rightarrowfill@{\arrowfill@\Relbar\Relbar\Rightarrow} +\def\Leftrightarrowfill@{\arrowfill@\Leftarrow\Relbar\Rightarrow} +\def\overarrow@#1#2#3{\vbox{\ialign{##\crcr#1#2\crcr + \noalign{\nointerlineskip}$\m@th\hfil#2#3\hfil$\crcr}}} +\renewcommand{\overrightarrow}{% + \mathpalette{\overarrow@\rightarrowfill@}} +\renewcommand{\overleftarrow}{% + \mathpalette{\overarrow@\leftarrowfill@}} +\newcommand{\overleftrightarrow}{% + \mathpalette{\overarrow@\leftrightarrowfill@}} +\def\underarrow@#1#2#3{% + \vtop{\ialign{##\crcr$\m@th\hfil#2#3\hfil$\crcr + \noalign{\nointerlineskip\kern1.3\ex@}#1#2\crcr}}} +\newcommand{\underrightarrow}{% + \mathpalette{\underarrow@\rightarrowfill@}} +\newcommand{\underleftarrow}{% + \mathpalette{\underarrow@\leftarrowfill@}} +\newcommand{\underleftrightarrow}{% + \mathpalette{\underarrow@\leftrightarrowfill@}} +\def\ext@arrow#1#2#3#4#5#6#7{% + \mathrel{\mathop{% + \setbox\z@\hbox{#5\displaystyle}% + \setbox\tw@\vbox{\m@th + \hbox{$\scriptstyle\mkern#3mu{#6}\mkern#4mu$}% + \hbox{$\scriptstyle\mkern#3mu{#7}\mkern#4mu$}% + \copy\z@ + }% + \hbox to\wd\tw@{\unhbox\z@}}% + \limits + \@ifnotempty{#7}{^{\if0#1\else\mkern#1mu\fi + #7\if0#2\else\mkern#2mu\fi}}% + \@ifnotempty{#6}{_{\if0#1\else\mkern#1mu\fi + #6\if0#2\else\mkern#2mu\fi}}}% +} +\newcommand{\xrightarrow}[2][]{\ext@arrow 0359\rightarrowfill@{#1}{#2}} +\newcommand{\xleftarrow}[2][]{\ext@arrow 3095\leftarrowfill@{#1}{#2}} +\newenvironment{subarray}[1]{% + \vcenter\bgroup + \Let@ \restore@math@cr \default@tag + \baselineskip\fontdimen10 \scriptfont\tw@ + \advance\baselineskip\fontdimen12 \scriptfont\tw@ + \lineskip\thr@@\fontdimen8 \scriptfont\thr@@ + \lineskiplimit\lineskip + \ialign\bgroup\ifx c#1\hfil\fi + $\m@th\scriptstyle##$\hfil\crcr +}{% + \crcr\egroup\egroup +} +\newcommand{\substack}[1]{\subarray{c}#1\endsubarray} +\newenvironment{smallmatrix}{\null\,\vcenter\bgroup + \Let@\restore@math@cr\default@tag + \baselineskip6\ex@ \lineskip1.5\ex@ \lineskiplimit\lineskip + \ialign\bgroup\hfil$\m@th\scriptstyle##$\hfil&&\thickspace\hfil + $\m@th\scriptstyle##$\hfil\crcr +}{% + \crcr\egroup\egroup\,% +} +\renewenvironment{matrix}{% + \matrix@check\matrix\env@matrix +}{% + \endarray \hskip -\arraycolsep +} +\def\env@matrix{\hskip -\arraycolsep + \let\@ifnextchar\new@ifnextchar + \array{*\c@MaxMatrixCols c}} +\newcount\c@MaxMatrixCols \c@MaxMatrixCols=10 +\def\matrix@check#1{% + \@xp\ifx\csname\@currenvir\endcsname#1% + \else\matrix@error#1% + \@xp\@gobble + \fi +} +\def\matrix@error#1{% + \@amsmath@err{% +Old form `\string#1' should be \string\begin{\@xp\@gobble\string#1}% + }{% +`\string#1{...}' is old Plain-TeX syntax whose use is +ill-advised in LaTeX.% + }% +} +\renewenvironment{pmatrix}{% + \left(% + \matrix@check\pmatrix\env@matrix +}{ + \endmatrix\right)% +} +\newenvironment{bmatrix}{\left[\env@matrix}{\endmatrix\right]} +\newenvironment{Bmatrix}{% + \left\lbrace\env@matrix +}{% + \endmatrix\right\rbrace +} +\newenvironment{vmatrix}{\left\lvert\env@matrix}{\endmatrix\right\rvert} +\newenvironment{Vmatrix}{\left\lVert\env@matrix}{\endmatrix\right\rVert} +\let\hdots\@ldots +\newcommand{\hdotsfor}[1]{% + \ifx[#1\@xp\shdots@for\else\hdots@for\@ne{#1}\fi} +\newmuskip\dotsspace@ +\def\shdots@for#1]{\hdots@for{#1}} +\def\hdots@for#1#2{\multicolumn{#2}c% + {\m@th\dotsspace@1.5mu\mkern-#1\dotsspace@ + \xleaders\hbox{$\m@th\mkern#1\dotsspace@.\mkern#1\dotsspace@$}% + \hfill + \mkern-#1\dotsspace@}% + } +\renewenvironment{cases}{% + \matrix@check\cases\env@cases +}{% + \endarray\right.% +} +\def\env@cases{% + \let\@ifnextchar\new@ifnextchar + \left\lbrace + \def\arraystretch{1.2}% + \array{@{}l@{\quad}l@{}}% +} +\newcounter{parentequation}% Counter for ``parent equation''. +\@ifundefined{ignorespacesafterend}{% + \def\ignorespacesafterend{\global\@ignoretrue}% +}{} +\newenvironment{subequations}{% + \refstepcounter{equation}% + \protected@edef\theparentequation{\theequation}% + \setcounter{parentequation}{\value{equation}}% + \setcounter{equation}{0}% + \def\theequation{\theparentequation\alph{equation}}% + \ignorespaces +}{% + \setcounter{equation}{\value{parentequation}}% + \ignorespacesafterend +} +\newcommand{\numberwithin}[3][\arabic]{% + \@ifundefined{c@#2}{\@nocounterr{#2}}{% + \@ifundefined{c@#3}{\@nocnterr{#3}}{% + \@addtoreset{#2}{#3}% + \@xp\xdef\csname the#2\endcsname{% + \@xp\@nx\csname the#3\endcsname .\@nx#1{#2}}}}% +} +\newcommand{\eqref}[1]{\textup{\tagform@{\ref{#1}}}} +\newcount\dspbrk@lvl +\dspbrk@lvl=-1 +\interdisplaylinepenalty\@M +\newcommand{\allowdisplaybreaks}[1][4]{% + \interdisplaylinepenalty\getdsp@pen{#1}\relax +} +\def\getdsp@pen#1{% + \ifcase #1\@M \or 9999 \or 6999 \or 2999 \or \z@\fi +} +\newcommand{\displaybreak}{\new@ifnextchar[\dspbrk@{\dspbrk@[4]}} +\chardef\dspbrk@context=\sixt@@n +\def\dspbrk@[#1]{% + \ifmeasuring@ + \else + \ifcase\dspbrk@context % case 0 --- OK + \global\dspbrk@lvl #1\relax + \or % case 1 --- inside a box + \nogood@displaybreak + \else % other cases --- outside of a display + \@amsmath@err{\Invalid@@\displaybreak}\@eha + \fi + \fi +} +\def\nogood@displaybreak{% + \@amsmath@err{\protect +\displaybreak\space cannot be applied here}% +{One of the enclosing environments creates an + unbreakable box\MessageBreak +(e.g., split, aligned, gathered, ...).}% +} +\def\math@cr{\relax\iffalse{\fi\ifnum0=`}\fi + \@ifstar{\global\@eqpen\@M\math@cr@}% + {\global\@eqpen + \ifnum\dspbrk@lvl <\z@ \interdisplaylinepenalty + \else -\@getpen\dspbrk@lvl \fi + \math@cr@}} +\def\math@cr@{\new@ifnextchar[\math@cr@@{\math@cr@@[\z@]}} +\def\math@cr@@[#1]{\ifnum0=`{\fi \iffalse}\fi\math@cr@@@ + \noalign{\vskip#1\relax}} +\def\Let@{\let\\\math@cr} +\def\restore@math@cr{\def\math@cr@@@{\cr}} +\restore@math@cr +\newcommand{\intertext}{\@amsmath@err{\Invalid@@\intertext}\@eha} +\def\intertext@{% + \def\intertext##1{% + \ifvmode\else\\\@empty\fi + \noalign{% + \penalty\postdisplaypenalty\vskip\belowdisplayskip + \vbox{\normalbaselines + \ifdim\linewidth=\columnwidth + \else \parshape\@ne \@totalleftmargin \linewidth + \fi + \noindent##1\par}% + \penalty\predisplaypenalty\vskip\abovedisplayskip% + }% +}} +\newhelp\tag@help + {tag cannot be used at this point.\space + If you don't understand why^^Jyou should consult + the documentation.^^JBut don't worry: just continue, and I'll + forget what happened.} +\def\gobble@tag{\@ifstar\@gobble\@gobble} +\def\invalid@tag#1{\@amsmath@err{#1}{\the\tag@help}\gobble@tag} +\def\dft@tag{\invalid@tag{\string\tag\space not allowed here}} +\def\default@tag{\let\tag\dft@tag} +\default@tag +\def\maketag@@{\@ifstar\maketag@@@\tagform@} +\def\maketag@@@#1{\hbox{\m@th\normalfont#1}} +\def\tagform@#1{\maketag@@@{(\ignorespaces#1\unskip\@@italiccorr)}} +\iftagsleft@ + \def\@eqnnum{\hbox to1sp{}\rlap{\normalfont\normalcolor + \hskip -\displaywidth\tagform@\theequation}} +\else + \def\@eqnnum{{\normalfont\normalcolor \tagform@\theequation}} +\fi +\newcommand{\thetag}{\leavevmode\tagform@} +\let\df@tag\@empty +\def\make@df@tag{\@ifstar\make@df@tag@@\make@df@tag@@@} +\def\make@df@tag@@#1{% + \gdef\df@tag{\maketag@@@{#1}\def\@currentlabel{#1}}} +\def\make@df@tag@@@#1{\gdef\df@tag{\tagform@{#1}% + \toks@\@xp{\p@equation{#1}}\edef\@currentlabel{\the\toks@}}} +\let\ltx@label\label +\def\label@in@display{% + \ifx\df@label\@empty\else + \@amsmath@err{Multiple \string\label's: + label '\df@label' will be lost}\@eha + \fi + \gdef\df@label +} +\toks@\@xp{\@arrayparboxrestore \let\label\ltx@label}% +\edef\@arrayboxrestore{\the\toks@} +\let\df@label\@empty +\def\make@display@tag{% + \if@eqnsw \incr@eqnum \print@eqnum + \else \iftag@ \df@tag \global\let\df@tag\@empty \fi + \fi + \ifmeasuring@ + \else + \ifx\df@label\@empty + \else + \@xp\ltx@label\@xp{\df@label}% + \global\let\df@label\@empty + \fi + \fi +} +\def\tag@in@align{% + \relax + \iftag@ + \DN@{\invalid@tag{Multiple \string\tag}}% + \else + \global\tag@true + \nonumber + \let\next@\make@df@tag + \fi + \next@ +} +\newcommand{\raisetag}[1]{\skip@#1\relax + \xdef\raise@tag{\vskip\iftagsleft@\else-\fi\the\skip@\relax}% +} +\let\raise@tag\@empty +\newcommand{\notag}{\nonumber} +\renewcommand{\nonumber}{% + \if@eqnsw + \ifx\incr@eqnum\@empty \addtocounter{equation}\m@ne \fi + \fi + \let\print@eqnum\@empty \let\incr@eqnum\@empty + \global\@eqnswfalse +} +\def\print@eqnum{\tagform@\theequation} +\def\incr@eqnum{\refstepcounter{equation}\let\incr@eqnum\@empty} +\newif\ifinalign@ +\newif\ifingather@ +\@xp\def\@xp\@arrayparboxrestore\@xp{\@arrayparboxrestore + \ingather@false\inalign@false \default@tag + \let\spread@equation\@spread@equation + \let\reset@equation\@empty + \def\print@eqnum{\tagform@\theequation}% + \def\incr@eqnum{\refstepcounter{equation}\let\incr@eqnum\@empty}% +} +\newif\iftag@ +\newif\ifst@rred +\newif\ifmeasuring@ +\newif\ifshifttag@ +\newcount\row@ +\newcount\column@ +\def\column@plus{% + \global\advance\column@\@ne +} +\newcount\maxfields@ +\def\add@amp#1{\if m#1&\@xp\add@amp\fi} +\def\add@amps#1{% + \begingroup + \count@#1\advance\count@-\column@ + \edef\@tempa{\endgroup + \@xp\add@amp\romannumeral\number\count@ 000q}% + \@tempa +} +\newhelp\andhelp@ +{An extra & here is so disastrous that you should probably exit^^J +and fix things up.} +\newdimen\eqnshift@ +\newdimen\alignsep@ +\newdimen\tagshift@ +\newcommand{\mintagsep}{.5\fontdimen6\textfont\tw@} +\newcommand{\minalignsep}{10pt} +\newdimen\tagwidth@ +\newdimen\totwidth@ +\newdimen\lineht@ +\def\tag@width#1{% + \ifcase\@xp#1\tag@lengths\fi +} + +\def\savetaglength@{% + \begingroup + \let\or\relax + \xdef\tag@lengths{\tag@lengths\or \the\wdz@}% + \endgroup +} + +\def\shift@tag#1{% + \ifcase\@xp#1\tag@shifts\fi\relax +} + +\let\tag@shifts\@empty +\def\saveshift@#1{% + \begingroup + \let\or\relax + \xdef\tag@shifts{\or#1\tag@shifts}% + \endgroup +} +\def\spread@equation{\reset@strutbox@ + \openup\jot \let\spread@equation\@empty} +\let\@spread@equation\spread@equation +\def\displ@y{\@display@init{}} +\def\@display@init#1{% + \global\dt@ptrue \spread@equation + \everycr{% + \noalign{% + #1% + \ifdt@p + \global\dt@pfalse + \vskip-\lineskiplimit + \vskip\normallineskiplimit + \else + \penalty\@eqpen \global\dspbrk@lvl\m@ne + \fi + }% + }% +} +\def\displ@y@{\@display@init{% + \global\column@\z@ \global\dspbrk@lvl\m@ne + \global\tag@false \global\let\raise@tag\@empty +}} +\def\black@#1{% + \noalign{% + \ifdim#1>\displaywidth + \dimen@\prevdepth + \nointerlineskip + \vskip-\ht\strutbox@ + \vskip-\dp\strutbox@ + \vbox{\noindent\hbox to#1{\strut@\hfill}}% + \prevdepth\dimen@ + \fi + }% +} +\def\savecounters@{% + \begingroup + \def\@elt##1{% + \global\csname c@##1\endcsname\the\csname c@##1\endcsname}% + \xdef\@gtempa{% + \cl@@ckpt + \let\@nx\restorecounters@\@nx\@empty + }% + \endgroup + \let\restorecounters@\@gtempa +} +\let\restorecounters@\@empty +\def\savealignstate@{% + \begingroup + \let\or\relax + \xdef\@gtempa{% + \global\totwidth@\the\totwidth@ + \global\row@\the\row@ + \gdef\@nx\tag@lengths{\tag@lengths}% + \let\@nx\restorealignstate@\@nx\@empty + }% + \endgroup + \let\restorealignstate@\@gtempa +} + +\let\restorealignstate@\@empty +\def\savecolumn@{% + \edef\restorecolumn@{% + \global\column@\number\column@ + \let\@nx\restorecolumn@\@nx\@empty + }% +} +\let\restorecolumn@\@empty +\newtoks\@envbody +\def\addto@envbody#1{\global\@envbody\@xp{\the\@envbody#1}} +\def\collect@body#1{% + \@envbody{\@xp#1\@xp{\the\@envbody}}% + \edef\process@envbody{\the\@envbody\@nx\end{\@currenvir}}% + \@envbody\@emptytoks \def\begin@stack{b}% + \begingroup + \@xp\let\csname\@currenvir\endcsname\collect@@body + \edef\process@envbody{\@xp\@nx\csname\@currenvir\endcsname}% + \process@envbody +} +\def\push@begins#1\begin#2{% + \ifx\end#2\else b\@xp\push@begins\fi +} +\def\collect@@body#1\end#2{% + \edef\begin@stack{\push@begins#1\begin\end \@xp\@gobble\begin@stack}% + \ifx\@empty\begin@stack + \endgroup + \@checkend{#2}% + \addto@envbody{#1}% + \else + \addto@envbody{#1\end{#2}}% + \fi + \process@envbody % A little tricky! Note the grouping +} +\def\math@cr@@@aligned{% + \ifodd\column@ \let\next@\@empty + \else \def\next@{&\kern-\alignsep@}% + \fi + \next@ \cr +} +\newcommand{\start@aligned}[2]{% + \RIfM@\else + \nonmatherr@{\begin{\@currenvir}}% + \fi + \savecolumn@ % Assumption: called inside a group + \null\,% + \if #1t\vtop \else \if#1b \vbox \else \vcenter \fi \fi \bgroup + \maxfields@#2\relax + \ifnum\maxfields@>\m@ne + \multiply\maxfields@\tw@ + \let\math@cr@@@\math@cr@@@alignedat + \alignsep@\z@skip + \else + \let\math@cr@@@\math@cr@@@aligned + \alignsep@\minalignsep + \fi + \Let@ \chardef\dspbrk@context\@ne + \default@tag + \spread@equation % no-op if already called + \global\column@\z@ + \ialign\bgroup + &\column@plus + \hfil + \strut@ + $\m@th\displaystyle{##}$% + \tabskip\z@skip + &\column@plus + $\m@th\displaystyle{{}##}$% + \hfil + \tabskip\alignsep@ + \crcr +} +\def\math@cr@@@alignedat{% + \ifnum\column@>\maxfields@ + \begingroup + \measuring@false + \@amsmath@err{Extra & on this line}% + {\the\andhelp@}% "An extra & here is disastrous" + \endgroup + \fi + \global\column@\z@ + \cr +} +\def\alignsafe@testopt#1#2{% + \relax\iffalse{\fi\ifnum`}=0\fi + \@ifnextchar[% + {\let\@let@token\relax \ifnum`{=\z@\fi\iffalse}\fi#1}% + {\let\@let@token\relax \ifnum`{=\z@\fi\iffalse}\fi#1[#2]}% +} +\newenvironment{aligned}{% + \let\@testopt\alignsafe@testopt + \aligned@a +}{% + \crcr\egroup + \restorecolumn@ + \egroup +} +\newcommand{\aligned@a}[1][c]{\start@aligned{#1}\m@ne} +\newenvironment{alignedat}{% + \let\@testopt\alignsafe@testopt + \alignedat@a +}{% + \endaligned +} +\newcommand{\alignedat@a}[1][c]{\start@aligned{#1}} +\newenvironment{gathered}[1][c]{% + \RIfM@\else + \nonmatherr@{\begin{gathered}}% + \fi + \null\,% + \if #1t\vtop \else \if#1b\vbox \else \vcenter \fi\fi \bgroup + \Let@ \chardef\dspbrk@context\@ne \restore@math@cr + \spread@equation + \ialign\bgroup + \hfil\strut@$\m@th\displaystyle##$\hfil + \crcr +}{% + \endaligned +} +\def\start@gather#1{% + \RIfM@ + \nomath@env + \DN@{\@namedef{end\@currenvir}{}\@gobble}% + \else + $$% + #1% + \ifst@rred \else \global\@eqnswtrue \fi + \let\next@\gather@ + \fi + \collect@body\next@ +} +\newenvironment{gather}{% + \start@gather\st@rredfalse +}{% + \math@cr \black@\totwidth@ \egroup + $$\ignorespacesafterend +} + +\newenvironment{gather*}{% + \start@gather\st@rredtrue +}{% + \endgather +} +\def\gather@#1{% + \ingather@true \let\split\insplit@ + \let\tag\tag@in@align \let\label\label@in@display + \chardef\dspbrk@context\z@ + \intertext@ \displ@y@ \Let@ + \let\math@cr@@@\math@cr@@@gather + \gmeasure@{#1}% + \global\shifttag@false + \tabskip\z@skip + \global\row@\@ne + \halign to\displaywidth\bgroup + \strut@ + \setboxz@h{$\m@th\displaystyle{##}$}% + \calc@shift@gather + \set@gather@field + \tabskip\@centering + &\setboxz@h{\strut@{##}}% + \place@tag@gather + \tabskip \iftagsleft@ \gdisplaywidth@ \else \z@skip \span\fi + \crcr + #1% +} +\def\gmeasure@#1{% + \begingroup + \measuring@true + \totwidth@\z@ + \global\let\tag@lengths\@empty + \savecounters@ + \setbox\@ne\vbox{% + \everycr{\noalign{\global\tag@false + \global\let\raise@tag\@empty \global\column@\z@}}% + \let\label\@gobble + \halign{% + \setboxz@h{$\m@th\displaystyle{##}$}% + \ifdim\wdz@>\totwidth@ + \global\totwidth@\wdz@ + \fi + &\setboxz@h{\strut@{##}}% + \savetaglength@ + \crcr + #1% + \math@cr@@@ + }% + }% + \restorecounters@ + \if@fleqn + \global\advance\totwidth@\@mathmargin + \fi + \iftagsleft@ + \ifdim\totwidth@>\displaywidth + \global\let\gdisplaywidth@\totwidth@ + \else + \global\let\gdisplaywidth@\displaywidth + \fi + \fi + \endgroup +} +\def\math@cr@@@gather{% + \ifst@rred\nonumber\fi + &\relax + \make@display@tag + \ifst@rred\else\global\@eqnswtrue\fi + \global\advance\row@\@ne + \cr +} +\def\calc@shift@gather{% + \dimen@\mintagsep\relax + \tagwidth@\tag@width\row@\relax + \if@fleqn + \global\eqnshift@\@mathmargin + \ifdim\tagwidth@>\z@ + \advance\dimen@\tagwidth@ + \iftagsleft@ + \ifdim\dimen@>\@mathmargin + \global\shifttag@true + \fi + \else + \advance\dimen@\@mathmargin + \advance\dimen@\wdz@ + \ifdim\dimen@>\displaywidth + \global\shifttag@true + \fi + \fi + \fi + \else + \global\eqnshift@\displaywidth + \global\advance\eqnshift@-\wdz@ + \ifdim\tagwidth@>\z@ + \multiply\dimen@\tw@ + \advance\dimen@\wdz@ + \advance\dimen@\tagwidth@ + \ifdim\dimen@>\displaywidth + \global\shifttag@true + \else + \ifdim\eqnshift@<4\tagwidth@ + \global\advance\eqnshift@-\tagwidth@ + \fi + \fi + \fi + \global\divide\eqnshift@\tw@ + \iftagsleft@ + \global\eqnshift@-\eqnshift@ + \global\advance\eqnshift@\displaywidth + \global\advance\eqnshift@-\wdz@ + \fi + \ifdim\eqnshift@<\z@ + \global\eqnshift@\z@ + \fi + \fi +} +\def\place@tag@gather{% + \iftagsleft@ + \kern-\gdisplaywidth@ + \ifshifttag@ + \rlap{\vbox{% + \normalbaselines + \boxz@ + \vbox to\lineht@{}% + \raise@tag + }}% + \global\shifttag@false + \else + \rlap{\boxz@}% + \fi + \else + \ifdim\totwidth@>\displaywidth + \dimen@\totwidth@ + \advance\dimen@-\displaywidth + \kern-\dimen@ + \fi + \ifshifttag@ + \llap{\vtop{% + \raise@tag + \normalbaselines + \setbox\@ne\null + \dp\@ne\lineht@ + \box\@ne + \boxz@ + }}% + \global\shifttag@false + \else + \llap{\boxz@}% + \fi + \fi +} +\def\set@gather@field{% + \iftagsleft@ + \global\lineht@\ht\z@ + \else + \global\lineht@\dp\z@ + \fi + \kern\eqnshift@ + \boxz@ + \hfil +} +\newif\ifxxat@ + +\newif\ifcheckat@ + +\let\xatlevel@\@empty +\def\start@align#1#2#3{% + \let\xatlevel@#1% always \z@, \@ne, or \tw@ + \maxfields@#3\relax + \ifnum\maxfields@>\m@ne + \checkat@true + \ifnum\xatlevel@=\tw@ + \xxat@true + \fi + \multiply\maxfields@\tw@ + \else + \checkat@false + \fi + \ifingather@ + \iffalse{\fi\ifnum0=`}\fi + \DN@{\vcenter\bgroup\savealignstate@\align@#2}% + \else + \ifmmode + \if@display + \DN@{\align@recover}% + \else + \nomath@env + \DN@{\@namedef{end\@currenvir}{}\@gobble}% + \fi + \else + $$% + \let\split\insplit@ + \DN@{\align@#2}% + \fi + \fi + \collect@body\next@ +} +\def\align@recover#1#2#3{% + \endgroup + \@amsmath@err{% +Erroneous nesting of equation structures;\MessageBreak +trying to recover with `aligned'% + }\@ehc + \begin{aligned}\relax#1\end{aligned}% +} +\newenvironment{alignat}{% + \start@align\z@\st@rredfalse +}{% + \endalign +} +\newenvironment{alignat*}{% + \start@align\z@\st@rredtrue +}{% + \endalign +} +\newenvironment{xalignat}{% + \start@align\@ne\st@rredfalse +}{% + \endalign +} +\newenvironment{xalignat*}{% + \start@align\@ne\st@rredtrue +}{% + \endalign +} +\newenvironment{xxalignat}{% + \start@align\tw@\st@rredtrue +}{% + \endalign +} +\newenvironment{align}{% + \start@align\@ne\st@rredfalse\m@ne +}{% + \math@cr \black@\totwidth@ + \egroup + \ifingather@ + \restorealignstate@ + \egroup + \nonumber + \ifnum0=`{\fi\iffalse}\fi + \else + $$% + \fi + \ignorespacesafterend +} +\newenvironment{align*}{% + \start@align\@ne\st@rredtrue\m@ne +}{% + \endalign +} +\newenvironment{flalign}{% + \start@align\tw@\st@rredfalse\m@ne +}{% + \endalign +} +\newenvironment{flalign*}{% + \start@align\tw@\st@rredtrue\m@ne +}{% + \endalign +} +\def\align@#1#2{% + \inalign@true \intertext@ \Let@ \chardef\dspbrk@context\z@ + \ifingather@\else\displ@y@\fi + \let\math@cr@@@\math@cr@@@align + \ifxxat@\else \let\tag\tag@in@align \fi + \let\label\label@in@display + #1% set st@r + \ifst@rred\else \global\@eqnswtrue \fi + \measure@{#2}% + \global\row@\z@ + \tabskip\eqnshift@ + \halign\bgroup + \span\align@preamble\crcr + #2% +} +\def\math@cr@@@align{% + \ifst@rred\nonumber\fi + \if@eqnsw \global\tag@true \fi + \global\advance\row@\@ne + \add@amps\maxfields@ + \omit + \kern-\alignsep@ + \iftag@ + \setboxz@h{\@lign\strut@{\make@display@tag}}% + \place@tag + \fi + \ifst@rred\else\global\@eqnswtrue\fi + \global\lineht@\z@ + \cr +} +\def\math@cr@@@align@measure{% + &\omit + \global\advance\row@\@ne + \ifst@rred\nonumber\fi + \if@eqnsw \global\tag@true \fi + \ifnum\column@>\maxfields@ + \ifcheckat@ + \begingroup + \measuring@false + \@amsmath@err{Extra & on this line}% + {\the\andhelp@}% "An extra & here is disastrous" + \endgroup + \else + \global\maxfields@\column@ + \fi + \fi + \setboxz@h{\@lign\strut@{% + \if@eqnsw + \stepcounter{equation}% + \tagform@\theequation + \else + \iftag@\df@tag\fi + \fi + }}% + \savetaglength@ + \ifst@rred\else\global\@eqnswtrue\fi + \cr +} +\let\field@lengths\@empty + +\def\savefieldlength@{% + \begingroup + \let\or\relax + \xdef\field@lengths{% + \field@lengths + \ifnum\column@=0 + \or + \else + ,% + \fi + \the\wdz@ + }% + \endgroup +} + +\def\fieldlengths@#1{% + \ifcase\@xp#1\field@lengths\fi +} +\let\maxcolumn@widths\@empty +\def\maxcol@width#1{% + \ifcase\@xp#1\maxcolumn@widths\fi\relax +} +\def\measure@#1{% + \begingroup + \measuring@true + \global\eqnshift@\z@ + \global\alignsep@\z@ + \global\let\tag@lengths\@empty + \global\let\field@lengths\@empty + \savecounters@ + \global\setbox0\vbox{% + \let\math@cr@@@\math@cr@@@align@measure + \everycr{\noalign{\global\tag@false + \global\let\raise@tag\@empty \global\column@\z@}}% + \let\label\@gobble + \global\row@\z@ + \tabskip\z@ + \halign{\span\align@preamble\crcr + #1% + \math@cr@@@ + \global\column@\z@ + \add@amps\maxfields@\cr + }% + }% + \restorecounters@ + \ifodd\maxfields@ + \global\advance\maxfields@\@ne + \fi + \ifnum\xatlevel@=\tw@ + \ifnum\maxfields@<\thr@@ + \let\xatlevel@\z@ + \fi + \fi + \setbox\z@\vbox{% + \unvbox\z@ \unpenalty \global\setbox\@ne\lastbox + }% + \global\totwidth@\wd\@ne + \if@fleqn \global\advance\totwidth@\@mathmargin \fi + \global\let\maxcolumn@widths\@empty + \begingroup + \let\or\relax + \loop + \global\setbox\@ne\hbox{% + \unhbox\@ne \unskip \global\setbox\thr@@\lastbox + }% + \ifhbox\thr@@ + \xdef\maxcolumn@widths{ \or \the\wd\thr@@ \maxcolumn@widths}% + \repeat + \endgroup + \dimen@\displaywidth + \advance\dimen@-\totwidth@ + \ifcase\xatlevel@ + \global\alignsep@\z@ + \let\minalignsep\z@ + \@tempcntb\z@ + \if@fleqn + \@tempcnta\@ne + \global\eqnshift@\@mathmargin + \else + \@tempcnta\tw@ + \global\eqnshift@\dimen@ + \global\divide\eqnshift@\@tempcnta + \fi + \or + \@tempcntb\maxfields@ + \divide\@tempcntb\tw@ + \@tempcnta\@tempcntb + \advance\@tempcntb\m@ne + \if@fleqn + \global\eqnshift@\@mathmargin + \global\alignsep@\dimen@ + \global\divide\alignsep@\@tempcnta + \else + \global\advance\@tempcnta\@ne + \global\eqnshift@\dimen@ + \global\divide\eqnshift@\@tempcnta + \global\alignsep@\eqnshift@ + \fi + \or + \@tempcntb\maxfields@ + \divide\@tempcntb\tw@ + \global\advance\@tempcntb\m@ne + \global\@tempcnta\@tempcntb + \global\eqnshift@\z@ + \global\alignsep@\dimen@ + \if@fleqn + \global\advance\alignsep@\@mathmargin\relax + \fi + \global\divide\alignsep@\@tempcntb + \fi + \ifdim\alignsep@<\minalignsep\relax + \global\alignsep@\minalignsep\relax + \ifdim\eqnshift@>\z@ + \if@fleqn\else + \global\eqnshift@\displaywidth + \global\advance\eqnshift@-\totwidth@ + \global\advance\eqnshift@-\@tempcntb\alignsep@ + \global\divide\eqnshift@\tw@ + \fi + \fi + \fi + \ifdim\eqnshift@<\z@ + \global\eqnshift@\z@ + \fi + \calc@shift@align + \global\tagshift@\totwidth@ + \global\advance\tagshift@\@tempcntb\alignsep@ + \if@fleqn + \ifnum\xatlevel@=\tw@ + \global\advance\tagshift@-\@mathmargin\relax + \fi + \else + \global\advance\tagshift@\eqnshift@ + \fi + \iftagsleft@ \else + \global\advance\tagshift@-\displaywidth + \fi + \dimen@\minalignsep\relax + \global\advance\totwidth@\@tempcntb\dimen@ + \ifdim\totwidth@>\displaywidth + \global\let\displaywidth@\totwidth@ + \else + \global\let\displaywidth@\displaywidth + \fi + \endgroup +} +\iftagsleft@\if@fleqn + \def\calc@shift@align{% + \global\let\tag@shifts\@empty + \begingroup + \@tempdima\@mathmargin\relax + \advance\@tempdima-\mintagsep\relax + \loop + \ifnum\row@>0 + \ifdim\tag@width\row@>\z@ + \x@calc@shift@lf + \else + \saveshift@0% + \fi + \advance\row@\m@ne + \repeat + \endgroup + } + \def\x@calc@shift@lf{% + \ifdim\eqnshift@=\z@ + \global\eqnshift@\@mathmargin\relax + \alignsep@\displaywidth + \advance\alignsep@-\totwidth@ + \global\divide\alignsep@\@tempcntb + \ifdim\alignsep@<\minalignsep\relax + \global\alignsep@\minalignsep\relax + \fi + \fi + \ifdim\tag@width\row@>\@tempdima + \saveshift@1% + \else + \saveshift@0% + \fi + } +\fi\fi +\iftagsleft@\else\if@fleqn + \def\calc@shift@align{% + \global\let\tag@shifts\@empty + \begingroup + \loop + \ifnum\row@>0 + \ifdim\tag@width\row@>\z@ + \x@calc@shift@rf + \else + \saveshift@0% + \fi + \advance\row@\m@ne + \repeat + \endgroup + } + \def\x@calc@shift@rf{% + \column@\z@ + \@tempdimb\z@ + \@tempdimc\z@ + \edef\@tempb{\fieldlengths@\row@}% + \@for\@tempa:=\@tempb\do{% + \advance\column@\@ne + \x@rcalc@width + }% + \begingroup + \advance\column@\m@ne + \divide\column@\tw@ + \ifnum\@tempcntb>\column@ + \advance\@tempcnta-\@tempcntb + \advance\@tempcnta\column@ + \@tempcntb\column@ + \fi + \tagwidth@\tag@width\row@\relax + \@tempdima\eqnshift@ + \advance\@tempdima\@tempdimc\relax + \advance\@tempdima\tagwidth@ + \dimen@\minalignsep\relax + \multiply\dimen@\@tempcntb + \advance\dimen@\mintagsep\relax + \advance\dimen@\@tempdima + \ifdim\dimen@>\displaywidth + \saveshift@1% + \else + \saveshift@0% + \dimen@\alignsep@\relax + \multiply\dimen@\@tempcntb + \advance\dimen@\@tempdima + \advance\dimen@\tagwidth@ + \ifdim\dimen@>\displaywidth + \dimen@\displaywidth + \advance\dimen@-\@tempdima + \ifnum\xatlevel@=\tw@ + \advance\dimen@-\mintagsep\relax + \fi + \divide\dimen@\@tempcnta + \ifdim\dimen@<\minalignsep\relax + \global\alignsep@\minalignsep\relax + \else + \global\alignsep@\dimen@ + \fi + \fi + \fi + \endgroup + } +\fi\fi +\iftagsleft@\else\if@fleqn\else + \def\calc@shift@align{% + \global\let\tag@shifts\@empty + \begingroup + \loop + \ifnum\row@>0 + \ifdim\tag@width\row@>\z@ + \x@calc@shift@rc + \else + \saveshift@0% + \fi + \advance\row@\m@ne + \repeat + \endgroup + } + \def\x@calc@shift@rc{% + \column@\z@ + \@tempdimb\z@ + \@tempdimc\z@ + \edef\@tempb{\fieldlengths@\row@}% + \@for\@tempa:=\@tempb\do{% + \advance\column@\@ne + \x@rcalc@width + }% + \begingroup + \advance\column@\m@ne + \divide\column@\tw@ + \ifnum\@tempcntb>\column@ + \advance\@tempcnta-\@tempcntb + \advance\@tempcnta\column@ + \@tempcntb\column@ + \fi + \tagwidth@\tag@width\row@\relax + \@tempdima\@tempdimc + \advance\@tempdima\tagwidth@ + \dimen@\minalignsep\relax + \multiply\dimen@\@tempcntb + \advance\dimen@\mintagsep\relax + \ifnum\xatlevel@=\tw@ \else + \advance\dimen@\mintagsep\relax + \fi + \advance\dimen@\@tempdima + \ifdim\dimen@>\displaywidth + \saveshift@1% + \else + \saveshift@0% + \dimen@\eqnshift@ + \advance\dimen@\@tempdima + \advance\dimen@\@tempcntb\alignsep@ + \advance\dimen@\tagwidth@ + \ifdim\dimen@>\displaywidth + \dimen@\displaywidth + \advance\dimen@-\@tempdima + \ifnum\xatlevel@=\tw@ + \advance\dimen@-\mintagsep\relax + \fi + \divide\dimen@\@tempcnta + \ifdim\dimen@<\minalignsep\relax + \global\alignsep@\minalignsep\relax + \eqnshift@\displaywidth + \advance\eqnshift@-\@tempdima + \advance\eqnshift@-\@tempcntb\alignsep@ + \global\divide\eqnshift@\tw@ + \else + \ifdim\dimen@<\eqnshift@ + \ifdim\dimen@<\z@ + \global\eqnshift@\z@ + \else + \global\eqnshift@\dimen@ + \fi + \fi + \ifdim\dimen@<\alignsep@ + \global\alignsep@\dimen@ + \fi + \fi + \fi + \fi + \endgroup + } +\fi\fi +\iftagsleft@\else + \def\x@rcalc@width{% + \ifdim\@tempa > \z@ + \advance\@tempdimc\@tempdimb + \ifodd\column@ + \advance\@tempdimc\maxcol@width\column@ + \@tempdimb\z@ + \else + \advance\@tempdimc\@tempa\relax + \@tempdimb\maxcol@width\column@ + \advance\@tempdimb-\@tempa\relax + \fi + \else + \advance\@tempdimb\maxcol@width\column@\relax + \fi + } +\fi +\iftagsleft@\if@fleqn\else + \def\calc@shift@align{% + \global\let\tag@shifts\@empty + \begingroup + \loop + \ifnum\row@>\z@ + \ifdim\tag@width\row@>\z@ + \x@calc@shift@lc + \else + \saveshift@0% + \fi + \advance\row@\m@ne + \repeat + \endgroup + } + \def\x@calc@shift@lc{% + \column@\z@ + \@tempdima\z@ % ``width of equation'' + \@tempdimb\z@ % ``indent of equation'' + \edef\@tempb{\fieldlengths@\row@}% + \@for\@tempa:=\@tempb\do{% + \advance\column@\@ne + \x@lcalc@width + }% + \begingroup + \tagwidth@\tag@width\row@\relax + \@tempdima\totwidth@ + \advance\@tempdima-\@tempdimb + \advance\@tempdima\tagwidth@ + \dimen@\minalignsep\relax + \multiply\dimen@\@tempcntb + \advance\dimen@\mintagsep\relax + \ifnum\xatlevel@=\tw@ \else + \advance\dimen@\mintagsep\relax + \fi + \advance\dimen@\@tempdima + \ifdim\dimen@>\displaywidth + \saveshift@1% + \else + \saveshift@0% + \dimen@\alignsep@ + \multiply\dimen@\count@ + \advance\dimen@\eqnshift@ + \advance\dimen@\@tempdimb + \ifdim\dimen@<2\tagwidth@ + \dimen@\displaywidth + \advance\dimen@-\@tempdima + \ifnum\xatlevel@=\tw@ + \advance\dimen@-\mintagsep\relax + \fi + \ifnum\@tempcnta>\z@ + \divide\dimen@\@tempcnta + \else \dimen@\z@ + \fi + \ifdim\dimen@<\minalignsep\relax + \global\alignsep@\minalignsep\relax + \dimen@\displaywidth + \advance\dimen@-\@tempdima + \advance\dimen@-\@tempcntb\alignsep@ + \global\divide\dimen@\tw@ + \else + \ifdim\dimen@<\alignsep@ + \global\alignsep@\dimen@ + \fi + \fi + \ifnum\xatlevel@=\tw@ + \dimen@\mintagsep\relax + \fi + \advance\dimen@\tagwidth@ + \advance\dimen@-\@tempdimb + \advance\dimen@-\count@\alignsep@ + \ifdim\dimen@>\eqnshift@ + \global\eqnshift@\dimen@ + \fi + \fi + \fi + \endgroup + } + \def\x@lcalc@width{% + \ifdim\@tempdima = \z@ + \ifdim\@tempa > \z@ + \@tempdima\p@ + \ifodd\column@ + \advance\@tempdimb \maxcol@width\column@ + \advance\@tempdimb-\@tempa + \fi + \count@\column@ + \advance\count@\m@ne + \divide\count@\tw@ + \advance\@tempcnta-\count@ + \advance\@tempcntb-\count@ + \else + \advance\@tempdimb \maxcol@width\column@\relax + \fi + \fi + } +\fi\fi +\def\place@tag{% + \iftagsleft@ + \kern-\tagshift@ + \if1\shift@tag\row@\relax + \rlap{\vbox{% + \normalbaselines + \boxz@ + \vbox to\lineht@{}% + \raise@tag + }}% + \else + \rlap{\boxz@}% + \fi + \kern\displaywidth@ + \else + \kern-\tagshift@ + \if1\shift@tag\row@\relax + \llap{\vtop{% + \raise@tag + \normalbaselines + \setbox\@ne\null + \dp\@ne\lineht@ + \box\@ne + \boxz@ + }}% + \else + \llap{\boxz@}% + \fi + \fi +} +\def\align@preamble{% + &\hfil + \strut@ + \setboxz@h{\@lign$\m@th\displaystyle{##}$}% + \ifmeasuring@\savefieldlength@\fi + \set@field + \tabskip\z@skip + &\setboxz@h{\@lign$\m@th\displaystyle{{}##}$}% + \ifmeasuring@\savefieldlength@\fi + \set@field + \hfil + \tabskip\alignsep@ +} +\def\set@field{% + \column@plus + \iftagsleft@ + \ifdim\ht\z@>\lineht@ + \global\lineht@\ht\z@ + \fi + \else + \ifdim\dp\z@>\lineht@ + \global\lineht@\dp\z@ + \fi + \fi + \boxz@ +} +\edef\split@err#1{% + \@nx\@amsmath@err{% + \string\begin{split} won't work here% + }{% + \@xp\@nx\csname + Did you forget a preceding \string\begin{equation}?^^J% + If not, perhaps the `aligned' environment is what + you want.\endcsname}% +} +\newenvironment{split}{% + \if@display + \ifinner + \@xp\@xp\@xp\split@aligned + \else + \ifst@rred \else \global\@eqnswtrue \fi + \fi + \else \let\endsplit\@empty \@xp\collect@body\@xp\split@err + \fi + \collect@body\gather@split +}{% + \crcr + \egroup + \egroup + \iftagsleft@ \@xp\lendsplit@ \else \@xp\rendsplit@ \fi +} +\let\split@tag\relax % init +\def\gather@split#1#2#3{% + \@xp\endgroup \reset@equation % math@cr will handle equation numbering + \iftag@ + \toks@\@xp{\df@tag}% + \edef\split@tag{% + \gdef\@nx\df@tag{\the\toks@}% + \global\@nx\tag@true \@nx\nonumber + }% + \else \let\split@tag\@empty + \fi + \spread@equation + \vcenter\bgroup + \gather@{\split@tag \begin{split}#1\end{split}}% + \def\endmathdisplay@a{% + \math@cr \black@ \totwidth@ \egroup + \egroup + }% +} +\def\insplit@{% + \global\setbox\z@\vbox\bgroup + \Let@ \chardef\dspbrk@context\@ne \restore@math@cr + \default@tag % disallow use of \tag here + \ialign\bgroup + \hfil + \strut@ + $\m@th\displaystyle{##}$% + &$\m@th\displaystyle{{}##}$% + \hfill % Why not \hfil?---dmj, 1994/12/28 + \crcr +} +\def\rendsplit@{% + \ifinalign@ + \global\setbox9 \vtop{% + \unvcopy\z@ + \global\setbox8 \lastbox + \unskip + }% + \setbox\@ne\hbox{% + \unhcopy8 + \unskip + \global\setbox\tw@\lastbox + \unskip + \global\setbox\thr@@\lastbox + }% + \ifctagsplit@ + \gdef\split@{% + \hbox to\wd\thr@@{}% + &\vcenter{\vbox{\moveleft\wd\thr@@\boxz@}}% + }% + \else + \global\setbox7 \hbox{\unhbox\tw@\unskip}% + \gdef\split@{% + \global\@tempcnta\column@ + &\setboxz@h{}% + \savetaglength@ + \global\advance\row@\@ne + \vbox{\moveleft\wd\thr@@\box9}% + \crcr + \noalign{\global\lineht@\z@}% + \add@amps\@tempcnta + \box\thr@@ + &\box7 + }% + \fi + \else + \ifctagsplit@ + \gdef\split@{\vcenter{\boxz@}}% + \else + \gdef\split@{% + \boxz@ + }% + \fi + \fi + \aftergroup\split@ +} +\def\lendsplit@{% + \global\setbox9\vtop{\unvcopy\z@}% + \ifinalign@ + \setbox\@ne\vbox{% + \unvcopy\z@ + \global\setbox8\lastbox + }% + \setbox\@ne\hbox{% + \unhcopy8% + \unskip + \setbox\tw@\lastbox + \unskip + \global\setbox\thr@@\lastbox + }% + \ifctagsplit@ + \gdef\split@{% + \hbox to\wd\thr@@{}% + &\vcenter{\vbox{\moveleft\wd\thr@@\box9}}% + }% + \else + \gdef\split@{% + \hbox to\wd\thr@@{}% + &\vbox{\moveleft\wd\thr@@\box9}% + }% + \fi + \else + \ifctagsplit@ + \gdef\split@{\vcenter{\box9}}% + \else + \gdef\split@{\box9}% + \fi + \fi + \aftergroup\split@ +} +\def\split@aligned#1#2{% + \iffalse{\fi\ifnum0=`}\fi + \collect@body\split@al@a} +\def\split@al@a#1#2#3{% + \split@warning + \endgroup + \toks@{\begin{aligned}}% + \if@fleqn \split@al@tagcheck \fi + \the\toks@\relax#1\end{aligned}% + \ifnum0=`{\fi\iffalse}\fi +} +\def\split@al@tagcheck{% + \ifctagsplit@ + \else + \iftagsleft@ \toks@\@xp{\the\toks@ [t]}% + \else \toks@\@xp{\the\toks@ [b]}% + \fi + \fi +} +\def\split@warning{% + \PackageWarning{amsmath}{% +Cannot use `split' here;\MessageBreak trying to recover with `aligned'}% +} +\newskip\multlinegap +\multlinegap10pt +\newskip\multlinetaggap +\multlinetaggap10pt +\def\start@multline#1{% + \RIfM@ + \nomath@env + \DN@{\@namedef{end\@currenvir}{}\@gobble}% + \else + $$% + #1% + \ifst@rred + \nonumber + \else + \global\@eqnswtrue + \fi + \let\next@\multline@ + \fi + \collect@body\next@ +} +\newenvironment{multline}{% + \start@multline\st@rredfalse +}{% + \iftagsleft@ \@xp\lendmultline@ \else \@xp\rendmultline@ \fi + \ignorespacesafterend +} +\newenvironment{multline*}{\start@multline\st@rredtrue}{\endmultline} +\def\multline@#1{% + \Let@ + \@display@init{\global\advance\row@\@ne \global\dspbrk@lvl\m@ne}% + \chardef\dspbrk@context\z@ + \restore@math@cr + \let\tag\tag@in@align + \global\tag@false \global\let\raise@tag\@empty + \mmeasure@{#1}% + \let\tag\gobble@tag \let\label\@gobble + \tabskip \if@fleqn \@mathmargin \else \z@skip \fi + \totwidth@\displaywidth + \if@fleqn + \advance\totwidth@-\@mathmargin + \fi + \halign\bgroup + \hbox to\totwidth@{% + \if@fleqn + \hskip \@centering \relax + \else + \hfil + \fi + \strut@ + $\m@th\displaystyle{}##\endmultline@math + \hfil + }% + \crcr + \if@fleqn + \hskip-\@mathmargin + \def\multline@indent{\hskip\@mathmargin}% put it back + \else + \hfilneg + \def\multline@indent{\hskip\multlinegap}% + \fi + \iftagsleft@ + \iftag@ + \begingroup + \ifshifttag@ + \rlap{\vbox{% + \normalbaselines + \hbox{% + \strut@ + \make@display@tag + }% + \vbox to\lineht@{}% + \raise@tag + }}% + \multline@indent + \else + \setbox\z@\hbox{\make@display@tag}% + \dimen@\@mathmargin \advance\dimen@-\wd\z@ + \ifdim\dimen@<\multlinetaggap + \dimen@\multlinetaggap + \fi + \box\z@ \hskip\dimen@\relax + \fi + \endgroup + \else + \multline@indent + \fi + \else + \multline@indent + \fi + #1% +} +\def\endmultline@math{$} +\def\lendmultline@{% + \hfilneg + \hskip\multlinegap + \math@cr + \egroup + $$% +} +\def\rendmultline@{% + \iftag@ + $\let\endmultline@math\relax + \ifshifttag@ + \hskip\multlinegap + \llap{\vtop{% + \raise@tag + \normalbaselines + \setbox\@ne\null + \dp\@ne\lineht@ + \box\@ne + \hbox{\strut@\make@display@tag}% + }}% + \else + \hskip\multlinetaggap + \make@display@tag + \fi + \else + \hskip\multlinegap + \fi + \hfilneg + \math@cr + \egroup$$% +} +\def\mmeasure@#1{% + \begingroup + \measuring@true + \def\label##1{% + \begingroup\measuring@false\label@in@display{##1}\endgroup}% + \def\math@cr@@@{\cr}% + \let\shoveleft\@iden \let\shoveright\@iden + \savecounters@ + \global\row@\z@ + \setbox\@ne\vbox{% + \global\let\df@tag\@empty + \halign{% + \setboxz@h{\@lign$\m@th\displaystyle{}##$}% + \iftagsleft@ + \ifnum\row@=\@ne + \global\totwidth@\wdz@ + \global\lineht@\ht\z@ + \fi + \else + \global\totwidth@\wdz@ + \global\lineht@\dp\z@ + \fi + \crcr + #1% + \crcr + }% + }% + \ifx\df@tag\@empty\else\global\tag@true\fi + \if@eqnsw\global\tag@true\fi + \iftag@ + \setboxz@h{% + \if@eqnsw + \stepcounter{equation}% + \tagform@\theequation + \else + \df@tag + \fi + }% + \global\tagwidth@\wdz@ + \dimen@\totwidth@ + \advance\dimen@\tagwidth@ + \advance\dimen@\multlinetaggap + \iftagsleft@\else + \if@fleqn + \advance\dimen@\@mathmargin + \fi + \fi + \ifdim\dimen@>\displaywidth + \global\shifttag@true + \else + \global\shifttag@false + \fi + \fi + \restorecounters@ + \endgroup +} +\iftagsleft@ + \def\shoveright#1{% + #1% + \hfilneg + \hskip\multlinegap + } +\else + \def\shoveright#1{% + #1% + \hfilneg + \iftag@ + \ifshifttag@ + \hskip\multlinegap + \else + \hskip\tagwidth@ + \hskip\multlinetaggap + \fi + \else + \hskip\multlinegap + \fi + } +\fi + +\if@fleqn + \def\shoveleft#1{#1}% +\else + \iftagsleft@ + \def\shoveleft#1{% + \setboxz@h{$\m@th\displaystyle{}#1$}% + \setbox\@ne\hbox{$\m@th\displaystyle#1$}% + \hfilneg + \iftag@ + \ifshifttag@ + \hskip\multlinegap + \else + \hskip\tagwidth@ + \hskip\multlinetaggap + \fi + \else + \hskip\multlinegap + \fi + \hskip.5\wd\@ne + \hskip-.5\wdz@ + #1% + } + \else + \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% + } + \fi +\fi +\@saveprimitive\leqno\@@leqno +\@saveprimitive\eqno\@@eqno +\def\eqno{\@@eqno\let\eqno\relax\let\leqno\relax} +\def\leqno{\@@leqno\let\leqno\relax\let\eqno\relax} +\let\veqno=\@@eqno +\iftagsleft@ \let\veqno=\@@leqno \fi +\@ifundefined{SK@@label}{% + \let\SK@@label\relax \let\SK@equationtrue\relax +}{} +\let\reset@equation\@empty +\let\alt@tag\@empty +\def\tag@in@display#1#{\relax\tag@in@display@a{#1}} +\def\tag@in@display@a#1#2{% + \iftag@ + \invalid@tag{Multiple \string\tag}\relax + \else + \global\tag@true \nonumber \reset@equation \st@rredtrue + \if *\string#1% + \gdef\alt@tag{\def\SK@tagform@{#2\@gobble}% + \ifx\SK@@label\relax \let\tagform@\SK@tagform@ \fi + }% + \make@df@tag@@{#2}% + \else + \make@df@tag@@@{#2}% + \fi + \fi +} +\let\restore@hfuzz\@empty +\def\mathdisplay#1{% + \ifmmode \@badmath + \else + $$\def\@currenvir{#1}% + \let\dspbrk@context\z@ + \let\tag\tag@in@display \let\label\label@in@display \SK@equationtrue + \global\let\df@label\@empty \global\let\df@tag\@empty + \global\tag@false + \let\mathdisplay@push\mathdisplay@@push + \let\mathdisplay@pop\mathdisplay@@pop + \if@fleqn + \edef\restore@hfuzz{\hfuzz\the\hfuzz\relax}% + \hfuzz\maxdimen + \setbox\z@\hbox to\displaywidth\bgroup + \let\split@warning\relax \restore@hfuzz + \everymath\@emptytoks \m@th $\displaystyle + \fi + \fi +} +\def\endmathdisplay#1{% + \ifmmode \else \@badmath \fi + \endmathdisplay@a + $$% + \global\let\df@label\@empty \global\let\df@tag\@empty + \global\tag@false \global\let\alt@tag\@empty + \global\@eqnswfalse +} +\def\endmathdisplay@a{% + \if@eqnsw \gdef\df@tag{\tagform@\theequation}\fi + \if@fleqn \@xp\endmathdisplay@fleqn + \else \ifx\df@tag\@empty \else \veqno \alt@tag \df@tag \fi + \ifx\df@label\@empty \else \@xp\ltx@label\@xp{\df@label}\fi + \fi + \ifnum\dspbrk@lvl>\m@ne + \postdisplaypenalty -\@getpen\dspbrk@lvl + \global\dspbrk@lvl\m@ne + \fi +} +\let\too@wide\@ne +\def\endmathdisplay@fleqn{% + $\hfil\hskip\@mathmargin\egroup + \ifnum\badness<\inf@bad \let\too@wide\@ne \else \let\too@wide\z@ \fi + \ifx\@empty\df@tag + \else + \setbox4\hbox{\df@tag + \ifx\df@label\@empty \else \@xp\ltx@label\@xp{\df@label}\fi + }% + \fi + \csname emdf@% + \ifx\df@tag\@empty U\else \iftagsleft@ L\else R\fi\fi + \endcsname +} +\def\emdf@U{% + \restore@hfuzz + \ifodd\too@wide % not too wide: just need to swap the glue around + \hbox to\displaywidth{\hskip\@mathmargin\unhbox\z@\unskip}% + \else % M+B > displaywidth + \emdf@Ua + \fi +} +\def\emdf@Ua{% + \hbox to\columnwidth{% + \ifdim\displayindent>\z@ + \hskip\displayindent minus\displayindent + \fi + \hskip\@mathmargin \unhbox\z@ \unskip + }% + \displayindent\z@ \displaywidth\columnwidth +} +\def\emdf@R{% + \setbox\tw@\hbox to\displaywidth{% + \hskip\@mathmargin \unhcopy\z@\unskip\hfil\hskip\mintagsep\copy4 + }% + \restore@hfuzz + \ifnum\badness<\inf@bad \box\tw@ \else \emdf@Ra \fi +} +\def\emdf@Ra{% + \skip@\displayindent minus\displayindent + \displayindent\z@ \displaywidth\columnwidth + \spread@equation \everycr{}\tabskip\z@skip + \halign{\hbox to\displaywidth{##}\cr + \relax + \ifdim\skip@>\z@ \hskip\skip@ \fi + \hskip\@mathmargin\unhbox\z@\unskip\hfil\cr + \noalign{\raise@tag}% + \hfil\box4 \cr}% +} +\def\emdf@L{% + \@tempdima\@mathmargin + \advance\@tempdima-\wd4 \advance\@tempdima-\mintagsep + \skip@\@tempdima minus\@tempdima + \setbox\tw@\hbox to\displaywidth{% + \copy4\hskip\mintagsep + \ifdim\skip@>\z@ \hskip\skip@\fi + \unhcopy\z@\unskip + }% + \restore@hfuzz + \ifnum\badness<\inf@bad \box\tw@ \else \emdf@La \fi +} +\def\emdf@La{% + \spread@equation \everycr{}\tabskip\z@skip + \halign{\hbox to\displaywidth{##}\cr + \box4 \hfil \cr + \noalign{\raise@tag}% + \hskip\@mathmargin\unhbox\z@\unskip\hfil\cr}% +} +\newtoks\mathdisplay@stack +\let\mathdisplay@push\@empty +\def\mathdisplay@@push{% + \begingroup + \toks@\@xp{\df@label}\@temptokena\@xp{\df@tag}% + \toks8\@xp{\alt@tag}% + \edef\@tempa{% + \global\if@eqnsw\@nx\@eqnswtrue\else\@nx\@eqnswfalse\fi + \global\iftag@\@nx\tag@false\else\@nx\tag@true\fi + \gdef\@nx\df@label{\the\toks@}\gdef\@nx\df@tag{\the\@temptokena}% + \gdef\@nx\alt@tag{\the\toks8}% + \global\mathdisplay@stack{\the\mathdisplay@stack}% + }% + \global\mathdisplay@stack\@xp{\@tempa} + \endgroup +} +\let\mathdisplay@pop\@empty +\def\mathdisplay@@pop{\the\mathdisplay@stack} +\renewenvironment{equation}{% + \incr@eqnum + \mathdisplay@push + \st@rredfalse \global\@eqnswtrue + \mathdisplay{equation}% +}{% + \endmathdisplay{equation}% + \mathdisplay@pop + \ignorespacesafterend +} +\newenvironment{equation*}{% + \mathdisplay@push + \st@rredtrue \global\@eqnswfalse + \mathdisplay{equation*}% +}{% + \endmathdisplay{equation*}% + \mathdisplay@pop + \ignorespacesafterend +} +\DeclareRobustCommand{\[}{\begin{equation*}} +\DeclareRobustCommand{\]}{\end{equation*}} +\endinput +%% +%% End of file `amsmath.sty'. diff --git a/Master/texmf-dist/tex/latex/amsmath/amsopn.sty b/Master/texmf-dist/tex/latex/amsmath/amsopn.sty new file mode 100644 index 00000000000..76580233765 --- /dev/null +++ b/Master/texmf-dist/tex/latex/amsmath/amsopn.sty @@ -0,0 +1,132 @@ +%% +%% This is file `amsopn.sty', +%% generated with the docstrip utility. +%% +%% The original source files were: +%% +%% amsopn.dtx +%% +%%% ==================================================================== +%%% @LaTeX-file{ +%%% filename = "amsopn.dtx", +%%% version = "2.01", +%%% date = "1999/12/14", +%%% time = "17:30:59 EST", +%%% checksum = "46904 254 1037 9431", +%%% author = "American Mathematical Society", +%%% copyright = "Copyright 1995, 1999 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.", +%%% address = "American Mathematical Society, +%%% Technical Support, +%%% Electronic Products and Services, +%%% P. O. Box 6248, +%%% Providence, RI 02940, +%%% USA", +%%% telephone = "401-455-4080 or (in the USA and Canada) +%%% 800-321-4AMS (321-4267)", +%%% FAX = "401-331-3842", +%%% email = "tech-support@ams.org (Internet)", +%%% codetable = "ISO/ASCII", +%%% keywords = "operator name, amsopn, DeclareMathOperator", +%%% supported = "yes", +%%% abstract = "This is a \LaTeX{} package that provides a +%%% DeclareMathOperator command for defining named +%%% operators like sin and lim.", +%%% docstring = "The checksum field above contains a CRC-16 checksum +%%% as the first value, followed by the equivalent of +%%% the standard UNIX wc (word count) utility output of +%%% lines, words, and characters. This is produced by +%%% Robert Solovay's checksum utility.", +%%% } +%%% ==================================================================== +\NeedsTeXFormat{LaTeX2e}% LaTeX 2.09 can't be used (nor non-LaTeX) +[1994/12/01]% LaTeX date must December 1994 or later +\ProvidesPackage{amsopn}[1999/12/14 v2.01 operator names] +\def\nolimits@{\@ifnextchar\limits{\nolimits\@gobble}{\nolimits}} +\begingroup \catcode`\"=12 +\gdef\newmcodes@{\mathcode`\'39\mathcode`\*42\mathcode`\."613A% + \ifnum\mathcode`\-=45 \else + \mathchardef\std@minus\mathcode`\-\relax + \fi + \mathcode`\-45\mathcode`\/47\mathcode`\:"603A\relax} +\endgroup +\DeclareRobustCommand{\operatorname}{% + \@ifstar{\qopname\newmcodes@ m}% + {\qopname\newmcodes@ o}}% +\DeclareRobustCommand{\qopname}[3]{% + \mathop{#1\kern\z@\operator@font#3}% + \csname n#2limits@\endcsname} +\newcommand{\DeclareMathOperator}{% + \@ifstar{\@declmathop m}{\@declmathop o}} +\long\def\@declmathop#1#2#3{% + \@ifdefinable{#2}{% + \DeclareRobustCommand{#2}{\qopname\newmcodes@#1{#3}}}} +\@onlypreamble\DeclareMathOperator +\@onlypreamble\@declmathop +\def\arccos{\qopname\relax o{arccos}} +\def\arcsin{\qopname\relax o{arcsin}} +\def\arctan{\qopname\relax o{arctan}} +\def\arg{\qopname\relax o{arg}} +\def\cos{\qopname\relax o{cos}} +\def\cosh{\qopname\relax o{cosh}} +\def\cot{\qopname\relax o{cot}} +\def\coth{\qopname\relax o{coth}} +\def\csc{\qopname\relax o{csc}} +\def\deg{\qopname\relax o{deg}} +\def\det{\qopname\relax m{det}} +\def\dim{\qopname\relax o{dim}} +\def\exp{\qopname\relax o{exp}} +\def\gcd{\qopname\relax m{gcd}} +\def\hom{\qopname\relax o{hom}} +\def\inf{\qopname\relax m{inf}} +\def\injlim{\qopname\relax m{inj\,lim}} +\def\ker{\qopname\relax o{ker}} +\def\lg{\qopname\relax o{lg}} +\def\lim{\qopname\relax m{lim}} +\def\liminf{\qopname\relax m{lim\,inf}} +\def\limsup{\qopname\relax m{lim\,sup}} +\def\ln{\qopname\relax o{ln}} +\def\log{\qopname\relax o{log}} +\def\max{\qopname\relax m{max}} +\def\min{\qopname\relax m{min}} +\def\Pr{\qopname\relax m{Pr}} +\def\projlim{\qopname\relax m{proj\,lim}} +\def\sec{\qopname\relax o{sec}} +\def\sin{\qopname\relax o{sin}} +\def\sinh{\qopname\relax o{sinh}} +\def\sup{\qopname\relax m{sup}} +\def\tan{\qopname\relax o{tan}} +\def\tanh{\qopname\relax o{tanh}} +\def\operator@font{\mathgroup\symoperators} +\def\operatorfont{\operator@font} +\def\operatornamewithlimits{\operatorname*} +\def\varlim@#1#2{% + \vtop{\m@th\ialign{##\cr + \hfil$#1\operator@font lim$\hfil\cr + \noalign{\nointerlineskip\kern1.5\ex@}#2\cr + \noalign{\nointerlineskip\kern-\ex@}\cr}}% +} +\def\varinjlim{% + \mathop{\mathpalette\varlim@{\rightarrowfill@\textstyle}}\nmlimits@ +} +\def\varprojlim{% + \mathop{\mathpalette\varlim@{\leftarrowfill@\textstyle}}\nmlimits@ +} +\def\varliminf{\mathop{\mathpalette\varliminf@{}}\nmlimits@} +\def\varliminf@#1{\@@underline{\vrule\@depth.2\ex@\@width\z@ + \hbox{$#1\m@th\operator@font lim$}}} +\def\varlimsup{\mathop{\mathpalette\varlimsup@{}}\nmlimits@} +\def\varlimsup@#1{\@@overline{\hbox{$#1\m@th\operator@font lim$}}} +\let\nmlimits@\displaylimits +\DeclareOption{namelimits}{\let\nmlimits@\displaylimits} +\DeclareOption{nonamelimits}{\let\nmlimits@\nolimits} +\ProcessOptions\relax +\RequirePackage{amsgen}\relax +\endinput +%% +%% End of file `amsopn.sty'. diff --git a/Master/texmf-dist/tex/latex/amsmath/amstex.sty b/Master/texmf-dist/tex/latex/amsmath/amstex.sty new file mode 100644 index 00000000000..f67435c5829 --- /dev/null +++ b/Master/texmf-dist/tex/latex/amsmath/amstex.sty @@ -0,0 +1,2043 @@ +%%% ==================================================================== +%%% @LaTeX-file{ +%%% filename = "amstex.sty", +%%% version = "1.2f", +%%% date = "1999/11/15", +%%% time = "14:07:07 EST", +%%% checksum = "05218 2043 3020 71018", +%%% author = "American Mathematical Society", +%%% copyright = "Copyright 1995, 1999 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.", +%%% address = "American Mathematical Society, +%%% Technical Support, +%%% Electronic Products and Services, +%%% P. O. Box 6248, +%%% Providence, RI 02940, +%%% USA", +%%% telephone = "401-455-4080 or (in the USA and Canada) +%%% 800-321-4AMS (321-4267)", +%%% FAX = "401-331-3842", +%%% email = "tech-support@math.ams.org (Internet)", +%%% keywords = "latex, amslatex, ams-latex, math, amstex, ams-tex", +%%% supported = "yes", +%%% abstract = "This package provides a variety of extra +%%% mathematical features, largely derived from +%%% AMS-\TeX{}. It was superseded in 1995 by the +%%% amsmath package.", +%%% docstring = "The checksum field above contains a CRC-16 checksum +%%% as the first value, followed by the equivalent of +%%% the standard UNIX wc (word count) utility output of +%%% lines, words, and characters. This is produced by +%%% Robert Solovay's checksum utility.", +%%% } +%%% ==================================================================== +% This file was generated from version 1.2beta of amstex.dtx and then +% underwent additional hand-editing. +\if@compatibility \else \catcode`\%=9 \fi +%\PackageError{amstex}{% +%Package `amstex' is obsolete, substituting `amsmath'}{You +%should use \string\usepackage{amsmath} instead. If +%that does not give satisfactory results, rename your previous copy +%of amstex.sty to amstex12beta.sty and call it with +%\string\usepackage{amstex12beta}.} +%\catcode`\%=14 \relax \input{amsmath.sty}\endinput +% +\ProvidesPackage{amstex}[1999/11/15 v1.2f AMS extra math features] +\let\@amsfonts=T +\DeclareOption{noamsfonts}{\let\@amsfonts=F} +\DeclareOption{psamsfonts}{\let\@amsfonts=P} +\DeclareOption{intlimits}{\let\ilimits@\displaylimits} +\DeclareOption{nointlimits}{\let\ilimits@\nolimits} +\DeclareOption{sumlimits}{\let\slimits@\displaylimits} +\DeclareOption{nosumlimits}{\let\slimits@\nolimits} +\DeclareOption{namelimits}{\let\nlimits@\displaylimits} +\DeclareOption{nonamelimits}{\let\nlimits@\nolimits} +\newif\ifctagsplit@ +\newif\iftagsleft@ +\DeclareOption{leqno}{\tagsleft@true} +\DeclareOption{reqno}{\tagsleft@false} +\DeclareOption{centertags}{\ctagsplit@true} +\DeclareOption{tbtags}{\ctagsplit@false} +\newif\if@fleqn +\newskip\@mathmargin +\@mathmargin\@centering +\DeclareOption{fleqn}{% + \@fleqntrue + \@mathmargin\m@ne sp + \AtBeginDocument{% + \ifdim\@mathmargin=\m@ne sp + \@mathmargin\leftmargini + \fi + }% +} +\DeclareOption{righttag}{\tagsleft@false} +\DeclareOption{ctagsplt}{\ctagsplit@true} +\DeclareOption{intlim}{\let\ilimits@\displaylimits} +\DeclareOption{nosumlim}{\let\slimits@\nolimits} +\DeclareOption{nonamelm}{\let\nlimits@\nolimits} +\ExecuteOptions{nointlimits,sumlimits,namelimits,centertags} +\ProcessOptions +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +%% In this section \RequirePackage statements were replaced with the +%% contents of the referenced files. +%%% filename = "amsgen.dtx", +%%% version = "1.2beta", +%%% date = "1994/12/13", +\providecommand{\@saveprimitive}[2]{\begingroup\escapechar`\\\relax + \edef\@tempa{\string#1}\edef\@tempb{\meaning#1}% + \ifx\@tempa\@tempb \global\let#2#1% + \else + \edef\@tempb{\meaning#2}% + \ifx\@tempa\@tempb + \else + \@latex@error{Unable to properly define \string#2; primitive + \noexpand#1no longer primitive}\@eha + \fi + \fi + \endgroup} +\let\@xp=\expandafter +\let\@nx=\noexpand +\newtoks\@emptytoks +\def\@oparg#1[#2]{\@ifnextchar[{#1}{#1[#2]}} +\def\@ifempty#1{\@xifempty#1@@..\@nil} +\long\def\@xifempty#1#2@#3#4#5\@nil{% + \ifx#3#4\@xp\@firstoftwo\else\@xp\@secondoftwo\fi} +\long\def\@ifnotempty#1{\@ifempty{#1}{}} +\def\FN@{\futurelet\@let@token} +\def\DN@{\def\next@} +\def\RIfM@{\relax\ifmmode} +\def\setboxz@h{\setbox\z@\hbox} +\def\wdz@{\wd\z@} +\def\boxz@{\box\z@} +\def\relaxnext@{\let\@let@token\relax} +\def\new@ifnextchar#1#2#3{% + \let\@tempe #1\def\@tempa{#2}\def\@tempb{#3}\futurelet + \@tempc\new@ifnch} +\def\new@ifnch{\ifx\@tempc \@tempe \let\@tempd\@tempa + \else\let\@tempd\@tempb\fi\@tempd} +\def\new@ifstar#1#2{\new@ifnextchar *{\def\@tempa*{#1}\@tempa}{#2}} +\@ifundefined{every@math@size}{% +\let\every@math@size=\every@size +\def\glb@settings{% + \expandafter\ifx\csname S@\f@size\endcsname\relax + \calculate@math@sizes + \fi + \csname S@\f@size\endcsname + \ifmath@fonts + \begingroup + \escapechar\m@ne + \csname mv@\math@version \endcsname + \globaldefs\@ne + \let \glb@currsize \f@size + \math@fonts + \endgroup + \the\every@math@size + \else + \fi +} +\def\set@fontsize#1#2#3{% + \@defaultunits\@tempdimb#2pt\relax\@nnil + \edef\f@size{\strip@pt\@tempdimb}% + \@defaultunits\@tempskipa#3pt\relax\@nnil + \edef\f@baselineskip{\the\@tempskipa}% + \edef\f@linespread{#1}% + \let\baselinestretch\f@linespread + \def\size@update{% + \baselineskip\f@baselineskip\relax + \baselineskip\f@linespread\baselineskip + \normalbaselineskip\baselineskip + \setbox\strutbox\hbox{% + \vrule\@height.7\baselineskip + \@depth.3\baselineskip + \@width\z@}% +%%% \the\every@size + \let\size@update\relax}% + } +}{}% end \@ifundefined test +\newdimen\ex@ +\addto@hook\every@math@size{\compute@ex@} +\def\compute@ex@{% + \begingroup + \dimen@-\f@size\p@ + \ifdim\dimen@<-20\p@ + \global\ex@ 1.5\p@ + \else + \advance\dimen@10\p@ \multiply\dimen@\tw@ + \edef\@tempa{\ifdim\dimen@>\z@ -\fi}% + \dimen@ \ifdim\dimen@<\z@ -\fi \dimen@ + \advance\dimen@-\@m sp % fudge factor + \vfuzz\p@ + \def\do{\ifdim\dimen@>\z@ + \vfuzz=.97\vfuzz + \advance\dimen@ -\p@ + \@xp\do \fi}% + \do + \dimen@\p@ \advance\dimen@-\vfuzz + \global\ex@\p@ + \global\advance\ex@ \@tempa\dimen@ + \fi + \endgroup +} +\def\@addpunct#1{\ifnum\spacefactor>\@m \else#1\fi} +\def\frenchspacing{\sfcode`\.1006\sfcode`\?1005\sfcode`\!1004% + \sfcode`\:1003\sfcode`\;1002\sfcode`\,1001 } +\def\@mathmeasure#1#2#3{\setbox#1\hbox{\frozen@everymath\@emptytoks + \m@th$#2#3$}} +\def\nomath@env{\PackageError{amstex}{% + \string\begin{\@currenvir} allowed only in paragraph mode% +}\@ehb% "You've lost some text" +} +\def\Invalid@@{Invalid use of \string} +\def\nonmatherr@#1{\PackageError{amsfonts}% + {\noexpand#1allowed only in math mode}\@ehd} +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +%%% filename = "amstext.dtx", +%%% version = "1.2beta", +%%% date = "1994/12/13", +\DeclareRobustCommand{\text}{% + \ifmmode\expandafter\text@\else\expandafter\mbox\fi} +\let\nfss@text\text +\def\text@#1{\mathchoice + {\textdef@\displaystyle\f@size{#1}}% + {\textdef@\textstyle\tf@size{\firstchoice@false #1}}% + {\textdef@\textstyle\sf@size{\firstchoice@false #1}}% + {\textdef@\textstyle \ssf@size{\firstchoice@false #1}}% + \check@mathfonts +} +\def\textdef@#1#2#3{\hbox{{% + \everymath{#1}% + \let\f@size#2\selectfont + #3}}} +\newif\iffirstchoice@ +\firstchoice@true +\def\stepcounter#1{% + \iffirstchoice@ + \global\expandafter\advance\csname c@#1\endcsname \@ne + \begingroup + \let\@elt\@stpelt + \csname cl@#1\endcsname + \endgroup + \fi} +\toks@{\iffirstchoice@\else\@xp\@gobblefour\fi\protect} +\edef\GenericInfo{\the\toks@ + \@xp\@nx\csname GenericInfo \endcsname} +\edef\GenericWarning{\the\toks@ + \@xp\@nx\csname GenericWarning \endcsname} +\toks@{\iffirstchoice@\else + \@xp\@xp\@xp\@gobblefour + \@xp\@gobbletwo\fi\protect} +\edef\GenericError{\the\toks@ + \@xp\@nx\csname GenericError \endcsname} +\def\label#1{\@bsphack\iffirstchoice@\if@filesw {\let\thepage\relax + \def\protect{\noexpand\noexpand\noexpand}% +\xdef\@gtempa{\write\@auxout{\string + \newlabel{#1}{{\@currentlabel}{\thepage}}}}}\@gtempa + \if@nobreak \ifvmode\nobreak\fi\fi\fi\fi\@esphack} +\begingroup \catcode`\"=12 +\gdef\mathhexbox#1#2#3{\text{$\m@th\mathchar"#1#2#3$}} +\endgroup +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +%%% filename = "amsfonts.dtx", +%%% version = "1.2beta", +%%% date = "1994/12/13", +\newbox\Mathstrutbox@ +\setbox\Mathstrutbox@=\hbox{} +\def\Mathstrut@{\copy\Mathstrutbox@} +\addto@hook\every@math@size{\setbox\z@\hbox{\normalfont(}% + \ht\Mathstrutbox@\ht\z@ \dp\Mathstrutbox@\dp\z@} +\newbox\strutbox@ +\def\strut@{\copy\strutbox@} +\addto@hook\every@math@size{% + \global\setbox\strutbox@\hbox{\lower.5\normallineskiplimit + \vbox{\kern-\normallineskiplimit\copy\strutbox}}} +\def\big{\bBigg@\@ne} +\def\Big{\bBigg@{1.5}} +\def\bigg{\bBigg@\tw@} +\def\Bigg{\bBigg@{2.5}} +\def\bBigg@#1#2{% + {% + \hbox{$\left#2\vcenter to#1\big@size{}\right.% + \n@space + $}}} +\addto@hook\every@math@size{% + \global\big@size 1.2\ht\Mathstrutbox@ + \global\advance\big@size 1.2\dp\Mathstrutbox@ } +\newdimen\big@size +%% msam, msbm, eufm fonts dealt with at end of file +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +%%% filename = "amsbsy.dtx", +%%% version = "1.2beta", +%%% date = "1994/10/27", +\DeclareRobustCommand{\boldsymbol}[1]{% + \begingroup + \let\@nomath\@gobble \mathversion{bold}% + \math@atom{#1}{% + \mathchoice% + {\hbox{$\m@th\displaystyle#1$}}% + {\hbox{$\m@th\textstyle#1$}}% + {\hbox{$\m@th\scriptstyle#1$}}% + {\hbox{$\m@th\scriptscriptstyle#1$}}}% + \endgroup} +\def\math@atom#1#2{% + \binrel@{#1}\binrel@@{#2}} +\DeclareRobustCommand{\pmb}{% + \ifmmode\else \expandafter\pmb@@\fi\mathpalette\pmb@} +\def\pmb@@#1#2#3{\leavevmode\setboxz@h{#3}% + \dimen@-\wdz@ + \kern-.5\ex@\copy\z@ + \kern\dimen@\kern.25\ex@\raise.4\ex@\copy\z@ + \kern\dimen@\kern.25\ex@\box\z@ +} +\newdimen\pmbraise@ +\def\pmb@#1#2{\setbox8\hbox{$\m@th#1{#2}$}% + \setboxz@h{$\m@th#1\mkern.5mu$}\pmbraise@\wdz@ + \binrel@{#2}% + \dimen@-\wd8 % + \binrel@@{% + \mkern-.8mu\copy8 % + \kern\dimen@\mkern.4mu\raise\pmbraise@\copy8 % + \kern\dimen@\mkern.4mu\box8 }% +} +\def\binrel@#1{\begingroup + \setboxz@h{\thinmuskip0mu + \medmuskip\m@ne mu\thickmuskip\@ne mu + \setbox\tw@\hbox{$#1\m@th$}\kern-\wd\tw@ + ${}#1{}\m@th$}% + \edef\@tempa{\endgroup\let\noexpand\binrel@@ + \ifdim\wdz@<\z@ \mathbin + \else\ifdim\wdz@>\z@ \mathrel + \else \relax\fi\fi}% + \@tempa +} +\let\binrel@@\relax +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +\def\AmSTeX{\protect\AmS-\protect\TeX{}} +\def\AmS{{\protect\AmSfont + A\kern-.1667em\lower.5ex\hbox{M}\kern-.125emS}} +\def\AmSfont{% + \usefont{OMS}{cmsy}{\if\@xp\@car\f@series\@nil bb\else m\fi}{n}} +\def\prim@s{\prime\futurelet\@let@token\pr@m@s} +\def\pr@m@s{% + \ifx\@let@token'\DN@##1{\prim@s}\else\let\next@\egroup\fi\next@} +\let\@prime=\prime +\renewcommand{\prime}{{\kern\z@\@prime}} +\DeclareRobustCommand{\mspace}[3]{% + \ifmmode\mskip#1#2\else\kern#1#3\fi\relax} +\renewcommand{\,}{\mspace+\thinmuskip{.1667em}} +\let\thinspace\, +\renewcommand{\!}{\mspace-\thinmuskip{.1667em}} +\let\negthinspace\! +\renewcommand{\:}{\mspace+\medmuskip{.2222em}} +\let\medspace\: +\newcommand{\negmedspace}{\mspace-\medmuskip{.2222em}} +\renewcommand{\;}{\mspace+\thickmuskip{.2777em}} +\let\thickspace\; +\newcommand{\negthickspace}{\mspace-\thickmuskip{.2777em}} +\def\implies{\DOTSB\;\Longrightarrow\;} +\def\impliedby{\DOTSB\;\Longleftarrow\;} +\begingroup \catcode`\"=12 % in case activated by a preceding package +\gdef\And{\DOTSB\;\mathchar"3026 \;} +\gdef\lvert{\delimiter"426A30C } +\gdef\rvert{\delimiter"526A30C } +\gdef\lVert{\delimiter"426B30D } +\gdef\rVert{\delimiter"526B30D } +\endgroup % restore " +\DeclareRobustCommand{\frac}{\new@ifnextchar[{\frfrac{}}{\frfrac{}[]}} +\def\frfrac#1[#2]#3#4{\def\next@{#2}% + \ifx\next@\@empty \def\next@{#1{#3\over#4}}% + \else \def\next@{{#1{#3\above#2\relax#4}}}% + \fi + \next@} +\def\dfrac{\protect\frfrac\displaystyle[]} +\def\tfrac{\protect\frfrac\textstyle[]} +\DeclareRobustCommand{\binom}{\frbinom{}} +\def\frbinom#1#2#3{{#1{#2\atopwithdelims()#3}}} +\def\dbinom{\protect\frbinom\displaystyle} +\def\tbinom{\protect\frbinom\textstyle} +\def\colon{\nobreak\mskip2mu\mathpunct{}\nonscript + \mkern-\thinmuskip{:}\mskip6muplus1mu\relax} +\begingroup \catcode`\"=12 +\DeclareMathSymbol{\coprod@}{\mathop}{largesymbols}{"60} +\gdef\coprod{\DOTSB\coprod@\slimits@} +\DeclareMathSymbol{\bigvee@}{\mathop}{largesymbols}{"57} +\gdef\bigvee{\DOTSB\bigvee@\slimits@} +\DeclareMathSymbol{\bigwedge@}{\mathop}{largesymbols}{"56} +\gdef\bigwedge{\DOTSB\bigwedge@\slimits@} +\DeclareMathSymbol{\biguplus@}{\mathop}{largesymbols}{"55} +\gdef\biguplus{\DOTSB\biguplus@\slimits@} +\DeclareMathSymbol{\bigcap@}{\mathop}{largesymbols}{"54} +\gdef\bigcap{\DOTSB\bigcap@\slimits@} +\DeclareMathSymbol{\bigcup@}{\mathop}{largesymbols}{"53} +\gdef\bigcup{\DOTSB\bigcup@\slimits@} +\DeclareMathSymbol{\prod@}{\mathop}{largesymbols}{"51} +\gdef\prod{\DOTSB\prod@\slimits@} +\DeclareMathSymbol{\sum@}{\mathop}{largesymbols}{"50} +\gdef\sum{\DOTSB\sum@\slimits@} +\DeclareMathSymbol{\bigotimes@}{\mathop}{largesymbols}{"4E} +\gdef\bigotimes{\DOTSB\bigotimes@\slimits@} +\DeclareMathSymbol{\bigoplus@}{\mathop}{largesymbols}{"4C} +\gdef\bigoplus{\DOTSB\bigoplus@\slimits@} +\DeclareMathSymbol{\bigodot@}{\mathop}{largesymbols}{"4A} +\gdef\bigodot{\DOTSB\bigodot@\slimits@} +\DeclareMathSymbol{\bigsqcup@}{\mathop}{largesymbols}{"46} +\gdef\bigsqcup{\DOTSB\bigsqcup@\slimits@} +\endgroup +\def\dddot#1{{\mathop{#1}\limits^{\vbox to-1.4\ex@{\kern-\tw@\ex@ + \hbox{\normalfont ...}\vss}}}} +\def\ddddot#1{{\mathop{#1}\limits^{\vbox to-1.4\ex@{\kern-\tw@\ex@ + \hbox{\normalfont....}\vss}}}} +\def~{\nobreakspace} +\DeclareRobustCommand{\nobreakspace}{\unskip\nobreak\ \ignorespaces} +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +\newif\if@display +\everydisplay\expandafter{\the\everydisplay \@displaytrue} +\def\int{\DOTSI\intop\ilimits@} +\def\oint{\DOTSI\ointop\ilimits@} +\def\intkern@{\mkern-6mu\mathchoice{\mkern-3mu}{}{}{}} +\def\intdots@{\mathchoice{\@cdots}% + {{\cdotp}\mkern1.5mu{\cdotp}\mkern1.5mu{\cdotp}}% + {{\cdotp}\mkern1mu{\cdotp}\mkern1mu{\cdotp}}% + {{\cdotp}\mkern1mu{\cdotp}\mkern1mu{\cdotp}}} + +\def\iint{\DOTSI\protect\ints@\tw@} +\def\iiint{\DOTSI\protect\ints@\thr@@} +\def\iiiint{\DOTSI\protect\ints@{4}} +\def\idotsint{\DOTSI\protect\ints@\z@} + +\def\ints@#1{% + \mkern-7mu\mathchoice{\mkern-2mu}{}{}{}% + \mathop{\mkern7mu\mathchoice{\mkern2mu}{}{}{}% + \intop\ifnum#1=\z@\intdots@ + \else\intkern@\fi + \ifnum#1>\tw@\intop\intkern@\fi + \ifnum#1>\thr@@\intop\intkern@\fi + \intop + }\ilimits@ +} +\def\nolimits@{% + \DN@{\nolimits\ifx\@let@token\limits\expandafter\@gobble\fi}% + \FN@\next@} +\begingroup \catcode`\"=12 +\gdef\newmcodes@{\mathcode`\'39\mathcode`\*42\mathcode`\."613A% + \mathcode`\-45\mathcode`\/47\mathcode`\:"603A\relax} +\endgroup +\DeclareRobustCommand{\operatorname}{% + \@ifstar{\qopname\newmcodes@ n}% + {\qopname\newmcodes@{no}}}% +\DeclareRobustCommand{\qopname}[3]{\mathop{#1\kern\z@\operator@font#3}% + \csname #2limits@\endcsname} +\def\arccos{\qopname\relax{no}{arccos}} +\def\arcsin{\qopname\relax{no}{arcsin}} +\def\arctan{\qopname\relax{no}{arctan}} +\def\arg{\qopname\relax{no}{arg}} +\def\cos{\qopname\relax{no}{cos}} +\def\cosh{\qopname\relax{no}{cosh}} +\def\cot{\qopname\relax{no}{cot}} +\def\coth{\qopname\relax{no}{coth}} +\def\csc{\qopname\relax{no}{csc}} +\def\deg{\qopname\relax{no}{deg}} +\def\det{\qopname\relax n{det}} +\def\dim{\qopname\relax{no}{dim}} +\def\exp{\qopname\relax{no}{exp}} +\def\gcd{\qopname\relax n{gcd}} +\def\hom{\qopname\relax{no}{hom}} +\def\inf{\qopname\relax n{inf}} +\def\injlim{\qopname\relax n{inj\,lim}} +\def\ker{\qopname\relax{no}{ker}} +\def\lg{\qopname\relax{no}{lg}} +\def\lim{\qopname\relax n{lim}} +\def\liminf{\qopname\relax n{lim\,inf}} +\def\limsup{\qopname\relax n{lim\,sup}} +\def\ln{\qopname\relax{no}{ln}} +\def\log{\qopname\relax{no}{log}} +\def\max{\qopname\relax n{max}} +\def\min{\qopname\relax n{min}} +\def\Pr{\qopname\relax n{Pr}} +\def\projlim{\qopname\relax n{proj\,lim}} +\def\sec{\qopname\relax{no}{sec}} +\def\sin{\qopname\relax{no}{sin}} +\def\sinh{\qopname\relax{no}{sinh}} +\def\sup{\qopname\relax n{sup}} +\def\tan{\qopname\relax{no}{tan}} +\def\tanh{\qopname\relax{no}{tanh}} +\def\operator@font{\mathgroup\symoperators} +\def\operatornamewithlimits{\operatorname*} +\def\varlim@#1#2{\mathop{\vtop{\ialign{##\crcr + \hfil$#1\m@th\operator@font lim$\hfil\crcr + \noalign{\nointerlineskip\kern\ex@}#2#1\crcr + \noalign{\nointerlineskip\kern-\ex@}\crcr}}}} +\def\varinjlim{\mathpalette\varlim@\rightarrowfill@} +\def\varprojlim{\mathpalette\varlim@\leftarrowfill@} +\def\varliminf{\mathpalette\varliminf@{}} +\def\varliminf@#1{\mathop{\@@underline{\vrule\@depth.2\ex@\@width\z@ + \hbox{$#1\m@th\operator@font lim$}}}} +\def\varlimsup{\mathpalette\varlimsup@{}} +\def\varlimsup@#1{\mathop{\@@overline + {\hbox{$#1\m@th\operator@font lim$}}}} +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +\def\numberwithin#1#2{\@ifundefined{c@#1}{\@nocounterr{#1}}{% + \@ifundefined{c@#2}{\@nocnterr{#2}}{% + \@addtoreset{#1}{#2}% + \toks@\expandafter\expandafter\expandafter{\csname the#1\endcsname}% + \expandafter\xdef\csname the#1\endcsname + {\expandafter\noexpand\csname the#2\endcsname + .\the\toks@}}}} +\def\eqref#1{\textup{\tagform@{\ref{#1}}}} +\def\bmod{\mskip-\medmuskip\mkern5mu\mathbin + {\operator@font mod}\penalty900 + \mkern5mu\mskip-\medmuskip} +\def\pod#1{\allowbreak\if@display\mkern18mu\else\mkern8mu\fi(#1)} +\def\pmod#1{\pod{{\operator@font mod}\mkern6mu#1}} +\def\mod#1{\allowbreak\if@display\mkern18mu + \else\mkern12mu\fi{\operator@font mod}\,\,#1} +\newcommand{\cfrac}[3][c]{{\displaystyle\frac{% + \strut\ifx r#1\hfill\fi#2\ifx l#1\hfill\fi}{#3}}% + \kern-\nulldelimiterspace} +\def\lcfrac{\cfrac[l]} +\def\rcfrac{\cfrac[r]} +\def\overset#1#2{\binrel@{#2}% + \binrel@@{\mathop{\kern\z@#2}\limits^{#1}}} +\def\underset#1#2{\binrel@{#2}% + \binrel@@{\mathop{\kern\z@#2}\limits_{#1}}} +\def\sideset#1#2#3{% + \setbox\z@\hbox{$\displaystyle{\vphantom{#3}}#1{#3}\m@th$}% + \setbox\tw@\hbox{$\displaystyle{#3}#2\m@th$}% + \hskip\wd\z@\hskip-\wd\tw@\mathop{\hskip\wd\tw@\hskip-\wd\z@ + {\vphantom{#3}}#1{#3}#2}} +\renewcommand{\smash}[2][tb]{% + \def\smash@{#1}% + \ifmmode\expandafter\mathpalette\expandafter\mathsm@sh\else + \expandafter\makesm@sh\fi{#2}} +\def\finsm@sh{\def\mb@t{\ht\z@\z@}\def\mb@b{\dp\z@\z@}% + \def\mb@tb{\mb@t\mb@b}% + {\csname mb@\smash@\endcsname}% + \leavevmode\boxz@} +\def\rightarrowfill@#1{\m@th\setboxz@h{$#1\relbar$}\ht\z@\z@ + $#1\copy\z@\mkern-6mu\cleaders + \hbox{$#1\mkern-2mu\box\z@\mkern-2mu$}\hfill + \mkern-6mu\mathord\rightarrow$} +\def\leftarrowfill@#1{\m@th\setboxz@h{$#1\relbar$}\ht\z@\z@ + $#1\mathord\leftarrow\mkern-6mu\cleaders + \hbox{$#1\mkern-2mu\copy\z@\mkern-2mu$}\hfill + \mkern-6mu\box\z@$} +\def\leftrightarrowfill@#1{\m@th\setboxz@h{$#1\relbar$}\ht\z@\z@ + $#1\mathord\leftarrow\mkern-6mu\cleaders + \hbox{$#1\mkern-2mu\box\z@\mkern-2mu$}\hfill + \mkern-6mu\mathord\rightarrow$} +\def\overarrow@#1#2#3{\vbox{\ialign{##\crcr#1#2\crcr + \noalign{\kern-\ex@\nointerlineskip}$\m@th\hfil#2#3\hfil$\crcr}}} +\def\overrightarrow{\mathpalette{\overarrow@\rightarrowfill@}} +\def\overleftarrow{\mathpalette{\overarrow@\leftarrowfill@}} +\def\overleftrightarrow{\mathpalette{\overarrow@\leftrightarrowfill@}} +\def\underarrow@#1#2#3{% + \vtop{\ialign{##\crcr$\m@th\hfil#2#3\hfil$\crcr + \noalign{\nointerlineskip\kern-.5\ex@}#1#2\crcr}}} +\def\underrightarrow{\mathpalette{\underarrow@\rightarrowfill@}} +\def\underleftarrow{\mathpalette{\underarrow@\leftarrowfill@}} +\def\underleftrightarrow{\mathpalette{\underarrow@\leftrightarrowfill@}} +\let\ifgtest@\iffalse % initial value +\def\gtest@true{\global\let\ifgtest@\iftrue} +\def\gtest@false{\global\let\ifgtest@\iffalse} +\let\DOTSI\relax +\let\DOTSB\relax +\let\DOTSX\relax +{\uccode`7=`\\ \uccode`8=`m \uccode`9=`a \uccode`0=`t \uccode`!=`h + \uppercase{% + \gdef\math@#1#2#3#4#5#6\math@{\gtest@false\ifx 7#1\ifx 8#2% + \ifx 9#3\ifx 0#4\ifx !#5\xdef\meaning@{#6}\gtest@true + \fi\fi\fi\fi\fi}}} +{\uccode`7=`c \uccode`8=`h \uccode`9=`\" + \uppercase{\gdef\mathch@#1#2#3#4#5#6\mathch@{\gtest@false + \ifx 7#1\ifx 8#2\ifx 9#5\gtest@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} +{\uccode`4=`b \uccode`5=`i \uccode`6=`n + \uppercase{\gdef\mathbin@#1#2#3{\relaxnext@ + \def\nextii@##1\mathbin@{\ifx\@sptoken\@let@token\gtest@true\fi}% + \gtest@false\DN@##1\mathbin@{}% + \ifx 4#1\ifx 5#2\ifx 6#3\DN@{\FN@\nextii@}\fi\fi\fi\next@}}} +{\uccode`4=`r \uccode`5=`e \uccode`6=`l + \uppercase{\gdef\mathrel@#1#2#3{\relaxnext@ + \def\nextii@##1\mathrel@{\ifx\@sptoken\@let@token\gtest@true\fi}% + \gtest@false\DN@##1\mathrel@{}% + \ifx 4#1\ifx 5#2\ifx 6#3\DN@{\FN@\nextii@}\fi\fi\fi\next@}}} +{\uccode`5=`m \uccode`6=`a \uccode`7=`c + \uppercase{\gdef\macro@#1#2#3#4\macro@{\gtest@false + \ifx 5#1\ifx 6#2\ifx 7#3\gtest@true + \xdef\meaning@{\macro@@#4\macro@@}\fi\fi\fi}}} +\def\macro@@#1->#2\macro@@{#2} +\newcount\DOTSCASE@ +{\uccode`6=`\\ \uccode`7=`D \uccode`8=`O \uccode`9=`T \uccode`0=`S + \uppercase{\gdef\DOTS@#1#2#3#4#5{\gtest@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@ + \def\nextii@##1\DOTS@{\ifx\@sptoken\@let@token\gtest@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@}}} +{\uccode`5=`\\ \uccode`6=`n \uccode`7=`o \uccode`8=`t + \uppercase{\gdef\not@#1#2#3#4{\relaxnext@ + \def\nextii@##1\not@{\ifx\@sptoken\@let@token\gtest@true\fi}% + \gtest@false\DN@##1\not@{}% + \ifx 5#1\ifx 6#2\ifx 7#3\ifx 8#4\DN@{\FN@\nextii@}\fi\fi\fi + \fi\next@}}} +\def\keybin@{\gtest@true + \ifx\@let@token+\else\ifx\@let@token=\else\ifx\@let@token<% + \else\ifx\@let@token>\else\ifx\@let@token-\else\ifx\@let@token*% + \else\ifx\@let@token:\else\gtest@false\fi\fi\fi\fi\fi\fi\fi} +\@ifundefined{@ldots}{\def\@ldots{\mathellipsis}}{} +\DeclareRobustCommand{\dots}{\relax + \csname\ifmmode m\else t\fi dots@\endcsname} +\def\tdots@{\leavevmode\unskip\relaxnext@ + \DN@{$\m@th\@ldots\, + \ifx\@let@token,\,$\else\ifx\@let@token.\,$\else\ifx\@let@token;\,$% + \else\ifx\@let@token:\,$\else\ifx\@let@token?\,$% + \else\ifx\@let@token!\,$\else$ \fi\fi\fi\fi\fi\fi}% + \ \FN@\next@} +\def\mdots@{\FN@\mdots@@} +\def\mdots@@{\gdef\thedots@{\dotso@}% + \ifx\@let@token\boldsymbol\gdef\thedots@\boldsymbol{\boldsymboldots@}% + \else\ifx,\@let@token\gdef\thedots@{\dotsc}% + \else\ifx\not\@let@token\gdef\thedots@{\dotsb@}% + \else\keybin@ + \ifgtest@\gdef\thedots@{\dotsb@}% + \else\xdef\meaning@{\meaning\@let@token..........}% + \xdef\meaning@@{\meaning@}% + \expandafter\math@\meaning@\math@ + \ifgtest@ + \expandafter\mathch@\meaning@\mathch@ + \ifgtest@\expandafter\getmathch@\meaning@\getmathch@\fi + \else\expandafter\macro@\meaning@@\macro@ + \ifgtest@ + \expandafter\not@\meaning@\not@\ifgtest@\gdef\thedots@{\dotsb@}% + \else\expandafter\DOTS@\meaning@\DOTS@ + \ifgtest@ + \ifcase\number\DOTSCASE@\gdef\thedots@{\dotsb@}% + \or\gdef\thedots@{\dotsi}\else\fi + \else\expandafter\math@\meaning@\math@ + \ifgtest@\expandafter\mathbin@\meaning@\mathbin@ + \ifgtest@\gdef\thedots@{\dotsb@}% + \else\expandafter\mathrel@\meaning@\mathrel@ + \ifgtest@\gdef\thedots@{\dotsb@}% + \fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi + \thedots@} +\def\boldsymboldots@#1{% + \bold@true\let\@let@token=#1\let\delayed@=#1\mdots@@ + \boldsymbol#1\bold@false} +\def\@cdots{\mathinner{\cdotp\cdotp\cdotp}} +\def\dotsi{\!\@cdots} +\let\dotsb@\@cdots +\def\rightdelim@{\gtest@true + \ifx\@let@token)\else + \ifx\@let@token]\else + \ifx\@let@token\rbrack\else + \ifx\@let@token\}\else + \ifx\@let@token\rbrace\else + \ifx\@let@token\rangle\else + \ifx\@let@token\rceil\else + \ifx\@let@token\rfloor\else + \ifx\@let@token\rgroup\else + \ifx\@let@token\rmoustache\else + \ifx\@let@token\right\else + \ifx\@let@token\bigr\else + \ifx\@let@token\biggr\else + \ifx\@let@token\Bigr\else + \ifx\@let@token\Biggr\else\gtest@false + \fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi} +\def\extra@{% + \rightdelim@\ifgtest@ + \else\ifx\@let@token$\gtest@true + \else\xdef\meaning@{\meaning\@let@token..........}% + \expandafter\macro@\meaning@\macro@\ifgtest@ + \expandafter\DOTS@\meaning@\DOTS@ + \ifgtest@ + \ifnum\DOTSCASE@=\tw@\gtest@true\else\gtest@false + \fi\fi\fi\fi\fi} +\newif\ifbold@ +\def\dotso@{\relaxnext@ + \ifbold@ + \let\@let@token\delayed@ + \def\nextii@{\extra@\@ldots\ifgtest@\,\fi}% + \else + \def\nextii@{\DN@{\extra@\@ldots\ifgtest@\,\fi}\FN@\next@}% + \fi + \nextii@} +\def\extrap@#1{% + \DN@{#1\,}% + \ifx\@let@token,\else + \ifx\@let@token;\else + \ifx\@let@token.\else\extra@ + \ifgtest@\else + \let\next@#1\fi\fi\fi\fi\next@} +\DeclareRobustCommand{\ldots}{\relax + \ifmmode \DN@{\extrap@\@ldots}% + \else \let\next@\tdots@\fi + \FN@\next@} +\DeclareRobustCommand{\cdots}{\DN@{\extrap@\@cdots}\FN@\next@} +\let\dotso\ldots +\let\dotsb\cdots +\let\dotsm\dotsb +\DeclareRobustCommand{\dotsc}{% + \DN@{\ifx\@let@token;\@ldots\,% + \else \ifx\@let@token.\@ldots\,% + \else \extra@\@ldots \ifgtest@\,\fi + \fi\fi}% + \FN@\next@} +\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\;} +\begingroup \catcode`\"=12 +\mathchardef\@tempa="7000 +\ifx\@tempa\Gamma + \DeclareMathSymbol{\Gamma}{\mathord}{operators}{"00} + \DeclareMathSymbol{\Delta}{\mathord}{operators}{"01} + \DeclareMathSymbol{\Theta}{\mathord}{operators}{"02} + \DeclareMathSymbol{\Lambda}{\mathord}{operators}{"03} + \DeclareMathSymbol{\Xi}{\mathord}{operators}{"04} + \DeclareMathSymbol{\Pi}{\mathord}{operators}{"05} + \DeclareMathSymbol{\Sigma}{\mathord}{operators}{"06} + \DeclareMathSymbol{\Upsilon}{\mathord}{operators}{"07} + \DeclareMathSymbol{\Phi}{\mathord}{operators}{"08} + \DeclareMathSymbol{\Psi}{\mathord}{operators}{"09} + \DeclareMathSymbol{\Omega}{\mathord}{operators}{"0A} + \DeclareMathSymbol{\varGamma}{\mathord}{letters}{"00} + \DeclareMathSymbol{\varDelta}{\mathord}{letters}{"01} + \DeclareMathSymbol{\varTheta}{\mathord}{letters}{"02} + \DeclareMathSymbol{\varLambda}{\mathord}{letters}{"03} + \DeclareMathSymbol{\varXi}{\mathord}{letters}{"04} + \DeclareMathSymbol{\varPi}{\mathord}{letters}{"05} + \DeclareMathSymbol{\varSigma}{\mathord}{letters}{"06} + \DeclareMathSymbol{\varUpsilon}{\mathord}{letters}{"07} + \DeclareMathSymbol{\varPhi}{\mathord}{letters}{"08} + \DeclareMathSymbol{\varPsi}{\mathord}{letters}{"09} + \DeclareMathSymbol{\varOmega}{\mathord}{letters}{"0A} +\fi +\endgroup +\def\accentclass@{7} +\def\noaccents@{\def\accentclass@{0}} +\DeclareFontEncoding{OML}{}{\noaccents@} +\DeclareFontEncoding{OMS}{}{\noaccents@} +\edef\@tempa#1#2{\def#1{\mathaccent\string"\noexpand\accentclass@#2 }} +\@tempa\hat{05E}\@tempa\check{014}\@tempa\tilde{07E}\@tempa\acute{013} +\@tempa\grave{012}\@tempa\dot{05F}\@tempa\ddot{07F}\@tempa\breve{015} +\@tempa\bar{016} +\newcount\skewcharcount@ +\newcount\familycount@ +\def\theskewchar@{\familycount@\@ne + \global\skewcharcount@\the\skewchar\textfont\@ne + \ifnum\mathgroup>\m@ne\ifnum\mathgroup<16 + \global\familycount@\the\mathgroup\relax + \global\skewcharcount@\the\skewchar\textfont\the\mathgroup\relax\fi\fi + \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} +\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\mathaccent@#1#2{\ifnum\mathgroup=\m@ne\xdef\thefam@{1}\else + \xdef\thefam@{\the\mathgroup}\fi + \accentdimen@\z@ + \setboxz@h{\unbracefonts@$\m@th\mathgroup\thefam@\relax#2$}% + \ifdim\accentdimen@=\z@\DN@{\mathaccent#1{#2}}% + \setbox\@ne\hbox{\unbracefonts@ + $\m@th\mathgroup\thefam@\relax#2\theskewchar@$} + \setbox\tw@\hbox{$\m@th\ifnum\skewcharcount@=\m@ne\else + \mathchar\skewcharcount@\fi$}% + \global\accentdimen@\wd\@ne\global\advance\accentdimen@-\wdz@ + \global\advance\accentdimen@-\wd\tw@ + \global\multiply\accentdimen@\tw@ + \dimentomu@\global\advance\accentmu@\@ne + \else\DN@{{\mathaccent#1{#2\mkern\accentmu@ mu}% + \mkern-\accentmu@ mu}{}}\fi + \next@} +\def\unbracefonts@{\let\math@bgroup\@empty\let\math@egroup\@empty} +\begingroup \catcode`\"=12 +\def\@tempa#1#2{\gdef#1{\RIfM@\DN@{\mathaccent@{"\accentclass@#2 }}% + \else\DN@{\nonmatherr@{#1}}\fi\next@}} +\@tempa\Hat{05E}\@tempa\Check{014}\@tempa\Tilde{07E}\@tempa\Acute{013} +\@tempa\Grave{012}\@tempa\Dot{05F}\@tempa\Ddot{07F}\@tempa\Breve{015} +\@tempa\Bar{016} +\gdef\Vec{\RIfM@\DN@{\mathaccent@{"017E }}\else + \DN@{\nonmatherr@\Vec}\fi\next@} +\endgroup +\begingroup \catcode`\"=12 +\gdef\@@sqrt#1{\radical"270370 {#1}} +\endgroup +\@saveprimitive\overline\@@overline +\def\overline#1{\@@overline{#1}} +\def\boxed#1{\fbox{\m@th$\displaystyle#1$}} +\def\setb@ck{\iffirstchoice@\global\advance\c@equation\m@ne\fi} +\newcount\dspbrk@lvl +\dspbrk@lvl=-1 +\interdisplaylinepenalty\@M +\def\allowdisplaybreaks{% + \new@ifnextchar[\allowdspbrks@{\allowdspbrks@[4]}} +\def\allowdspbrks@[#1]{% + \interdisplaylinepenalty\getdsp@pen{#1}} +\def\getdsp@pen#1{% + \ifcase #1\relax \@M + \or 9999 + \or 6999 + \or 2999 + \or \z@\fi} +\def\displaybreak{\PackageError{amstex}{\Invalid@@\displaybreak}\@eha} +\def\displaybreak@{% + \def\displaybreak{\new@ifnextchar[\dspbrk@{\dspbrk@[4]}}} +\def\dspbrk@[#1]{\global\dspbrk@lvl #1\relax} +\def\math@cr{{\ifnum0=`}\fi + \new@ifstar{\global\@eqpen\@M\math@cr@}% + {\global\@eqpen + \ifnum\dspbrk@lvl <\z@ \interdisplaylinepenalty + \else -\@getpen\dspbrk@lvl \fi + \math@cr@}} +\def\math@cr@{\new@ifnextchar[\math@cr@@{\math@cr@@[\z@]}} +\def\math@cr@@[#1]{\ifnum0=`{\fi}\math@cr@@@ + \noalign{\vskip#1\relax}} +\def\Let@{\let\\\math@cr} +\def\restore@math@cr{\def\math@cr@@@{\cr}} +\restore@math@cr +\def\intertext{\PackageError{amstex}{\Invalid@@\intertext}\@eha} +\def\intertext@{\def\intertext##1{\noalign{% + \penalty\postdisplaypenalty\vskip\belowdisplayskip + \vbox{\normalbaselines\noindent##1}% + \penalty\predisplaypenalty\vskip\abovedisplayskip}}} +\newhelp\tag@help + {tag cannot be used at this point.\space + If you don't understand why^^Jyou should consult + the documentation.^^JBut don't worry: just continue, and I'll + forget what happened.} +\def\gobble@tag{\new@ifstar\@gobble\@gobble} +\def\invalid@tag#1{\PackageError{amstex}{#1}{\the\tag@help}\gobble@tag} +\def\dft@tag{\invalid@tag{\string\tag\space not allowed here}} +\def\default@tag{\let\tag\dft@tag} +\default@tag +\def\maketag@@{\new@ifstar\maketag@@@\tagform@} +\def\maketag@@@#1{\hbox{\m@th\normalfont#1}} +\def\tagform@#1{\maketag@@@{(\ignorespaces#1\unskip)}} +\def\thetag{\leavevmode\tagform@} +\def\make@df@tag{\new@ifstar\make@df@tag@@\make@df@tag@@@} +\def\make@df@tag@@#1{% + \def\@currentlabel{#1}% + \gdef\df@tag{\maketag@@@{#1}}} +\def\make@df@tag@@@#1{\@seteqlabel{#1}\gdef\df@tag{\tagform@{#1}}} +\def\@seteqlabel#1{\toks@\@xp{\p@equation{#1}}% + \edef\@currentlabel{\the\toks@}} +\def\notag{\nonumber} +\iftagsleft@ +\def\@eqnnum{\hbox to1sp{}\rlap{\normalfont + \hskip -\displaywidth\tagform@\theequation}} +\fi + +\let\@adjusttag\@empty + +\def\adjusttag#1{\skip@#1\relax\gdef\@adjusttag{#1}} + +\def\@movetag{% + \ifx\@adjusttag\@empty \else + \vskip\@adjusttag\relax + \global\let\@adjusttag\@empty + \fi +} +\def\multilimits@{\bgroup + \Let@ + \restore@math@cr + \default@tag + \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\Sp{^\multilimits@} +\def\endSb{\crcr\egroup\egroup\egroup} +\let\endSp=\endSb +\def\smallmatrix{\null\,\vcenter\bgroup + \Let@\restore@math@cr\default@tag + \baselineskip6\ex@ \lineskip1.5\ex@ \lineskiplimit\lineskip + \ialign\bgroup\hfil$\m@th\scriptstyle{##}$\hfil&&\thickspace\hfil + $\m@th\scriptstyle{##}$\hfil\crcr} +\def\endsmallmatrix{\crcr\egroup\egroup\,} +\newcount\c@MaxMatrixCols +\c@MaxMatrixCols=10 + +\def\matrix{\hskip -\arraycolsep\array{*\c@MaxMatrixCols c}} +\def\endmatrix{\endarray \hskip -\arraycolsep} +\@ifundefined{prepnext@tok}{% + \def\@array[#1]#2{% + \setbox\@arstrutbox\hbox{\vrule\@height\arraystretch\ht\strutbox + \@depth\arraystretch\dp\strutbox \@width\z@}% + \@mkpream{#2}\edef\@preamble{\ialign \noexpand\@halignto + \bgroup \tabskip\z@ \@arstrut \@preamble \tabskip\z@ \cr}% + \let\@startpbox\@@startpbox \let\@endpbox\@@endpbox + \if #1t\vtop \else \if#1b\vbox \else \vcenter \fi\fi + \bgroup \let\par\@empty + \let\@sharp##\let\protect\relax + \lineskip\z@\baselineskip\z@\@preamble}% +\begingroup \lccode`\~=`\@ \catcode`\~=\active % just to be sure! +\lowercase{% +\gdef\@xexpast#1*#2#3#4\@@{\begingroup + \def~{@}\edef\reserved@a{#1}\@tempcnta#2\relax + \ifnum\@tempcnta >\z@ + \@whilenum\@tempcnta >\z@\do + {\edef\reserved@a{\reserved@a#3}\advance\@tempcnta \m@ne}% + \let\reserved@b\@xexpast + \else \let\reserved@b\@xexnoop\fi + \expandafter\reserved@b \reserved@a #4\@@ + \expandafter\endgroup + \expandafter\def\expandafter\reserved@a\expandafter{\reserved@a}% + \let\@tempa\reserved@a +}% End of \@xexpast +}% End of \lowercase +\endgroup +}{}% End of \@ifundefined test. +\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\|} +\let\hdots\@ldots +\def\hdotsfor#1{\if\noexpand#1[\expandafter\shdots@for\else + \hdots@for\@ne{#1}\fi} +\newmuskip\dotsspace@ +\def\shdots@for#1]{\hdots@for{#1}} +\def\hdots@for#1#2{\multicolumn{#2}c% + {\m@th\dotsspace@1.5mu\mkern-#1\dotsspace@ + \xleaders\hbox{$\m@th\mkern#1\dotsspace@.\mkern#1\dotsspace@$}% + \hfill + \mkern-#1\dotsspace@}% + } +\def\cases{\left\{\def\arraystretch{1.2}\hskip-\arraycolsep + \array{l@{\quad}l}} +\def\endcases{\endarray\hskip-\arraycolsep\right.} +\newif\ifinany@ +\newif\ifinalign@ +\newif\ifingather@ +\newcount\and@ +\newif\iftag@ +\newhelp\andhelp@ +{An extra & here is so disastrous that you should probably exit^^J +and fix things up.} +\newif\ifst@rred +\newtoks\@envbody +\def\addto@envbody#1{\@envbody\expandafter{\the\@envbody#1}} +\def\collect@body#1{% + \@envbody{}% + \def\process@envbody{% + \expandafter#1\expandafter{\the\@envbody}}% + \expandafter\let\csname\@currenvir\endcsname\collect@@body + \csname\@currenvir\endcsname} +\def\collect@@body#1\end#2{% + \def\@tempa{#2}% + \ifx\@tempa\@currenvir + \addto@envbody{#1}% + \expandafter\edef\csname\@currenvir\endcsname + {\noexpand\process@envbody\noexpand\end{\@tempa}}% + \else + \addto@envbody{#1\end{#2}}% + \fi + \csname\@currenvir\endcsname} +\newenvironment{aligned}{% + \relax\ifmmode\else\nonmatherr@{\begin{aligned}}\fi + \null\,\new@ifnextchar[{\aligned@}{\aligned@[c]}% +}{% + \crcr\egroup\egroup +} +\def\aligned@[#1]{% + \if #1t\vtop \else \if#1b\vbox \else \vcenter \fi\fi + \bgroup + \Let@\restore@math@cr + \default@tag + \ifinany@\else\openup\jot\fi + \ialign\bgroup\hfil\strut@$\m@th\displaystyle{##}$&% + $\m@th\displaystyle{{}##}$\hfil\crcr} +\newtoks\hashtoks@ +\hashtoks@{#} +\newcount\atcount@ +\def\doat@#1{\toks@{\hfil\strut@$\m@th + \displaystyle{\the\hashtoks@}$&$\m@th\displaystyle + {{}\the\hashtoks@}$\hfil}% + \atcount@#1\relax\advance\atcount@\m@ne + \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 + \xdef\preamble@{\the\toks@}\xdef\preamble@@{\preamble@}} +\newenvironment{alignedat}[2][c]{% + \null\,% + \if #1t\vtop \else \if#1b\vbox \else \vcenter \fi\fi + \bgroup\doat@{#2}\Let@ \restore@math@cr\default@tag + \ifinany@\else\openup\jot\fi\ialign\bgroup\span\preamble@@\crcr +}{% + \endaligned +} +\newenvironment{gathered}[1][c]{% + \relax\ifmmode\else\nonmatherr@{\begin{gathered}}\fi + \null\,% + \if #1t\vtop \else \if#1b\vbox \else \vcenter \fi\fi + \bgroup\Let@\restore@math@cr + \ifinany@\else\openup\jot\fi\ialign + \bgroup\hfil\strut@$\m@th\displaystyle##$\hfil\crcr +}{% + \endaligned +} +\def\tag@in@align{\relax + \iftag@\DN@{\invalid@tag{Multiple \string\tag}}\else + \global\tag@true + \if@eqnsw\global\@eqnswfalse\fi + \let\next@\make@df@tag\fi + \next@} +\def\math@cr@@@align{% + \if@eqnsw\global\tag@true\fi + \iftag@ + \ifcase\and@ + \DN@{&&}\else + \DN@{&}\fi\else + \let\next@\relax\fi + \next@ + \relax + \if@eqnsw\tagform@\theequation\stepcounter{equation}\else + \iftag@\df@tag\fi\fi + \global\@eqnswtrue\cr} +\def\Tag@{\relax\iftag@\else\firstchoice@true + \PackageError{amstex}{% + Extra & on this line% + }{\the\andhelp@% "An extra & here is disastrous" +}\fi} +\newdimen\lwidth@ +\newdimen\rwidth@ +\newdimen\maxlwidth@ +\newdimen\maxrwidth@ +\newdimen\totwidth@ +\def\measure@#1{\lwidth@\z@\rwidth@\z@\maxlwidth@\z@\maxrwidth@\z@ + \global\and@\z@ + \setbox\@ne\vbox{% + \everycr{\noalign{\global\tag@false\global\and@\z@}}\Let@ + \let\tag\gobble@tag + \let\notag\@empty \let\nonumber\@empty + \firstchoice@false + \halign{\setboxz@h{$\m@th\displaystyle{\@lign##}$}% + \global\lwidth@\wdz@ + \ifdim\lwidth@>\maxlwidth@\global\maxlwidth@\lwidth@\fi + \global\advance\and@\@ne + &\setboxz@h{$\m@th\displaystyle{{}\@lign##}$}% + \global\rwidth@\wdz@ + \ifdim\rwidth@>\maxrwidth@\global\maxrwidth@\rwidth@\fi + \global\advance\and@\@ne + &\Tag@\@gobble{##}\crcr#1\crcr}}% + \totwidth@\maxlwidth@\advance\totwidth@\maxrwidth@} +\def\displ@y{\global\dt@ptrue\openup\jot\m@th + \everycr{\noalign{\ifdt@p \global\dt@pfalse + \vskip-\lineskiplimit \vskip\normallineskiplimit + \else \penalty\@eqpen \fi}}} +\def\displ@y@{\global\dt@ptrue\openup\jot + \everycr{\noalign{\global\tag@false + \global\and@\z@ + \global\dspbrk@lvl\m@ne + \ifdt@p\global\dt@pfalse + \vskip-\lineskiplimit\vskip\normallineskiplimit\else + \penalty\@eqpen\fi}}} +\def\black@#1{\noalign{\ifdim#1>\displaywidth + \dimen@\prevdepth\nointerlineskip + \vskip-\ht\strutbox@\vskip-\dp\strutbox@ + \vbox{\noindent\hbox to#1{\strut@\hfill}}% + \prevdepth\dimen@ + \fi}} +\def\align{\ifingather@ + {\ifnum0=`}\fi + \DN@{\@nameuse{align (in \string\gather)}}% + \else \ifmmode\nomath@env + \DN@{\let\endalign\relax\@gobble}\else + $$\stepcounter{equation}% + \st@rredfalse\let\next@\align@\fi\fi + \collect@body\next@} +\@namedef{align*}{\ifingather@ + {\ifnum0=`}\fi + \DN@{\@nameuse{align* (in \string\gather)}}\else + \ifmmode\nomath@env + \DN@{\@namedef{endalign*}{}\@gobble}\else + $$\st@rredtrue + \let\next@\align@\fi\fi + \collect@body\next@} +\newdimen\lineht@ +\def\align@{\inalign@true\inany@true + \displaybreak@\intertext@ + \let\math@cr@@@\math@cr@@@align + \let\tag\tag@in@align + \global\and@\z@\global\dspbrk@lvl\m@ne + \iftagsleft@\DN@{\@nameuse{align }}\else + \DN@{\@nameuse{align \space}}\fi\next@} +\@namedef{align }#1{% + \measure@{#1}% + \global\and@\z@ + \global\dspbrk@lvl\m@ne + \if@fleqn %%*F + \advance\totwidth@\@mathmargin %%*F + \fi %%*F + \ifdim\totwidth@>\displaywidth + \let\displaywidth@\totwidth@ + \else + \let\displaywidth@\displaywidth + \fi + \ifingather@ + \everycr{% + \noalign{% + \global\and@\z@ + \global\dspbrk@lvl\m@ne + }% + }% + \else + \displ@y@ + \fi + \Let@ + \ifst@rred\else\@seteqlabel\theequation\fi + \tabskip\@mathmargin %%*F + \dimen@\displaywidth %%*F + \if@fleqn %%*F + \ifingather@ %%*F + \tabskip\z@skip %%*F + \advance\dimen@-\@mathmargin %%*F + \fi %%*F + \fi %%*F + \halign to\dimen@\bgroup %%*F + \ifst@rred\nonumber\fi + \hfil + \strut@ + \setboxz@h{\global\tag@false$\m@th\displaystyle{\@lign##}$}% + \global\lwidth@\wdz@ + \global\lineht@\ht\z@ + \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 + \boxz@ + \hfil + \global\advance\and@\@ne + \tabskip\@centering + &\kern-\displaywidth@ + \setboxz@h{\@lign\strut@{##}}% + \if@fleqn %%*F + \dimen@\@mathmargin %%*F + \advance\dimen@\maxlwidth@ %%*F + \advance\dimen@-\lwidth@ %%*F + \else %%*F + \dimen@\displaywidth + \advance\dimen@-\totwidth@ + \divide\dimen@\tw@ + \advance\dimen@\maxlwidth@ + \advance\dimen@-\lwidth@ + \fi %%*F + \ifdim\dimen@<\tw@\wdz@ + \rlap{\vbox{\normalbaselines\boxz@\vbox to\lineht@{}}}% + \else + \rlap{\boxz@}% + \fi + \tabskip\displaywidth@ + \crcr + #1% +} +\@namedef{align \space}#1{% + \measure@{#1}% + \if@fleqn %%*F + \advance\totwidth@\@mathmargin %%*F + \fi %%*F + \global\and@\z@ + \global\dspbrk@lvl\m@ne + \ifingather@ + \everycr{\noalign{\global\and@\z@\global\dspbrk@lvl\m@ne}}% + \else + \displ@y@ + \fi + \Let@ + \ifst@rred\else\@seteqlabel\theequation\fi + \tabskip\@mathmargin %%*F + \dimen@\displaywidth %%*F + \if@fleqn %%* + \ifingather@ %%*F + \tabskip\z@skip %%*F + \advance\dimen@-\@mathmargin %%*F + \fi %%*F + \fi %%*F + \halign to\dimen@\bgroup %%*F + \ifst@rred\nonumber\fi + \hfil + \strut@ + \setboxz@h{\global\tag@false$\m@th\displaystyle{\@lign##}$}% + \global\lwidth@\wdz@\boxz@ + \global\advance\and@\@ne + \tabskip\z@skip + &\setboxz@h{$\m@th\displaystyle{{}\@lign##}$}% + \global\rwidth@\wdz@ + \boxz@ + \hfill + \global\advance\and@\@ne + \tabskip\@centering + &\setboxz@h{\@lign\strut@{##}}% + \dimen@\displaywidth + \advance\dimen@-\totwidth@ + \divide\dimen@\tw@ + \advance\dimen@\maxrwidth@ + \advance\dimen@-\rwidth@ + \ifdim\dimen@<\tw@\wdz@ + \llap{\vtop{\@movetag\normalbaselines\null\boxz@}}%%*T + \else + \llap{\boxz@}% + \fi + \tabskip\z@skip + \crcr#1% +} +\def\endalign{\math@cr@@@align + \black@\totwidth@ + \egroup$$\global\@ignoretrue\setb@ck} + +\@namedef{endalign*}{\math@cr@@@align\black@\totwidth@ + \egroup$$\global\@ignoretrue} +\@namedef{align (in \string\gather)}{% + \ifst@rred\stepcounter{equation}\fi + \def\endalign{\@nameuse{endalign (in \string\gather)}\ifnum0=`{\fi}}% + \vcenter\bgroup\st@rredfalse + \collect@body\align@} +\@namedef{endalign (in \string\gather)}{% + \math@cr@@@align\black@\totwidth@ + \egroup\egroup + \ifst@rred\setb@ck\fi% this ifst@rred is set by the enclosing gather + \global\tag@false\global\@eqnswfalse} +\@namedef{align* (in \string\gather)}{% + \@namedef{endalign*}{\@nameuse{endalign* (in \string\gather)}% + \ifnum0=`{\fi}}% + \vcenter\bgroup\st@rredtrue + \collect@body\align@} +\@namedef{endalign* (in \string\gather)}{% + \math@cr@@@align\black@\totwidth@\egroup\egroup + \global\tag@false\global\@eqnswfalse} +\newif\ifxat@ +\def\alignat#1{% + \ifmmode\nomath@env\DN@{\let\endalignat\relax\@gobble}\else$$% + \st@rredfalse\stepcounter{equation}\@seteqlabel\theequation + \DN@{\@nameuse{alignat }#1}\fi + \collect@body\next@} +\@namedef{alignat*}#1{% + \ifmmode\nomath@env\DN@{\@namedef{endalignat*}{}\@gobble}\else$$% + \st@rredtrue + \DN@{\@nameuse{alignat }#1}\fi + \collect@body\next@} +\newif\ifmeasuring@ +\newbox\savealignat@ +\def\math@cr@@@alignat{% + \if@eqnsw\global\tag@true\fi + \iftag@ + \multiply\count@\tw@ + \xdef\next@{}\loop\ifnum\count@>\and@\xdef\next@{&\next@}% + \advance\count@\m@ne\repeat\else + \let\next@\relax\fi + \next@ + \relax + \if@eqnsw\tagform@\theequation\stepcounter{equation}\else + \iftag@\df@tag\fi\fi + \global\@eqnswtrue\cr}% +\@namedef{alignat }#1#2{% + \inany@true + \xat@false + \let\tag\tag@in@align + \def\math@cr@@@{\count@#1\relax \math@cr@@@alignat}% + \displaybreak@ + \intertext@ + \displ@y@ + \ifst@rred + \global\@eqnswfalse + \else + \global\@eqnswtrue + \fi + \measuring@true + \setbox\savealignat@\hbox{% + $\m@th\displaystyle\Let@ + \attag@{#1}% + \vbox{\firstchoice@false\halign{\span\preamble@@\crcr#2\crcr}}$% + }% + \measuring@false + \Let@ + \attag@{#1}% + \tabskip\@mathmargin %%*F + \halign to\displaywidth\bgroup + \span\preamble@@\crcr + #2% +} +\def\endalignat{\math@cr@@@\black@{\wd\savealignat@}% + \egroup\setb@ck$$\global\@ignoretrue} +\@namedef{endalignat*}{\math@cr@@@\black@{\wd\savealignat@}\egroup + $$\global\@ignoretrue} +\def\xalignat#1{% + \ifmmode\nomath@env\DN@{\let\endxalignat\relax\@gobble}\else$$% + \st@rredfalse\stepcounter{equation}\@seteqlabel\theequation + \DN@{\@nameuse{xalignat }#1}\fi + \collect@body\next@} +\@namedef{xalignat*}#1{% + \ifmmode\nomath@env\DN@{\@namedef{endxalignat*}{}\@gobble}\else$$% + \st@rredtrue + \DN@{\@nameuse{xalignat }#1}\fi + \collect@body\next@} +\let\endxalignat=\endalignat + +\expandafter\let\csname endxalignat*\expandafter + \endcsname\csname endalignat*\endcsname +\@namedef{xalignat }#1#2{% + \inany@true + \xat@true + \let\tag\tag@in@align + \def\math@cr@@@{\count@#1\relax\math@cr@@@alignat}% + \displaybreak@ + \intertext@ + \displ@y@ + \measuring@true + \setbox\savealignat@\hbox{% + $\m@th\displaystyle\Let@ + \attag@{#1}% + \vbox{% + \firstchoice@false + \halign{\span\preamble@@\crcr#2\crcr}% + }% + $% + }% + \measuring@false + \Let@ + \attag@{#1}% + \tabskip\@mathmargin %%*F + \halign to\displaywidth\bgroup + \span\preamble@@\crcr#2% +} +\def\attag@#1{% + \let\TAG@\Tag@\let\Tag@0% + \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 + \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}% + \iftagsleft@ + \@temptokena{\tabskip\@centering&\Tag@\kern-\displaywidth + \rlap@{\@lign + \the\hashtoks@ + }% + \global\advance\and@\@ne\tabskip\displaywidth}\else + \@temptokena{\tabskip\@centering&\Tag@\llap@{\@lign + \the\hashtoks@ + }\global\advance\and@\@ne\tabskip\z@skip}\fi + \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 + \xdef\preamble@{\the\toks@\the\@temptokena}% + \xdef\preamble@@{\ifst@rred\noexpand\nonumber\fi\preamble@}% + \let\Tag@\TAG@} +\def\xxalignat#1{% + \ifmmode\nomath@env\DN@{\let\endxxalignat\relax\@gobble}\else$$% + \DN@{\@nameuse{xxalignat }#1}\fi + \collect@body\next@} +\@namedef{xxalignat }#1#2{\inany@true + \displaybreak@\intertext@ + \displ@y\setbox\savealignat@\hbox{$\m@th\displaystyle\Let@ + \xxattag@{#1}% + \vbox{\firstchoice@false\halign{\span\preamble@@\crcr#2\crcr}}$}% + \Let@\xxattag@{#1}\tabskip\z@skip\halign to\displaywidth\bgroup + \span\preamble@@\crcr#2} +\expandafter\let\expandafter\endxxalignat\csname endxalignat*\endcsname +\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@}} +\newdimen\gwidth@ +\newdimen\gmaxwidth@ +\def\gmeasure@#1{\gwidth@\z@\gmaxwidth@\z@\setbox\@ne\vbox{\Let@ + \firstchoice@false\let\tag\gobble@tag + \halign{\setboxz@h{$\m@th\displaystyle{##}$}\global\gwidth@\wdz@ + \ifdim\gwidth@>\gmaxwidth@\global\gmaxwidth@\gwidth@\fi + &\@gobble{##}\crcr#1\crcr}}} +\def\math@cr@@@gather{% + \if@eqnsw\global\tag@true\fi + \iftag@ + \DN@{&\relax \if@eqnsw + \tagform@\theequation \stepcounter{equation}% + \else\iftag@\df@tag\fi\fi}% + \else + \expandafter\@gobble\fi + \next@ + \global\@eqnswtrue\cr} +\def\gather{% + \ifmmode\nomath@env\DN@{\let\endgather\relax\@gobble}\else $$% + \ingather@true\inany@true + \stepcounter{equation}% + \let\tag\tag@in@align\st@rredfalse + \displaybreak@\intertext@ + \displ@y + \Let@\@seteqlabel\theequation + \let\math@cr@@@\math@cr@@@gather + \iftagsleft@\DN@{\@nameuse{gather }}\else + \DN@{\@nameuse{gather \space}}\fi\fi + \collect@body\next@} +\@namedef{gather*}{% + \ifmmode\nomath@env\DN@{\@namedef{endgather*}{}\@gobble}\else $$% + \ingather@true\inany@true + \let\tag\tag@in@align\st@rredtrue + \displaybreak@\intertext@ + \displ@y\Let@ + \let\math@cr@@@\math@cr@@@gather + \iftagsleft@\DN@{\@nameuse{gather }}\else + \DN@{\@nameuse{gather \space}}\fi\fi + \collect@body\next@} +\newdimen\glineht@ +\@namedef{gather \space}#1{% + \gmeasure@{#1}% + \if@fleqn %%*F + \advance\gmaxwidth@\@mathmargin %%*F + \fi %%*F + \global\dt@ptrue + \tabskip\@mathmargin %%*F + \halign to\displaywidth\bgroup + \ifst@rred\nonumber\else\global\@eqnswtrue\fi + \if@fleqn\else\hfil\fi %%*F + \strut@ + \setboxz@h{\global\tag@false$\m@th\displaystyle{##}$}% + \global\gwidth@\wdz@\boxz@ + \hfil + \tabskip\@centering %%*F + &\setboxz@h{\strut@{##}}% + \dimen@\displaywidth + \advance\dimen@-\gwidth@ + \if@fleqn %%*F + \advance\dimen@-\@mathmargin %%*F + \else %%*F + \divide\dimen@\tw@ %%*B + \fi %%*F + \ifdim\dimen@<\tw@\wdz@ %%* + \llap{\vtop{\@movetag\normalbaselines\null\boxz@}}%%*T %%* + \else + \llap{\boxz@}% %%* + \fi + \tabskip\z@skip + \crcr + #1% +} +\def\endgather{\math@cr + \black@\gmaxwidth@\egroup $$\setb@ck\global\@ignoretrue} + +\@namedef{endgather*}{\math@cr + \black@\gmaxwidth@\egroup $$\global\@ignoretrue} +\@namedef{gather }#1{% + \gmeasure@{#1}% + \global\dt@ptrue + \if@fleqn %%*F + \advance\gmaxwidth@\@mathmargin %%*F + \fi %%*F + \ifdim\gmaxwidth@>\displaywidth + \let\gdisplaywidth@\gmaxwidth@ + \else + \let\gdisplaywidth@\displaywidth + \fi + \tabskip\@mathmargin %%*F + \halign to\displaywidth\bgroup + \ifst@rred\nonumber\else\global\@eqnswtrue\fi + \if@fleqn\else\hfil\fi %%*F + \strut@ + \setboxz@h{\global\tag@false$\m@th\displaystyle{##}$}% + \global\gwidth@\wdz@ + \global\glineht@\ht\z@ + \boxz@ + \hfil + \tabskip\@centering %%*F + &\kern-\gdisplaywidth@ + \setboxz@h{\strut@{##}}% + \if@fleqn %%*F + \dimen@\@mathmargin %%*F + \else %%*F + \dimen@\displaywidth + \advance\dimen@-\gwidth@ + \divide\dimen@\tw@ %%*B + \fi %%*F + \ifdim\dimen@<\tw@\wdz@ %%* + \rlap{\vbox{\normalbaselines\boxz@\vbox to\glineht@{}}}% %%* + \else + \rlap{\boxz@}% %%* + \fi + \tabskip\gdisplaywidth@ + \crcr + #1% +} +\def\split{% + \ifinany@\let\next@\insplit@\else + \DN@{\PackageError{amstex}{\string\begin{split} is not allowed + here. Try the `aligned' environment.}\@ehb}\fi + \next@} +\def\insplit@{\global\setbox\z@\vbox\bgroup + \Let@ \restore@math@cr \default@tag % disallow use of \tag here + \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}% + \setbox\@ne\hbox{\unhcopy8 \unskip\global\setbox\tw@\lastbox + \unskip\global\setbox\thr@@\lastbox}% + \global\setbox7 \hbox{\unhbox\tw@\unskip}% + \ifinalign@\ifctagsplit@ + \gdef\split@{\hbox to\wd\thr@@{}& + \vcenter{\vbox{\moveleft\wd\thr@@\boxz@}}}% + \else\gdef\split@{&\vbox{\moveleft\wd\thr@@\box9}\crcr + \box\thr@@&\box7}\fi + \else + \ifctagsplit@\gdef\split@{\vcenter{\boxz@}}\else + \gdef\split@{\box9\crcr\hbox{\box\thr@@\box7}}\fi + \fi + \aftergroup\split@} +\def\lendsplit@{\global\setbox9\vtop{\unvcopy\z@}% + \setbox\@ne\vbox{\unvcopy\z@\global\setbox8\lastbox}% + \setbox\@ne\hbox{\unhcopy8\unskip\setbox\tw@\lastbox + \unskip\global\setbox\thr@@\lastbox}% + \ifinalign@\ifctagsplit@ + \gdef\split@{\hbox to\wd\thr@@{}& + \vcenter{\vbox{\moveleft\wd\thr@@\box9}}}% + \else + \gdef\split@{\hbox to\wd\thr@@{}&\vbox{\moveleft\wd\thr@@\box9}}\fi + \else + \ifctagsplit@\gdef\split@{\vcenter{\box9}}\else + \gdef\split@{\box9}\fi + \fi\aftergroup\split@} +\newdimen\multlinegap +\multlinegap10pt +\newdimen\multlinetaggap@ +\multlinetaggap@10pt +\def\multline{% + \ifmmode\nomath@env\DN@{\let\endmultline\relax\@gobble}% + \else $$\DN@{\collect@body\multline@}\fi + \st@rredfalse\@eqnswtrue \@seteqlabel\theequation + \stepcounter{equation}\next@} +\@namedef{multline*}{% + \ifmmode\nomath@env\DN@{\@namedef{endmultline*}{}\@gobble}% + \else $$\DN@{\collect@body\multline@}\fi + \st@rredtrue\@eqnswfalse \let\@currentlabel\@empty + \next@} +\def\multline@{\inany@true\displaybreak@ + \global\tag@false + \def\tag{\ifst@rred\else + \global\advance\c@equation\m@ne\fi\tag@in@align}% + \iftagsleft@ + \expandafter\lmultline@@\else + \expandafter\rmultline@@\fi} +\newdimen\mwidth@ +\def\rmmeasure@#1{% + \def\shoveleft##1{##1}\def\shoveright##1{##1}% + \setbox\@ne\vbox{\firstchoice@false\Let@\halign{\setboxz@h + {$\m@th\@lign\displaystyle{}##$}\global\mwidth@\wdz@ + \crcr#1\crcr}}} +\newdimen\mlineht@ +\newif\ifzerocr@ +\newif\ifonecr@ +\def\lmmeasure@#1{\global\zerocr@true\global\onecr@false + \everycr{\noalign{\ifonecr@\global\onecr@false\fi + \ifzerocr@\global\zerocr@false\global\onecr@true\fi}}% + \def\shoveleft##1{##1}\def\shoveright##1{##1}% + \setbox\@ne\vbox{\Let@\firstchoice@false\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\lmultline@@#1{% + \lmmeasure@{#1}% + \setbox\mtagbox@\hbox{% + \iftag@ + \df@tag + \else + \if@eqnsw + \global\tag@true + \tagform@\theequation + \fi + \fi + }% + \dimen@\mwidth@ + \advance\dimen@\wd\mtagbox@ + \advance\dimen@\multlinetaggap@ + \if@fleqn %%*F + \advance\dimen@\@mathmargin %%*F + \fi %%*F + \ifdim\dimen@>\displaywidth + \ltwidth@\z@ + \else + \ltwidth@\wd\mtagbox@ + \fi + \lmultline@@@#1 +} +\def\lmultline@@@{% + \displ@y + \def\shoveright##1{##1\hfilneg\hskip\multlinegap}% + \if@fleqn %%*F + \def\shoveleft##1{##1}% %%*F + \else %%*F + \def\shoveleft##1{% + \setboxz@h{$\m@th\displaystyle{}##1$}% + \setbox\@ne\hbox{$\m@th\displaystyle##1$}% + \hfilneg + \iftag@ + \ifdim\ltwidth@>\z@ + \hskip\ltwidth@ + \hskip\multlinetaggap@ + \fi + \else + \hskip\multlinegap + \fi + \hskip.5\wd\@ne + \hskip-.5\wdz@##1% + }% + \fi %%*F + \if@fleqn %%*F + \tabskip\@mathmargin %%*F + \else %%*F + \tabskip\z@skip %%* + \fi %%*F + \totwidth@\displaywidth %%*F + \if@fleqn %%*F + \advance\totwidth@-\@mathmargin %%*F + \fi %%*F + \halign\bgroup + \Let@ + \let\tag\gobble@tag + \hbox to\totwidth@{% %%*F + \strut@$\m@th\displaystyle + \if@fleqn %%*F + \hskip 0pt plus 1000pt %%*F + \else %%*F + \hfil + \fi %%*F + {}##\hfil$% + }% + \crcr + \if@fleqn %%*F + \hskip-\@mathmargin %%*F + \else %%*F + \hfilneg + \fi %%*F + \iftag@ + \ifdim\ltwidth@>\z@ + \box\mtagbox@ + \hskip\multlinetaggap@ + \else + \rlap{% + \vbox{% + \normalbaselines + \hbox{\strut@\box\mtagbox@}% + \vbox to\mlineht@{}% + }% + }% + \hskip\multlinegap %%* + \fi + \else + \hskip\multlinegap + \fi +} +\def\rmultline@@#1{% + \rmmeasure@{#1}% + \setbox\mtagbox@\hbox{% + \iftag@ + \df@tag + \else + \if@eqnsw + \global\tag@true + \tagform@\theequation + \fi + \fi + }% + \dimen@\mwidth@ + \advance\dimen@\wd\mtagbox@ + \advance\dimen@\multlinetaggap@ + \if@fleqn %%*F + \advance\dimen@\@mathmargin %%*F + \fi %%*F + \ifdim\dimen@>\displaywidth + \rtwidth@\z@ + \else + \rtwidth@\wd\mtagbox@ + \fi + \rmultline@@@#1 +} +\def\rmultline@@@{% + \displ@y + \def\shoveright##1{% + ##1% + \hfilneg + \iftag@ + \ifdim\rtwidth@>\z@ + \hskip\rtwidth@ + \hskip\multlinetaggap@ + \fi + \else + \hskip\multlinegap + \fi + }% + \if@fleqn %%*F + \def\shoveleft##1{##1}% %%*F + \else %%*F + \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% + }% + \fi %%*F + \if@fleqn %%*F + \tabskip\@mathmargin %%*F + \else %%*F + \tabskip\z@skip %%* + \fi %%*F + \totwidth@\displaywidth %%*F + \if@fleqn %%*F + \advance\totwidth@-\@mathmargin %%*F + \fi %%*F + \halign\bgroup + \Let@ + \let\tag\gobble@tag + \hbox to\totwidth@{% + \strut@$\m@th\displaystyle + \if@fleqn %%*F + \hskip 0pt plus 1000pt %%*F + \else %%*F + \hfil + \fi %%*F + {}##\hfil$% + }% + \crcr + \if@fleqn %%*F + \hskip-\@mathmargin %%*F + \else %%*F + \hfilneg + \fi %%*F + \hskip\multlinegap +} +\def\endmultline{\iftagsleft@\expandafter\lendmultline@\else + \expandafter\rendmultline@\fi\global\@ignoretrue} +\expandafter\let\csname endmultline*\endcsname=\endmultline +\def\lendmultline@{\hfilneg\hskip\multlinegap\crcr\egroup$$} +\def\rendmultline@{% + \iftag@ + \ifdim\rtwidth@>\z@ + \hskip\multlinetaggap@ + \box\mtagbox@ + \else + \hskip\multlinegap %%* + \llap{% + \vtop{% + \@movetag %%*T + \normalbaselines\null\hbox{\strut@\box\mtagbox@}% + }% + }% + \fi + \else + \hskip\multlinegap + \fi + \hfilneg + \crcr + \egroup$$% +} +\expandafter\def + \expandafter\@arrayparboxrestore + \expandafter{\@arrayparboxrestore + \inany@false\ingather@false\inalign@false + \default@tag} +\def\equation{\gather\def\\{\PackageError{amstex}{\Invalid@@\\}\@eha}} +\def\endequation{\endgather} +\newenvironment{equation*}{% + \equation +}{% + \nonumber\endequation +} +\newcounter{parentequation}% Counter for ``parent equation''. +\newenvironment{subequations}{% + \refstepcounter{equation}% + \begingroup % conservative approach + \let\protect\@nx + \edef\@tempa{\def\@nx\theparentequation{\theequation}}% + \@xp\endgroup\@tempa + \setcounter{parentequation}{\value{equation}}% + \setcounter{equation}{0}% + \def\theequation{\theparentequation\alph{equation}}% + \ignorespaces +}{% + \setcounter{equation}{\value{parentequation}}% + \global\@ignoretrue +} +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +\def\atdef@#1{\expandafter\def\csname\space @\string#1\endcsname} +\begingroup \catcode`\@=\active +\gdef @{\Iat} +\endgroup +\DeclareRobustCommand{\Iat}{\FN@\at@} +\def\at@{\let\next@\at@@ + \ifcat\noexpand\@let@token a\else + \ifcat\noexpand\@let@token0\else + \ifcat\noexpand\@let@token\relax\else + \let\@let@token@\at@@@\fi\fi\fi\next@} +\def\at@@#1{\expandafter + \@ifundefined{ @\string#1}% + {\DN@{\at@@@#1}}% + {\DN@{\csname\space @\string#1\endcsname}}% + \next@}% +\def\at@@@{\PackageError{amstex}{\Invalid@@ @}% + {\the\athelp@}% "I'll assume you wanted @@" + \char64\relax} +\newhelp\athelp@ +{Only certain combinations beginning with @ make sense to me.^^J% +I'll assume you wanted @@ for a printed @.} +\atdef@ @{{\atchar}}% to define @@ +\chardef\atchar=64 +\def\makeatother{\catcode64=\active} +\def\@tempa#1#2#3#4#5#6{% + {#1}{#2}\ifnum0#6=0{13}\@xp\@gobblefour + \else{#3}\fi\@tempa{#4}{#5}{#6}}% +\xdef\@currnamestack{\@xp\@tempa\@currnamestack{}{}{0}} +{\def\@makeother{\noexpand\@makeother\noexpand} +\xdef\@sanitize{\@sanitize\@makeother\@}} +{\def\do{\noexpand\do\noexpand} +\xdef\dospecials{\dospecials\do\@}} +\atdef@,{\ifmmode\mskip.1\thinmuskip\else \nonmatherr@{@,}\fi} +\atdef@!{\RIfM@\mskip-.1\thinmuskip\else \nonmatherr@{@!}\fi} + +\@ifpackageloaded{amscd}{% +}{% +\atdef@>#1>#2>{% + \global\bigaw@\minaw@ + \setboxz@h{$\m@th\scriptstyle\;{#1}\;\;$}% + \ifdim\wdz@>\bigaw@ \global\bigaw@\wdz@ \fi + \@ifnotempty{#2}{\setbox\@ne\hbox{$\m@th\scriptstyle\;{#2}\;\;$}% + \ifdim\wd\@ne>\bigaw@ \global\bigaw@\wd\@ne \fi}% + \mathrel{\mathop{\hbox to\bigaw@{\rightarrowfill@\displaystyle}}% + \limits^{#1}\@ifnotempty{#2}{_{#2}}}% +}% end of @>>> +\atdef@<#1<#2<{% + \global\bigaw@\minaw@ + \setboxz@h{$\m@th\scriptstyle\;\;{#1}\;$}% + \ifdim\wdz@>\bigaw@ \global\bigaw@\wdz@ \fi + \@ifnotempty{#2}{\setbox\@ne\hbox{$\m@th\scriptstyle\;\;{#2}\;$}% + \ifdim\wd\@ne>\bigaw@ \global\bigaw@\wd\@ne \fi}% + \mathrel{\mathop{\hbox to\bigaw@{\leftarrowfill@\displaystyle}}% + \limits^{#1}\@ifnotempty{#2}{_{#2}}}% +}% end of @<<< +}% end of @ifpackageloaded +\@ifundefined{minaw@}{\newdimen\minaw@}{} +\minaw@11.111pt +\@ifundefined{bigaw@}{\newdimen\bigaw@}{} +\atdef@-{\let\next-%% + \DN@{\ifx\next-%% + \def\next-{\setbox\z@\hbox{-}\unhbox\z@\FN@\next@}%% + \expandafter\next \else\nobreak\fi}%% + \next@-}%% +\def\leftroot{\PackageError{amstex}{\Invalid@@\leftroot}\@eha} +\def\uproot{\PackageError{amstex}{\Invalid@@\uproot}\@eha} +\newcount\uproot@ +\newcount\leftroot@ +\def\root{\relaxnext@ + \DN@{\ifx\@let@token\uproot\let\next@\nextii@\else + \ifx\@let@token\leftroot\let\next@\nextiii@\else + \let\next@\plainroot@\fi\fi\next@}% + \def\nextii@\uproot##1{\uproot@##1\relax\FN@\nextiv@}% + \def\nextiv@{\ifx\@let@token\@sptoken\DN@. {\FN@\nextv@}\else + \DN@.{\FN@\nextv@}\fi\next@.}% + \def\nextv@{\ifx\@let@token\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\@let@token\@sptoken + \DN@. {\FN@\nextviii@}\else + \DN@.{\FN@\nextviii@}\fi\next@.}% + \def\nextviii@{\ifx\@let@token\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@ by1.667\wd\@ne + \mkern-\leftroot@ mu\mkern5mu\raise.6\dimen@\copy\rootbox + \mkern-10mu\mkern\leftroot@ mu\boxz@} +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +%% Fragment from old amsfonts.sty to deal with msam, msbm, eufm fonts; +%% omit if `noamsfonts' option was specified. +\ifx F\@amsfonts \endinput \fi +\DeclareSymbolFont{AMSa}{U}{msa}{m}{n} +\DeclareSymbolFont{AMSb}{U}{msb}{m}{n} +\ifx P\@amsfonts + \DeclareFontFamily{U}{msa}{}% + \DeclareFontShape{U}{msa}{m}{n}{<-6>msam5<6-8>msam7<8->msam10}{}% + \DeclareFontFamily{U}{msb}{}% + \DeclareFontShape{U}{msb}{m}{n}{<-6>msbm5<6-8>msbm7<8->msbm10}{}% + \DeclareFontFamily{U}{euf}{}% + \DeclareFontShape{U}{euf}{m}{n}{<-6>eufm5<6-8>eufm7<8->eufm10}{}% + \DeclareFontShape{U}{euf}{b}{n}{<-6>eufb5<6-8>eufb7<8->eufb10}{}% +\fi +\@ifundefined{yen}{% + \edef\yen{\noexpand\mathhexbox{\hexnumber@\symAMSa}55} +}{} +\@ifundefined{checkmark}{% + \edef\checkmark{\noexpand\mathhexbox{\hexnumber@\symAMSa}58} +}{} +\@ifundefined{circledR}{% + \edef\circledR{\noexpand\mathhexbox{\hexnumber@\symAMSa}72} +}{} +\@ifundefined{maltese}{% + \edef\maltese{\noexpand\mathhexbox{\hexnumber@\symAMSa}7A} +}{} +\begingroup \catcode`\"=12 +\DeclareMathDelimiter\ulcorner{\mathopen} {AMSa}{"70}{AMSa}{"70} +\DeclareMathDelimiter\urcorner{\mathclose}{AMSa}{"71}{AMSa}{"71} +\DeclareMathDelimiter\llcorner{\mathopen} {AMSa}{"78}{AMSa}{"78} +\DeclareMathDelimiter\lrcorner{\mathclose}{AMSa}{"79}{AMSa}{"79} +\xdef\widehat#1{\noexpand\@mathmeasure\z@\textstyle{#1}% + \noexpand\ifdim\noexpand\wdz@>\tw@ em% + \mathaccent"0\hexnumber@\symAMSb 5B{#1}% + \noexpand\else\mathaccent"0362{#1}\noexpand\fi} +\xdef\widetilde#1{\noexpand\@mathmeasure\z@\textstyle{#1}% + \noexpand\ifdim\noexpand\wdz@>\tw@ em% + \mathaccent"0\hexnumber@\symAMSb 5D{#1}% + \noexpand\else\mathaccent"0365{#1}\noexpand\fi} +\DeclareMathSymbol\dabar@{\mathord}{AMSa}{"39} +\xdef\dashrightarrow{\mathrel{\dabar@\dabar@ + \mathchar"0\hexnumber@\symAMSa 4B}}% +\xdef\dashleftarrow{\mathrel{\mathchar"0\hexnumber@\symAMSa 4C\dabar@ + \dabar@}}% +\global\let\dasharrow\dashrightarrow +\global\let\rightleftharpoons\undefined +\DeclareMathSymbol\rightleftharpoons{\mathrel}{AMSa}{"0A} +\global\let\angle\undefined +\DeclareMathSymbol\angle {\mathord}{AMSa}{"5C} +\global\let\hbar\undefined +\DeclareMathSymbol\hbar {\mathord}{AMSb}{"7E} +\global\let\sqsubset\undefined +\DeclareMathSymbol\sqsubset {\mathrel}{AMSa}{"40} +\global\let\sqsupset\undefined +\DeclareMathSymbol\sqsupset {\mathrel}{AMSa}{"41} +\global\let\mho\undefined +\DeclareMathSymbol\mho {\mathord}{AMSb}{"66} +\DeclareMathSymbol\square {\mathord}{AMSa}{"03} +\DeclareMathSymbol\lozenge {\mathord}{AMSa}{"06} +\DeclareMathSymbol\vartriangleright {\mathrel}{AMSa}{"42} +\DeclareMathSymbol\vartriangleleft {\mathrel}{AMSa}{"43} +\DeclareMathSymbol\trianglerighteq {\mathrel}{AMSa}{"44} +\DeclareMathSymbol\trianglelefteq {\mathrel}{AMSa}{"45} +\DeclareMathSymbol\rightsquigarrow {\mathrel}{AMSa}{"20} +\def\@tempa{\not@base\lhd} +\ifx\lhd\@tempa + \global\let\lhd\vartriangleleft + \global\let\unlhd\trianglelefteq + \global\let\rhd\vartriangleright + \global\let\unrhd\trianglerighteq + \global\let\Box\square + \global\let\Diamond\lozenge + \global\let\leadsto\rightsquigarrow +\xdef\Join{\mathrel{\mathchar"0\hexnumber@\symAMSb 6F\mkern-13.8mu% + \mathchar"0\hexnumber@\symAMSb 6E}} +\fi +\endgroup +\DeclareMathAlphabet\mathfrak{U}{euf}{m}{n} +\SetMathAlphabet\mathfrak{bold}{U}{euf}{b}{n} +\DeclareSymbolFontAlphabet{\mathbb}{AMSb} +\DeclareFontEncodingDefaults{\relax}{\def\accentclass@{7}} +\def\frak{\mathfrak} +\def\Bbb{\mathbb} +\def\bold{\mathbf} +\begingroup \catcode`\"=12 \relax +\gdef\newsymbol#1#2#3#4#5{% + \@ifdefinable#1{% + \edef\next@ + {\ifcase #2 \or + \hexnumber@\symAMSa\or + \hexnumber@\symAMSb\fi}% + \ifx\next@\@empty + \PackageError{amsfonts}{\Invalid@@\newsymbol}\@ehd% + \else + \global\mathchardef#1"#3\next@#4#5 + \fi}} +\endgroup +%% Some odds and ends +\def\sphat{^{\mathchoice{}{}% + {\,\,\smash[b]{\hbox{\lower4\ex@\hbox{$\m@th\widehat{\null}$}}}}% + {\,\smash[b]{\hbox{\lower3\ex@\hbox{$\m@th\hat{\null}$}}}}}} +\def\spcheck{^\vee} +\def\sptilde{^\sim} +\def\spdot{^{\hbox{\raise\ex@\hbox{\normalfont .}}}} +\def\spddot{^{\hbox{\raise\ex@\hbox{\normalfont ..}}}} +\def\spdddot{^{\hbox{\raise\ex@\hbox{\normalfont...}}}} +\def\spbreve{^{\!\smash[b]{\hbox{\lower4\ex@\hbox{\u{}}}}}} +\def\fracwithdelims#1#2{\new@ifnextchar[{\fracwithdelims@#1#2}% + {\fracwithdelims@#1#2[\@empty]}} +\def\fracwithdelims@#1#2[#3]#4#5{\relax + \ifx\@empty#3{#4\overwithdelims#1#2#5}\else + {#4\abovewithdelims#1#2#3\relax#5}\fi} +\def\accentedsymbol#1#2{% + \expandafter\newbox + \csname\expandafter\@gobble\string#1@box\endcsname + \expandafter\setbox + \csname\expandafter\@gobble\string#1@box\endcsname + \hbox{$\m@th#2$}% + \newcommand{#1}{% + \expandafter\copy + \csname\expandafter\@gobble\string#1@box\endcsname{}}% +} +\def~{\nobreakspace} +\DeclareRobustCommand{\nobreakspace}{\unskip\nobreak\ \ignorespaces} +%% +%% End of file `amstex.sty'. diff --git a/Master/texmf-dist/tex/latex/amsmath/amstext.sty b/Master/texmf-dist/tex/latex/amsmath/amstext.sty new file mode 100644 index 00000000000..6c3c1692d89 --- /dev/null +++ b/Master/texmf-dist/tex/latex/amsmath/amstext.sty @@ -0,0 +1,101 @@ +%% +%% This is file `amstext.sty', +%% generated with the docstrip utility. +%% +%% The original source files were: +%% +%% amstext.dtx +%% +%%% ==================================================================== +%%% @LaTeX-file{ +%%% filename = "amstext.dtx", +%%% version = "2.01", +%%% date = "2000/06/29", +%%% time = "08:34:33 EDT", +%%% checksum = "09860 314 1647 12368", +%%% author = "American Mathematical Society", +%%% copyright = "Copyright 1995, 1999 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.", +%%% address = "American Mathematical Society, +%%% Technical Support, +%%% Electronic Products and Services, +%%% P. O. Box 6248, +%%% Providence, RI 02940, +%%% USA", +%%% telephone = "401-455-4080 or (in the USA and Canada) +%%% 800-321-4AMS (321-4267)", +%%% FAX = "401-331-3842", +%%% email = "tech-support@ams.org (Internet)", +%%% supported = "yes", +%%% keywords = "latex, math, text", +%%% abstract = "This is a \LaTeX{} package that defines a +%%% \cn{\text} macro, which makes it easy to +%%% incorporate fragments of text inside a displayed +%%% equation or a sub or superscript. Font sizes +%%% are automatically scaled in sub/superscripts.", +%%% docstring = "The checksum field above contains a CRC-16 +%%% checksum as the first value, followed by the +%%% equivalent of the standard UNIX wc (word +%%% count) utility output of lines, words, and +%%% characters. This is produced by Robert +%%% Solovay's checksum utility.", +%%% } +%%% ==================================================================== +\NeedsTeXFormat{LaTeX2e}% LaTeX 2.09 can't be used (nor non-LaTeX) +[1994/12/01]% LaTeX date must be December 1994 or later +\ProvidesPackage{amstext}[2000/06/29 v2.01] +\RequirePackage{amsgen} +\DeclareRobustCommand{\text}{% + \ifmmode\expandafter\text@\else\expandafter\mbox\fi} +\let\nfss@text\text +\def\text@#1{{\mathchoice + {\textdef@\displaystyle\f@size{#1}}% + {\textdef@\textstyle\f@size{\firstchoice@false #1}}% + {\textdef@\textstyle\sf@size{\firstchoice@false #1}}% + {\textdef@\textstyle \ssf@size{\firstchoice@false #1}}% + \check@mathfonts + }% +} +\def\textdef@#1#2#3{\hbox{{% + \everymath{#1}% + \let\f@size#2\selectfont + #3}}} +\newif\iffirstchoice@ +\firstchoice@true +\def\stepcounter#1{% + \iffirstchoice@ + \addtocounter{#1}\@ne + \begingroup \let\@elt\@stpelt \csname cl@#1\endcsname \endgroup + \fi +} +\def\addtocounter#1#2{% + \iffirstchoice@ + \@ifundefined {c@#1}{\@nocounterr {#1}}% + {\global \advance \csname c@#1\endcsname #2\relax}% + \fi} +\let\m@gobble\@empty +\@xp\let\csname m@gobble4\endcsname\@gobblefour +\long\@xp\def\csname m@gobble6\endcsname#1#2#3#4#5#6{} +\toks@{% + \csname m@gobble\iffirstchoice@\else 4\fi\endcsname + \protect} +\edef\GenericInfo{\the\toks@ + \@xp\@nx\csname GenericInfo \endcsname} +\edef\GenericWarning{\the\toks@ + \@xp\@nx\csname GenericWarning \endcsname} +\toks@{% + \csname m@gobble\iffirstchoice@\else 6\fi\endcsname + \protect} +\edef\GenericError{\the\toks@ + \@xp\@nx\csname GenericError \endcsname} +\begingroup \catcode`\"=12 +\gdef\mathhexbox#1#2#3{\text{$\m@th\mathchar"#1#2#3$}} +\endgroup +\endinput +%% +%% End of file `amstext.sty'. diff --git a/Master/texmf-dist/tex/latex/amsmath/amsxtra.sty b/Master/texmf-dist/tex/latex/amsmath/amsxtra.sty new file mode 100644 index 00000000000..10a65df4a20 --- /dev/null +++ b/Master/texmf-dist/tex/latex/amsmath/amsxtra.sty @@ -0,0 +1,80 @@ +%% +%% This is file `amsxtra.sty', +%% generated with the docstrip utility. +%% +%% The original source files were: +%% +%% amsxtra.dtx +%% +%%% ==================================================================== +%%% @LaTeX-file{ +%%% filename = "amsxtra.dtx", +%%% version = "1.2c", +%%% date = "1999/11/15", +%%% time = "14:15:41 EST", +%%% author = "American Mathematical Society", +%%% copyright = "Copyright 1995, 1999 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.", +%%% address = "American Mathematical Society, +%%% Technical Support, +%%% Electronic Products and Services, +%%% P. O. Box 6248, +%%% Providence, RI 02940, +%%% USA", +%%% telephone = "401-455-4080 or (in the USA and Canada) +%%% 800-321-4AMS (321-4267)", +%%% FAX = "401-331-3842", +%%% checksum = "41382 136 533 5124", +%%% email = "tech-support@ams.org (Internet)", +%%% codetable = "ISO/ASCII", +%%% keywords = "latex, accentedsymbol, fracwithdelims, sphat", +%%% supported = "yes", +%%% abstract = "This package contains some seldom-used commands +%%% ported from AMS-TeX in 1989.", +%%% docstring = "The checksum field above contains a CRC-16 +%%% checksum as the first value, followed by the +%%% equivalent of the standard UNIX wc (word +%%% count) utility output of lines, words, and +%%% characters. This is produced by Robert +%%% Solovay's checksum utility.", +%%% } +%%% ==================================================================== +\ProvidesPackage{amsxtra}[1999/11/15 v1.2c] +\@ifpackageloaded{amstex}{}{% + \RequirePackage{amsmath}[1996/10/01 v1.2]} +\def\sphat{^{\mathchoice{}{}% + {\,\,\smash[b]{\hbox{\lower4\ex@\hbox{$\m@th\widehat{\null}$}}}}% + {\,\smash[b]{\hbox{\lower3\ex@\hbox{$\m@th\hat{\null}$}}}}}} +\def\spcheck{^\vee} +\def\sptilde{^\sim} +\def\spdot{^{\hbox{\raise\ex@\hbox{\normalfont .}}}} +\def\spddot{^{\hbox{\raise\ex@\hbox{\normalfont ..}}}} +\def\spdddot{^{\hbox{\raise\ex@\hbox{\normalfont...}}}} +\def\spbreve{^{\!\smash[b]{\hbox{\lower4\ex@\hbox{\u{}}}}}} +\@ifpackageloaded{amstex}{% +\def\fracwithdelims#1#2{\new@ifnextchar[{\fracwithdelims@#1#2}% + {\fracwithdelims@#1#2[\@empty]}} +\def\fracwithdelims@#1#2[#3]#4#5{\relax + \ifx\@empty#3{#4\overwithdelims#1#2#5}\else + {#4\abovewithdelims#1#2#3\relax#5}\fi} +}{} +\def\accentedsymbol#1#2{% + \expandafter\newbox + \csname\expandafter\@gobble\string#1@box\endcsname + \expandafter\setbox + \csname\expandafter\@gobble\string#1@box\endcsname + \hbox{$\m@th#2$}% + \newcommand{#1}{% + \expandafter\copy + \csname\expandafter\@gobble\string#1@box\endcsname{}}% +} +\def~{\nobreakspace} +\DeclareRobustCommand{\nobreakspace}{\unskip\nobreak\ \ignorespaces} +\endinput +%% +%% End of file `amsxtra.sty'. -- cgit v1.2.3