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