]>
Commit | Line | Data |
---|---|---|
20552425 | 1 | %% |
2 | %% This is file `amscd.sty', | |
3 | %% generated with the docstrip utility. | |
4 | %% | |
5 | %% The original source files were: | |
6 | %% | |
7 | %% amscd.dtx | |
8 | %% | |
9 | %%% ==================================================================== | |
10 | %%% @LaTeX-file{ | |
11 | %%% filename = "amscd.dtx", | |
12 | %%% version = "2.0", | |
13 | %%% date = "1999/11/29", | |
14 | %%% time = "14:30:07 EST", | |
15 | %%% author = "American Mathematical Society", | |
16 | %%% copyright = "Copyright 1995, 1999 American Mathematical Society, | |
17 | %%% all rights reserved. Copying of this file is | |
18 | %%% authorized only if either: | |
19 | %%% (1) you make absolutely no changes to your copy, | |
20 | %%% including name; OR | |
21 | %%% (2) if you do make changes, you first rename it | |
22 | %%% to some other name.", | |
23 | %%% address = "American Mathematical Society, | |
24 | %%% Technical Support, | |
25 | %%% Electronic Products and Services, | |
26 | %%% P. O. Box 6248, | |
27 | %%% Providence, RI 02940, | |
28 | %%% USA", | |
29 | %%% telephone = "401-455-4080 or (in the USA and Canada) | |
30 | %%% 800-321-4AMS (321-4267)", | |
31 | %%% FAX = "401-331-3842", | |
32 | %%% checksum = "07428 333 1152 12117", | |
33 | %%% email = "tech-support@ams.org (Internet)", | |
34 | %%% codetable = "ISO/ASCII", | |
35 | %%% keywords = "latex, commutative diagram", | |
36 | %%% supported = "yes", | |
37 | %%% abstract = "This is a \LaTeX{} package that adapts the | |
38 | %%% commutative diagram macros of AMS-\TeX{} for | |
39 | %%% use in \LaTeX{}", | |
40 | %%% docstring = "The checksum field above contains a CRC-16 | |
41 | %%% checksum as the first value, followed by the | |
42 | %%% equivalent of the standard UNIX wc (word | |
43 | %%% count) utility output of lines, words, and | |
44 | %%% characters. This is produced by Robert | |
45 | %%% Solovay's checksum utility.", | |
46 | %%% } | |
47 | %%% ==================================================================== | |
48 | \NeedsTeXFormat{LaTeX2e}% LaTeX 2.09 can't be used (nor non-LaTeX) | |
49 | [1994/12/01]% LaTeX date must December 1994 or later | |
50 | \ProvidesPackage{amscd}[1999/11/29 v2.0] | |
51 | \RequirePackage{amsgen} | |
52 | \@ifundefined{math@cr}{% | |
53 | \def\math@cr{{\ifnum0=`}\fi | |
54 | \@ifstar{\global\@eqpen\@M\math@cr@}% | |
55 | {\global\@eqpen\interdisplaylinepenalty \math@cr@}} | |
56 | \def\math@cr@{\new@ifnextchar[\math@cr@@{\math@cr@@[\z@]}} | |
57 | \def\math@cr@@[#1]{\ifnum0=`{\fi}\math@cr@@@ | |
58 | \noalign{\vskip#1\relax}} | |
59 | \def\restore@math@cr{\def\math@cr@@@{\cr}} | |
60 | }{} | |
61 | \restore@math@cr | |
62 | \@ifundefined{rightarrowfill@}{ | |
63 | \def\rightarrowfill@#1{\m@th\setboxz@h{$#1-$}\ht\z@\z@ | |
64 | $#1\copy\z@\mkern-6mu\cleaders | |
65 | \hbox{$#1\mkern-2mu\box\z@\mkern-2mu$}\hfill | |
66 | \mkern-6mu\mathord\rightarrow$} | |
67 | \def\leftarrowfill@#1{\m@th\setboxz@h{$#1-$}\ht\z@\z@ | |
68 | $#1\mathord\leftarrow\mkern-6mu\cleaders | |
69 | \hbox{$#1\mkern-2mu\copy\z@\mkern-2mu$}\hfill | |
70 | \mkern-6mu\box\z@$} | |
71 | \def\leftrightarrowfill@#1{\m@th\setboxz@h{$#1-$}\ht\z@\z@ | |
72 | $#1\mathord\leftarrow\mkern-6mu\cleaders | |
73 | \hbox{$#1\mkern-2mu\box\z@\mkern-2mu$}\hfill | |
74 | \mkern-6mu\mathord\rightarrow$} | |
75 | }{} | |
76 | \def\atdef@#1{\expandafter\def\csname\space @\string#1\endcsname} | |
77 | \@ifundefined{Iat}{% | |
78 | \DeclareRobustCommand{\Iat}{\FN@\at@} | |
79 | }{} | |
80 | \begingroup \catcode`\@=\active | |
81 | \csname if\string @compatibility\endcsname | |
82 | \else \fam=\mathcode`\@ | |
83 | \xdef @{\mathchar\number\fam\space } | |
84 | \fi | |
85 | \gdef\CDat{\let @=\Iat} | |
86 | \endgroup | |
87 | \mathcode`\@="8000 % make @ pseudo-active in math | |
88 | \def\at@{\let\next@\at@@ | |
89 | \ifcat\noexpand\next a\else | |
90 | \ifcat\noexpand\next0\else | |
91 | \ifcat\noexpand\next\relax\else | |
92 | \let\next@\at@@@\fi\fi\fi\next@} | |
93 | \def\at@@#1{\expandafter | |
94 | \ifx\csname\space @\string#1\endcsname\relax | |
95 | \DN@{\at@@@#1}% | |
96 | \else | |
97 | \DN@{\csname\space @\string#1\endcsname}% | |
98 | \fi\next@}% | |
99 | \@ifundefined{default@tag}{% | |
100 | \def\default@tag{% | |
101 | \def\tag{\PackageError{amscd}{\protect\tag\space not allowed | |
102 | here}\@eha}}% | |
103 | }{}% | |
104 | \@ifundefined{at@@@}{% | |
105 | \def\at@@@{\PackageError{amscd}{\Invalid@@ @}{\the\athelp@}\char64\relax} | |
106 | }{} | |
107 | \@ifundefined{athelp@}{\csname newhelp\endcsname\athelp@ | |
108 | {Only certain combinations beginning with @ make sense to me.^^J% | |
109 | I'll assume you wanted @@ for a printed @.}}{} | |
110 | \@ifundefined{minaw@}{\newdimen\minaw@}{} | |
111 | \@ifundefined{bigaw@}{\newdimen\bigaw@}{} | |
112 | \minaw@11.111pt | |
113 | \newdimen\minCDarrowwidth | |
114 | \minCDarrowwidth2.5pc | |
115 | \newif\ifCD@ | |
116 | \let\ampersand@\relax | |
117 | \newenvironment{CD}{% | |
118 | \CDat | |
119 | \bgroup\relax\iffalse{\fi\let\ampersand@&\iffalse}\fi | |
120 | \CD@true\vcenter\bgroup\let\\\math@cr\restore@math@cr\default@tag | |
121 | \tabskip\z@skip\baselineskip20\ex@ | |
122 | \lineskip3\ex@\lineskiplimit3\ex@\halign\bgroup | |
123 | &\hfill$\m@th##$\hfill\crcr | |
124 | }{% | |
125 | \crcr\egroup\egroup\egroup | |
126 | } | |
127 | \def\CD@check#1#2{\ifCD@\DN@{#2}\else | |
128 | \DN@{\PackageError{amscd}{@\protect#1 not | |
129 | allowed outside of the CD environment}\@eha}% | |
130 | \fi\next@} | |
131 | \atdef@>#1>#2>{\ampersand@ | |
132 | \ifCD@ \global\bigaw@\minCDarrowwidth \else \global\bigaw@\minaw@ \fi | |
133 | \setboxz@h{$\m@th\scriptstyle\;{#1}\;\;$}% | |
134 | \ifdim\wdz@>\bigaw@\global\bigaw@\wdz@\fi | |
135 | \@ifnotempty{#2}{\setbox\@ne\hbox{$\m@th\scriptstyle\;{#2}\;\;$}% | |
136 | \ifdim\wd\@ne>\bigaw@\global\bigaw@\wd\@ne\fi}% | |
137 | \ifCD@\enskip\fi | |
138 | \mathrel{\mathop{\hbox to\bigaw@{\rightarrowfill@\displaystyle}}% | |
139 | \limits^{#1}\@ifnotempty{#2}{_{#2}}}% | |
140 | \ifCD@\enskip\fi \ampersand@} | |
141 | \atdef@<#1<#2<{\ampersand@ | |
142 | \ifCD@ \global\bigaw@\minCDarrowwidth \else \global\bigaw@\minaw@ \fi | |
143 | \setboxz@h{$\m@th\scriptstyle\;\;{#1}\;$}% | |
144 | \ifdim\wdz@>\bigaw@ \global\bigaw@\wdz@ \fi | |
145 | \@ifnotempty{#2}{\setbox\@ne\hbox{$\m@th\scriptstyle\;\;{#2}\;$}% | |
146 | \ifdim\wd\@ne>\bigaw@ \global\bigaw@\wd\@ne \fi}% | |
147 | \ifCD@\enskip\fi | |
148 | \mathrel{\mathop{\hbox to\bigaw@{\leftarrowfill@\displaystyle}}% | |
149 | \limits^{#1}\@ifnotempty{#2}{_{#2}}}% | |
150 | \ifCD@\enskip\fi \ampersand@} | |
151 | \begingroup \catcode`\~=\active \lccode`\~=`\@ | |
152 | \lowercase{% | |
153 | \global\atdef@)#1)#2){~>#1>#2>} | |
154 | \global\atdef@(#1(#2({~<#1<#2<} | |
155 | }% end lowercase | |
156 | \endgroup | |
157 | \atdef@ A#1A#2A{\CD@check{A..A..A}{\llap{$\m@th\vcenter{\hbox | |
158 | {$\scriptstyle#1$}}$}\Big\uparrow | |
159 | \rlap{$\m@th\vcenter{\hbox{$\scriptstyle#2$}}$}&&}} | |
160 | \atdef@ V#1V#2V{\CD@check{V..V..V}{\llap{$\m@th\vcenter{\hbox | |
161 | {$\scriptstyle#1$}}$}\Big\downarrow | |
162 | \rlap{$\m@th\vcenter{\hbox{$\scriptstyle#2$}}$}&&}} | |
163 | \atdef@={\CD@check={&\enskip\mathrel | |
164 | {\vbox{\hrule\@width\minCDarrowwidth\vskip2\ex@\hrule\@width | |
165 | \minCDarrowwidth}}\enskip&}} | |
166 | \atdef@|{\CD@check|{\Big\Vert&&}} | |
167 | \atdef@\vert{\CD@check\vert{\Big\Vert&&}} | |
168 | \atdef@.{\CD@check.{&&}} | |
169 | \endinput | |
170 | %% | |
171 | %% End of file `amscd.sty'. |