You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
147 lines
5.2 KiB
147 lines
5.2 KiB
%%
|
|
%% This is file `amscd.sty',
|
|
%% generated with the docstrip utility.
|
|
%%
|
|
%% The original source files were:
|
|
%%
|
|
%% amscd.dtx
|
|
%%
|
|
%% Copyright 1995, 1999 American Mathematical Society.
|
|
%% Copyright 2016 LaTeX3 Project and American Mathematical Society.
|
|
%%
|
|
%% This work may be distributed and/or modified under the
|
|
%% conditions of the LaTeX Project Public License, either version 1.3c
|
|
%% of this license or (at your option) any later version.
|
|
%% The latest version of this license is in
|
|
%% https://www.latex-project.org/lppl.txt
|
|
%% and version 1.3c or later is part of all distributions of LaTeX
|
|
%% version 2005/12/01 or later.
|
|
%%
|
|
%% This work has the LPPL maintenance status `maintained'.
|
|
%%
|
|
%% The Current Maintainer of this work is the LaTeX3 project.
|
|
%%
|
|
\NeedsTeXFormat{LaTeX2e}% LaTeX 2.09 can't be used (nor non-LaTeX)
|
|
[1994/12/01]% LaTeX date must December 1994 or later
|
|
\ProvidesPackage{amscd}[2017/04/14 v2.1 AMS Commutative Diagrams]
|
|
\RequirePackage{amsgen}
|
|
\@ifundefined{math@cr}{%
|
|
\def\math@cr{{\ifnum0=`}\fi
|
|
\@ifstar{\global\@eqpen\@M\math@cr@}%
|
|
{\global\@eqpen\interdisplaylinepenalty \math@cr@}}
|
|
\def\math@cr@{\new@ifnextchar[\math@cr@@{\math@cr@@[\z@]}}
|
|
\def\math@cr@@[#1]{\ifnum0=`{\fi}\math@cr@@@
|
|
\noalign{\vskip#1\relax}}
|
|
\def\restore@math@cr{\def\math@cr@@@{\cr}}
|
|
}{}
|
|
\restore@math@cr
|
|
\@ifundefined{rightarrowfill@}{
|
|
\def\rightarrowfill@#1{\m@th\setboxz@h{$#1-$}\ht\z@\z@
|
|
$#1\copy\z@\mkern-6mu\cleaders
|
|
\hbox{$#1\mkern-2mu\box\z@\mkern-2mu$}\hfill
|
|
\mkern-6mu\mathord\rightarrow$}
|
|
\def\leftarrowfill@#1{\m@th\setboxz@h{$#1-$}\ht\z@\z@
|
|
$#1\mathord\leftarrow\mkern-6mu\cleaders
|
|
\hbox{$#1\mkern-2mu\copy\z@\mkern-2mu$}\hfill
|
|
\mkern-6mu\box\z@$}
|
|
\def\leftrightarrowfill@#1{\m@th\setboxz@h{$#1-$}\ht\z@\z@
|
|
$#1\mathord\leftarrow\mkern-6mu\cleaders
|
|
\hbox{$#1\mkern-2mu\box\z@\mkern-2mu$}\hfill
|
|
\mkern-6mu\mathord\rightarrow$}
|
|
}{}
|
|
\def\atdef@#1{\expandafter\def\csname\space @\string#1\endcsname}
|
|
\@ifundefined{Iat}{%
|
|
\DeclareRobustCommand{\Iat}{\FN@\at@}
|
|
}{}
|
|
\begingroup \catcode`\@=\active
|
|
\csname if\string @compatibility\endcsname
|
|
\else \fam=\mathcode`\@
|
|
\xdef @{\mathchar\number\fam\space }
|
|
\fi
|
|
\gdef\CDat{\let @=\Iat}
|
|
\endgroup
|
|
\mathcode`\@="8000 % make @ pseudo-active in math
|
|
\def\at@{\let\next@\at@@
|
|
\ifcat\noexpand\next a\else
|
|
\ifcat\noexpand\next0\else
|
|
\ifcat\noexpand\next\relax\else
|
|
\let\next@\at@@@\fi\fi\fi\next@}
|
|
\def\at@@#1{\expandafter
|
|
\ifx\csname\space @\string#1\endcsname\relax
|
|
\DN@{\at@@@#1}%
|
|
\else
|
|
\DN@{\csname\space @\string#1\endcsname}%
|
|
\fi\next@}%
|
|
\@ifundefined{default@tag}{%
|
|
\def\default@tag{%
|
|
\def\tag{\PackageError{amscd}{\protect\tag\space not allowed
|
|
here}\@eha}}%
|
|
}{}%
|
|
\@ifundefined{at@@@}{%
|
|
\def\at@@@{\PackageError{amscd}{\Invalid@@ @}{\the\athelp@}\char64\relax}
|
|
}{}
|
|
\@ifundefined{athelp@}{\csname newhelp\endcsname\athelp@
|
|
{Only certain combinations beginning with @ make sense to me.^^J%
|
|
I'll assume you wanted @@ for a printed @.}}{}
|
|
\@ifundefined{minaw@}{\newdimen\minaw@}{}
|
|
\@ifundefined{bigaw@}{\newdimen\bigaw@}{}
|
|
\minaw@11.111pt
|
|
\newdimen\minCDarrowwidth
|
|
\minCDarrowwidth2.5pc
|
|
\newif\ifCD@
|
|
\let\ampersand@\relax
|
|
\newenvironment{CD}{%
|
|
\CDat
|
|
\bgroup\relax\iffalse{\fi\let\ampersand@&\iffalse}\fi
|
|
\CD@true\vcenter\bgroup\let\\\math@cr\restore@math@cr\default@tag
|
|
\tabskip\z@skip\baselineskip20\ex@
|
|
\lineskip3\ex@\lineskiplimit3\ex@\halign\bgroup
|
|
&\hfill$\m@th##$\hfill\crcr
|
|
}{%
|
|
\crcr\egroup\egroup\egroup
|
|
}
|
|
\def\CD@check#1#2{\ifCD@\DN@{#2}\else
|
|
\DN@{\PackageError{amscd}{@\protect#1 not
|
|
allowed outside of the CD environment}\@eha}%
|
|
\fi\next@}
|
|
\atdef@>#1>#2>{\ampersand@
|
|
\ifCD@ \global\bigaw@\minCDarrowwidth \else \global\bigaw@\minaw@ \fi
|
|
\setboxz@h{$\m@th\scriptstyle\;{#1}\;\;$}%
|
|
\ifdim\wdz@>\bigaw@\global\bigaw@\wdz@\fi
|
|
\@ifnotempty{#2}{\setbox\@ne\hbox{$\m@th\scriptstyle\;{#2}\;\;$}%
|
|
\ifdim\wd\@ne>\bigaw@\global\bigaw@\wd\@ne\fi}%
|
|
\ifCD@\enskip\fi
|
|
\mathrel{\mathop{\hbox to\bigaw@{\rightarrowfill@\displaystyle}}%
|
|
\limits^{#1}\@ifnotempty{#2}{_{#2}}}%
|
|
\ifCD@\enskip\fi \ampersand@}
|
|
\atdef@<#1<#2<{\ampersand@
|
|
\ifCD@ \global\bigaw@\minCDarrowwidth \else \global\bigaw@\minaw@ \fi
|
|
\setboxz@h{$\m@th\scriptstyle\;\;{#1}\;$}%
|
|
\ifdim\wdz@>\bigaw@ \global\bigaw@\wdz@ \fi
|
|
\@ifnotempty{#2}{\setbox\@ne\hbox{$\m@th\scriptstyle\;\;{#2}\;$}%
|
|
\ifdim\wd\@ne>\bigaw@ \global\bigaw@\wd\@ne \fi}%
|
|
\ifCD@\enskip\fi
|
|
\mathrel{\mathop{\hbox to\bigaw@{\leftarrowfill@\displaystyle}}%
|
|
\limits^{#1}\@ifnotempty{#2}{_{#2}}}%
|
|
\ifCD@\enskip\fi \ampersand@}
|
|
\begingroup \catcode`\~=\active \lccode`\~=`\@
|
|
\lowercase{%
|
|
\global\atdef@)#1)#2){~>#1>#2>}
|
|
\global\atdef@(#1(#2({~<#1<#2<}
|
|
}% end lowercase
|
|
\endgroup
|
|
\atdef@ A#1A#2A{\CD@check{A..A..A}{\llap{$\m@th\vcenter{\hbox
|
|
{$\scriptstyle#1$}}$}\Big\uparrow
|
|
\rlap{$\m@th\vcenter{\hbox{$\scriptstyle#2$}}$}&&}}
|
|
\atdef@ V#1V#2V{\CD@check{V..V..V}{\llap{$\m@th\vcenter{\hbox
|
|
{$\scriptstyle#1$}}$}\Big\downarrow
|
|
\rlap{$\m@th\vcenter{\hbox{$\scriptstyle#2$}}$}&&}}
|
|
\atdef@={\CD@check={&\enskip\mathrel
|
|
{\vbox{\hrule\@width\minCDarrowwidth\vskip2\ex@\hrule\@width
|
|
\minCDarrowwidth}}\enskip&}}
|
|
\atdef@|{\CD@check|{\Big\Vert&&}}
|
|
\atdef@\vert{\CD@check\vert{\Big\Vert&&}}
|
|
\atdef@.{\CD@check.{&&}}
|
|
\endinput
|
|
%%
|
|
%% End of file `amscd.sty'.
|
|
|