From 4bce4544a9d409cae7156a9e8ec7c5cd83d03aee Mon Sep 17 00:00:00 2001
From: Karl Berry <karl@freefriends.org>
Date: Sun, 31 Dec 2006 22:36:12 +0000
Subject: new (old) package onlyamsmath

git-svn-id: svn://tug.org/texlive/trunk@3067 c570f23f-e606-0410-a88d-b1316a301751
---
 .../source/latex/onlyamsmath/onlyamsmath.dtx       | 314 +++++++++++++++++++++
 1 file changed, 314 insertions(+)
 create mode 100644 Master/texmf-dist/source/latex/onlyamsmath/onlyamsmath.dtx

(limited to 'Master/texmf-dist/source/latex/onlyamsmath/onlyamsmath.dtx')

diff --git a/Master/texmf-dist/source/latex/onlyamsmath/onlyamsmath.dtx b/Master/texmf-dist/source/latex/onlyamsmath/onlyamsmath.dtx
new file mode 100644
index 00000000000..f4c1ee14d75
--- /dev/null
+++ b/Master/texmf-dist/source/latex/onlyamsmath/onlyamsmath.dtx
@@ -0,0 +1,314 @@
+% \iffalse meta comment
+% File: onlyams.dtx Copyright (C) 2001 Harald Harders
+% $Id:$
+% \fi
+%
+% \iffalse
+%
+%<*package>
+\def\onlyamspackagename{onlyams}
+\def\onlyamsversion{0.04}
+\def\onlyamsfiledate{2001/10/04}
+\def\onlyamsdocdate{2001/10/04}
+%</package>
+%<*driver>
+\documentclass[fleqn]{ltxdoc}
+\usepackage{amsmath}
+\newlength{\tempdima}%
+\makeatletter
+\renewenvironment{table}[1][]{%
+  \@float{table}[#1]%
+  \centering%
+  \setlength{\tempdima}{\abovecaptionskip}%
+  \setlength{\abovecaptionskip}{\belowcaptionskip}%
+  \setlength{\belowcaptionskip}{\tempdima}%
+  }{%
+\end@float
+}
+\makeatother
+\newcommand{\PrintBibliography}{%
+\begin{thebibliography}{9}
+\bibitem{amsmath1999}
+  {\em User's Guide for the amsmath Package}.
+  \newblock American Mathematical Society, 1999/12/13.
+\end{thebibliography}
+}
+\EnableCrossrefs
+\CodelineIndex
+\DoNotIndex{\def,\edef,\let,\newcommand,\newenvironment,\newcounter}
+\DoNotIndex{\setcounter,\space,\begingroup,\endgroup}
+\CodelineNumbered
+\RecordChanges
+\CheckSum{94}
+\begin{document}
+  \title{The \texttt{onlyamsmath} package\thanks{This file is version
+      \onlyamsversion\ last revision \onlyamsfiledate, documentation
+      from \onlyamsdocdate.}}
+  \author{Harald Harders\\\texttt{h.harders@tu-bs.de}}
+  \date{File date \onlyamsfiledate, compiled \today}
+  \DocInput{onlyamsmath.dtx}
+\end{document}
+%</driver>
+% \fi
+%
+% \changes{0.01}{2001/09/21}{First version}
+%
+% \maketitle
+% \begin{abstract}
+% \noindent 
+% This package inhibits the usage of plain \TeX\ and on demand of
+% standard \LaTeX\ math environments.
+% This is useful for class writers who want to force their clients to
+% use the environments provided by the amsmath package.
+% \end{abstract}
+%
+% \tableofcontents
+%
+% \section*{Copyright}
+% Copyright 2001 Harald Harders.
+%
+% 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.
+%
+% \section{Usage of the package}
+% 
+% Just load the package using |\usepackage[|options|]{onlyamsmath}|.
+% If no option is given only the plain \TeX\ environment |$$|\dots|$$|
+% is ``destroyed''.
+% This environment leads to centred equations even with the global
+% option |fleqn| (\emph{f}orce \emph{l}eft \emph{eq}uatio\emph{n}s)
+% switched on:
+% $$
+%   a=b\,.
+% $$
+%
+% One further option is \verb|eqnarray| to switch off
+% the |eqnarray| and |eqnarray*| environments that add an unwished
+% space before and after the aligned part of the formula as shown
+% here:
+% \begin{eqnarray*}
+%   a&=&b\,.
+% \end{eqnarray*}
+% A better result is achieved using the |align| environment provided
+% by |amsmath.sty|:
+% \begin{align*}
+%   a&=b\,.
+% \end{align*}
+%
+% The most brutal option is |all| that inhibits the writer to use any
+% of the \TeX\ and \LaTeX\ math environments for non-inlined equations
+% I know (|$$|\dots|$$|, |eqnarray|, |eqnarray*|, |displaymath|.
+% The inlined mathematical modes (|$|\dots|$|, |\(|\dots|\)|) still
+% work.
+%
+% Then instead use the environments provided by |amsmath.sty|:
+% |equation|, |align|, |gather|, |flalign|, |multiline|, |alignat|,
+% and |split|. All environments except |split| have a starred
+% variant. See the User's Guide of the |amsmath| package for further
+% details \cite{amsmath1999}.
+%
+% There are two more options that control the behaviour of the package
+% if you still use one of the ``forbidden'' environments.
+% If using |error| which is the default \LaTeX\ generates an error
+% message that reminds you to use the environments of the |amsmath|
+% package.
+%
+% If using |warning| \LaTeX\ only produces warnings and proceeds.
+%
+% \section*{Acknowledgement}
+%
+% David Kastrup (David.Kastrup@t-online.de) has
+% written the part handling |$$|. 
+% I just have changed the call of the command producing the error
+% message.
+% Since I do not understand his code please don't ask me things
+% regarding it.
+%
+% \StopEventually{\PrintBibliography \PrintChanges \PrintIndex}
+%
+% \section{The implementation}
+% \iffalse
+%<*package>
+% \fi
+%
+% Package header:
+%    \begin{macrocode}
+\ProvidesPackage{onlyamsmath}[\onlyamsfiledate\space
+v\onlyamsversion\space destroy the standard math environments]
+%    \end{macrocode}
+% Load |amsmath| package:
+%    \begin{macrocode}
+\RequirePackage{amsmath}
+%    \end{macrocode}
+% \subsection{Options}
+% All options set a boolean variable which is named simular to the
+% option name.
+%
+% \changes{0.02}{2001/09/21}{Added switch \texttt{nodollardollar}}%
+% \changes{0.03}{2001/09/22}{Removed switches \texttt{dollardollar}
+% and \texttt{nodollardollar}}%
+% Define the |eqnarray| option:
+%    \begin{macrocode}
+\newif\ifonlyams@eqnarray
+\DeclareOption{eqnarray}{\onlyams@eqnarraytrue}
+%    \end{macrocode}
+% Define the |all| option:
+%    \begin{macrocode}
+\newif\ifonlyams@all
+\DeclareOption{all}{
+  \onlyams@alltrue
+  \onlyams@eqnarraytrue
+}
+%    \end{macrocode}
+% Define the |error| and |warning| options:
+%    \begin{macrocode}
+\newif\ifonlyams@error
+\onlyams@errortrue
+\DeclareOption{error}{\onlyams@errortrue}
+\DeclareOption{warning}{\onlyams@errorfalse}
+%    \end{macrocode}
+% Set the default options:
+%    \begin{macrocode}
+\ExecuteOptions{error}
+%    \end{macrocode}
+% Process the options:
+%    \begin{macrocode}
+\ProcessOptions\relax
+%    \end{macrocode}
+% \subsection{Commands}
+%
+% \begin{macro}{\onlyams@error}
+% Define a command that produces the error resp.\ warning messages.
+% The argument specifies the name of the environment that produced the
+% message.
+%    \begin{macrocode}
+\newcommand{\onlyams@error}[1]{%
+  \ifonlyams@error
+    \PackageError{onlyamsmath}{Environment #1 used}{Please use only the
+      environments provided by the amsmath package.}%
+  \else
+    \PackageWarning{onlyamsmath}{Environment #1 used, please use
+      \MessageBreak only the environments provided by the amsmath
+      \MessageBreak package}%
+  \fi
+}
+%    \end{macrocode}
+% \end{macro}
+% \changes{0.04}{2001/09/23}{Removed code that forbids
+% \texttt{\textbackslash [}\dots\texttt{\textbackslash ]}}%
+%
+% Here follows the part that is only executed when one of the options
+% |eqnarray| or |all| is used:
+%    \begin{macrocode}
+\ifonlyams@eqnarray
+%    \end{macrocode}
+% \begin{macro}{\onlyams@eqnarray}
+% Copy the original |\eqnarray| command which is called by the commands
+% |\begin{eqnarray}| and |\begin{eqnarray*}| to be able to call it
+% after producing the correspondig error message:
+%    \begin{macrocode}
+  \let\onlyams@eqnarray\eqnarray
+%    \end{macrocode}
+% \end{macro}
+% \begin{environment}{eqnarray}
+% Redefine the |\eqnarray| command:
+%    \begin{macrocode}
+  \def\eqnarray{%
+%    \end{macrocode}
+% First generate an error or warning message:
+%    \begin{macrocode}
+    \onlyams@error{eqnarray or eqnarray*}%
+%    \end{macrocode}
+% Then call the original |eqnarray| environment:
+%    \begin{macrocode}
+    \onlyams@eqnarray}
+\fi
+%    \end{macrocode}
+% \end{environment}
+% Here follows the part that is only executed when the option |all| is
+% used:
+%    \begin{macrocode}
+\ifonlyams@all
+%    \end{macrocode}
+% \begin{environment}{displaymath}
+% Redefine the |\displaymath| command:
+%    \begin{macrocode}
+  \def\displaymath{%
+%    \end{macrocode}
+% First generate an error or warning message:
+%    \begin{macrocode}
+    \onlyams@error{displaymath}%
+%    \end{macrocode}
+% Then call the |\[| environment which normally is called by the
+% |displaymath| environment:
+%    \begin{macrocode}
+    \[}
+%    \end{macrocode}
+% \end{environment}
+%    \begin{macrocode}
+\fi
+%    \end{macrocode}
+% Redefine the |$$| environment. 
+% This part wass written by David Kastrup. Please don't ask me anything
+% about it.
+% \changes{0.03}{2001/09/22}{Changed definition of
+% \texttt{\textbackslash dollarcode}, by David Kastrup}%
+% \begin{macro}{\dollarcode}
+%    \begin{macrocode}
+\def\dollarcode{\ifx\protect\@typeset@protect
+   \expandafter\futurelet\expandafter\next\expandafter\checkdsp
+   \else \expandafter$\fi}
+%    \end{macrocode}
+% \end{macro}
+%    \begin{macrocode}
+\begingroup
+\lccode`\~=`\$
+\lowercase{\endgroup\let~}\dollarcode
+%    \end{macrocode}
+% \begin{macro}{\defdsp}
+%    \begin{macrocode}
+\def\checkdsp{\ifx\next\dollarcode\expandafter\dspcomplain
+  \else\expandafter$\fi}
+%    \end{macrocode}
+% \end{macro}
+% Now comes the part that I understand and in which I have made
+% changes.
+% \begin{macro}{\dspcomplain}
+% This command controls the complaint when using |$$|.
+%    \begin{macrocode}
+\def\dspcomplain#1{%
+%    \end{macrocode}
+% If mathmode is active the code has found the second |$$| of the
+% environment. 
+% The complaint has already made and it is not necessary to do
+% generate one.
+% The environment has to be closed by using |\]|:
+%    \begin{macrocode}
+  \ifmmode 
+    \expandafter \]%
+  \else
+%    \end{macrocode}
+% If the mathmode isn't active the first |$$| of a mathematical
+% environment has been found.
+% First generate the warning or error message: 
+%    \begin{macrocode}
+    \onlyams@error{$$ $$}%
+%    \end{macrocode}
+% Then start the mathmode by using |\[|:
+%    \begin{macrocode}
+    \expandafter \[
+  \fi}
+%    \end{macrocode}
+% \end{macro}
+% Activate the complaining behaviour at |\begin{document}| to ensure
+% that packages that internally use |$$| can do that without an error:
+%    \begin{macrocode}
+\AtBeginDocument{\catcode`\$=13 }
+%    \end{macrocode}
+% \iffalse
+%</package>
+% \fi
+% \Finale
+
-- 
cgit v1.2.3

