summaryrefslogtreecommitdiff
path: root/Master/texmf-dist/tex/latex/ncctools/nccmath.sty
diff options
context:
space:
mode:
authorKarl Berry <karl@freefriends.org>2006-01-13 00:00:29 +0000
committerKarl Berry <karl@freefriends.org>2006-01-13 00:00:29 +0000
commit8b8fbae5990dee3b8ab739df0de8b7c365e4d227 (patch)
tree824392c1bb07fe8c8b620efd3992cc0daa3e433a /Master/texmf-dist/tex/latex/ncctools/nccmath.sty
parente9351f8ac4f8603d6020be78e092e939e24d89d0 (diff)
ncctools
git-svn-id: svn://tug.org/texlive/trunk@1132 c570f23f-e606-0410-a88d-b1316a301751
Diffstat (limited to 'Master/texmf-dist/tex/latex/ncctools/nccmath.sty')
-rw-r--r--Master/texmf-dist/tex/latex/ncctools/nccmath.sty466
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'.