1
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
2
% amstex.4ht 2001-12-14-17:07 %
3
% Copyright (C) 1997--2001 Eitan M. Gurari %
5
% This program can redistributed and/or modified under %
6
% the terms of the LaTeX Project Public License %
7
% Distributed from CTAN archives in directory %
8
% macros/latex/base/lppl.txt; either version 1 of the %
9
% License, or (at your option) any later version. %
11
% However, you are allowed to modify this program %
12
% without changing its name, if you modify its %
13
% signature. Changes to the signature can be introduced %
14
% with a directive of the form %
15
% \message{signature} %
17
% gurari@cis.ohio-state.edu %
18
% http://www.cis.ohio-state.edu/~gurari %
19
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
20
\immediate\write-1{version 2001-12-14-17:07}
23
\HRestore\cases \HRestore\matrix \HRestore\pmatrix
24
\def\:tempc#1{\a:text{\ifx \a:math\:UnDef\else
26
\def\everymath##1{\let\everymath\:temp\append:def\a:math{##1}}%
28
\o:text@:{#1}}\b:text}
30
\NewConfigure{text}{2}
31
\def\Sb#1\endSb{\sb{\a:multilimits
32
\multilimits@#1\endSb\b:multilimits}}
33
\def\Sp#1\endSp{\sp{\a:multilimits
34
\multilimits@#1\endSp\b:multilimits}}
35
\def\multilimits@{\bgroup\vspace@\Let@
36
\baselineskip\fontdimen10 \scriptfont\tw@
37
\advance\baselineskip\fontdimen12 \scriptfont\tw@
38
\lineskip\thr@@\fontdimen8 \scriptfont\thr@@
39
\lineskiplimit\lineskip \let\halign\TeXhalign
40
\vbox\bgroup\ialign\bgroup\hfil\c:multilimits
41
$\m@th\scriptstyle{##}$\d:multilimits\hfil\crcr}
42
\NewConfigure{multilimits}{4}
43
\def\:temp{{\textfontii AMS}-\TeX}
45
\def\linebreak{\RIfM@\mathmodeerr@\linebreak\else
46
\ifhmode\unskip\unkern\break \a:linebreak\else
47
\vmodeerr@\linebreak\fi\fi}
48
\NewConfigure{linebreak}{1}
50
\catcode`\#13 \catcode`\!6
51
\def\format:!1\\{\def\preamble@{!1}%
53
\def\l{$\m@th\the\hashtoks@$\hfil}%
54
\def\c{\hfil$\m@th\the\hashtoks@$\hfil}%
55
\def\r{\hfil$\m@th\the\hashtoks@$}%
56
\SaveMkHalignConf:g{format}%
57
\edef\preamble@@{\:span\preamble@}%
58
\def\:temp!!1!!2{\expand:after{!!1!!2}\expandafter}%
60
\MkHalign#{\preamble@@}}
61
\catcode`\#=6 \catcode`\!=12
62
\def\:tempc{\crcr\EndMkHalign\RecallMkHalignConfig
63
\iffalse{\fi\ifnum`}=0 \fi\format:}
68
\def\:tempc{\def\format{\global\let\format\o:format: \:format}}
69
\HLet\MkHformat\:tempc
70
\NewConfigure{format}{6}
71
\catcode`\#13 \catcode`\!6
72
\def\:tempc!1\endalign{%%
74
{$\m@th\displaystyle{\@lign#}$\global\advance\and@\@ne
75
&$\m@th\displaystyle{{}\@lign#}%
76
$\global\advance\and@\@ne\tabskip\z@skip
77
&\hbox\bgroup\@lign\maketag@#\maketag@\egroup\tabskip\z@skip
80
\ifingather@\append:def\T:halign{\global\and@\z@}\fi
81
\Let@\tabskip\centering@
83
\catcode`\#=6 \catcode`\!=12
84
\expandafter\HLet\csname align \endcsname\:tempc
85
\expandafter\HLet\csname align \space\endcsname\:tempc
86
\NewConfigure{align}{6}
87
\catcode`\#13 \catcode`\!6
88
\def\:tempc!1\endgather{\Mk:ialign:end
89
{$\m@th\displaystyle{#}$%
92
\catcode`\#=6 \catcode`\!=12
93
\expandafter\HLet\csname gather \endcsname\:tempc
94
\expandafter\HLet\csname gather \space\endcsname\:tempc
95
\NewConfigure{gather}{6}
96
\def\Mk:ialign:end#1#2#3#4#5{%
97
\csname a:#2\endcsname
98
\ifx \EndPicture\:UnDef
102
{\csname c:#2\endcsname} {\csname d:#2\endcsname }
103
{\csname e:#2\endcsname}
104
{\csname f:#2\endcsname }%
106
\MkHalign#4{#1}#3\crcr\EndMkHalign
107
\RecallMkHalignConfig
109
\expand:after{\csname o:#2:\endcsname #3}\csname end#2\endcsname
111
\csname b:#2\endcsname
113
\catcode`\#13 \catcode`\!6
114
\def\reg:smallmatrix{\vcenter\bgroup
115
\SaveMkHalignConf:g{smallmatrix}%
117
\MkHalign#{$\m@th\scriptstyle{#}$&&$\m@th
119
\catcode`\#=6 \catcode`\!=12
120
\def\:tempc{\crcr\EndMkHalign
121
\RecallMkHalignConfig \egroup\b:smallmatrix}
122
\HLet\endsmallmatrix\:tempc
123
\def\:temp{\pic:MkHalign{smallmatrix}}
124
\HLet\smallmatrix\:temp
125
\NewConfigure{smallmatrix}{6}
127
\pend:def\:tempc{\a:bmatrix}
129
\let\:tempc\endbmatrix
130
\append:def\:tempc{\b:bmatrix}
131
\HLet\endbmatrix\:tempc
132
\NewConfigure{bmatrix}{2}
133
\pend:def\vmatrix{\a:vmatrix}
134
\append:def\endvmatrix{\b:vmatrix}
135
\NewConfigure{vmatrix}{2}
136
\pend:def\Vmatrix{\a:Vmatrix}
137
\append:def\endVmatrix{\b:Vmatrix}
138
\NewConfigure{Vmatrix}{2}
140
\pend:defII\:temp{\a:frac}
141
\append:defII\:temp{\b:frac}
143
\NewConfigure{frac}{2}
145
\pend:defII\:temp{\a:dfrac}
146
\append:defII\:temp{\b:dfrac}
148
\NewConfigure{dfrac}{2}
150
\pend:defII\:temp{\a:tfrac}
151
\append:defII\:temp{\b:tfrac}
153
\NewConfigure{tfrac}{2}
155
\pend:defII\:temp{\a:binom}
156
\append:defII\:temp{\b:binom}
158
\NewConfigure{binom}{2}
160
\pend:defII\:temp{\a:dbinom}
161
\append:defII\:temp{\b:dbinom}
163
\NewConfigure{dbinom}{2}
165
\pend:defII\:temp{\a:tbinom}
166
\append:defII\:temp{\b:tbinom}
168
\NewConfigure{tbinom}{2}
170
\pend:defI\:temp{\a:boxed}
171
\append:defI\:temp{\b:boxed}
173
\NewConfigure{boxed}{2}
174
\catcode`\#13 \catcode`\!6
175
\def\reg:gathered{\vcenter\bgroup
176
\SaveMkHalignConf:g{gathered}%
178
\MkHalign#{$\m@th\displaystyle{#}$}}
179
\catcode`\#=6 \catcode`\!=12
180
\def\:tempc{\crcr\EndMkHalign
181
\RecallMkHalignConfig \egroup\b:gathered}
182
\HLet\endgathered\:tempc
183
\def\:temp{\pic:MkHalign{gathered}}
185
\NewConfigure{gathered}{6}
186
\let\:insplit\insplit@
187
\def\insplit@{\let\halign\TeXhalign \:insplit}
188
\catcode`\#13 \catcode`\!6
189
\def\reg:aligned@{\bgroup
190
\SaveMkHalignConf:g{aligned@}%
192
\MkHalign#{$\m@th\displaystyle{#}$&%
193
$\m@th\displaystyle{{}#}$}}
194
\catcode`\#=6 \catcode`\!=12
196
\Configure{aligned@}{\csname a:#1\endcsname}%
197
{\csname b:#1\endcsname}{\csname c:#1\endcsname}%
198
{\csname d:#1\endcsname}{\csname e:#1\endcsname}%
199
{\csname f:#1\endcsname}\pic:MkHalign{#1}}
200
\NewConfigure{aligned@}{6}
201
\def\:tempc{\crcr\EndMkHalign
202
\RecallMkHalignConfig \egroup\b:aligned@}
203
\HLet\endaligned\:tempc
204
\def\:temp{\al:gned{aligned}}
206
\def\reg:aligned{\vcenter\reg:aligned@}
207
\NewConfigure{aligned}{6}
208
\HLet\endtopaligned\endaligned
209
\def\:tempc{\al:gned{topaligned}}
210
\HLet\topaligned\:tempc
211
\def\reg:topaligned{\null\vtop\reg:aligned@}
212
\NewConfigure{topaligned}{6}
213
\HLet\endbotaligned\endaligned
214
\def\:tempc{\al:gned{botaligned}}
215
\HLet\botaligned\:tempc
216
\def\reg:botaligned{\null\vtop\reg:aligned@}
217
\NewConfigure{botaligned}{6}
218
\def\:tempc{\crcr\EndMkHalign
219
\RecallMkHalignConfig \egroup\b:alignedat}
220
\HLet\endalignedat\:tempc
221
\def\:tempc{\al:gned{alignedat}}
222
\HLet\alignedat\:tempc
223
\NewConfigure{alignedat}{6}
224
\catcode`\#13 \catcode`\!6
225
\def\reg:alignedat!1{\null\vcenter\bgroup
226
\SaveMkHalignConf:g{alignedat}%
227
\hashtoks@{#}{\let\@lign\empty \doat@{!1}}\Let@
228
\pend:def\preamble@@{\:span}%
229
\def\:temp!!1!!2{\expand:after{!!1!!2}\expandafter}%
231
\MkHalign#{\preamble@@}}
232
\catcode`\#=6 \catcode`\!=12
233
\catcode`\#13 \catcode`\!6
234
\def\:tempc!1!2\endalignat{%
235
\Mk:ialign:end{\preamble@@}{alignat}{!2}#%
236
{\hashtoks@{#}\ifx \ifinany@\:Undef\else \inany@true\fi
238
\def\tag{\global\tag@true\count@!1\relax\multiply\count@\tw@
239
\xdef\tag@{}\loop\ifnum\count@>\and@\xdef\tag@{&\tag@}%
240
\advance\count@\m@ne \repeat\tag@}%
242
\measuring@false \Let@
243
{\let\@lign=\empty \attag@{!1}}%
244
\let\allowdisplaybreak =\empty
245
\pend:def\preamble@@{\:span}%
247
\def\:temp!!1!!2{\expand:after{!!1!!2}\expandafter}%
251
\catcode`\#=6 \catcode`\!=12
252
\expandafter\HLet\csname alignat \endcsname\:tempc
253
\NewConfigure{alignat}{6}
254
\catcode`\#13 \catcode`\!6
255
\def\:tempc!1!2\endxalignat{%
256
\Mk:ialign:end{\preamble@@}{xalignat}{!2}#%
257
{\hashtoks@{#}\ifx \ifinany@\:Undef\else \inany@true\fi
259
\def\tag{\global\tag@true\count@!1\relax\multiply\count@\tw@
260
\xdef\tag@{}\loop\ifnum\count@>\and@\xdef\tag@{&\tag@}%
261
\advance\count@\m@ne \repeat\tag@}%
263
\measuring@false \Let@
264
{\let\@lign=\empty \attag@{!1}}%
265
\let\allowdisplaybreak =\empty
266
\pend:def\preamble@@{\:span}%
268
\def\:temp!!1!!2{\expand:after{!!1!!2}\expandafter}%
272
\catcode`\#=6 \catcode`\!=12
273
\expandafter\HLet\csname xalignat \endcsname\:tempc
274
\NewConfigure{xalignat}{6}
275
\catcode`\#13 \catcode`\!6
276
\def\:tempc!1!2\endxxalignat{%
277
\Mk:ialign:end{\preamble@@}{xxalignat}{!2}#%
278
{\hashtoks@{#}\ifx \ifinany@\:Undef\else \inany@true\fi
279
\measuring@false \Let@
280
{\let\@lign=\empty \xxattag@{!1}}%
281
\let\allowdisplaybreak =\empty
282
\pend:def\preamble@@{\:span}%
284
\def\:temp!!1!!2{\expand:after{!!1!!2}\expandafter}%
288
\catcode`\#=6 \catcode`\!=12
289
\expandafter\HLet\csname xxalignat \endcsname\:tempc
290
\NewConfigure{xxalignat}{6}
291
\let\:tempc\endmultline
292
\append:def\:tempc{\b:multline}
293
\HLet\endmultline\:tempc
294
\def\:tempc{\al:gned{multline}}
295
\HLet\multline\:tempc
296
\let\reg:multline\o:multline:
297
\NewConfigure{multline}{4}
298
\let\e:multline\empty
299
\let\f:multline\empty
300
\catcode`\#13 \catcode`\!6
301
\def\:tempc{\let\sv:halign\halign
302
\def\halign!!1\crcr{%
303
\let\halign\sv:halign
304
\SaveMkHalignConf:g{multline}%
305
\MkHalign#{\Let@\hbox{$\m@th\displaystyle\hfil{}#$}%
308
\catcode`\#=6 \catcode`\!=12
309
\HLet\rmultline@@@\:tempc
310
\def\:tempc{\rmultline@@@}
311
\HLet\lmultline@@@\:tempc
312
\def\:tempc{\crcr\EndMkHalign\RecallMkHalignConfig }
313
\HLet\lendmultline@\:tempc
314
\def\:tempc{\lendmultline@}
315
\HLet\rendmultline@\:tempc
319
\catcode`\#13 \catcode`\!6
320
\def\reg:matrix{\vcenter\bgroup
321
\SaveMkHalignConf:g{matrix}%
323
\MkHalign#{$\m@th#$&&$\m@th#$}}
324
\catcode`\#=6 \catcode`\!=12
325
\def\:tempc{\crcr\EndMkHalign \RecallMkHalignConfig \egroup\b:matrix}
326
\HLet\endmatrix\:tempc
327
\def\:temp{\pic:MkHalign{matrix}}
329
\NewConfigure{matrix}{6}
331
\pend:def\:tempc{\a:pmatrix}
333
\let\:tempc\endpmatrix
334
\append:def\:tempc{\b:pmatrix}
335
\HLet\endpmatrix\:tempc
336
\NewConfigure{pmatrix}{2}
339
\pend:def\cases{\a:cases\MkHformat}
340
\append:def\endcases{\b:cases}
341
\NewConfigure{cases}{2}