summaryrefslogtreecommitdiff
path: root/Master/texmf-dist/source/latex/bosisio/mathcmd.dtx
diff options
context:
space:
mode:
Diffstat (limited to 'Master/texmf-dist/source/latex/bosisio/mathcmd.dtx')
-rw-r--r--Master/texmf-dist/source/latex/bosisio/mathcmd.dtx403
1 files changed, 403 insertions, 0 deletions
diff --git a/Master/texmf-dist/source/latex/bosisio/mathcmd.dtx b/Master/texmf-dist/source/latex/bosisio/mathcmd.dtx
new file mode 100644
index 00000000000..54588786644
--- /dev/null
+++ b/Master/texmf-dist/source/latex/bosisio/mathcmd.dtx
@@ -0,0 +1,403 @@
+%\iffalse % MetaComment
+%%
+%% + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +
+%% | Copyright(C) 1997-1999 by Francesco Bosisio |
+%% | |
+%% | This program can be redistributed and/or modified under the |
+%% | terms of the LaTeX Project Public License Distributed from |
+%% | CTAN archives in directory macros/latex/base/lppl.txt; |
+%% | either version 1 of the License, or any later version. |
+%% | |
+%% | E-mail: fbosisio@bigfoot.com |
+%% | Web page: http://www.bigfoot.com/~fbosisio/LaTeX |
+%% | CTAN location: macros/latex/contrib/supported/bosisio/ |
+%% + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +
+%%
+%%
+%% If you make any improvment, find any bug or have
+%% any suggestion, please let me know about it.
+%%
+%<*package,driver>
+%\fi
+%
+\def\FileName{mathcmd}
+%\iffalse % MetaComment
+%</package,driver>
+%<*package>
+%\fi
+\def\fileversion{2.0}
+\def\filedate{1997/12/20}
+\def\docdate{1997/12/20}
+\def\filedescr{Extensions to math environments (BF)}
+%
+%\iffalse % MetaComment
+%</package>
+%<*dtx>
+%- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
+% This section is the installation driver
+%
+\def\batchfile{\FileName.dtx}
+%
+\input docstrip
+%
+\keepsilent
+% \askforoverwritefalse
+%
+\generateFile{\FileName.sty}{f}{\from{\FileName.dtx}{package}}
+%
+\generateFile{\FileName.drv}{f}{\from{\FileName.dtx}{driver}}
+%
+\Msg{******************************************************}
+\Msg{*}
+\Msg{* To produce the documentation run the}
+\Msg{* file `\FileName.drv' through LaTeX.}
+\Msg{*}
+\Msg{******************************************************}
+%
+\endbatchfile
+%
+% End of the installation driver
+%- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
+%</dtx>
+%
+% This section is the documentation driver
+%
+%<+driver>\documentclass[12pt,a4paper]{ltxdoc}
+%<+driver> \EnableCrossrefs
+%<+driver> \CodelineIndex
+%<+driver> \RecordChanges
+%<+driver> %\OnlyDescription % Uncomment not to see the implementation
+%<+driver>\begin{document}
+%<+driver> \DocInput{\FileName.dtx}
+%<+driver> \PrintIndex
+%<+driver> \PrintChanges
+%<+driver>\end{document}
+%
+% End of the documentation driver
+%- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
+%<*package>
+%\fi
+%
+% \changes{v0.1}{20 April 1997}{First release (basic environments)}
+% \changes{v0.2}{3 May 1997}{Added package options}
+% \changes{v1.0}{24 May 1997}{Documentation added}
+% \changes{v2.0}{20 December 1997}{Separated from package ``mathenv''}
+% \changes{v2.1}{5 March 1999}{Added copyright notice and changed addresses}
+%
+% \MakeShortVerb{\|}
+%
+% \title{Package \texttt{\FileName}\thanks{This is version \fileversion,
+% last revised \filedate; documentation date \docdate}}
+% \author{F. Bosisio\\\normalsize E-mail: \texttt{fbosisio@bigfoot.com}\\
+% \small Web page: \texttt{http://www.bigfoot.com/$\sim$fbosisio/LaTeX}}
+% \date{\filedate}
+% \maketitle
+%
+% \begin{abstract}
+% Documentation for the package \texttt{\FileName}.
+% \end{abstract}
+%
+% \section{Introduction}
+% This package provides some useful math-commands which are simpler
+% to use and prettier then their standard \LaTeX{} counterpart.
+%
+% In particular the ``|\d|" command is redefined, so
+% care should be taken, expecially when including this package in an
+% already existent \LaTeX{} file.
+%
+% \noindent
+% The original work of ``|\d|" (i.e. place a dot under its argument)
+% is now done by the ``|\UnderDot|" command.
+%
+% \section{The options}
+% At now, six options are available with the \texttt{\FileName}
+% package, which comes out in matched pairs.
+%
+% \noindent
+% The ``|ThreeSubscrSum|" and ``|TwoSubscrSum|" options control the
+% placement of subscripts for the ``|\Sum|" command: the latter
+% (which is the default) puts the index under the simbol toghether
+% with the starting point, while the former puts the index on the
+% lower right corner.
+%
+% \noindent
+% The ``|ProdVettWedge|" and ``|ProdVettTimes|" options select
+% which symbol is to be used for the \emph{vector product}: the first
+% one uses a ``|\wedge|" (default), whilst the second uses a
+% ``|\times|".
+%
+% \noindent
+% Finally, the ``|VectOpStr|" and ``|VectOpSymb|" options controls
+% whether the vector-operator commands ``|\Grad|", ``|\Div|" and
+% ``|\Rot|" should produce a roman string (default) or a
+% ``|\nabla|" symbol followed by an operator, respectively.
+%
+% \section{Math-mode commands}
+% The \texttt{\FileName} package defines a number of math-mode
+% commands.
+%
+% \subsection{The \texttt{text} command}
+% The ``|\text{|\ldots|}|" command is defined to be
+% equivalent to ``|\mbox|" (except when the ``|amstext|"
+% package is also used, since this package already defines
+% this command in a better way).
+%
+% \noindent
+% It is intended for inserting pieces of text in a formula.
+%
+% \subsection{Commands for doing integrals}
+% The ``|\Int|" (capitalized) differs from the \LaTeX{}
+% command ``|\int|" in that it is always printed in
+% |displaystyle| and if it has only a subscript, this is
+% somewhat lowered so that it looks better.
+% \begin{verbatim}
+% \Int_{...}^{...} ... \d{...}
+% \end{verbatim}
+%
+% The ``|\d{|\ldots|}|" command is for making the
+% differential symbol at the end of integrals: it simply
+% prints a ``|d|" followed by its argument and preceded by
+% a little space, which seems prettier.
+%
+% \subsection{Commands for making sums}
+% The ``|\Sum{|$\cdots=\cdots,\cdots$|}|" command works
+% differently, depending on which option between
+% ``|TwoSubscrSum|" (default) and ``|ThreeSubscrSum|" has
+% been specified.
+%
+% \noindent
+% In the first case, it expands to
+% ``|\displaystyle\sum_{...=...}^{...}|", whereas in the
+% second case the second and third argument are treated
+% in the same way as before (i.e. as a subscript and
+% superscript, respectively), but the first argument
+% (the one before the ``=") is placed near
+% the lower-left edge of the ``|\sum|" symbol and the ``="
+% is not printed.
+%
+% There is also a ``|\SUM{|\ldots|}|" command which is useful
+% when only a subscript is desired, irrespectively of the
+% option specified: in fact, is is equivalent to
+% ``|\displaystyle\sum_{|\ldots|}|".
+%
+% \subsection{Derivatives symbols}
+% The commands ``|\DerTot{|\ldots|}{|\ldots|}|",
+% ``|\DerPar{|\ldots|}{|\ldots|}|" and ``|\DerNorm{|\ldots|}|"
+% generate the symbols of total derivative, partial derivative
+% and normal derivative, respectively.
+%
+% \noindent
+% In other words, they are the same as:
+% \begin{verbatim}
+% \displaystyle\frac{d...}{d...}
+% \displaystyle\frac{\partial ...}{\partial ...}
+% \displaystyle\frac{\partial ...}{\partial n}
+% \end{verbatim}
+%
+% \subsection{Arrow-limits commands}
+% The command ``|\TendsTo|[$\cdots,\cdots$]" generates a
+% right-arrow with optionally an underscript wich is another
+% smaller right-arrow between the two comma-separeted
+% arguments inside the square brackets.
+%
+% \noindent
+% For example, the command ``|f(x) \TendsTo[x,0] 1|" generates
+% the following output:
+% $f(x) \mathop{\longrightarrow}\limits_{x \rightarrow 0} 1$.
+%
+% \subsection{Vector-operators commands}
+% Finally, the commands ``|\Grad|", ``|\Div|" and
+% ``|\Rot|" generates the strings ``grad", ``div" and ``rot"
+% in roman type and with small spaces added before and after,
+% if the ``VectOpStr" option is in effect (default).
+% If, instead, the option ``VectOpSymb" was specified, they
+% generate ``|\nabla|", ``|\nabla\cdot|" and
+% ``|\nabla\ProdVett|" respectively.
+%
+% The command ``|\ProdVett|" is intended for making the
+% symbol of vector product, and evaluates to ``|\times|"
+% with the option ``ProdVettTimes" and to ``|\wedge|" with
+% the (default) option ``ProdVettWedge".
+%
+% \begin{tabular}{lcccc}
+% & & |VectOpStr| & \multicolumn{2}{c}{|VectOpSymb|} \\
+% & & &|ProdVettWedge|&|ProdVettTimes|\\
+% |\Grad|& $\Rightarrow$ & $\mathrm{grad}$& $\nabla$ & $\nabla$ \\
+% |\Div| & $\Rightarrow$ & $\mathrm{div}$& $\nabla\cdot$ & $\nabla\cdot$ \\
+% |\Rot| & $\Rightarrow$ & $\mathrm{rot}$& $\nabla\wedge$& $\nabla\times$
+% \end{tabular}
+%
+%
+% \StopEventually{}
+% \newpage
+% \section{Implementation}
+%
+% \begin{macrocode}
+%%
+\NeedsTeXFormat{LaTeX2e}[1995/12/01]
+\ProvidesPackage{\FileName}[\filedate\space v\fileversion\space\filedescr]
+%%
+\newif\if@ThreeSubscrSum
+\DeclareOption{ThreeSubscrSum}{\@ThreeSubscrSumtrue}
+\DeclareOption{TwoSubscrSum}{\@ThreeSubscrSumfalse}
+%%
+\DeclareOption{ProdVettWedge}{\let\ProdVett=\wedge}
+\DeclareOption{ProdVettTimes}{\let\ProdVett=\times}
+%%
+\newif\if@VectOper@Symbol
+\DeclareOption{VectOpStr}{\@VectOper@Symbolfalse}
+\DeclareOption{VectOpSymb}{\@VectOper@Symboltrue}
+%%
+\ExecuteOptions{TwoSubscrSum,ProdVettWedge,VectOpStr}
+% \end{macrocode}
+%
+% The ``|\ProcessOptions*|" command was used here instead of
+% ``|\ProcessOptions*|" in order to process the options in the
+% ``|\usepackage|" order, rather than in the declaration order
+% \begin{macrocode}
+%%
+\ProcessOptions*
+% \end{macrocode}
+%
+% \begin{macro}{\text}
+% The definition of |\text| is deferred at the |\begin{document}|,
+% so that if the \texttt{amstext} package is loaded (even after this
+% package), its definition of text will be used, since it seems
+% better.
+% \begin{macrocode}
+%%
+\AtBeginDocument{\ifx\undefined\text \def\text#1{\ \mbox{#1}\ } \fi}
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\Int}
+% The command |\@INT@sub@SUP| has one argument and then a mandatory
+% superscript: il typesets an integral symbol (in |\displaystyle|)
+% with the argument as a lower-bound and the superscript as an
+% upper-bound.
+% \begin{macrocode}
+%%
+\def\@INT@sub@SUP#1^#2{{\displaystyle\int_{#1}^{#2}}}
+% \end{macrocode}
+% The command |\@INT@subONLY| has only an argument, which is used as
+% as a subscript for a |displaystyle| |\int|, but lowered of |0.2ex|.
+% \begin{macrocode}
+\def\@INT@subONLY#1{{\displaystyle\int_{\raisebox{-0.2ex}{$_{#1}$}}}}
+% \end{macrocode}
+% The command |\@INT@sub| must have a subscript and may optionally be
+% followed by a superscript.
+% \begin{macrocode}
+\def\@INT@sub_#1{\@ifnextchar^{\@INT@sub@SUP{#1}}{\@INT@subONLY{#1}}}
+% \end{macrocode}
+% The command |\@INT@SUP@sub| must have a superscript and a subscript,
+% in that order: they are passed to a |displaystyle| |\int| command.
+% \begin{macrocode}
+\def\@INT@SUP@sub^#1_#2{{\displaystyle\int_{#2}^{#1}}}
+% \end{macrocode}
+% The |\Int| command invokes |\@INT@SUP@sub| or |\@INT@sub| or simply
+% expands to |\displaystyle\int| depending on what follows (|^|, |_|
+% or neither of them).
+% \begin{macrocode}
+\newcommand{\Int}{\@ifnextchar^{\@INT@SUP@sub}{\@ifnextchar_{\@INT@sub}{\displaystyle\int}}}
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\d}
+% The original |\d| command is saved in |\UnderDot|, then (at the
+% |\begin{document}| to avoid conflicts with other packages) it is
+% redefined as a ``|d|" preceeded by some space an followed by its
+% argument (it is intended for printing the differential symbol at
+% the end of an integral).
+% \begin{macrocode}
+%%
+\AtBeginDocument{ \let\UnderDot=\d \renewcommand{\d}[1]{\:\:d#1} }
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\Sum}
+% The command |\INNER@SUM| is defined differently depending on the
+% selected option. It has 3 or 2 orguments, ended by an exclamation
+% mark and separated by an equal sign and a comma.
+% The two last arguments are passed as a subscrit and as a superscript
+% to a |displaystyle| |\sum|, whereas the first argument (if they are
+% 3) is typeset in |scriptstyle| and lowered so that it occours at the
+% lower right corner of the |sum| symbol.
+% \begin{macrocode}
+%%
+\if@ThreeSubscrSum
+ \def\INNER@SUM#1=#2,#3!{{\displaystyle\sum_{#2}^{#3}\raisebox{-0.6ex}{$_{\!#1}$}}}
+\else
+ \def\INNER@SUM#1,#2!{{\displaystyle\sum_{#1}^{#2}}}
+\fi
+% \end{macrocode}
+% The |\Sum| command is then simply a call to |\INNER@SUM|, with a
+% question mark added to denote the end of the argument.
+% \begin{macrocode}
+\newcommand{\Sum}[1]{\INNER@SUM#1!}
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\SUM}
+% The |\SUM| command has one only argument which is used as a
+% subscript and, again, is always printed in |\displaystyle|.
+% \begin{macrocode}
+\newcommand{\SUM}[1]{{\displaystyle\sum_{#1}}}
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\DerPar}
+% The commands ``|\DerPar|", ``|\DerTot|" and ``|\DerNorm|" generate a
+% |displaystyle| |\frac| command, with a ``|\partial|" or ``|d|" or
+% ``|\partial n|" added to its arguments and followed by a little space.
+% \begin{macrocode}
+%%
+\newcommand\DerPar[2]{{\displaystyle\frac{\partial #1}{\partial #2}\:}}
+\newcommand\DerTot[2]{{\displaystyle\frac{d#1}{d#2}\:}}
+\newcommand\DerNorm[1]{{\displaystyle\frac{\partial #1}{\partial n}\:}}
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\TendsTo}
+% The command |\@TendeQuando| must be followed by a pair of square
+% brackets, which enclose two arguments separated by a comma.
+% It place a |\rightarrow| command between them and puts the whole
+% under a bigger |\rightarrow|.
+% The |\mathop| allows the |\limits| command, which, in turn, place
+% the subscript \emph{under} the symbol.
+% \begin{macrocode}
+%%
+\def\@TendeQuando[#1,#2]{ \mathop{\longrightarrow}\limits_{#1 \rightarrow #2} }
+% \end{macrocode}
+% The |\TendsTo| command invokes |\@TendeQuando| if followed by
+% a ``['', or |\longrightarrow| otherwise.
+% \begin{macrocode}
+\def\TendsTo{\@ifnextchar[{\@TendeQuando}{\longrightarrow}}
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\Grad}
+% The |\Grad|, |\Div| and |\Rot| commands generates a symbol or a
+% roman word, depending on the selected option.
+% \begin{macrocode}
+%%
+\if@VectOper@Symbol
+ \newcommand\Grad{\nabla}
+ \newcommand\Div{\nabla\cdot}
+ \newcommand\Rot{\nabla\ProdVett}
+\else
+ \newcommand\Grad{\:\mathrm{grad}\,}
+ \newcommand\Div{\:\mathrm{div}\,}
+ \newcommand\Rot{\:\mathrm{rot}\,}
+\fi
+% \end{macrocode}
+% \end{macro}
+%
+%\iffalse % MetaComment
+%<*package>
+%\fi
+%
+% \CheckSum{154}
+% \Finale
+%
+\endinput
+