diff options
Diffstat (limited to 'Master/texmf-dist/tex/latex/ncctools/nccmath.sty')
-rw-r--r-- | Master/texmf-dist/tex/latex/ncctools/nccmath.sty | 466 |
1 files changed, 466 insertions, 0 deletions
diff --git a/Master/texmf-dist/tex/latex/ncctools/nccmath.sty b/Master/texmf-dist/tex/latex/ncctools/nccmath.sty new file mode 100644 index 00000000000..f9face6abf5 --- /dev/null +++ b/Master/texmf-dist/tex/latex/ncctools/nccmath.sty @@ -0,0 +1,466 @@ +%% +%% This is file `nccmath.sty', +%% generated with the docstrip utility. +%% +%% The original source files were: +%% +%% nccmath.dtx (with options: `package') +%% +%% IMPORTANT NOTICE: +%% +%% This file is a generated file from the sources of the `ncctools' +%% bundle. +%% +%% You are not allowed to modify this file. +%% +%% You are allowed to distribute this file if and only if +%% it is distributed with the corresponding source files in +%% the `ncctools' bundle. +%% +%% For the copying and distribution conditions of the source files, +%% see the README file distributed with the ncctools bundle. +%% +%% File: nccmath.dtx Copyright (C) 2002--2005 by Alexander I. Rozhenko +%% +\NeedsTeXFormat{LaTeX2e}[1995/12/01] +\ProvidesPackage{nccmath} + [2005/02/21 v1.2 Additional Math Commands (NCC)] +\DeclareOption{mediummath}{\newcommand\NCC@op{}} +\DeclareOption*{\PassOptionsToPackage{\CurrentOption}{amsmath}} +\ProcessOptions\relax +\RequirePackage{amsmath}[2000/07/18] +\newif\ifNCC@star +\def\NCC@cr{\relax\iffalse{\fi\ifnum0=`}\fi + \@ifstar{\global\NCC@startrue\NCC@cr@}{\global\NCC@starfalse\NCC@cr@}% +} +\def\NCC@cr@{\new@ifnextchar[\NCC@cr@@{\NCC@cr@@[\z@]}} +\def\NCC@cr@@[#1]{\ifnum0=`{\fi \iffalse}\fi\NCC@cr@@@{#1}} +\def\NCC@aligncr#1{\cr\noalign{\vskip #1\relax}} +\def\NCC@default@cr{\let\\\NCC@cr \let\NCC@cr@@@\NCC@aligncr} +\newcommand{\nr}{% + \let\NCC@temp\NCC@cr@@@ + \let\NCC@cr@@@\NCC@nr + \NCC@cr +} +\def\NCC@nr#1{% + \let\NCC@cr@@@\NCC@temp + \setlength\@tempskipa{#1}\advance\@tempskipa .5ex + \ifNCC@star + \edef\@tempa{\noexpand\\*[\the\@tempskipa]}% + \else + \edef\@tempa{\noexpand\\[\the\@tempskipa]}% + \fi + \@tempa +} +\newcommand{\mrel}{\mathpalette\NCC@rel} +\def\NCC@rel#1#2{\mathrel{\vcenter{\NCC@default@cr + \offinterlineskip \ialign{\hfil$\m@th#1##$\hfil\cr#2\crcr}}}} +\newcommand{\underrel}[2]{\mathrel{\mathop{#1}\limits_{#2}}} +\newdimen\NCC@fracrulewidth +\def\NCC@select@msize{\relax + \@tempdima \f@size\p@ + \ifdim\@tempdima>11.5\p@ + \@tempdimb .83\@tempdima + \else + \@tempdimb .8\@tempdima + \ifdim\@tempdimb<5\p@ \@tempdimb 5\p@\fi + \fi + \NCC@fracrulewidth .04\@tempdima + \@tempdima 1.25\NCC@fracrulewidth + \ifdim\NCC@fracrulewidth>.45\p@ \else + \ifdim\NCC@fracrulewidth>.34\p@ \NCC@fracrulewidth .4\p@ + \else \NCC@fracrulewidth .3\p@ + \fi + \fi +} +\def\NCC@innerfrac#1{\genfrac{}{}\NCC@fracrulewidth{#1}} +\def\NCC@prepare@msize{% + \@tempdima 1.2\@tempdimb + \advance\@tempdimb .5\p@ + \edef\@tempa{\strip@pt\@tempdimb}% + \expandafter\NCC@floor\expandafter\@tempa\@tempa.\@nil + \fontsize\@tempa\@tempdima\selectfont + \def\frac{\protect\NCC@innerfrac{}}% + \def\dfrac{\NCC@innerfrac\z@}% + \def\tfrac{\NCC@innerfrac\@ne}% + \def\binom{\protect\genfrac()\z@{}}% +} +\def\NCC@floor#1#2.#3\@nil{\def#1{#2}} +\DeclareRobustCommand*\NCC@op@prepare[1]{% + \def\NCC@op{#1}% + \let\NCC@op@print\NCC@op@printm + \NCC@op@prepare@ +} +\def\NCC@op@prepare@{% + \let\NCC@op@lim\ilimits@ + \let\NCC@op@sp\relax + \let\NCC@op@sb\relax + \NCC@op@next +} +\def\NCC@op@next{\futurelet\@let@token\NCC@op@getnext} +\def\NCC@op@getnext{% + \let\@tempa\NCC@op@skip + \ifx\@let@token\limits + \let\NCC@op@lim\limits \else + \ifx\@let@token\nolimits + \let\NCC@op@lim\nolimits \else + \ifx\@let@token\displaylimits + \let\NCC@op@lim\displaylimits \else + \ifx\@let@token\sp + \NCC@op@test\NCC@op@sp + \def\@tempa{\NCC@op@get\NCC@op@sp}\else + \ifx\@let@token\sb + \NCC@op@test\NCC@op@sb + \def\@tempa{\NCC@op@get\NCC@op@sb}\else + \ifx\@let@token\@sptoken + \let\@tempa\NCC@op@skipsp \else + \let\@tempa\NCC@op@print + \fi + \fi + \fi + \fi + \fi + \fi + \@tempa +} +\def\NCC@op@skip#1{\NCC@op@next} +\def\NCC@op@skipsp{% + \@ifnextchar0{\NCC@op@next}{\NCC@op@next}% +} +\def\NCC@op@test#1{% + \ifx#1\relax \else + \PackageError{nccmath}{Double index in math operator}{} + \fi +} +\def\NCC@op@get#1#2#3{\def#1{#3}\NCC@op@next} +\def\NCC@op@printm{% + \ifx\NCC@op@lim\nolimits \NCC@op@printm@\@ne \else + \ifx\NCC@op@lim\limits \NCC@op@printm@\z@ \else + \mathchoice{\displaystyle\NCC@op@printm@\z@}% + {\textstyle\NCC@op@printm@\@ne}% + {\scriptstyle\NCC@op@printm@\@ne}% + {\scriptscriptstyle\NCC@op@printm@\@ne}% + \fi + \fi +} +\def\NCC@op@printm@{\NCC@op@print@\NCC@op\NCC@op@kern} +\def\NCC@op@print@#1#2#3{\mathop{#1}% + \setlength\@tempdima{#2}% + \@tempswatrue + \ifx\NCC@op@sb\relax \else \ifnum#3>\z@ \@tempswafalse \fi \fi + \ifx\NCC@op@sp\relax \else \ifnum#3>\z@ \@tempswafalse \fi \fi + \edef\@tempa{% + \ifnum#3=\z@ \noexpand\limits \else \noexpand\nolimits \fi + \ifx\NCC@op@sb\relax \else + \noexpand\sb{% + \ifnum#3=\z@ \kern -\@tempdima\else \kern -.8\@tempdima \fi + \noexpand\NCC@op@sb}% + \fi + \ifx\NCC@op@sp\relax \else + \noexpand\sp{\ifnum#3=\z@ \kern \@tempdima\fi + \noexpand\NCC@op@sp}% + \fi + \if@tempswa \kern -.2\@tempdima \fi + }% + \@tempa +} +\DeclareRobustCommand*\medmath[1]{\NCC@select@msize + \mathord{\raise\@tempdima\hbox{\NCC@prepare@msize + $\displaystyle#1$}}% +} +\newcommand*\medop[1]{\DOTSB\mathop{\medmath{#1}}\slimits@} +\newcommand*\medintcorr[1]{\def\NCC@op@kern{#1}} +\medintcorr{.5em} +\newcommand*\medint[1]{\DOTSI\NCC@op@prepare{\medmath{#1}}} +\DeclareRobustCommand*\mfrac[2]{\medmath{\frac{#1}{#2}}} +\DeclareRobustCommand*\mbinom[2]{% + \Bigl(\medmath{\genfrac{}{}{\z@}{}{#1}{#2}}\Bigr)% +} +\newenvironment{medsize}{\NCC@select@msize + \mathord\bgroup + \raise\@tempdima\hbox\bgroup\NCC@prepare@msize + \arraycolsep .8\arraycolsep $}{$\egroup\egroup} +\newenvironment{mmatrix}{\medsize\begin{matrix}}{\end{matrix}\endmedsize} +\renewcommand*{\MultiIntegral}[1]{% + \edef\NCC@op{\noexpand\intop + \ifnum#1=\z@\noexpand\intdots@\else\noexpand\intkern@\fi + \ifnum#1>\tw@\noexpand\intop\noexpand\intkern@\fi + \ifnum#1>\thr@@\noexpand\intop\noexpand\intkern@\fi + \noexpand\intop + }% + \let\NCC@op@print\NCC@op@printd + \NCC@op@prepare@ +} +\def\NCC@op@printd{% + \setlength\@tempdima{\NCC@op@kern}% + \ifx\NCC@op@lim\nolimits \@tempcnta\@ne \else + \ifx\NCC@op@lim\limits \@tempcnta\z@ \else + \@tempcnta\m@ne + \fi + \fi + \mathchoice{\NCC@op@printd@{\displaystyle}{1.2\@tempdima}}% + {\NCC@op@printd@{\textstyle}{.8\@tempdima}}% + {\NCC@op@printd@{\scriptstyle}{.8\@tempdima}}% + {\NCC@op@printd@{\scriptscriptstyle}{.8\@tempdima}}% +} +\def\NCC@op@printd@#1#2{#1% + \ifnum\@tempcnta>\m@ne + \NCC@op@print@{\hbox{$#1\NCC@op$}}{#2}\@tempcnta + \else + \ifx#1\displaystyle + \NCC@op@print@{\hbox{$#1\NCC@op$}}{#2}\z@ + \else + \NCC@op@print@{\hbox{$#1\NCC@op$}}{#2}\@ne + \fi + \fi +} +\def\@tempa{% + \if@eqnsw \gdef\df@tag{\tagform@\theequation}\fi + \if@fleqn \@xp\endmathdisplay@fleqn + \else \ifx\df@tag\@empty \else \veqno \alt@tag \df@tag \fi + \ifx\df@label\@empty \else \@xp\ltx@label\@xp{\df@label}\fi + \fi + \ifnum\dspbrk@lvl>\m@ne + \postdisplaypenalty -\@getpen\dspbrk@lvl + \global\dspbrk@lvl\m@ne + \fi +} +\ifx\@tempa\endmathdisplay@a + \def\endmathdisplay@a{% + \ifnum\dspbrk@lvl>\m@ne + \postdisplaypenalty -\@getpen\dspbrk@lvl + \global\dspbrk@lvl\m@ne + \fi + \if@eqnsw \gdef\df@tag{\tagform@\theequation}\fi + \if@fleqn \@xp\endmathdisplay@fleqn + \else \ifx\df@tag\@empty \else \veqno \alt@tag \df@tag \fi + \ifx\df@label\@empty \else \@xp\ltx@label\@xp{\df@label}\fi + \fi + } +\else + \PackageWarning{nccmath}% + {The \string\endmathdisplay@a\ command differs from\MessageBreak + waited value in this version of amsmath package.\MessageBreak + We don't fix it!} +\fi +\renewcommand*{\intertext}[1][]{\@amsmath@err{\Invalid@@\intertext}\@eha} +\def\intertext@{% + \def\intertext{% + \ifvmode\else\\\@empty\fi + \noalign{\ifnum0=`}\fi + \@ifnextchar[{\NCC@intertext}{\NCC@intertext[]}% + }% +} +\def\NCC@intertext[#1]#2{% + \penalty\postdisplaypenalty + \@ifempty{#1}{\vskip\belowdisplayskip}{\vskip#1\relax}% + \vbox{\normalbaselines + \ifdim\linewidth=\columnwidth + \else \parshape\@ne \@totalleftmargin \linewidth + \fi + \noindent#2\par}% + \penalty\predisplaypenalty + \@ifempty{#1}{\vskip\abovedisplayskip}{\vskip#1\relax}% + \ifnum0=`{\fi}% +} +\newif\ifNCC@shortskip \NCC@shortskipfalse +\newcommand{\useshortskip}{\global\NCC@shortskiptrue} +\def\NCC@ignorepar{\relax + \ifNCC@shortskip + \abovedisplayskip\abovedisplayshortskip + \global\NCC@shortskipfalse + \fi + \ifmmode \else \ifvmode + \addvspace{\abovedisplayskip}% + \abovedisplayskip\z@skip + \abovedisplayshortskip\z@skip + \belowdisplayshortskip\belowdisplayskip + \noindent + \fi\fi +} +\let\NCC@startgather\start@gather +\let\NCC@startalign\start@align +\let\NCC@startmultline\start@multline +\let\NCC@startdisplay\mathdisplay +\def\start@gather{\NCC@ignorepar\NCC@startgather} +\def\start@align{\ifingather@\else\NCC@ignorepar\fi\NCC@startalign} +\def\start@multline{\NCC@ignorepar\NCC@startmultline} +\def\mathdisplay{\NCC@ignorepar\NCC@startdisplay} +\newenvironment{darray}[2][c]{% + \null\,% + \if #1t\vtop \else \if#1b \vbox \else \vcenter \fi \fi + \bgroup + \NCC@default@cr + \spread@equation + \NCC@mkpream{#2}% + \edef\@preamble{\ialign \bgroup \strut@ \@preamble \tabskip\z@skip \cr}% + \let\par\@empty \let\@sharp##% + \set@typeset@protect + \tabskip\z@skip + \@preamble +}{% + \crcr\egroup\egroup +} +\def\NCC@mkpream#1{% + \@lastchclass\@ne \@firstamptrue + \settowidth\alignsep@{$\m@th\mskip\thickmuskip$}% + \let\@sharp\relax + \let\@preamble\@empty + \let\protect\@unexpandable@protect + \NCC@xexpast #1*0x\@@ + \expandafter \@tfor \expandafter \@nextchar + \expandafter :\expandafter =\reserved@a \do + {\@chclass + \ifnum \@lastchclass=\tw@ \@ne \else + \z@ + \edef\@nextchar{\expandafter\string\@nextchar}% + \if \@nextchar @\@chclass \tw@ \else + \@chnum + \if \@nextchar c\z@ \else + \if \@nextchar l\@ne \else + \if \@nextchar r\tw@ \else + \z@ \@preamerr \z@ + \fi + \fi + \fi + \fi + \fi + \ifcase \@chclass + \ifnum \@lastchclass=\z@ \@addtopreamble{\hskip \alignsep@}\fi + \@addamp + \@addtopreamble{% + \ifcase \@chnum \hfil$\displaystyle{\@sharp}$\hfil + \or $\displaystyle{\@sharp}$\hfil + \or \hfil$\displaystyle{\@sharp}$% + \fi + }% + \or + \@addtopreamble{$\@nextchar$}% + \fi + \@lastchclass\@chclass + }% + \ifnum\@lastchclass=\tw@ \@preamerr\@ne \fi +} +\def\NCC@xexpast#1*#2#3#4\@@{% + \edef\reserved@a{#1}% + \@tempcnta#2\relax + \ifnum\@tempcnta>\z@ + \@whilenum\@tempcnta>\z@\do + {\edef\reserved@a{\reserved@a#3}\advance\@tempcnta \m@ne}% + \let\reserved@b\NCC@xexpast + \else + \let\reserved@b\NCC@xexnoop + \fi + \expandafter\reserved@b\reserved@a #4\@@ +} +\def\NCC@xexnoop #1\@@{} +\newenvironment*{fleqn}[1][\z@]{\@fleqntrue + \setlength\@mathmargin{#1}\ignorespaces +}{% + \ignorespacesafterend +} +\newenvironment{ceqn}{\@fleqnfalse + \@mathmargin\@centering \ignorespaces +}{% + \ignorespacesafterend +} +\newcommand{\eq}{\@ifstar{\NCC@eqx}{\NCC@eq}} +\def\NCC@eqx#1{\begin{equation*}#1\end{equation*}} +\def\NCC@eq#1{\begin{equation}#1\end{equation}} +\newcommand{\eqalign}{% + \@ifstar{\let\@tempa\NCC@eqx \NCC@eqa}% + {\let\@tempa\NCC@eq \NCC@eqa}% +} +\newcommand*{\NCC@eqa}[2][rcl]{% + \@tempa{\begin{darray}{#1}#2\end{darray}}% +} +\newcommand{\eqs}{\@ifstar{\st@rredtrue\NCC@eqs}{\st@rredfalse \NCC@eqs}} +\newcommand*{\NCC@eqs}[2][]{% + \begingroup\NCC@beqs{#1}#2\NCC@eeqs\endgroup\ignorespaces +} +\renewenvironment{eqnarray}{\st@rredfalse\NCC@beqs{}} + {\NCC@eeqs\ignorespacesafterend} +\renewenvironment{eqnarray*}{\st@rredtrue\NCC@beqs{}} + {\NCC@eeqs\ignorespacesafterend} +\def\NCC@beqs#1{% + \NCC@ignorepar$$ + \inalign@true \intertext@ \displ@y@ \Let@ + \chardef\dspbrk@context\z@ + \let\math@cr@@@\NCC@eqcr \let\tag\tag@in@align + \let\label\label@in@display \let\split\insplit@ + \ifst@rred\else \global\@eqnswtrue \fi + \tabskip\@mathmargin + \@ifempty{#1}{\settowidth\alignsep@{$\m@th\mskip\thickmuskip$}}% + {\setlength\alignsep@{#1}}% + \halign to \displaywidth\bgroup + \strut@ \global\column@\z@ \hfil$\displaystyle{##}$\tabskip\z@skip + &\column@plus \hskip\alignsep@ \hfil$\displaystyle{##}$\hfil + &\column@plus \hskip\alignsep@ $\displaystyle{##{}}$\hfil + \tabskip\@centering + &\column@plus \llap{##}\tabskip\z@skip\cr +} +\def\NCC@eqcr{% + \let\@tempa\relax + \ifcase\column@ \def\@tempa{&&&}\or \def\@tempa{&&}\or\def\@tempa{&}% + \else + \let\@tempa\@empty + \@latex@error{Too many columns in eqnarray environment}\@ehc + \fi + \@tempa + \ifst@rred\nonumber\fi + \if@eqnsw \global\tag@true \fi + \iftag@ \@lign\strut@ + \iftagsleft@ \rlap{\hskip -\displaywidth\make@display@tag}% + \else \make@display@tag \fi + \fi + \ifst@rred\else\global\@eqnswtrue\fi + \cr +} +\def\NCC@eeqs{\math@cr\egroup$$} +\@ifundefined{NCC@op}{\endinput}{} +\DeclareRobustCommand\frac{\NCC@op@select\mfrac{\genfrac{}{}{}{}}} +\DeclareRobustCommand\binom{\NCC@op@select\mbinom{\genfrac()\z@{}}} +\def\NCC@op@select#1#2#3#4{% + \mathchoice{#1{#3}{#4}}{#1{#3}{#4}}% + {\scriptstyle#2{#3}{#4}}{\scriptscriptstyle#2{#3}{#4}}% +} +\def\@tempa#1#2{% + \ifx#2\@undefined \let#2#1\fi + \def#1{\DOTSB\medop{#2}}% +} +\@tempa \coprod \coprod@ +\@tempa \bigvee \bigvee@ +\@tempa \bigwedge \bigwedge@ +\@tempa \biguplus \biguplus@ +\@tempa \bigcap \bigcap@ +\@tempa \bigcup \bigcup@ +\@tempa \prod \prod@ +\@tempa \sum \sum@ +\@tempa \bigotimes \bigotimes@ +\@tempa \bigoplus \bigoplus@ +\@tempa \bigodot \bigodot@ +\@tempa \bigsqcup \bigsqcup@ +\def\@tempa#1#2#3{\let#3#2% + \DeclareRobustCommand#2{\mathop{\medmath{#3}}}% + \def#1{\DOTSI\NCC@op@prepare{#2}}% +} +\@tempa\int \intop \NCC@op@int +\@tempa\oint \ointop \NCC@op@oint +\let\@tempa\relax +\renewcommand*{\MultiIntegral}[1]{% + \edef\NCC@op{\noexpand\intop + \ifnum#1=\z@\noexpand\intdots@\else\noexpand\intkern@\fi + \ifnum#1>\tw@\noexpand\intop\noexpand\intkern@\fi + \ifnum#1>\thr@@\noexpand\intop\noexpand\intkern@\fi + \noexpand\intop + }% + \let\NCC@op@print\NCC@op@printm + \NCC@op@prepare@ +} +\def\intkern@{\kern-\NCC@op@kern} +\def\intdots@{\setlength\@tempdima{\NCC@op@kern}% + \kern-.4\@tempdima{\cdotp}\mkern1.5mu{\cdotp}% + \mkern1.5mu{\cdotp}\kern-.4\@tempdima} +\endinput +%% +%% End of file `nccmath.sty'. |