summaryrefslogtreecommitdiff
path: root/macros/latex/contrib/cases/cases.tex
diff options
context:
space:
mode:
authorNorbert Preining <norbert@preining.info>2020-02-26 03:01:01 +0000
committerNorbert Preining <norbert@preining.info>2020-02-26 03:01:01 +0000
commit2dfd6df5d1db270dc874c6c319d51eed43defb91 (patch)
tree771360801233f1bd518937e92f71184debc2c95e /macros/latex/contrib/cases/cases.tex
parente55e56ce482cc9d01a0b83f22dac4851eb4c0357 (diff)
CTAN sync 202002260301
Diffstat (limited to 'macros/latex/contrib/cases/cases.tex')
-rw-r--r--macros/latex/contrib/cases/cases.tex232
1 files changed, 147 insertions, 85 deletions
diff --git a/macros/latex/contrib/cases/cases.tex b/macros/latex/contrib/cases/cases.tex
index 93311c2b1d..f2bb343590 100644
--- a/macros/latex/contrib/cases/cases.tex
+++ b/macros/latex/contrib/cases/cases.tex
@@ -1,148 +1,210 @@
\documentclass[DIV=9, pagesize=auto]{scrartcl}
-\usepackage{fixltx2e}
\usepackage{lmodern}
\usepackage[T1]{fontenc}
\usepackage{textcomp}
\usepackage{amsmath}
\usepackage{cases}
\usepackage{microtype}
-\usepackage{hyperref}
-
+\usepackage{shortvrb}
+\usepackage[colorlinks]{hyperref}
+\MakeShortVerb"
+\newcommand*\kp[1]{\kern#1pt}
\newcommand*{\fancybreak}{%
- \par
- \nopagebreak\medskip\nopagebreak
- \noindent\null\hfill$*\quad*\quad*\quad$\hfill\null\par
- \nopagebreak\medskip\pagebreak[0]%
+ \par \medbreak \vspace{0pt plus 1cm}\penalty 500 \vspace{0pt plus -1cm}%
}
\newcommand*{\mail}[1]{\href{mailto:#1}{\texttt{#1}}}
\newcommand*{\pkg}[1]{\textsf{#1}}
\newcommand*{\cmd}[1]{\texttt{\string#1}}
\newcommand*{\env}[1]{\texttt{#1}}
\newcommand*{\meta}[1]{\textlangle\textsl{#1}\textrangle}
+\newcommand*{\opt}[1]{\texttt{[#1]}}
-\addtokomafont{title}{\rmfamily}
+%\addtokomafont{title}{\rmfamily}
-\title{The \pkg{cases} package\thanks{This manual corresponds to \pkg{cases}~v2.5, dated~May 2002.}}
+\title{The \pkg{cases} package%
+ \textnormal{\thanks{~~This manual corresponds to \pkg{cases}~v3.0, dated 2020/02/22.}}}
\author{Donald Arseneau\\\mail{asnd@triumf.ca}}
-\date{May 2002}
+\date{Feb 2020}
\begin{document}
\maketitle
-\begingroup
-\small
+\begin{small}
\noindent
-Copyright \textcopyright~1993, 1994, 1995, 2000, 2002 by Donald Arseneau, \mail{asnd@triumf.ca}.
+Copyright \textcopyright~1993, 1994, 1995, 2000, 2002, 2020 by Donald Arseneau, \mail{asnd@triumf.ca}.
These macros may be freely transmitted, reproduced, or modified
provided that this notice is left intact. Sub-equation numbering
-is based on \pkg{subeqn.sty} by Stephen Gildea; most of the rest is based
-on \LaTeX's \cmd{\eqnarray} by Leslie Lamport and the \LaTeX3 team.
+is based on \pkg{subeqn.sty} by Stephen Gildea; parts are based
+on \LaTeX's \env{eqnarray} by Leslie Lamport and the \LaTeX3 team;
+and some on amsmath.sty by the American Mathematical Society.
\par
-\endgroup
+\end{small}
-\fancybreak
+\section*{Description}
-This provides a \LaTeX\ environment \verb+{numcases}+ to produce multi-case
-equations with a separate equation number for each case. There is
-also \verb+{subnumcases}+ which numbers each case with the overall equation
+The \pkg{cases} package provides a \LaTeX\ environment \env{numcases} to produce
+multi-case equations with a separate equation number for each case. There is
+also \env{subnumcases} which numbers each case with the overall equation
number plus a letter [8a, 8b, etc.]. The syntax is
%
-\begin{verbatim}
-\begin{numcases}{left_side}
- case_1 & explanation_1 \\
- case_2 & explanation_2 \\
- ...
- case_n & explanation_n
-\end{numcases}
-\end{verbatim}
+\begin{flushleft}
+"\begin{numcases}{"~\meta{left side}~"}"\\
+\quad \meta{case 1\kp1} "&" \meta{explanation 1\kp1} "\\" \\
+\quad \meta{case 2\kp2} "&" \meta{explanation 2\kp2} "\\" \\
+\quad .~.~.\\
+\quad \meta{case $n$} "&" \meta{explanation $n$} \\
+"\end{numcases}"
+\end{flushleft}
%
-Each \meta{case} is a math formula, and each \meta{explanation} is a piece of lr mode
-text (which may contain math mode in \verb+\(...\)+ or \verb+$...$+). The explanations
+Each \meta{case} is a math formula, to be typeset in display-math mode, like
+in a regular numbered equation. Each \meta{explanation} is a piece of lr-mode
+text (which may contain math mode in "\("\,\dots"\)" or "$"\,\dots"$"). The explanations
are optional. Equation numbers are inserted automatically, just as for
the \env{eqnarray} environment. In particular, the \cmd{\nonumber} command suppresses
an equation number and the \cmd{\label} command allows reference to a particular
-case. In a \env{subnumcases} environment, a \cmd{\label} in the \meta{left\_side} of the
+case. In a \env{subnumcases} environment, a \cmd{\label} in the \meta{left side} of the
equation gives the overall equation number, without any letter.
To use this package,
-include ``\verb+\usepackage{cases}+'' after ``\cmd{\documentclass}''. You may also
-specify ``\verb+\usepackage[subnum]{cases}+'' to force \emph{all} \env{numcases}
-environments to be treated as \env{subnumcases}.
-
-\emph{Question:} Is there a \verb+{numcases*}+ environment for
-unnumbered cases?\\
-\emph{Answer:} There is a \verb+{cases}+
-environment in \AmS-\LaTeX, but it is just as convenient to stick
-with the canonical \LaTeX\ array:
-%
-\begin{verbatim}
-\[ left side = \left\{ \begin{array}...\end{array} \right. \]
-\end{verbatim}
-%
-Speaking of \pkg{\AmS-math}, they use an entirely different system
-of equation numbering, and this package uses ordinary \LaTeX\ %
-numbering.
+include "\usepackage{cases}" after \cmd{\documentclass}, and also after
+"\usepackage{amsmath}" if you are using that.
\fancybreak
-\noindent
+\noindent \emph{Question:} Is there a \env{numcases*} environment for
+unnumbered cases?\\
+\emph{Answer:} That would have the natural name \env{cases}, and it is
+provided by \AmS-\LaTeX\ (\pkg{amsmath} package), or by this package given
+the \opt{cases} option. It can also be achieved by using an ordinary \LaTeX\ array
+between `"\left\lbrace\ "' and `"\right."'.
+
+Speaking of \pkg{amsmath} and package options, there are differences between the
+style used for this package and the cases done by \pkg{amsmath} (see below), but cases.sty
+has options to increase compatibility. Here is the full list of options for
+this package.
+\begin{description}
+\item[\opt{subnum}] Force all \env{numcases} environments to be treated as
+ \env{subnumcases}.
+\item[\opt{amsstyle}] For compatibility with \pkg{amsmath}'s \env{cases}, make \env{numcases}
+ use cramped math style ("\textstyle"), and put explanations in the same math style.
+\item[\opt{casesstyle}] Change \pkg{amsmath}'s \env{cases} environment to work in the text/math style
+ of \env{numcases}.
+\item[\opt{cases}] Define a \env{cases} environment for use without \pkg{amsmath}. (This
+ is actually the same as the \opt{casesstyle} option.)
+\item[\opt{fleqn}] Flush-left equation alignment, indented by \cmd{\mathindent}
+ or \cmd{\mathmargin}. (Usually inherited from the \cmd{\documentclass} options.)
+\item[\opt{leqno}] Left-side equation numbering (usually inherited from the \cmd{\documentclass}
+ options). This looks silly with numbered cases!
+\end{description}
+
+\section*{Examples}
+
A simple example is:
%
\begin{verbatim}
-\begin{numcases}{|x|=}
- x, & for $x \geq 0$\\
- -x, & for $x < 0$
-\end{numcases}
+ \begin{numcases} {|x|=}
+ x, & for $x \geq 0$\\
+ -x, & for $x < 0$
+ \end{numcases}
\end{verbatim}
%
Giving:
%
-\begin{numcases}{|x|=}
+\begin{numcases} {|x|=}
x, & for $x \geq 0$\\
-x, & for $x < 0$
\end{numcases}
\fancybreak
-
\noindent
-Another example is calculating the square root of $c+id$. First compute
-\phantomsection
-\begin{subnumcases}{\label{w} w\equiv}
- 0 & $c = d = 0$\label{wzero}\\
- \sqrt{|c|}\,\sqrt{\frac{1 + \sqrt{1+(d/c)^2}}{2}} & $|c| \geq |d|$ \\
- \sqrt{|d|}\,\sqrt{\frac{|c/d| + \sqrt{1+(c/d)^2}}{2}} & $|c| < |d|$
+Another example, employing sub-numbering, is calculating the square root
+of a complex number $c+id$. First compute
+\begin{subnumcases} {\label{weqn} w\equiv}
+ 0 & for $c = d = 0$\label{wzero}\\
+ \sqrt{|c|}\,\sqrt{\frac{1 + \sqrt{1+(d/c)^2}}{2}} & for $|c| \geq |d|$ \\
+ \sqrt{|d|}\,\sqrt{\frac{|c/d| + \sqrt{1+(c/d)^2}}{2}} & for $|c| < |d|$
\end{subnumcases}
-Then, using $w$ from eq.~(\ref{w}), the square root is
-\begin{subnumcases}{\sqrt{c+id}=}
- 0 & $w=0$ (case \ref{wzero})\\
- w+i\frac{d}{2w} & $w \neq 0$, $c \geq 0$ \\
- \frac{|d|}{2w} + iw & $w \neq 0$, $c < 0$, $d \geq 0$ \\
- \frac{|d|}{2w} - iw & $w \neq 0$, $c < 0$, $d < 0$
+Then, using $w$ from eq.~(\ref{weqn}), the square root is
+\begin{subnumcases}{\label{sqrteqn} \sqrt{c+id}=}
+ 0\,, \label{aaa} & $w=0$ (case \ref{wzero})\\
+ w+i\frac{d}{2w}\,, & $w \neq 0$, $c \geq 0$ \\
+ \frac{|d|}{2w} + iw\,, & $w \neq 0$, $c < 0$, $d \geq 0$ \\
+ \frac{|d|}{2w} - iw\,,\label{ddd} & $w \neq 0$, $c < 0$, $d < 0$
\end{subnumcases}
-
-\pagebreak[2]
-
-\noindent
-This was produced by:
-%
-\small
+These equations, eq.~(\ref{weqn}) and (\ref{sqrteqn}), were produced by:
+\begin{small}
\begin{verbatim}
-Another example is calculating the square root of $c+id$. First compute
-\begin{subnumcases}{\label{w} w\equiv}
- 0 & $c = d = 0$\label{wzero}\\
-\sqrt{|c|}\,\sqrt{\frac{1 + \sqrt{1+(d/c)^2}}{2}} & $|c| \geq |d|$ \\
-\sqrt{|d|}\,\sqrt{\frac{|c/d| + \sqrt{1+(c/d)^2}}{2}} & $|c| < |d|$
+Another example, employing sub-numbering, is calculating the square root
+of a complex number $c+id$. First compute
+\begin{subnumcases} {\label{weqn} w\equiv}
+ 0 & for $c = d = 0$\label{wzero}\\
+ \sqrt{|c|}\,\sqrt{\frac{1 + \sqrt{1+(d/c)^2}}{2}} & for $|c| \geq |d|$ \\
+ \sqrt{|d|}\,\sqrt{\frac{|c/d| + \sqrt{1+(c/d)^2}}{2}} & for $|c| < |d|$
\end{subnumcases}
-Then, using $w$ from eq.~(\ref{w}), the square root is
-\begin{subnumcases}{\sqrt{c+id}=}
-0 & $w=0$ (case \ref{wzero})\\
-w+i\frac{d}{2w} & $w \neq 0$, $c \geq 0$ \\
-\frac{|d|}{2w} + iw & $w \neq 0$, $c < 0$, $d \geq 0$ \\
-\frac{|d|}{2w} - iw & $w \neq 0$, $c < 0$, $d < 0$
+Then, using $w$ from eq.~(\ref{weqn}), the square root is
+\begin{subnumcases}{\label{sqrteqn} \sqrt{c+id}=}
+ 0\,, & $w=0$ (case \ref{wzero})\\
+ w+i\frac{d}{2w}\,, & $w \neq 0$, $c \geq 0$ \\
+ \frac{|d|}{2w} + iw\,, & $w \neq 0$, $c < 0$, $d \geq 0$ \\
+ \frac{|d|}{2w} - iw\,, & $w \neq 0$, $c < 0$, $d < 0$
\end{subnumcases}
\end{verbatim}
+\end{small}
+
+\section*{Compatibilibility with amsmath}
+
+When used in conjunction with amsmath.sty, the cases package will obey the the variant
+commands \cmd{\tag}, \cmd{\notag}, and \cmd{\mathmargin}, however the formatting details
+differ between \pkg{amsmath}'s \env{cases} environment and \env{numcases}.
+For comparison, equation~(\ref{weqn}) formatted by \pkg{amsmath} and its \env{cases} environment
+may be entered as
+\begin{flushleft}\small
+\begin{verbatim}
+\begin{equation}
+\label{wams} w \equiv
+\begin{cases}
+ 0 & \text{for}\ c = d = 0\\
+ \sqrt{|c|}\,\sqrt{\frac{1+\sqrt{1+(d/c)^2}}{2}} &\text{for}\ |c| \geq |d|\\
+ \sqrt{|d|}\,\sqrt{\frac{|c/d| + \sqrt{1+(c/d)^2}}{2}} &\text{for}\ |c|<|d|
+\end{cases}
+\end{equation}
+\end{verbatim}
+\end{flushleft}
+which produces
+\begin{equation}
+\label{wams} w\equiv
+\begin{cases}
+ 0 & \text{for }c = d = 0\\
+ \sqrt{|c|}\,\sqrt{\frac{1+\sqrt{1+(d/c)^2}}{2}} & \text{for}\ |c| \geq |d| \\
+ \sqrt{|d|}\,\sqrt{\frac{|c/d| + \sqrt{1+(c/d)^2}}{2}} & \text{for}\ |c| < |d|
+\end{cases}
+\end{equation}
+To get this more compact layout with \env{numcases} you can insert "\textstyle"
+at the beginning of each case, as needed, or use the \pkg{cases}
+package option \opt{amsstyle}.
+To have the \env{cases} environment give the more open layout of eq.~(\ref{weqn})
+you can put "\displaystyle" at the beginning of each case, or use the
+option \opt{casesstyle} for the \pkg{cases} package. (Yes these go with the cases package, they
+are not options for amsmath.)
+
+For full disclosure, even without any relevant package options, cases.sty will
+slightly adjust the \env{cases} environment from \pkg{amsmath}, by adding a little
+space after the left brace.
+
+\section*{Sub-numbering}
+For control of the sub-equation-numbering style, see the
+\AmS-\LaTeX\ documentation for \env{subequations}, currently
+in section 3.11.3. If you are not using amsmath, that documentation
+still mostly applies, except the name for regular equation numbers
+is then `mainequation' instead of `parentequation'. Also, the
+sub-numbering style can be controlled more easily by defining
+\cmd{\thesubequation}. An example for capitalized letters is
+\begin{verbatim}
+\renewcommand\thesubequation{\themainequation.\Alph{equation}} % 13.C
+\end{verbatim}
+
\end{document}