Current File : //usr/share/texlive/texmf-dist/doc/latex/amsmath/amsldoc.tex |
%
% Copyright (C) 1995, 2000, 2013 American Mathematical Society.
% Copyright (C) 2016-2020 LaTeX3 Project and American Mathematical Society.
%
% This work may be distributed and/or modified under the
% conditions of the LaTeX Project Public License, either version 1.3c
% of this license or (at your option) any later version.
% The latest version of this license is in
% https://www.latex-project.org/lppl.txt
% and version 1.3c or later is part of all distributions of LaTeX
% version 2005/12/01 or later.
%
% This work has the LPPL maintenance status `maintained'.
%
% The Current Maintainer of this work is the LaTeX3 Project.
%
\documentclass[leqno,titlepage,openany]{amsldoc}[1999/12/13]
\def\MaintainedByLaTeXTeam#1{%
\begin{center}%
\fbox{\fbox{\begin{tabular}{@{}l@{}}%
This file is maintained by the \LaTeX{} Project team.\\%
Bug reports can be opened (category \texttt{#1}) at\\%
\url{https://latex-project.org/bugs/}.\end{tabular}}}\end{center}}
\ifx\UndEfiNed\url
\ClassError{amsldoc}{%
This version of amsldoc.tex must be processed\MessageBreak
with a newer version of amsldoc.cls (2.02 or later).}{}
\fi
\renewcommand\bibname{References}
% Definitions that should be moved to amsldoc.cls
% when it is next updated
\makeatletter
\let\cleardouble@page\cleardoublepage
\AtBeginDocument{%
\ifx\cleardouble@page\cleardoublepage
\def\cleardoublepage{\clearpage{\pagestyle{empty}\cleardouble@page}}
\fi
}
% #1 is empty or one of class, environment, option, package
% could use different font in each case
\makeatletter
\def\@category@index#1#2{%
\autoindex{%
#2\actualchar\string\index#1font{#2}%
\ifx\@nil#1\@nil\else\space#1\fi
}%
}
\let\indexpackagefont\textsf
\let\indexclassfont\textsf
\let\indexoptionfont\texttt
\let\indexenvironmentfont\texttt
\let\indexfont\texttt
\makeatother
% For a package that won't be indexed, i.e. amsmath
\newcommand{\nipkg}{\textsf}
\def\tikz/{Ti\textit{k}Z}
% End definitions for amsldoc.cls
\title{User's Guide for the \nipkg{amsmath} Package (Version~2.1)}
\author{American Mathematical Society, \LaTeX3 Project}
\date{1999-12-13\\(revised 2002-02-25, 2016-11-14, 2018-04-05, 2019-10-14, 2020-02-18)}
\makeatletter
\def\@thanks{\bigskip\MaintainedByLaTeXTeam{amslatex}}
\makeatother
% Use the amsmath package and amscd package in order to print
% examples.
\usepackage{amsmath}
\usepackage{amscd}
\usepackage{imakeidx}
% Need alternate coding for vertical bar to get it into index.
% Based on \qcbang and \cnbang in amsldoc.cls, refined by David Carlisle.
% Give it a sort field that will be at the end of the symbols;
% must avoid " and | which have special meanings.
\DeclareRobustCommand{\qcvert}{\qc\|\index{{z1}@{\ntt\char'174}}}
\DeclareRobustCommand{\cnvert}{%
\ncn{\|}\index{{z0}@{\ntt\bslchar\char'174}}}
% Need alternate index sort field for bang to allow & to sort first
\DeclareRobustCommand{\altcnbang}{%
\ncn{\!}\index{"!b@{\ntt\bslchar\qcbang}}}
\DeclareRobustCommand{\cnamp}{%
\index{"!a@\texttt{\&}}}
\makeindex[intoc] % generate index data
\providecommand{\see}[2]{\textit{see} #1}
% The amsldoc class includes a number of features useful for
% documentation about TeX, including:
%
% ---Commands \tex/, \amstex/, \latex/, ... for uniform treatment
% of the various logos and easy handling of following spaces.
%
% ---Commands for printing various common elements: \cn for command
% names, \fn for file names (including font-file names), \env for
% environments, \pkg and \cls for packages and classes, etc.
% Many of the command names used here are rather long and will
% contribute to poor linebreaking if we follow the \latex/ practice
% of not hyphenating anything set in tt font; instead we selectively
% allow some hyphenation.
\allowtthyphens % defined in amsldoc.cls
\hyphenation{ac-cent-ed-sym-bol add-to-counter add-to-length align-at
aligned-at allow-dis-play-breaks ams-art ams-cd ams-la-tex amsl-doc
ams-symb ams-tex ams-text ams-xtra bmatrix bold-sym-bol cen-ter-tags
eqn-ar-ray idots-int int-lim-its latex med-space neg-med-space
neg-thick-space neg-thin-space no-int-lim-its no-name-lim-its
over-left-arrow over-left-right-arrow over-right-arrow pmatrix
qed-sym-bol set-length side-set small-er tbinom the-equa-tion
thick-space thin-space un-der-left-arrow un-der-left-right-arrow
un-der-right-arrow use-pack-age var-inj-lim var-proj-lim vmatrix
xalign-at xx-align-at}
% Prepare for illustrating the \vec example
\newcommand{\vect}[1]{\mathbf{#1}}
\newcommand{\booktitle}[1]{\textit{#1}}
\newcommand{\journalname}[1]{\textit{#1}}
\newcommand{\seriesname}[1]{\textit{#1}}
% Command to insert and index a particular phrase. Doesn't work for
% certain kinds of special characters in the argument.
\newcommand{\ii}[1]{#1\index{#1}}
\newcommand{\vstrut}[1]{\vrule width0pt height#1\relax}
% An environment for presenting comprehensive address information:
\newenvironment{infoaddress}{%
\par\topsep\medskipamount
\trivlist\centering
\item[]%
\begin{minipage}{.7\columnwidth}%
\raggedright
}{%
\end{minipage}%
\endtrivlist
}
\newenvironment{eqxample}{%
\par\addvspace\medskipamount
\noindent\begin{minipage}{.5\columnwidth}%
\def\producing{\end{minipage}\begin{minipage}{.5\columnwidth}%
\hbox\bgroup\kern-.2pt\vrule width.2pt%
\vbox\bgroup\parindent0pt\relax
% The 3pt is to cancel the -\lineskip from \displ@y
\abovedisplayskip3pt \abovedisplayshortskip\abovedisplayskip
\belowdisplayskip0pt \belowdisplayshortskip\belowdisplayskip
\noindent}
}{%
\par
% Ensure that a lonely \[\] structure doesn't take up width less than
% \hsize.
\hrule height0pt width\hsize
\egroup\vrule width.2pt\kern-.2pt\egroup
\end{minipage}%
\par\addvspace\medskipamount
}
% Errors in output shouldn't be \texttt, and they may also be longer
% than one line, but they should be identified by the "errorbullet".
% (They were formerly labeled as aubsections.)
\newenvironment{erroro}[1]{%
\par\addvspace\medskipamount
\noindent\hangindent\parindent
\hbox to\parindent{\errorbullet\hfil}\ignorespaces
#1\par\vspace{\smallskipamount}
}{%
\par\addvspace\medskipamount
}
% The chapters are so short, perhaps we shouldn't call them by the
% name `Chapter'. We make \chaptername read an argument in order to
% remove a following \space or "{} " (both possibilities are present
% in book.cls).
\renewcommand{\chaptername}[1]{}
\newcommand{\chapnum}[1]{\mdash #1\mdash }
\makeatletter
\def\@makechapterhead#1{%
\vspace{1.5\baselineskip}%
{\parindent \z@ \raggedright \reset@font
\ifnum \c@secnumdepth >\m@ne
\large\bfseries \chapnum{\thechapter}%
\par\nobreak
\vskip.5\baselineskip\relax
\fi
#1\par\nobreak
\vskip\baselineskip
}}
\makeatother
% A command for ragged-right parbox in a tabular.
\newcommand{\rp}{\let\PBS\\\raggedright\let\\\PBS}
% Non-indexed file name
\newcommand{\nfn}[1]{\texttt{#1}}
% For the examples in the math spacing table.
%%\newcommand{\lspx}{\mbox{\rule{5pt}{.6pt}\rule{.6pt}{6pt}}}
%%\newcommand{\rspx}{\mbox{\rule[-1pt]{.6pt}{7pt}%
%% \rule[-1pt]{5pt}{.6pt}}}
\newcommand{\lspx}{\mathord{\Rightarrow\mkern-1mu}}
\newcommand{\rspx}{\mathord{\mkern-1mu\Leftarrow}}
\newcommand{\spx}[1]{$\lspx #1\rspx$}
% For a list of characters representing document input.
\newcommand{\clist}[1]{%
\mbox{\ntt\spaceskip.2em plus.1em \xspaceskip\spaceskip#1}}
% Fix weird \latex/ definition of rightmark.
\makeatletter
\def\rightmark{\expandafter\@rightmark\botmark{}{}}
% Also turn off section marks.
\let\sectionmark\@gobble
\renewcommand{\chaptermark}[1]{%
\uppercase{\markboth{\rhcn#1}{\rhcn#1}}}
\newcommand{\rhcn}{\thechapter. }
\makeatother
% Include down to \section but not \subsection, in toc:
\setcounter{tocdepth}{1}
% Subheadings for the bibliography
\newif\iffirstbibsubhead \firstbibsubheadtrue
\newcommand{\bibsubhead}[1]{%
\iffirstbibsubhead \firstbibsubheadfalse
\else \addvspace{\medskipamount}
\fi
\item[]\hspace*{-\leftmargin}\textbf{#1}\par
\vspace{\smallskipamount}
}
\DeclareMathOperator{\ix}{ix}
\DeclareMathOperator{\nul}{nul}
\DeclareMathOperator{\End}{End}
\DeclareMathOperator{\xxx}{xxx}
\usepackage{hyperref}
\hypersetup{pdfborder=0 0 0}
\makeatletter
\let\oldcs\cs
\def\cs#1{\texorpdfstring{\oldcs{#1}}{\@backslashchar\@backslashchar#1}}
\let\cn\cs
\makeatother
\begin{document}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\frontmatter
\maketitle
\pagestyle{headings}
\tableofcontents
\cleardoublepage % for better page number placement
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\mainmatter
\chapter{Introduction}
\index{amsmath@\texttt{amsmath} package|(}
The \nipkg{amsmath} package is a \LaTeX{} package that provides
miscellaneous enhancements for improving the information structure and
printed output of documents that contain mathematical formulas. Readers
unfamiliar with \LaTeX{} should refer to \cite{lamport}. If you have an
up-to-date version of \LaTeX{}, the \nipkg{amsmath} package is normally
provided along with it. Upgrading when a newer version of the
\nipkg{amsmath} package is released can be done via
\url{http://mirror.ctan.org/macros/latex/required/amsmath.zip}.
This documentation describes the features of the \nipkg{amsmath} package
and discusses how they are intended to be used. It also covers some
ancillary packages:
\begin{ctab}{lll}
\pkg{amsbsy}& \pkg{amsopn}& \pkg{amsxtra}\\
\pkg{amscd}& \pkg{amstext}\\
\end{ctab}
These all have something to do with the contents of math formulas. For
information on extra math symbols and math fonts, see \cite{amsfonts}
and \url{https://www.ams.org/tex/amsfonts.html}. For documentation of the
\pkg{amsthm} package or AMS document classes (\cls{amsart},
\cls{amsbook}, etc.\@) see \cite{amsthdoc} or \cite{amshandbk} and
\url{https://www.ams.org/tex/author-info.html}.
If you are a long-time \latex/ user and have lots of mathematics in what
you write, then you may recognize solutions for some familiar problems
in this list of \nipkg{amsmath} features:
\begin{itemize}
\item A convenient way to define new `operator name' commands analogous
to \cn{sin} and \cn{lim}, including proper side spacing and automatic
selection of the correct font style and size (even when used in
sub- or superscripts).
\item Multiple substitutes for the \env{eqnarray} environment to make
various kinds of equation arrangements easier to write.
\item Equation numbers automatically adjust up or down to avoid
overprinting on the equation contents (unlike \env{eqnarray}).
\item Spacing around equals signs matches the normal spacing in the
\env{equation} environment (unlike \env{eqnarray}).
\item A way to produce multiline subscripts as are often used with
summation or product symbols.
\item An easy way to substitute a variant equation number for a given
equation instead of the automatically supplied number.
\item An easy way to produce subordinate equation numbers of the form
(1.3a) (1.3b) (1.3c) for selected groups of equations.
\end{itemize}
The \nipkg{amsmath} package is distributed together with some small
auxiliary packages:
\begin{description}
\item[\nipkg{amsmath}] Primary package, provides various features for
displayed equations and other mathematical constructs.
\item[\pkg{amstext}] Provides a \cn{text} command for
typesetting a fragment of text inside a display.
\item[\pkg{amsopn}] Provides \cn{DeclareMathOperator} for defining new
`operator names' like \cn{sin} and \cn{lim}.
\item[\pkg{amsbsy}] For backward compatibility this package continues
to exist but use of the newer \pkg{bm} package that comes with \LaTeX{}
is recommended instead.
\item[\pkg{amscd}] Provides a \env{CD} environment for simple
commutative diagrams (no support for diagonal arrows).
\item[\pkg{amsxtra}] Provides certain odds and ends such as
\cn{fracwithdelims} and \cn{accentedsymbol}, for compatibility with
documents created using version 1.1.
\end{description}
The \nipkg{amsmath} package incorporates \pkg{amstext}, \pkg{amsopn}, and
\pkg{amsbsy}. The features of \pkg{amscd} and \pkg{amsxtra}, however,
are available only by invoking those packages separately.
The independent \pkg{mathtools} package \cite{mt} provides some
enhancements to \nipkg{amsmath}; \pkg{mathtools} loads \nipkg{amsmath}
automatically, so there is no need to separately load \nipkg{amsmath}
if \pkg{mathtools} is used. Some \pkg{mathtools} facilities
will be noted below as appropriate.
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\chapter{Options for the \nipkg{amsmath} package}\label{options}
The \nipkg{amsmath} package has the following options:
\index{options!amsmath@\texttt{amsmath} package options|(}
\begin{description}
\item[\opt{centertags}] (default) For an equation containing a
\env{split} environment, place equation
numbers\index{equationn@equation numbers!vertical placement}
vertically centered on the total height of the equation.
\item[\opt{tbtags}] `Top-or-bottom tags': For an equation containing
a \env{split} environment, place equation
numbers\index{equationn@equation numbers!vertical placement} level with the last
(resp.\ first) line, if numbers are on the right (resp.\ left).
\item[\opt{sumlimits}] (default) Place the subscripts and
superscripts\index{subscripts and superscripts!placement}\relax
\index{limits|see{subscripts and superscripts}} of summation symbols
above and below, in displayed equations. This option also affects other
symbols of the same type\mdash $\prod$, $\coprod$, $\bigotimes$,
$\bigoplus$, and so forth\mdash but excluding integrals (see below).
\item[\opt{nosumlimits}] Always place the subscripts and superscripts of
summation-type symbols to the side, even in displayed equations.
\item[\opt{intlimits}] Like \opt{sumlimits}, but for
integral\index{integrals!placement of limits} symbols.
\item[\opt{nointlimits}] (default) Opposite of \opt{intlimits}.
\item[\opt{namelimits}] (default) Like \opt{sumlimits}, but for certain
`operator names' such as $\det$, $\inf$, $\lim$, $\max$, $\min$, that
traditionally have subscripts%
\index{subscripts and superscripts!placement} placed underneath when
they occur in a displayed equation.
\item[\opt{nonamelimits}] Opposite of \opt{namelimits}.
\end{description}
\goodbreak
\begin{description}
\item[\opt{alignedleftspaceyes}]
\item[\opt{alignedleftspaceno}]
\item[\opt{alignedleftspaceyesifneg}]
\end{description}
To use one of these package options, put the option name in the optional
argument of the \cn{usepackage} command\mdash e.g.,
\verb"\usepackage[intlimits]{amsmath}".
For AMS document classes and any other classes that preload \nipkg{amsmath}
desired options must be specified with the \cn{documentclass}\mdash
e.g.,\\
\verb+\documentclass[intlimits,tbtags,reqno]{amsart}+.
The \nipkg{amsmath} package also recognizes the following options which
are normally selected (implicitly or explicitly) through the
\cn{documentclass} command, and thus need not be repeated in the option
list of the \cn{usepackage}|{amsmath}| statement.
\begin{description}
\item[\opt{leqno}] Place equation numbers on the left.%
\index{equationn@equation numbers!left or right placement}
\item[\opt{reqno}] Place equation numbers on the right.
\item[\opt{fleqn}] Position equations at a fixed indent from the left
margin rather than centered in the text column.%
\index{displayed equations!centering}
\end{description}
Three options have been added to control the space to the left of
\env{aligned} and \env{gathered} environments. Prior to the 2017 release
a thin space was added to the left but not the right of these constructs.
This appears to have been an accidental feature of the implementation and
was typically corrected by prefixing the environments with \altcnbang.
The new default behavior is aimed to ensure that the environments do
not have a thin space added in most cases, and that existing documents
using |\!\begin{aligned}| continue to work as before.
\begin{description}
\item[\opt{alignedleftspaceyes}] Always add \cn{\,} to the left of \env{aligned} and \env{gathered}.
\item[\opt{alignedleftspaceno}] Never add \cn{\,} to the left of \env{aligned} and \env{gathered}.
\item[\opt{alignedleftspaceyesifneg}] Only add \cn{\,} if the environment is prefixed by negative space. (New default behavior.)
\end{description}
\index{options!amsmath@\texttt{amsmath} package options|)}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\chapter{Displayed equations}
\section{Introduction}
The \nipkg{amsmath} package provides a number of additional displayed
equation structures\index{displayed equations}%
\index{equations|see{displayed equations}} beyond the ones
provided in basic \latex/. The augmented set includes:
\begin{verbatim}
equation equation* align align*
gather gather* alignat alignat*
multline multline* flalign flalign*
split
\end{verbatim}
(Although the standard \env{eqnarray} environment remains available,
it is better to use \env{align} or \env{equation}+\env{split} instead.
Within \env{eqnarray}, spacing\index{horizontal spacing} around signs
of relation is not the preferred mathematical spacing, and is
inconsistent with that spacing as it appears in other environments.
Long lines in this environment may result in misplaced or overprinted
equation numbers. This environment also does not support the use of
\cn{qed} or \cn{qedhere} as provided by theorem packages.)
Except for \env{split}, each environment has both starred and unstarred
forms, where the unstarred forms have automatic numbering using
\latex/'s \env{equation} counter. You can suppress the number on any
particular line by putting \cn{notag} before the end of that line;
\cn{notag} should not be used outside a display environment as it will
mess up the numbering. You can also
override\index{equationn@equation numbers!overriding} a number with a tag
of your own using \cn{tag}|{|\<label>|}|, where \<label> means arbitrary
text such as |$*$| or |ii| used to \qq{number} the equation.
A tag can reference a different tagged display by use of
|\tag{\ref{|\<label>|}|\<modifier>|}| where \<modifier> is optional.
If you are using \pkg{hyperref}, use \cn{ref*};
use of the starred form of \cn{ref} prevents a reference to a modified
tag containing a nested link from linking to the original display.
There is also a
\cn{tag*} command that causes the text you supply to be typeset
literally, without adding parentheses around it. \cn{tag} and \cn{tag*}
can also be used within the unnumbered versions of all the \nipkg{amsmath}
alignment structures. Some examples of the use of \cn{tag} may be found
in the sample files \fn{testmath.tex} and \fn{subeqn.tex} provided with
the \nipkg{amsmath} package.
The \env{split} environment is a special subordinate form that is used
only \emph{inside} one of the others. It cannot be used inside
\env{multline}, however. \env{split} supports only one alignment (|&|)
column; if more are needed, \env{aligned} or \env{alignedat} should be
used. The width of a \env{split} structure is the full line width.
In the structures that do alignment (\env{split}, \env{align} and
variants), relation symbols have an |&| before them but not
after\mdash unlike \env{eqnarray}. Putting the |&| after the
relation symbol will interfere with the normal spacing; it has to go
before.
In all multiline environments, lines are divided by \cn{\\}. The \cn{\\}
should \emph{not} be used to end the last line. Using it there will
result in unwanted extra vertical space following the display.
In \emph{all} math environments (inline or display), blank lines
(equivalent to \cn{par}) are not permitted, and will result in an error.
\begin{table}[p]
\caption[]{Comparison of displayed equation environments (vertical lines
indicating nominal margins)}\label{displays}
\renewcommand{\theequation}{\arabic{equation}}
\begin{eqxample}
\begin{verbatim}
\begin{equation*}
a=b
\end{equation*}
\end{verbatim}
\producing
\begin{equation*}
a=b
\end{equation*}
\end{eqxample}
\begin{eqxample}
\begin{verbatim}
\begin{equation}
a=b
\end{equation}
\end{verbatim}
\producing
\begin{equation}
a=b
\end{equation}
\end{eqxample}
\begin{eqxample}
\begin{verbatim}
\begin{equation}\label{xx}
\begin{split}
a& =b+c-d\\
& \quad +e-f\\
& =g+h\\
& =i
\end{split}
\end{equation}
\end{verbatim}
\producing
\begin{equation}\label{xx}
\begin{split}
a& =b+c-d\\
& \quad +e-f\\
& =g+h\\
& =i
\end{split}
\end{equation}
\end{eqxample}
\begin{eqxample}
\begin{verbatim}
\begin{multline}
a+b+c+d+e+f\\
+i+j+k+l+m+n
\end{multline}
\end{verbatim}
\producing
\begin{multline}
a+b+c+d+e+f\\
+i+j+k+l+m+n
\end{multline}
\end{eqxample}
\begin{eqxample}
\begin{verbatim}
\begin{gather}
a_1=b_1+c_1\\
a_2=b_2+c_2-d_2+e_2
\end{gather}
\end{verbatim}
\producing
\begin{gather}
a_1=b_1+c_1\\
a_2=b_2+c_2-d_2+e_2
\end{gather}
\end{eqxample}
\begin{eqxample}
\begin{verbatim}
\begin{align}
a_1& =b_1+c_1\\
a_2& =b_2+c_2-d_2+e_2
\end{align}
\end{verbatim}
\producing
\begin{align}
a_1& =b_1+c_1\\
a_2& =b_2+c_2-d_2+e_2
\end{align}
\end{eqxample}
\begin{eqxample}
\begin{verbatim}
\begin{align}
a_{11}& =b_{11}&
a_{12}& =b_{12}\\
a_{21}& =b_{21}&
a_{22}& =b_{22}+c_{22}
\end{align}
\end{verbatim}
\producing
\begin{align}
a_{11}& =b_{11}&
a_{12}& =b_{12}\\
a_{21}& =b_{21}&
a_{22}& =b_{22}+c_{22}
\end{align}
\end{eqxample}
\begin{eqxample}
\begin{verbatim}
\begin{flalign*}
a_{11} + b_{11}& = c_{11}&
a_{12}& =b_{12}\\
b_{21}& = c_{21}&
a_{22}& =b_{22}+c_{22}
\end{flalign*}
\end{verbatim}
\producing
\begin{flalign*}
a_{11} + b_{11}& = c_{11}&
a_{12}& =b_{12}\\
b_{21}& = c_{21}&
a_{22}& =b_{22}+c_{22}
\end{flalign*}
\end{eqxample}
\end{table}
%% ------------------------------------------------------------------ %%
\enlargethispage{1\baselineskip}
\section{Single equations}
The \env{equation} environment is for a single equation with an
automatically generated number. The \env{equation*} environment is the
same except for omitting the number.%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\footnote{Basic \latex/ doesn't provide an \env{equation*} environment,
but rather a functionally equivalent environment named
\env{displaymath}.}
The wrapper \verb+\[ ... \]+ is equivalent to \env{equation*}.%
\index{[@\verb+\[ ... \]+}
%% ------------------------------------------------------------------ %%
\section{Split equations without alignment}
The \env{multline} environment is a variation of the \env{equation}
environment used for equations that don't fit on a single line. The
first line of a \env{multline} will be at the left margin and the last
line at the right margin, except for an indention on both sides in the
amount of \cn{multlinegap}. Any additional lines in between will be
centered independently within the display width (unless the \opt{fleqn}
option is in effect).%
\index{options!behavior of particular options}
Like \env{equation}, \env{multline} has only a single equation number
(thus, none of the individual lines should be marked with \cn{notag}).
The equation number is placed on the last line (\opt{reqno} option) or
first line (\opt{leqno} option); vertical centering as for \env{split}
is not supported by \env{multline}.%
\index{options!behavior of particular options}
It's possible to force one of the middle lines to the left or right with
commands \cn{shoveleft}, \cn{shoveright}. These commands take the entire
line as an argument, up to but not including the final \cn{\\}; for
example
\begin{multline}
\framebox[.65\columnwidth]{A}\\
\framebox[.5\columnwidth]{B}\\
\shoveright{\framebox[.55\columnwidth]{C}}\\
\framebox[.65\columnwidth]{D}
\end{multline}
\begin{verbatim}
\begin{multline}
\framebox[.65\columnwidth]{A}\\
\framebox[.5\columnwidth]{B}\\
\shoveright{\framebox[.55\columnwidth]{C}}\\
\framebox[.65\columnwidth]{D}
\end{multline}
\end{verbatim}
The value of \cn{multlinegap} can be changed with the usual \latex/
commands \cn{setlength} or \cn{addtolength}.
%% ------------------------------------------------------------------ %%
\section{Split equations with alignment}
Like \env{multline}, the \env{split} environment is for \emph{single}
equations that are too long to fit on one line and hence must be split
into multiple lines. Unlike \env{multline}, however, the \env{split}
environment provides for alignment among the split lines, using |&| to
mark alignment points. Unlike the other \nipkg{amsmath} equation
structures, the \env{split} environment provides no numbering, because
it is intended to be used \emph{only inside some other displayed
equation structure}, usually an \env{equation}, \env{align}, or
\env{gather} environment, which provides the numbering. For example:
\begin{equation}\label{e:barwq}\begin{split}
H_c&=\frac{1}{2n} \sum^n_{l=0}(-1)^{l}(n-{l})^{p-2}
\sum_{l _1+\dots+ l _p=l}\prod^p_{i=1} \binom{n_i}{l _i}\\
&\quad\cdot[(n-l )-(n_i-l _i)]^{n_i-l _i}\cdot
\Bigl[(n-l )^2-\sum^p_{j=1}(n_i-l _i)^2\Bigr].
\kern-2em % adjust equation body to the right [mjd,13-Nov-1994]
\end{split}\end{equation}
\begin{verbatim}
\begin{equation}\label{e:barwq}\begin{split}
H_c&=\frac{1}{2n} \sum^n_{l=0}(-1)^{l}(n-{l})^{p-2}
\sum_{l _1+\dots+ l _p=l}\prod^p_{i=1} \binom{n_i}{l _i}\\
&\quad\cdot[(n-l )-(n_i-l _i)]^{n_i-l _i}\cdot
\Bigl[(n-l )^2-\sum^p_{j=1}(n_i-l _i)^2\Bigr].
\end{split}\end{equation}
\end{verbatim}
The \env{split} structure should constitute the entire body of the
enclosing structure, apart from commands like \cn{label} that produce no
visible material.
%% ------------------------------------------------------------------ %%
\section{Equation groups without alignment}
The \env{gather} environment is used for a group of consecutive
equations when there is no alignment desired among them; each one is
centered separately within the text width (see Table~\ref{displays}).
Equations inside \env{gather} are separated by a \cn{\\} command.
Any equation in a \env{gather} may consist of a \verb'\begin{split}'
\dots\ \verb'\end{split}' structure\mdash for example:
\begin{verbatim}
\begin{gather}
first equation\\
\begin{split}
second & equation\\
& on two lines
\end{split}
\\
third equation
\end{gather}
\end{verbatim}
%% ------------------------------------------------------------------ %%
\section{Equation groups with mutual alignment}
The \env{align} environment is used for two or more equations when
vertical alignment is desired; usually binary relations such as equal
signs are aligned (see Table~\ref{displays}).
To have several equation columns side-by-side, use extra ampersands
to separate the columns:
\begin{align}
x&=y & X&=Y & a&=b+c\\
x'&=y' & X'&=Y' & a'&=b\\
x+x'&=y+y' & X+X'&=Y+Y' & a'b&=c'b
\end{align}
%
\begin{verbatim}
\begin{align}
x&=y & X&=Y & a&=b+c\\
x'&=y' & X'&=Y' & a'&=b\\
x+x'&=y+y' & X+X'&=Y+Y' & a'b&=c'b
\end{align}
\end{verbatim}
Line-by-line annotations on an equation can be done by judicious
application of \cn{text} inside an \env{align} environment:
\begin{align}
x& = y_1-y_2+y_3-y_5+y_8-\dots
&& \text{by \eqref{eq:C}}\\
& = y'\circ y^* && \text{by \eqref{eq:D}}\\
& = y(0) y' && \text {by Axiom 1.}
\end{align}
%
\begin{verbatim}
\begin{align}
x& = y_1-y_2+y_3-y_5+y_8-\dots
&& \text{by \eqref{eq:C}}\\
& = y'\circ y^* && \text{by \eqref{eq:D}}\\
& = y(0) y' && \text {by Axiom 1.}
\end{align}
\end{verbatim}
A variant environment \env{alignat} allows the horizontal space between
equations to be explicitly specified. This environment takes one argument,
the number of \qq{equation columns} (the number of pairs of right-left
aligned columns; the argument is the number of pairs): count the maximum
number of \verb'&'s in any row, add~1 and divide by~2.
\begin{alignat}{2}
x& = y_1-y_2+y_3-y_5+y_8-\dots
&\quad& \text{by \eqref{eq:C}}\\
& = y'\circ y^* && \text{by \eqref{eq:D}}\\
& = y(0) y' && \text {by Axiom 1.}
\end{alignat}
%
\begin{verbatim}
\begin{alignat}{2}
x& = y_1-y_2+y_3-y_5+y_8-\dots
&\quad& \text{by \eqref{eq:C}}\\
& = y'\circ y^* && \text{by \eqref{eq:D}}\\
& = y(0) y' && \text {by Axiom 1.}
\end{alignat}
\end{verbatim}
The environment \env{flalign} (``full length alignment'') stretches the
space between the equation columns to the maximum possible width, leaving
only enough space at the margin for the equation number, if present.
\begin{flalign}
x&=y & X&=Y\\
x'&=y' & X'&=Y'\\
x+x'&=y+y' & X+X'&=Y+Y'
\end{flalign}
%
\begin{verbatim}
\begin{flalign}
x&=y & X&=Y\\
x'&=y' & X'&=Y'\\
x+x'&=y+y' & X+X'&=Y+Y'
\end{flalign}
\end{verbatim}
%
\begin{flalign*}
x&=y & X&=Y\\
x'&=y' & X'&=Y'\\
x+x'&=y+y' & X+X'&=Y+Y'
\end{flalign*}
%
\begin{verbatim}
\begin{flalign*}
x&=y & X&=Y\\
x'&=y' & X'&=Y'\\
x+x'&=y+y' & X+X'&=Y+Y'
\end{flalign*}
\end{verbatim}
%% ------------------------------------------------------------------ %%
\section{Alignment building blocks}
Like \env{equation}, the multi-equation environments \env{gather},
\env{align}, and \env{alignat} are designed to produce a structure
whose width is the full line width. This means, for example, that one
cannot readily add parentheses around the entire structure. But
variants\index{ed env@\texttt{-ed} environments|(}
\env{gathered}, \env{aligned}, and \env{alignedat} are provided whose
total width is the actual width of the contents; thus they can be used
as a component in a containing expression. E.g.,
\begin{equation*}
\left.\begin{aligned}
B'&=-\partial\times E,\\
E'&=\partial\times B - 4\pi j,
\end{aligned}
\right\}
\qquad \text{Maxwell's equations}
\end{equation*}
\begin{verbatim}
\begin{equation*}
\left.\begin{aligned}
B'&=-\partial\times E,\\
E'&=\partial\times B - 4\pi j,
\end{aligned}
\right\}
\qquad \text{Maxwell's equations}
\end{equation*}
\end{verbatim}
Like the \env{array} environment, these \texttt{-ed} variants also take
an optional\index{options!positioning of \texttt{-ed} environments}
|[t]|\index{t option@\texttt{t} (top) option},
|[b]|\index{b option@\texttt{b} (bottom) option} or the default
|[c]|\index{c option@\texttt{c} (center) option}
argument to specify vertical
positioning. For maximum interoperability, do not insert a
space\index{options!space before \texttt{[}}
or line break\index{line break} before the option. See
also the note on page~\pageref{breaknote} regarding page breaking
within the \texttt{-ed} environments.
\qq{Cases} constructions like the following are common in
mathematics:
\begin{equation}\label{eq:C}
P_{r-j}=
\begin{cases}
0& \text{if $r-j$ is odd},\\
r!\,(-1)^{(r-j)/2}& \text{if $r-j$ is even}.
\end{cases}
\end{equation}
and in the \nipkg{amsmath} package there is a \env{cases} environment to
make them easy to write:
\begin{verbatim}
P_{r-j}=\begin{cases}
0& \text{if $r-j$ is odd},\\
r!\,(-1)^{(r-j)/2}& \text{if $r-j$ is even}.
\end{cases}
\end{verbatim}
Notice the use of \cn{text} (cf.~\secref{text}) and the nested math
formulas. \env{cases} is set in \cn{textstyle}. If \cn{displaystyle}
is wanted, it must be requested explicitly; \pkg{mathtools} provides
a \env{dcases} environment for this purpose.
The |-ed|\index{ed env@\texttt{-ed} environments|)} and \env{cases}
environments must appear within an enclosing math environment, which can
be either in text, between |$...$|, or in any of the display environments.
%% ------------------------------------------------------------------ %%
\section{Adjusting tag placement}
Placing equation numbers can be a rather complex problem in multiline
displays. The environments of the \nipkg{amsmath} package try hard to
avoid overprinting an equation number on the equation contents, if
necessary moving the number down or up to a separate line. Difficulties
in accurately calculating the profile of an equation can occasionally
result in number movement that doesn't look right.
A \cn{raisetag} command is provided to adjust the vertical position of the
current equation number, if it has been shifted away from its normal
position. If it is in its normal position the command has no effect whatsoever.
In particular, this means that one can't use it to shift the tag of an \env{equation}
environment.
To move a particular number up by six points, write
|\raisetag{6pt}|. (At the end of a display, this also shifts up the
text following the display.)
This kind of adjustment is fine tuning like line
breaks and page breaks, and should therefore be left undone until your
document is nearly finalized, or you may end up redoing the fine tuning
several times to keep up with changing document contents.
%% ------------------------------------------------------------------ %%
\section{Vertical spacing and page breaks in multiline displays}
You can use the \cn{\\}|[|\<dimension>|]|%
\index{options!extra vertical space after \cn{\\}}
command to get extra vertical
space between lines in all the \nipkg{amsmath} displayed equation
environments, as is usual in \latex/. Do not type a space between the%
\index{options!space before \texttt{[}}
\cn{\\} and the following |[|; \emph{only} for display environments
defined by \nipkg{amsmath} the space is interpreted to mean that the
bracketed material is part of the document content.
When the \nipkg{amsmath} package is
in use \ii{page breaks} between equation lines are normally disallowed;
the philosophy is that page breaks in such material should receive
individual attention from the author. To get an individual page break
inside a particular displayed equation, a \cn{displaybreak} command is
provided. \cn{displaybreak} is best placed immediately before the
\cn{\\} where it is to take effect. Like \latex/'s \cn{pagebreak},
\cn{displaybreak} takes an optional argument%
\index{options!behavior of particular options} between 0 and 4 denoting
the desirability of the pagebreak. |\displaybreak[0]| means \qq{it is
permissible to break here} without encouraging a break;
\cn{displaybreak} with no optional argument is the same as
|\displaybreak[4]| and forces a break.
If you prefer a strategy of letting page breaks fall where they may,
even in the middle of a multiline equation, then you might put
\cn{allowdisplaybreaks}\texttt{[1]} in the preamble of your document. An
optional argument\index{options!behavior of particular options}
1\ndash 4 can be used for finer control: |[1]| means
allow page breaks, but avoid them as much as possible; values of 2,3,4
mean increasing permissiveness. When display breaks are enabled with
\cn{allowdisplaybreaks}, the \cn{\\*} command can be used to prohibit a
pagebreak after a given line, as usual.
\begin{bfseries}
Note:\label{breaknote} Certain equation environments wrap their contents
in an unbreakable box, with the consequence that neither \cn{displaybreak}
nor \cn{allowdisplaybreaks} will have any effect on them. These include
\env{split}, \env{aligned}, \env{gathered}, and \env{alignedat}.
\end{bfseries}
%% ------------------------------------------------------------------ %%
\section{Interrupting a display}
The command \cn{intertext} is used for a short interjection of one or
two lines of text\index{text fragments inside math} in the middle of a
multiple-line display structure (see also the \cn{text} command in
\secref{text}). Its salient feature is preservation of the alignment,
which would not happen if you simply ended the display and then started
it up again afterwards. \cn{intertext} may only appear right after a
\cn{\\} or \cn{\\*} command. Notice the position of the word \qq{and} in
this example.
\begin{align}
A_1&=N_0(\lambda;\Omega')-\phi(\lambda;\Omega'),\\
A_2&=\phi(\lambda;\Omega')-\phi(\lambda;\Omega),\\
\intertext{and}
A_3&=\mathcal{N}(\lambda;\omega).
\end{align}
\begin{verbatim}
\begin{align}
A_1&=N_0(\lambda;\Omega')-\phi(\lambda;\Omega'),\\
A_2&=\phi(\lambda;\Omega')-\phi(\lambda;\Omega),\\
\intertext{and}
A_3&=\mathcal{N}(\lambda;\omega).
\end{align}
\end{verbatim}
The \pkg{mathtools} package provides a command \cn{shortintertext} that
is intended for use when the interjected text is only a few words; it uses
less vertical space than \cn{intertext}. This
is most effective when equation numbers are on the right.%
\index{equationn@equation numbers!left or right placement}
%% ------------------------------------------------------------------ %%
\section{Equation numbering}
\subsection{Numbering hierarchy}
In \latex/ if you wanted to have equations numbered within
sections\mdash that is, have
equation numbers (1.1), (1.2), \dots, (2.1), (2.2),
\dots, in sections 1, 2, and so forth\mdash you could redefine
\cn{theequation} as suggested in the \latex/ manual \cite[\S6.3, \S
C.8.4]{lamport}:
\begin{verbatim}
\renewcommand{\theequation}{\thesection.\arabic{equation}}
\end{verbatim}
This works pretty well, except that the equation counter won't be reset
to zero at the beginning of a new section or chapter, unless you do it
yourself using \cn{setcounter}. To make this a little more convenient,
the \nipkg{amsmath} package provides a
command\index{equationn@equation numbers!hierarchy} \cn{numberwithin}.
To have equation numbering tied to section numbering, with automatic
reset of the equation counter, write
\begin{verbatim}
\numberwithin{equation}{section}
\end{verbatim}
As its name implies, the \cn{numberwithin} command can be applied to
any counter, not just the \texttt{equation} counter.
\subsection{Cross references to equation numbers}
To make cross-references to equations easier, an \cn{eqref}
command\index{equationn@equation numbers!cross-references} is provided. This
automatically supplies the parentheses around the equation number. I.e.,
if \verb'\ref{abc}' produces 3.2 then \verb'\eqref{abc}' produces
(3.2). The parentheses around an \cn{eqref} equation number will be
set in upright type regardless of type style of the context.
\subsection{Subordinate numbering sequences}
The \nipkg{amsmath} package provides also a wrapper environment,
\env{subequations}\index{equationn@equation numbers!subordinate numbering}, to make it
easy to number equations in a particular \cn{align} or similar group with
a subordinate numbering scheme. For example
\begin{verbatim}
\begin{subequations}
...
\end{subequations}
\end{verbatim}
causes all numbered equations within that part of the document to be
numbered (4.9a) (4.9b) (4.9c) \dots, if the preceding numbered
equation was (4.8). A \cn{label} command immediately after
\verb/\begin{subequations}/ will produce a \cn{ref} of the parent
number 4.9, not 4.9a. The counters used by the subequations
environment are \verb/parentequation/ and \verb/equation/ and
\cn{addtocounter}, \cn{setcounter}, \cn{value}, etc., can be applied
as usual to those counter names. To get anything other than lowercase
letters for the subordinate numbers, use standard \latex/ methods for
changing numbering style \cite[\S6.3, \S C.8.4]{lamport}. For example,
redefining \cn{theequation} as follows will produce roman numerals.
\begin{verbatim}
\begin{subequations}
\renewcommand{\theequation}{\theparentequation \roman{equation}}
...
\end{verbatim}
\subsection{Numbering style}
The default equation number is set in \cn{normalfont}. This means that
in bold section headings, bold is suppressed; a workaround for this is
to use \verb+(\ref{+\ldots\verb+})+ rather than \verb+\eqref{+\ldots\verb+}+.
If smaller type is specified for a numbered display, the size of the
equation number will also be small. The default size can be ensured
throughout a document by applying this patch in the preamble:
\begin{verbatim}
\makeatletter
\renewcommand{\maketag@@@}[1]{\hbox{\m@th\normalsize\normalfont#1}}%
\makeatother
\end{verbatim}
(This modification may be included in a future version of
\nipkg{amsmath}.)
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\chapter{Miscellaneous mathematical features}
\section{Matrices}\label{ss:matrix}
The \nipkg{amsmath} package provides some environments for
matrices\index{matrices} beyond the basic \env{array} environment of
\latex/. The \env{pmatrix}, \env{bmatrix}, \env{Bmatrix}, \env{vmatrix}
and \env{Vmatrix} have (respectively) $(\,)$, $[\,]$, $\lbrace\,\rbrace$,
$\lvert\,\rvert$, and $\lVert\,\rVert$ delimiters\index{delimiters}
built in. For naming consistency there is a
\env{matrix} environment sans delimiters. This is not entirely redundant
with the \env{array} environment; the matrix environments all use more
economical horizontal spacing than the rather prodigal spacing of the
\env{array} environment. Also, unlike the \env{array} environment, you
don't have to give column specifications for any of the matrix
environments; by default you can have up to 10 centered columns.%
\footnote{%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
More precisely: The maximum number of columns in a matrix is determined
by the counter |MaxMatrixCols| (normal value = 10), which you can change
if necessary using \latex/'s \cn{setcounter} or \cn{addtocounter}
commands.%
}\space%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
(If you need left or right alignment in a column or other special
formats you may use \env{array}, or the \pkg{mathtools}
package which provides \verb+*+ variants%
\index{matrix@\indexenvironmentfont{matrix} environment!\verb+*+ variants}
of these environments with
an optional argument to specify left or right alignment.)
To produce a small matrix suitable for use in text, there is a
\env{smallmatrix} environment (e.g.,
\begin{math}
\bigl( \begin{smallmatrix}
a&b\\ c&d
\end{smallmatrix} \bigr)
\end{math})
that comes closer to fitting within a single text line than a normal
matrix. Delimiters\index{delimiters} must be provided. (The
\pkg{mathtools} package provides |p|,|b|,|B|,|v|,|V| versions of
\env{smallmatrix},%
\index{smallmatrix@\indexenvironmentfont{smallmatrix} environment!variant delimiters}
as well as |*| variants%
\index{smallmatrix@\indexenvironmentfont{smallmatrix} environment!\verb+*+ variants}
as described above.)
The above example was produced by
\begin{verbatim}
\bigl( \begin{smallmatrix}
a&b\\ c&d
\end{smallmatrix} \bigr)
\end{verbatim}
\cn{hdotsfor}|{|\<number>|}| produces a row of dots in a
matrix\index{matrices!ellipsis dots}\index{ellipsis dots!in
matrices}\index{dots|see{ellipsis dots}} spanning the given number of
columns. For example,
\begin{center}
\begin{minipage}{.3\columnwidth}
\noindent$\begin{matrix} a&b&c&d\\
e&\hdotsfor{3} \end{matrix}$
\end{minipage}%
\qquad
\begin{minipage}{.45\columnwidth}
\begin{verbatim}
\begin{matrix} a&b&c&d\\
e&\hdotsfor{3} \end{matrix}
\end{verbatim}
\end{minipage}%
\end{center}
The spacing of the dots can be varied through use of a square-bracket
option,\index{options!behavior of particular options}
for example, |\hdotsfor[1.5]{3}|. The number in square brackets
will be used as a multiplier (i.e., the normal value is 1.0).
\begin{equation}\label{eq:D}
\begin{pmatrix} D_1t&-a_{12}t_2&\dots&-a_{1n}t_n\\
-a_{21}t_1&D_2t&\dots&-a_{2n}t_n\\
\hdotsfor[2]{4}\\
-a_{n1}t_1&-a_{n2}t_2&\dots&D_nt\end{pmatrix},
\end{equation}
\begin{verbatim}
\begin{pmatrix} D_1t&-a_{12}t_2&\dots&-a_{1n}t_n\\
-a_{21}t_1&D_2t&\dots&-a_{2n}t_n\\
\hdotsfor[2]{4}\\
-a_{n1}t_1&-a_{n2}t_2&\dots&D_nt\end{pmatrix}
\end{verbatim}
%% ------------------------------------------------------------------ %%
\section{Math spacing commands}
The \nipkg{amsmath} package slightly extends the set of math
spacing\index{horizontal spacing} commands, as shown below.
Both the spelled-out and abbreviated forms of these commands are robust,
and they can also be used outside of math.
\begin{ctab}{lll|lll}
Abbrev.& Spelled out& Example & Abbrev.& Spelled out& Example\\
\hline
\vstrut{2.5ex}
& no space& \spx{}& & no space & \spx{}\\
\cn{\,}& \cn{thinspace}& \spx{\,}&
\altcnbang& \cn{negthinspace}& \spx{\!}\\
\cn{\:}& \cn{medspace}& \spx{\:}&
& \cn{negmedspace}& \spx{\negmedspace}\\
\cn{\;}& \cn{thickspace}& \spx{\;}&
& \cn{negthickspace}& \spx{\negthickspace}\\
& \cn{quad}& \spx{\quad}\\
& \cn{qquad}& \spx{\qquad}
\end{ctab}
For the greatest possible control over math spacing, use \cn{mspace}
and `math units'. One math unit, or |mu|, is equal to 1/18 em. Thus to
get a negative \cn{quad} you could write |\mspace{-18.0mu}|.
%% ------------------------------------------------------------------ %%
\section{Dots}
For preferred placement of ellipsis dots (raised or on-line) in various
contexts there is no general consensus. It may therefore be considered a
matter of taste. By using the semantically oriented commands
\begin{itemize}
\item \cn{dotsc} for \qq{dots with commas}
\item \cn{dotsb} for \qq{dots with binary operators/relations}
\item \cn{dotsm} for \qq{multiplication dots}
\item \cn{dotsi} for \qq{dots with integrals}
\item \cn{dotso} for \qq{other dots} (none of the above)
\end{itemize}
instead of \cn{ldots} and \cn{cdots}, you make it possible for your
document to be adapted to different conventions on the fly, in case (for
example) you have to submit it to a publisher who insists on following
house tradition in this respect. The default treatment for the various
kinds follows American Mathematical Society conventions:
\begin{center}
\begin{tabular}{@{}l@{}l@{}}
\begin{minipage}[t]{.54\textwidth}
\begin{verbatim}
Then we have the series $A_1, A_2,
\dotsc$, the regional sum $A_1
+A_2 +\dotsb $, the orthogonal
product $A_1 A_2 \dotsm $, and
the infinite integral
\[\int_{A_1}\int_{A_2}\dotsi\].
\end{verbatim}
\end{minipage}
&
\begin{minipage}[t]{.45\textwidth}
\noindent
Then we have the series $A_1,A_2,\dotsc$,
the regional sum $A_1+A_2+\dotsb$,
the orthogonal product $A_1A_2\dotsm$,
and the infinite integral
\[\int_{A_1}\int_{A_2}\dotsi.\]
\end{minipage}
\end{tabular}
\end{center}
For most situations, the undifferentiated \cn{dots} can be used, and
\nipkg{amsmath} will output the most suitable form based on the
immediate context; if an inappropriate form results, it can be corrected
after examining the output.
%% ------------------------------------------------------------------ %%
\section{Nonbreaking dashes}
A command \cn{nobreakdash} is provided to suppress the possibility of a
line break\index{line break|(} after the following hyphen or dash. For
example, if you write `pages 1\ndash 9' as |pages 1\nobreakdash--9|
then a line break will never occur between the dash and the 9. You can
also use \cn{nobreakdash} to prevent undesirable hyphenations in
combinations like |$p$-adic|. For frequent use, it's advisable to make
abbreviations, e.g.,
\begin{verbatim}
\newcommand{\p}{$p$\nobreakdash}% for "\p-adic"
\newcommand{\Ndash}{\nobreakdash--}% for "pages 1\Ndash 9"
% For "\n dimensional" ("n-dimensional"):
\newcommand{\n}[1]{$n$\nobreakdash-\hspace{0pt}}
\end{verbatim}
The last example shows how to prohibit a line break\index{line break|)}
after the hyphen but allow normal hyphenation in the following
word. (It suffices to add a zero-width space after the hyphen.)
%% ------------------------------------------------------------------ %%
\section{Accents in math}
In ordinary \LaTeX{} the placement of the second accent in doubled math
accents is often poor. With the \nipkg{amsmath} package you
will get improved placement of the second accent:
$\hat{\hat{A}}$ (\cn{hat}|{\hat{A}}|).
The commands \cn{dddot} and \cn{ddddot} are available to produce triple
and quadruple dot accents in addition to the \cn{dot} and \cn{ddot}
accents already available in \latex/.
To get a superscripted hat or tilde character, load the \pkg{amsxtra}
package and use \cn{sphat} or \cn{sptilde}. Usage is \verb'A\sphat'
(note the absence of the \verb'^' character).
To place an arbitrary symbol in math accent position, or to get under
accents, see the \pkg{accents} package by Javier Bezos. (\nipkg{amsmath}
must be loaded before \pkg{accents}.)
%% ------------------------------------------------------------------ %%
\section{Roots}
In ordinary \latex/ the placement of root indices is sometimes not so
good: $\sqrt[\beta]{k}$ (|\sqrt||[\beta]{k}|). In the
\nipkg{amsmath} package \cn{leftroot} and \cn{uproot} allow you to adjust
the position of the root:%
\index{options!adjust positioning}
\begin{verbatim}
\sqrt[\leftroot{-2}\uproot{2}\beta]{k}
\end{verbatim}
will move the beta up and to the right:
$\sqrt[\leftroot{-2}\uproot{2}\beta]{k}$. The negative argument used
with \cn{leftroot} moves the $\beta$ to the right. The units are a small
amount that is a useful size for such adjustments.
%% ------------------------------------------------------------------ %%
\section{Boxed formulas}
The command \cn{boxed} puts a box around its
argument, like \cn{fbox} except that the contents are in math mode:
\begin{equation}
\boxed{\eta \leq C(\delta(\eta) +\Lambda_M(0,\delta))}
\end{equation}
\begin{verbatim}
\boxed{\eta \leq C(\delta(\eta) +\Lambda_M(0,\delta))}
\end{verbatim}
%% ------------------------------------------------------------------ %%
\section{Over and under arrows}
Basic \latex/ provides \cn{overrightarrow} and \cn{overleftarrow}
commands. Some additional over and under arrow commands are provided
by the \nipkg{amsmath} package to extend the set:
\begin{tabbing}
\qquad\=\ncn{overleftrightarrow}\qquad\=\kill
\> \cn{overleftarrow} \> \cn{underleftarrow} \+\\
\cn{overrightarrow} \> \cn{underrightarrow} \\
\cn{overleftrightarrow}\> \cn{underleftrightarrow}
\end{tabbing}
%% ------------------------------------------------------------------ %%
\section{Extensible arrows}
\cn{xleftarrow} and \cn{xrightarrow} produce
arrows\index{arrows!extensible} that extend automatically to accommodate
unusually wide subscripts or superscripts. These commands take one
optional argument\index{options!behavior of particular options}
(the subscript) and one mandatory argument (the
superscript, possibly empty):
\begin{equation}
A\xleftarrow{n+\mu-1}B \xrightarrow[T]{n\pm i-1}C
\end{equation}
\begin{verbatim}
\xleftarrow{n+\mu-1}\quad \xrightarrow[T]{n\pm i-1}
\end{verbatim}
%% ------------------------------------------------------------------ %%
\section{Affixing symbols to other symbols}
\latex/ provides \cn{stackrel} for placing a
superscript\index{subscripts and superscripts} above a binary relation.
In the \nipkg{amsmath} package there are somewhat more general commands,
\cn{overset} and \cn{underset}, that can be used to place one symbol
above or below another symbol, whether it's a relation or something
else. The input |\overset{*}{X}| will place a superscript-size {\small$*$} above
the {\small$X$}: {\small$\smash{\overset{*}{X}}$};
\cn{underset} is the analog for adding a
symbol underneath. The command \cn{overunderset} is a combination of
these, taking three arguments to place superscript sized expressions
above and below the same base.
See also the description of \cn{sideset} in \secref{sideset}.
%% ------------------------------------------------------------------ %%
\section{Fractions and related constructions}
\subsection{The \cn{frac}, \cn{dfrac}, and \cn{tfrac} commands}
The \cn{frac} command, which is in the basic command set of
\latex/,\index{fractions|(} takes two arguments\mdash numerator and
denominator\mdash and typesets them in normal fraction form. The
\nipkg{amsmath} package provides also \cn{dfrac} and \cn{tfrac} as
convenient abbreviations for |{\displaystyle\frac| |...| |}|
and\indexcs{textstyle}\relax
\indexcs{displaystyle} |{\textstyle\frac| |...| |}|.
\begin{equation}
\frac{1}{k}\log_2 c(f)\quad\tfrac{1}{k}\log_2 c(f)\quad
\sqrt{\frac{1}{k}\log_2 c(f)}\quad\sqrt{\dfrac{1}{k}\log_2 c(f)}
\end{equation}
\begin{verbatim}
\begin{equation}
\frac{1}{k}\log_2 c(f)\;\tfrac{1}{k}\log_2 c(f)\;
\sqrt{\frac{1}{k}\log_2 c(f)}\;\sqrt{\dfrac{1}{k}\log_2 c(f)}
\end{equation}
\end{verbatim}
\subsection{The \cn{binom}, \cn{dbinom}, and \cn{tbinom} commands}
For binomial expressions\index{binomials} such as $\binom{n}{k}$
\nipkg{amsmath} has \cn{binom}, \cn{dbinom} and \cn{tbinom}:
\begin{equation}
2^k-\binom{k}{1}2^{k-1}+\binom{k}{2}2^{k-2}
\end{equation}
\begin{verbatim}
2^k-\binom{k}{1}2^{k-1}+\binom{k}{2}2^{k-2}
\end{verbatim}
\subsection{The \cn{genfrac} command}
The capabilities of \cn{frac}, \cn{binom}, and their variants are
subsumed by a generalized fraction command \cn{genfrac} with six
arguments. The last two correspond to \cn{frac}'s numerator and
denominator; the first two are optional delimiters\index{delimiters} (as
seen in \cn{binom}); the third is a line thickness override (\cn{binom}
uses this to set the fraction line thickness to 0\mdash i.e., invisible);
and the fourth argument is a mathstyle override: integer values 0\ndash 3
select respectively \cn{displaystyle}, \cn{textstyle}, \cn{scriptstyle},
and \cn{scriptscriptstyle}. If the third argument is left empty, the line
thickness defaults to `normal'.
\begin{center}\begin{minipage}{.85\columnwidth}
\raggedright \normalfont\ttfamily \exhyphenpenalty10000
\newcommand{\ma}[1]{%
\string{{\normalfont\itshape#1}\string}\penalty9999 \ignorespaces}
\string\genfrac \ma{left-delim} \ma{right-delim} \ma{thickness}
\ma{mathstyle} \ma{numerator} \ma{denominator}
\end{minipage}\end{center}
To illustrate, here is how \cn{frac}, \cn{tfrac}, and
\cn{binom} might be defined.
\begin{verbatim}
\newcommand{\frac}[2]{\genfrac{}{}{}{}{#1}{#2}}
\newcommand{\tfrac}[2]{\genfrac{}{}{}{1}{#1}{#2}}
\newcommand{\binom}[2]{\genfrac{(}{)}{0pt}{}{#1}{#2}}
\end{verbatim}
If you find yourself repeatedly using \cn{genfrac} throughout a document
for a particular notation, you will do yourself a favor (and your
publisher) if you define a meaningfully-named abbreviation for that
notation, along the lines of \cn{frac} and \cn{binom}.
The primitive generalized fraction commands \cs{over}, \cs{overwithdelims},
\cs{atop}, \cs{atopwithdelims}, \cs{above}, \cs{abovewithdelims} produce
warning messages if used with the \nipkg{amsmath} package, for reasons
discussed in \fn{technote.tex}.
%% ------------------------------------------------------------------ %%
\section{Continued fractions}
The continued fraction\index{continued fractions}
\begin{equation}
\cfrac{1}{\sqrt{2}+
\cfrac{1}{\sqrt{2}+
\cfrac{1}{\sqrt{2}+\cdots
}}}
\end{equation}
can be obtained by typing
{\samepage
\begin{verbatim}
\cfrac{1}{\sqrt{2}+
\cfrac{1}{\sqrt{2}+
\cfrac{1}{\sqrt{2}+\dotsb
}}}
\end{verbatim}
}% End of \samepage
This produces better-looking results than straightforward use of
\cn{frac}. Left or right placement of any of the numerators is
accomplished by using \cn{cfrac}|[l]| or \cn{cfrac}|[r]| instead of
\cn{cfrac}.\index{options!adjust positioning}%
\index{fractions|)}
%% ------------------------------------------------------------------ %%
\section{Smash options}
The command \cn{smash} is used to typeset a subformula with an
effective height and depth of zero, which is sometimes
useful in adjusting the subformula's position with respect to adjacent
symbols. With the \nipkg{amsmath} package \cn{smash} has optional
arguments\index{options!behavior of particular options}
|[t]|\index{t option@\texttt{t} (top) option} and
|[b]|\index{b option@\texttt{b} (bottom) option} because occasionally it is
advantageous to be able to \qq{smash} only the top or only the bottom
of something while retaining the natural depth or height. For example,
when adjacent radical symbols are unevenly sized or positioned because
of differences in the height and depth of their contents, \cn{smash}
can be employed to make them more consistent. Compare
$\sqrt{x}+\sqrt{y}+\sqrt{z}$ and $\sqrt{x}+\sqrt{\smash[b]{y}}+\sqrt{z}$,
where the latter was produced by
\verb"$\sqrt{x}" \verb"+"
\verb"\sqrt{"\5\verb"\smash[b]{y}}" \verb"+" \verb"\sqrt{z}$".
%% ------------------------------------------------------------------ %%
\section{Delimiters}
\index{delimiters|(}
\subsection{Delimiter sizes}\label{bigdel}
The automatic delimiter sizing done by \cn{left} and \cn{right} has two
limitations: First, it is applied mechanically to produce delimiters
large enough to encompass the largest contained item, and second, the
range of sizes is not even approximately continuous but has fairly large
quantum jumps. This means that a math fragment that is infinitesimally
too large for a given delimiter size will get the next larger size, a
jump of 3pt or so in normal-sized text. There are two or three
situations where the delimiter size is commonly adjusted, using a set of
commands that have `big' in their names.%
\index{delimiters!fixed size|(}
\begin{ctab}{l|llllll}
Delimiter&
text& \ncn{left}& \ncn{bigl}& \ncn{Bigl}& \ncn{biggl}& \ncn{Biggl}\\
size&
size& \ncn{right}& \ncn{bigr}& \ncn{Bigr}& \ncn{biggr}& \ncn{Biggr}\\
\hline
Result\vstrut{5ex}&
$\displaystyle(b)(\frac{c}{d})$&
$\displaystyle\left(b\right)\left(\frac{c}{d}\right)$&
$\displaystyle\bigl(b\bigr)\bigl(\frac{c}{d}\bigr)$&
$\displaystyle\Bigl(b\Bigr)\Bigl(\frac{c}{d}\Bigr)$&
$\displaystyle\biggl(b\biggr)\biggl(\frac{c}{d}\biggr)$&
$\displaystyle\Biggl(b\Biggr)\Biggl(\frac{c}{d}\Biggr)$
\end{ctab}
The first kind of situation is a cumulative operator with limits above
and below. With \cn{left} and \cn{right} the delimiters usually turn out
larger than necessary, and using the |Big| or |bigg|
sizes\index{big@\cn{big}, \cn{Big}, \cn{bigg}, \dots\ delimiters}
instead gives better results:
\begin{equation*}
\left[\sum_i a_i\left\lvert\sum_j x_{ij}\right\rvert^p\right]^{1/p}
\quad\text{versus}\quad
\biggl[\sum_i a_i\Bigl\lvert\sum_j x_{ij}\Bigr\rvert^p\biggr]^{1/p}
\end{equation*}
\begin{verbatim}
\biggl[\sum_i a_i\Bigl\lvert\sum_j x_{ij}\Bigr\rvert^p\biggr]^{1/p}
\end{verbatim}
The second kind of situation is clustered pairs of delimiters where
\cn{left} and \cn{right} make them all the same size (because that is
adequate to cover the encompassed material) but what you really want
is to make some of the delimiters slightly larger to make the nesting
easier to see.
\begin{equation*}
\left((a_1 b_1) - (a_2 b_2)\right)
\left((a_2 b_1) + (a_1 b_2)\right)
\quad\text{versus}\quad
\bigl((a_1 b_1) - (a_2 b_2)\bigr)
\bigl((a_2 b_1) + (a_1 b_2)\bigr)
\end{equation*}
\begin{verbatim}
\left((a_1 b_1) - (a_2 b_2)\right)
\left((a_2 b_1) + (a_1 b_2)\right)
\quad\text{versus}\quad
\bigl((a_1 b_1) - (a_2 b_2)\bigr)
\bigl((a_2 b_1) + (a_1 b_2)\bigr)
\end{verbatim}
The third kind of situation is a slightly oversize object in running
text, such as $\left\lvert\frac{b'}{d'}\right\rvert$ where the
delimiters produced by \cn{left} and \cn{right} cause too much line
spreading. In that case \ncn{bigl} and \ncn{bigr}\index{big@\cn{big},
\cn{Big}, \cn{bigg}, \dots\ delimiters} can be used to produce
delimiters that are slightly larger than the base size but still able to
fit within the normal line spacing:
$\bigl\lvert\frac{b'}{d'}\bigr\rvert$.
In ordinary \latex/ \ncn{big}, \ncn{bigg}, \ncn{Big}, and \ncn{Bigg}
delimiters aren't scaled properly over the full range of \latex/ font
sizes. With the \nipkg{amsmath} package they are.%
\index{delimiters!fixed size|)}
\subsection{Vertical bar notations}
The \nipkg{amsmath} package provides commands \cn{lvert}, \cn{rvert},
\cn{lVert}, \cn{rVert} (compare \cn{langle}, \cn{rangle}) to address the
%problem of overloading for the vert bar character \qc{\|}. This
problem of overloading for the vert bar character \qcvert. This
character is currently used in \latex/ documents to represent a wide
variety of mathematical objects: the `divides' relation in a
number-theory expression like $p\vert q$, or the absolute-value
operation $\lvert z\rvert$, or the `such that' condition in set
notation, or the `evaluated at' notation $f_\zeta(t)\bigr\rvert_{t=0}$.
The multiplicity of uses in itself is not so bad; what is bad, however,
is that fact that not all of the uses take the same typographical
treatment, and that the complex discriminatory powers of a knowledgeable
reader cannot be replicated in computer processing of mathematical
documents. It is recommended therefore that there should be a one-to-one
correspondence in any given document between the vert bar character
%\qc{\|} and a selected mathematical notation, and similarly for the
\qcvert\ and a selected mathematical notation, and similarly for the
%double-bar command \ncn{\|}\index{"|@\verb"*+"\"|+}. This immediately
double-bar command \cnvert. This immediately
rules out the use of \qc{|}
%and \ncn{\|}\index{"|@\verb"*+"\"|+} for delimiters, because left and right
and \cnvert\ for delimiters, because left and right
delimiters are distinct usages that do not relate in the same way to
adjacent symbols; recommended practice is therefore to define suitable
commands in the document preamble for any paired-delimiter use of vert
bar symbols:
\begin{verbatim}
\providecommand{\abs}[1]{\lvert#1\rvert}
\providecommand{\norm}[1]{\lVert#1\rVert}
\end{verbatim}
whereupon the document would contain |\abs{z}| to produce $\lvert
z\rvert$ and |\norm{v}| to produce $\lVert v\rVert$.
The \pkg{mathools} provides the command \cn{DeclarePairedDelimiter}
for defining |\abs|-like macros with scaling delimiters.
\index{delimiters|)}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\chapter{Operator names}
\section{Defining new operator names}\label{s:opname}
Math functions\index{operator names}\relax \index{function
names|see{operator names}} such as $\log$, $\sin$, and $\lim$ are
traditionally typeset in roman type to make them visually more distinct
from one-letter math variables, which are set in math italic. The more
common ones have predefined names, \cn{log}, \cn{sin}, \cn{lim}, and so
forth, but new ones come up all the time in mathematical papers, so the
\nipkg{amsmath} package provides a general mechanism for defining new
`operator names'. To define a math function \ncn{xxx} to work like
\cn{sin}, you write
\begin{verbatim}
\DeclareMathOperator{\xxx}{xxx}
\end{verbatim}
whereupon ensuing uses of \ncn{xxx} will produce {\upshape xxx} in the
proper font and automatically add proper spacing\index{horizontal
spacing!around operator names} on either side when necessary, so that you
get $A\xxx B$ instead of $A\mathrm{xxx}B$. In the second argument of
\cn{DeclareMathOperator} (the name text), a pseudo-text mode prevails:
the hyphen character \qc{\-} will print as a text hyphen rather than a
minus sign and an asterisk \qc{\*} will print as a raised text asterisk
instead of a centered math star. (Compare
\textit{a}-\textit{b}*\textit{c} and $a-b*c$.) But otherwise the name
text is printed in math mode, so that you can use, e.g., subscripts and
superscripts there.
%%%%xxx%%%\enlargethispage{1\baselineskip}
If the new operator should have subscripts and superscripts placed in
`limits' position above and below as with $\lim$, $\sup$, or $\max$, use
the \qc{\*} form of the \cn{DeclareMathOperator} command:
\begin{verbatim}
\DeclareMathOperator*{\Lim}{Lim}
\end{verbatim}
See also the discussion of subscript placement in
Section~\ref{subplace}.
\goodbreak
The following operator names are predefined:
\vspace{-1\baselineskip}
\begin{ctab}{@{}rlrlrlrl}
\cn{arccos}& $\arccos$ &\cn{deg}& $\deg$ & \cn{lg}& $\lg$ & \cn{projlim}& $\projlim$\\
\cn{arcsin}& $\arcsin$ &\cn{det}& $\det$ & \cn{lim}& $\lim$ & \cn{sec}& $\sec$\\
\cn{arctan}& $\arctan$ &\cn{dim}& $\dim$ & \cn{liminf}& $\liminf$ &\cn{sin}& $\sin$\\
\cn{arg}& $\arg$ & \cn{exp}& $\exp$ & \cn{limsup}& $\limsup$ &\cn{sinh}& $\sinh$\\
\cn{cos}& $\cos$ & \cn{gcd}& $\gcd$ & \cn{ln}& $\ln$ & \cn{sup}& $\sup$\\
\cn{cosh}& $\cosh$ & \cn{hom}& $\hom$ & \cn{log}& $\log$ & \cn{tan}& $\tan$\\
\cn{cot}& $\cot$ & \cn{inf}& $\inf$ & \cn{max}& $\max$ & \cn{tanh}& $\tanh$\\
\cn{coth}& $\coth$ & \cn{injlim}& $\injlim$ &\cn{min}& $\min$\\
\cn{csc}& $\csc$ & \cn{ker}& $\ker$ & \cn{Pr}& $\Pr$
\end{ctab}
\par\nobreak
\vspace{-1.2\baselineskip}
\begin{ctab}{rlrl}
\cn{varinjlim}& $\displaystyle\varinjlim$&
\cn{varliminf}& $\displaystyle\varliminf$\\
\cn{varprojlim}& $\displaystyle\varprojlim$&
\cn{varlimsup}& $\displaystyle\varlimsup$
\end{ctab}
There is also a command \cn{operatorname} such that using
\begin{verbatim}
\operatorname{abc}
\end{verbatim}
in a math formula is equivalent to a use of \ncn{abc} defined by
\cn{DeclareMathOperator}. This may be occasionally useful for
constructing more complex notation or other purposes. (Use the variant
\cn{operatorname*} to get limits.)
%% ------------------------------------------------------------------ %%
\section{\cn{mod} and its relatives}
Commands \cn{mod}, \cn{bmod}, \cn{pmod}, \cn{pod} are provided to deal
with the special spacing conventions of \qq{mod} notation. \cn{bmod} and
\cn{pmod} are available in \latex/, but with the \nipkg{amsmath} package
the spacing of \cn{pmod} will adjust to a smaller value if it's used in
a non-display-mode formula. \cn{mod} and \cn{pod} are variants of
\cn{pmod} preferred by some authors; \cn{mod} omits the parentheses,
whereas \cn{pod} omits the \qq{mod} and retains the parentheses.
\begin{equation}
\gcd(n,m\bmod n);\quad x\equiv y\pmod b;
\quad x\equiv y\mod c;\quad x\equiv y\pod d
\end{equation}
\begin{verbatim}
\gcd(n,m\bmod n);\quad x\equiv y\pmod b;
\quad x\equiv y\mod c;\quad x\equiv y\pod d
\end{verbatim}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\enlargethispage{1\baselineskip}
\chapter{The \cn{text} command}\label{text}
The main use of the command \cn{text} is for words or
phrases\index{text fragments inside math} in a display. It is very
similar to the \latex/ command \cn{mbox} in its effects, but has a
couple of advantages. If you want a word or phrase of text in a
subscript, you can type |..._{\textrm{word or phrase}}|, which is slightly
easier than the \cn{mbox} equivalent: |..._{\mbox{\rmfamily\scriptsize| |word|
|or| |phrase}}|. Note that the standard \cn{textrm} command will use the
\nipkg{amsmath} \cn{text} definition, but ensure the \verb+\rmfamily+
font is used.
\begin{equation}
f_{[x_{i-1},x_i]} \text{ is monotonic,}
\quad i = 1,\dots,c+1
\end{equation}
\begin{verbatim}
f_{[x_{i-1},x_i]} \text{ is monotonic,}
\quad i = 1,\dots,c+1
\end{verbatim}
The font used for \cn{text} is the same as that of the surrounding
environment; i.e., within a theorem, the contents of \cn{text} will
be set in italic.
If a math expression is included in a \cn{text} string, it must be
explicitly marked as math (|$...$|).
\[
\partial_s f(x) = \frac{\partial}{\partial x_0} f(x)\quad
\text{for $x= x_0 + I x_1$.}
\]
\begin{verbatim}
\partial_s f(x) = \frac{\partial}{\partial x_0} f(x)\quad
\text{for $x= x_0 + I x_1$.}
\end{verbatim}
Function names should \emph{not} be entered as \cn{text}. Instead,
use \cn{mathrm} or \cn{DeclareMathOperator} as appropriate. These are
fixed entities that should not change depending on outside content
(such as appearing within a theorem that is set in italic), and in the
case of declared operators, proper spacing\index{horizontal
spacing!around operator names} is applied automatically.
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\chapter{Integrals and sums}
\section{Multiline subscripts and superscripts}
The \cn{substack} command can be used to produce a multiline subscript
or superscript:\index{subscripts and superscripts!multiline}\relax
\index{superscripts|see{subscripts and superscripts}} for example
\begin{ctab}{ll}
\begin{minipage}[t]{.6\columnwidth}
\begin{verbatim}
\sum_{\substack{
0\le i\le m\\
0<j<n}}
P(i,j)
\end{verbatim}
\end{minipage}
&
$\displaystyle
\sum_{\substack{0\le i\le m\\ 0<j<n}} P(i,j)$
\end{ctab}
A slightly more generalized form is the \env{subarray} environment which
allows you to specify that each line should be left-aligned instead of
centered, as here:
\begin{ctab}{ll}
\begin{minipage}[t]{.6\columnwidth}
\begin{verbatim}
\sum_{\begin{subarray}{l}
i\in\Lambda\\ 0<j<n
\end{subarray}}
P(i,j)
\end{verbatim}
\end{minipage}
&
$\displaystyle
\sum_{\begin{subarray}{l}
i\in \Lambda\\ 0<j<n
\end{subarray}}
P(i,j)$
\end{ctab}
%% ------------------------------------------------------------------ %%
\section{The \cn{sideset} command}\label{sideset}
There's also a command called \cn{sideset}, for a rather special
purpose: putting symbols at the subscript and
superscript\index{subscripts and superscripts!on sums} corners of a
large operator symbol such as $\sum$ or $\prod$. \emph{Note: this
command is not designed to be applied to anything other than sum-class
symbols.} The prime
example is the case when you want to put a prime on a sum symbol. If
there are no limits above or below the sum, you could just use
\cn{nolimits}: here's
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
|\sum\nolimits' E_n| in display mode:
\begin{equation}
\sum\nolimits' E_n
\end{equation}
If, however, you want not only the prime but also something below or
above the sum symbol, it's not so easy\mdash indeed, without
\cn{sideset}, it would be downright difficult. With \cn{sideset}, you
can write
\begin{ctab}{ll}
\begin{minipage}[t]{.6\columnwidth}
\begin{verbatim}
\sideset{}{'}
\sum_{n<k,\;\text{$n$ odd}} nE_n
\end{verbatim}
\end{minipage}
&$\displaystyle
\sideset{}{'}\sum_{n<k,\;\text{$n$ odd}} nE_n
$
\end{ctab}
The extra pair of empty braces is explained by the fact that
\cn{sideset} has the capability of putting an extra symbol or symbols at
each corner of a large operator; to put an asterisk at each corner of a
product symbol, you would type
\begin{ctab}{ll}
\begin{minipage}[t]{.6\columnwidth}
\begin{verbatim}
\sideset{_*^*}{_*^*}\prod
\end{verbatim}
\end{minipage}
&$\displaystyle
\sideset{_*^*}{_*^*}\prod
$
\end{ctab}
%% ------------------------------------------------------------------ %%
\section{Placement of subscripts and limits}\label{subplace}
The default positioning for subscripts depends on the
base symbol involved. The default for sum-class symbols is
`displaylimits' positioning: When a sum-class symbol appears
in a displayed formula, subscript and superscript are placed in `limits'
position above and below, but in an inline formula, they are placed to
the side, to avoid unsightly and wasteful spreading of the
surrounding text lines.
The default for integral-class symbols is to have sub- and
superscripts always to the side, even in displayed formulas.
(See the discussion of the \opt{intlimits} and related
options\index{options!behavior of particular options} in
Section~\ref{options}.)
Operator names such as $\sin$ or $\lim$ may have either `displaylimits'
or `limits' positioning depending on how they were defined. The standard
operator names are defined according to normal mathematical usage.
The commands \cn{limits} and \cn{nolimits} can be used to override the
normal behavior of a base symbol:
\begin{equation*}
\sum\nolimits_X,\qquad \iint\limits_{A},
\qquad\varliminf\nolimits_{n\to \infty}
\end{equation*}
To define a command whose subscripts follow the
same `displaylimits' behavior as \cn{sum}, put
\cn{displaylimits} at the tail end of the definition. When multiple
instances of \cn{limits}, \cn{nolimits}, or \cn{displaylimits} occur
consecutively, the last one takes precedence.
%% ------------------------------------------------------------------ %%
\section{Multiple integral signs}
\cn{iint}, \cn{iiint}, and \cn{iiiint} give multiple integral
signs\index{integrals!multiple} with the spacing between them nicely
adjusted, in both text and display style. \cn{idotsint} is an extension
of the same idea that gives two integral signs with dots between them.
\begin{gather}
\iint\limits_A f(x,y)\,dx\,dy\qquad\iiint\limits_A
f(x,y,z)\,dx\,dy\,dz\\
\iiiint\limits_A
f(w,x,y,z)\,dw\,dx\,dy\,dz\qquad\idotsint\limits_A f(x_1,\dots,x_k)
\end{gather}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\chapter{Commutative diagrams}\label{s:commdiag}
\index{commutative diagrams}
Some commutative diagram commands like the ones in \amstex/ are
available as a separate package, \pkg{amscd}. For complex commutative
diagrams authors will need to turn to more comprehensive packages like
\tikz/\index{TikZ@\tikz/ package} (in particular, \pkg{tikz-cd})
or \xypic/\index{XY-pic@\xypic/ package},
but for simple diagrams without diagonal
arrows\index{arrows!in commutative diagrams} the \pkg{amscd} commands
may be more convenient. Here is one example.
\begin{equation*}
\begin{CD}
S^{\mathcal{W}_\Lambda}\otimes T @>j>> T\\
@VVV @VV{\End P}V\\
(S\otimes T)/I @= (Z\otimes T)/J
\end{CD}
\end{equation*}
\begin{verbatim}
\begin{CD}
S^{\mathcal{W}_\Lambda}\otimes T @>j>> T\\
@VVV @VV{\End P}V\\
(S\otimes T)/I @= (Z\otimes T)/J
\end{CD}
\end{verbatim}
In the \env{CD} environment the commands |@>>>|,
|@<<<|, |@VVV|, and |@AAA| give respectively right, left, down, and up
arrows. For the horizontal arrows, material between the first and second
|>| or |<| symbols will be typeset as a superscript, and material
between the second and third will be typeset as a subscript. Similarly,
material between the first and second or second and third |A|s or |V|s
of vertical arrows will be typeset as left or right \qq{sidescripts}.
The commands |@=| and \verb'@|' give horizontal and vertical double lines.
A \qq{null arrow} command |@.| can be used instead of a visible arrow
to fill out an array where needed.
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\chapter{Using math fonts}
\section{Introduction}
For more comprehensive information on font use in \latex/, see the
\latex/ font guide (\fn{fntguide.tex}) or \booktitle{The \latex/
Companion} \cite{tlc2}. The basic set of math font commands\index{math
fonts}\relax \index{math symbols|see{math fonts}} in \latex/ includes
\cn{mathbf}, \cn{mathrm}, \cn{mathcal}, \cn{mathsf}, \cn{mathtt},
\cn{mathit}. Additional math alphabet commands such as
\cn{mathbb} for blackboard bold, \cn{mathfrak} for Fraktur, and
\cn{mathscr} for Euler script are available through the packages
\pkg{amsfonts} and \pkg{euscript} (distributed separately).
%% ------------------------------------------------------------------ %%
\enlargethispage{1\baselineskip}
\section{Recommended use of math font commands}
If you find yourself employing math font commands frequently in your
document, you might wish that they had shorter names, such as \ncn{mb}
instead of \cn{mathbf}. Of course, there is nothing to keep you from
providing such abbreviations for yourself by suitable \cn{newcommand}
statements. But for \latex/ to provide shorter names would actually be a
disservice to authors, as that would obscure a much better alternative:
defining custom command names derived from the names of the underlying
mathematical objects, rather than from the names of the fonts used to
distinguish the objects. For example, if you are using bold to indicate
vectors, then you will be better served in the long run if you define a
`vector' command instead of a `math-bold' command:
\begin{verbatim}
\newcommand{\vect}[1]{\mathbf{#1}}
\end{verbatim}
you can write |\vect{a} + \vect{b}| to produce $\vect{a} +
\vect{b}$.
If you decide several months down the road that you want to use the bold
font for some other purpose, and mark vectors by a small over-arrow
instead, then you can put the change into effect merely by changing the
definition of \ncn{vect}; otherwise you would have to replace all
occurrences of \cn{mathbf} throughout your document, perhaps even
needing to inspect each one to see whether it is indeed
an instance of a vector.
It can also be useful to assign distinct
command names for different letters of a particular font:
\begin{verbatim}
\DeclareSymbolFont{AMSb}{U}{msb}{m}{n}% or use amsfonts package
\DeclareMathSymbol{\C}{\mathalpha}{AMSb}{"43}
\DeclareMathSymbol{\R}{\mathalpha}{AMSb}{"52}
\end{verbatim}
These statements would define the commands \cn{C} and \cn{R} to produce
blackboard-bold letters from the `AMSb' math symbols font. If you refer
often to the\break complex numbers or real numbers in your document, you
might find this method more convenient than (let's say) defining a
\ncn{field} command and writing\break |\field{C}|, |\field{R}|. But for
maximum flexibility and control, define such a \ncn{field} command and
then define \ncn{C} and \ncn{R} in terms of that
command:\indexcs{mathbb}
\begin{verbatim}
\usepackage{amsfonts}% to get the \mathbb alphabet
\newcommand{\field}[1]{\mathbb{#1}}
\newcommand{\C}{\field{C}}
\newcommand{\R}{\field{R}}
\end{verbatim}
%% ------------------------------------------------------------------ %%
\enlargethispage{3\baselineskip}
\section{Bold math symbols}
The \cn{mathbf} command is commonly used to obtain bold Latin letters in
math, but for most other kinds of math symbols it has no effect, or its
effects depend unreliably on the set of math fonts that are in use. For
example, writing
\begin{verbatim}
\Delta \mathbf{\Delta}\mathbf{+}\delta \mathbf{\delta}
\end{verbatim}
produces $\Delta \mathbf{\Delta}\mathbf{+}\delta
\mathbf{\delta}$; the \cn{mathbf} has no effect on the plus
sign or the small delta.
% should be paragraph break; avoid overfull box on next line
The \nipkg{amsmath} package therefore provides two additional commands,
\cn{boldsymbol} and \cn{pmb}, that can be applied to other kinds of math
symbols. \cn{boldsymbol} can be used for a math symbol that remains
unaffected by \cn{mathbf} if (and only if) your current math font set
includes a bold version of that symbol. \cn{pmb} can be used as a last
resort for any math symbols that do not have a true bold version
provided by your set of math fonts; \qq{pmb} stands for \qq{poor man's
bold} and the command works by typesetting multiple copies of the symbol
with slight offsets. The quality of the output is inferior, especially
for symbols that contain any hairline strokes. When the standard default set of
\latex/ math fonts are in use (Computer Modern), the only symbols that
are likely to require \cn{pmb} are large operator symbols like \cn{sum},
extended delimiter\index{delimiters} symbols, or the extra math symbols
provided by the \pkg{amssymb} package \cite{amsfonts}.
The following formula shows some of the results that are possible:
\begin{verbatim}
A_\infty + \pi A_0
\sim \mathbf{A}_{\boldsymbol{\infty}} \boldsymbol{+}
\boldsymbol{\pi} \mathbf{A}_{\boldsymbol{0}}
\sim\pmb{A}_{\pmb{\infty}} \pmb{+}\pmb{\pi} \pmb{A}_{\pmb{0}}
\end{verbatim}
\begin{equation*}
A_\infty + \pi A_0
\sim \mathbf{A}_{\boldsymbol{\infty}} \boldsymbol{+}
\boldsymbol{\pi} \mathbf{A}_{\boldsymbol{0}}
\sim\pmb{A}_{\pmb{\infty}} \pmb{+}\pmb{\pi} \pmb{A}_{\pmb{0}}
\end{equation*}
If you want to use only the \cn{boldsymbol} command without loading the
whole \nipkg{amsmath} package, the \pkg{bm} package is recommended (this
is a standard \latex/ package, not an AMS package; you probably have it
already if you have a 1997 or newer version of \latex/).
%% ------------------------------------------------------------------ %%
\section{Italic Greek letters}
For italic versions of the capital Greek letters, the following commands
are provided:
\begin{ctab}{rlrl}
\cn{varGamma}& $\varGamma$& \cn{varSigma}& $\varSigma$\\
\cn{varDelta}& $\varDelta$& \cn{varUpsilon}& $\varUpsilon$\\
\cn{varTheta}& $\varTheta$& \cn{varPhi}& $\varPhi$\\
\cn{varLambda}& $\varLambda$& \cn{varPsi}& $\varPsi$\\
\cn{varXi}& $\varXi$& \cn{varOmega}& $\varOmega$\\
\cn{varPi}& $\varPi$
\end{ctab}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\chapter{Error messages and output problems}
\section{General remarks}
This is a supplement to Chapter~8 of the \latex/ manual \cite{lamport}
(first edition: Chapter~6). Appendix~B of the
\textit{Companion}~\cite{tlc2} lists all \latex/ errors including those
for \nipkg{amsmath} with likely causes for each. For the reader's
convenience, the set of error messages discussed here overlaps
somewhat with the set in those references,
but please be aware that we don't provide exhaustive coverage here.
The error messages are arranged in alphabetical order, disregarding
unimportant text such as |! LaTeX Error:| at the beginning, and
nonalphabetical characters such as \qc{\\}. Where examples are given, we
show also the help messages that appear on screen when you respond to an
error message prompt by entering |h|.
Remember that the important error message is the first for a given line.
When running in nonstop mode, errors accumulate, and the first error
may create a further error condition from which it is impossible to
recover. In such a situation processing will stop after 100~errors,
so the reporting of genuine errors may not be complete, and it may be
impossible to determine which reported errors are genuine and which
are not.
A final section discusses some output errors, i.e., instances where
the printed document has something wrong but there was no \latex/
error during typesetting.
%% ------------------------------------------------------------------ %%
%% **********
\enlargethispage{-2\baselineskip}
\section{Error messages}
\begin{error}{\begin{split} won't work here.}
\errexa
\begin{verbatim}
! Package amsmath Error: \begin{split} won't work here.
...
l.8 \begin{split}
? h
\Did you forget a preceding \begin{equation}?
If not, perhaps the `aligned' environment is what you want.
?
\end{verbatim}
\errexpl
The \env{split} environment does not construct a stand-alone displayed
equation; it needs to be used within some other environment such as
\env{equation} or \env{gather}.
\end{error}
\begin{error}{Erroneous nesting of equation structures}
\errexa
\begin{verbatim}
! Package amsmath Error: Erroneous nesting of equation structures;
(amsmath) trying to recover with `aligned'.
See the amsmath package documentation for explanation.
Type H <return> for immediate help.
...
l.260 \end{alignat*}
\end{equation*}
\end{verbatim}
\errexpl
The structures \env{align}, \env{alignat}, etc., are designed
for top-level use and for the most part cannot be nested inside some
other displayed equation structure. The chief exception is that
\env{align} and most of its variants can be used inside the
\env{gather} environment.
\end{error}
\begin{error}{Extra & on this line}
\errexa
\begin{verbatim}
! Package amsmath Error: Extra & on this line.
See the amsmath package documentation for explanation.
Type H <return> for immediate help.
...
l.9 \end{alignat}
? h
\An extra & here is so disastrous that you should probably exit
and fix things up.
?
\end{verbatim}
\errexpl
In an \env{alignat} structure the number of alignment points per line
is dictated by the numeric argument given after |\begin{alignat}|.
If you use more alignment points in a line it is assumed that you
accidentally left out a newline command \cn{\\} and the above error is
issued.
\end{error}
%% **********
\enlargethispage{1.5\baselineskip}
\begin{error}{Font OMX/cmex/m/n/7=cmex7 not loadable ...}
\errexa
\begin{verbatim}
! Font OMX/cmex/m/n/7=cmex7 not loadable: Metric (TFM) file not found.
<to be read again>
relax
l.8 $a
b+b^2$
? h
I wasn't able to read the size data for this font,
so I will ignore the font specification.
[Wizards can fix TFM files using TFtoPL/PLtoTF.]
You might try inserting a different font spec;
e.g., type `I\font<same font id>=<substitute font name>'.
?
\end{verbatim}
\errexpl
Certain extra sizes of some Computer Modern fonts that were formerly
available mainly through the AMSFonts\index{amsfont@AMSFonts collection}
distribution are considered part of standard \latex/ (as of June 1994):
\fn{cmex7}\ndash \texttt{9}, \fn{cmmib5}\ndash \texttt{9}, and
\fn{cmbsy5}\ndash \texttt{9}. If these extra sizes are missing on your
system, you should try first to get them from the source where you
obtained \latex/. If that fails, you could try getting the fonts from
CTAN (e.g., in the form of Metafont\index{Metafont source files} source
files, directory \nfn{/tex-archive/fonts/latex/mf}, or in PostScript
Type 1 format, directory
\nfn{/tex-archive/fonts/cm/ps-type1/bakoma}\index{BaKoMa fonts}\relax
\index{PostScript fonts}).
If the font name begins with \fn{cmex}, there is a special option%
\index{options!behavior of particular options}
\opt{cmex10} for the \nipkg{amsmath} package that provides a temporary
workaround. I.e., change the \cn{usepackage} to
\begin{verbatim}
\usepackage[cmex10]{amsmath}
\end{verbatim}
This will force the use of the 10-point size of the \fn{cmex} font in
all cases. Depending on the contents of your document this may be
adequate.
\end{error}
\enlargethispage{1\baselineskip}
\begin{error}{Improper argument for math accent}
\errexa
\begin{verbatim}
! Package amsmath Error: Improper argument for math accent:
(amsmath) Extra braces must be added to
(amsmath) prevent wrong output.
See the amsmath package documentation for explanation.
Type H <return> for immediate help.
...
l.415 \tilde k_{\lambda_j} = P_{\tilde \mathcal
{M}}
?
\end{verbatim}
\errexpl
Non-simple arguments for any \LaTeX{} command should be enclosed in
braces. In this example extra braces are needed as follows:
\begin{verbatim}
... P_{\tilde{\mathcal{M}}}
\end{verbatim}
\end{error}
\begin{error}{Math formula deleted: Insufficient extension fonts}
\errexa
\begin{verbatim}
! Math formula deleted: Insufficient extension fonts.
l.8 $ab+b^2$
?
\end{verbatim}
\errexpl
This usually follows a previous error |Font ... not loadable|; see the
discussion of that error (above) for solutions.
\end{error}
\enlargethispage{1\baselineskip}
\begin{error}{Missing number, treated as zero}
\errexa
\begin{verbatim}
! Missing number, treated as zero.
<to be read again>
a
l.100 \end{alignat}
? h
A number should have been here; I inserted `0'.
(If you can't figure out why I needed to see a number,
look up `weird error' in the index to The TeXbook.)
?
\end{verbatim}
\errexpl
There are many possibilities that can lead to this error. However, one
possibility that is relevant for the \nipkg{amsmath} package is that you
forgot to give the number argument of an \env{alignat} environment, as
in:
\begin{verbatim}
\begin{alignat}
a& =b& c& =d\\
a'& =b'& c'& =d'
\end{alignat}
\end{verbatim}
where the first line should read instead
\begin{verbatim}
\begin{alignat}{2}
\end{verbatim}
Another possibility is that you have a left bracket character |[|
following a line break\index{line break} command \cn{\\} in a multiline
construction such as \env{array}, \env{tabular}, or \env{eqnarray}.
This will be interpreted by \latex/ as the beginning of an `additional
vertical space request \cite[\S C.1.6]{lamport}, even if it occurs on the
following line and is intended to be part of the contents. For example,
\begin{verbatim}
\begin{array}{c}
a+b\\
[f,g]\\
m+n
\end{array}
\end{verbatim}
To prevent the error message in such a case, you can
add braces as discussed in the \latex/ manual \cite[\S C.1.1]{lamport}:
\begin{verbatim}
\begin{array}{c}
a+b\\
{[f,g]}\\
m+n
\end{array}
\end{verbatim}
or precede the bracketed expression by \cn{relax}.
\end{error}
\goodbreak
\begin{error}{Missing \right. inserted}
\errexa
\begin{verbatim}
! Missing \right. inserted.
<inserted text>
\right .
l.10 \end{multline}
? h
I've inserted something that you may have forgotten.
(See the <inserted text> above.)
With luck, this will get me unwedged. But if you
really didn't forget anything, try typing `2' now; then
my insertion and my current dilemma will both disappear.
\end{verbatim}
\errexpl
This error typically arises when you try to insert a
line break\index{line break} or |&|\cnamp\ between a
\cn{left}-\cn{right} pair of delimiters\index{delimiters} in any
multiline environment, including \env{split}.
\begin{verbatim}
\begin{multline}
AAA\left(BBB\\
CCC\right)
\end{multline}
\end{verbatim}
There are two possible solutions: (1)~instead of using \cn{left} and
\cn{right}, use `big' delimiters\index{delimiters!fixed size} of fixed
size (\cn{bigl} \cn{bigr} \cn{biggl} \cn{biggr} \dots; see
\secref{bigdel}); or (2)~use null delimiters\index{delimiters!null} to
break up the \cn{left}-\cn{right} pair into parts for each line (or cell):
\begin{verbatim}
AAA\left(BBB\right.\\
\left.CCC\right)
\end{verbatim}
The latter solution may result in mismatched
delimiter\index{delimiters!mismatched sizes} sizes;
ensuring that they match requires using \cn{vphantom} in the segment
that has the smaller delimiter (or possibly \cn{smash} in the segment
that has the larger delimiter). In the argument of \cn{vphantom} put a
copy of the tallest element that occurs in the other segment, e.g.,
\begin{verbatim}
xxx \left(\int_t yyy\right.\\
\left.\vphantom{\int_t} zzz ... \right)
\end{verbatim}
\end{error}
\goodbreak
\begingroup
\lccode`M=`M
\lccode`@=`\}
\lowercase{\endgroup
\begin{error}{Missing @ inserted}}
\errexa
\begin{verbatim}
! Missing } inserted.
<inserted text>
\right .
l.10 \end{multline}
? h
I've inserted something that you may have forgotten.
(See the <inserted text> above.)
With luck, this will get me unwedged. But if you
really didn't forget anything, try typing `2' now; then
my insertion and my current dilemma will both disappear.
\end{verbatim}
\errexpl
This error is often the result of using \verb+$+ within a multiline
display environment. Remove such \verb+$+ signs (except when they
appear within \verb+\text{...}+).
\end{error}
\begin{error}{Old form `\pmatrix' should be \begin{pmatrix}.}
\errexa
\begin{verbatim}
! Package amsmath Error: Old form `\pmatrix' should be
\begin{pmatrix}.
See the amsmath package documentation for explanation.
Type H <return> for immediate help.
...
\pmatrix ->\left (\matrix@check \pmatrix
\env@matrix
l.16 \pmatrix
{a&b\cr c&d\cr}
? h
`\pmatrix{...}' is old Plain-TeX syntax whose use is
ill-advised in LaTeX.
?
\end{verbatim}
\errexpl
When the \nipkg{amsmath} package is used, the old forms of \cn{pmatrix},
\cn{matrix}, and \cn{cases} cannot be used any longer because of naming
conflicts. Their syntax did not conform with standard \LaTeX{} syntax
in any case.
\end{error}
\enlargethispage{2\baselineskip}
\begin{error}{Paragraph ended before \xxx was complete}
\errexa
\begin{verbatim}
Runaway argument?
! Paragraph ended before \multline was complete.
<to be read again>
\par
l.100
? h
I suspect you've forgotten a `}', causing me to apply this
control sequence to too much text. How can we recover?
My plan is to forget the whole thing and hope for the best.
?
\end{verbatim}
\errexpl
This might be produced by a blank line between the |\begin| and |\end|.
Another possibility is a misspelling in the |\end{multline}| command,
e.g.,
\begin{verbatim}
\begin{multline}
...
\end{multiline}
\end{verbatim}
or by using abbreviations for certain environments, such as |\bal| and
|\eal| for |\begin{align}| and |\end{align}|:
\begin{verbatim}
\bal
...
\eal
\end{verbatim}
For technical reasons that kind of abbreviation does not work with
the more complex displayed equation environments of the \nipkg{amsmath} package
(\env{gather}, \env{align}, \env{split}, etc.; cf.\ \fn{technote.tex}).
\end{error}
\begin{error}{Runaway argument?}
See the discussion for the error message
\texttt{Paragraph ended before \ncn{xxx} was complete}.
\end{error}
\begin{error}{Unknown option `xxx' for package `yyy'}
\errexa
\begin{verbatim}
! LaTeX Error: Unknown option `intlim' for package `amsmath'.
...
? h
The option `intlim' was not declared in package `amsmath', perhaps you
misspelled its name. Try typing <return> to proceed.
?
\end{verbatim}
\errexpl
This means that you misspelled the option\index{options!unknown}
name, or the package simply does not have an option that you expected
it to have. Consult the documentation for the given package.
\end{error}
%% ------------------------------------------------------------------ %%
\section{Warning messages}
\begin{error}{Cannot use `split' here}
\errexa
\begin{verbatim}
Package amsmath Warning: Cannot use `split' here;
(amsmath) trying to recover with `aligned'
\end{verbatim}
\errexpl The \env{split} environment is designed to serve as the entire
body of an equation, or an entire line of an \env{align} or \env{gather}
environment. There cannot be any printed material before or
after it within the same enclosing structure:
\begin{verbatim}
\begin{equation}
\left\{ % <-- Not allowed
\begin{split}
...
\end{split}
\right. % <-- Not allowed
\end{equation}
\end{verbatim}
\end{error}
\begin{error}{Foreign command \over [or \atop or \above]}
\errexa
\begin{verbatim}
Package amsmath Warning: Foreign command \over; \frac or \genfrac
(amsmath) should be used instead.
\end{verbatim}
\errexpl The primitive generalized fraction commands of \tex/\mdash
\cs{over}, \cs{atop}, \cs{above}\mdash are deprecated when the
\nipkg{amsmath} package is used because their syntax is foreign to \latex/
and \nipkg{amsmath} provides native \latex/ equivalents. See
\fn{technote.tex} for further information.
\end{error}
%% ------------------------------------------------------------------ %%
\section{Wrong output}
\begin{erroro}{Section numbers 0.1, 5.1, 8.1 instead of 1, 2, 3}
%
This most likely means that you have the arguments for \cn{numberwithin}
in reverse order:
\begin{verbatim}
\numberwithin{section}{equation}
\end{verbatim}
That means `print the section number as \textit{equation
number}.\textit{section number} and reset to 1 every time an equation
occurs' when what you probably wanted was the inverse
\begin{verbatim}
\numberwithin{equation}{section}
\end{verbatim}
\end{erroro}
\begin{erroro}{The \cn{numberwithin} command had no effect on equation
numbers}
%
Are you looking at the first section in your document? Check the section
numbers elsewhere to see if the problem is the one described in the
previous item.
\end{erroro}
\begin{erroro}{Bracketed material disappears at the beginning of
\env{aligned} or \env{gathered}}
%
For most multiline equation environments, \nipkg{amsmath} disables the
\latex/ convention to recognize a [bracketed] expression as an option%
\index{ed env@\texttt{-ed} environments}%
\index{options!positioning of \texttt{-ed} environments}%
\index{options!space before \texttt{[}}
when it occurs at the beginning of an environment or immediately
following \cn{\\}, provided a space intervenes. This fails at the
beginning of \env{aligned} and \env{gathered}, and is a bug. Insert
\cn{relax} before the opening brace to restore the desired result.
\end{erroro}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\chapter{Additional information}
\section{Compatibility with other packages}
Several packages have already been mentioned as providing facilities
lacking in \nipkg{amsmath}.
\begin{itemize}
\item \pkg{bm} is recommended for specifying bold math symbols.
\item \pkg{mathtools} provides enhancements to some \nipkg{amsmath}
environments as well as additional compatible features, such as
\env{rcases} (similar to \env{cases} but with the brace on the
right-hand side), \env{multlined} (a subsidiary environment
comparable to \env{multline}), and \cn{shortintertext} (more
compact spacing than \cn{intertext}). If \pkg{mathtools} is used,
\nipkg{amsmath} is loaded automatically, so it is not necessary
to load it separately.
\item \pkg{unicode-math} provides commands for (most?)\ math symbols
in Unicode.
%\item \pkg{empheq}
\end{itemize}
These packages have known problems when used with \nipkg{amsmath}.
\begin{itemize}
\item \pkg{lineno} may omit numbers before display environments.
\item \pkg{breqn} redefines a number of commands from other packages,
so is best loaded after \nipkg{amsmath} and other packages with math
facilities.\\ \pkg{breqn} is not yet totally stable, and a number of
bugs have been reported via \texttt{tex.stackexchange} \cite{tex-sx}.
\item \pkg{wasysym}, \pkg{mathabx} and perhaps other font packages also
define multiple integrals\index{integrals!multiple} using the same
names as \nipkg{amsmath}.
\end{itemize}
%% ------------------------------------------------------------------ %%
\section{Converting existing documents}
\subsection{Converting from plain \LaTeX{}}
A \LaTeX{} document will typically continue to work the same in most
respects if \verb'\usepackage{amsmath}' is added in the document
preamble. By default, however, the \nipkg{amsmath} package suppresses page
breaks inside multiple-line displayed equation structures such as
\env{eqnarray}, \env{align}, and \env{gather}. To continue allowing page
breaks inside \env{eqnarray} after switching to \nipkg{amsmath}, you will
need to add the following line in your document preamble:
\begin{verbatim}
\allowdisplaybreaks[1]
\end{verbatim}
To ensure normal spacing around relation symbols, you might also want to
change \env{eqnarray} to \env{align}, \env{multline}, or
\env{equation}\slash\env{split} as appropriate.
Most of the other differences in \nipkg{amsmath} usage can be considered
optional refinements, e.g., using
\begin{verbatim}
\DeclareMathOperator{\Hom}{Hom}
\end{verbatim}
instead of \verb'\newcommand{\Hom}{\mbox{Hom}}'.
\subsection{Converting from \texorpdfstring{\amslatex/}{amslatex} 1.1}
See \fn{diffs-m.txt}.
%% ------------------------------------------------------------------ %%
\section{Technical notes}
The file \fn{technote.tex} contains some remarks on miscellaneous
technical questions that are less likely to be of general interest.
%% ------------------------------------------------------------------ %%
\section{Getting help}
The \nipkg{amsmath} collection of packages is maintained by the \latex/
team \cite{ltx-team}. Bugs should be reported using the instructions
at \url{https://www.latex-project.org/bugs/}.
Please be careful not to confuse \nipkg{amsmath} with the AMS document
classes (\cls{amsart}, \cls{amsbook}, and \cls{amsproc}), which
automatically incorporate \nipkg{amsmath}; bugs in the classes should
be reported directly to AMS, by email to \mail{tech-support@ams.org}.
%Questions or comments regarding \nipkg{amsmath} and related packages
%should be sent to:
%\begin{infoaddress}
%American Mathematical Society\\
%Technical Support\\
%Electronic Products and Services\\
%P. O. Box 6248\\
%Providence, RI 02940\\[3pt]
%Phone: 800-321-4AMS (321-4267) \quad or \quad 401-455-4080\\
%Internet: \mail{tech-support@ams.org}
%\end{infoaddress}
%If you are reporting a problem you should include
%the following information to make proper investigation possible:
%\begin{enumerate}
%\item The source file where the problem occurred, preferably reduced
% to minimum size by removing any material that can be removed without
% affecting the observed problem.
%\item A \latex/ log file showing the error message (if applicable) and
% the version numbers of the document class and option files being used.
%\end{enumerate}
The online forum\index{online Q\,\&\,A forum} \texttt{tex.stackexchange}
\cite{tex-sx} is a good source of answers to common questions on usage.
Look first in the archive to see if your question has already been asked
and answered; if it has not, post your own question.
There is an online discussion group called \fn{comp.text.tex} \cite{ctt}
that is a fairly good source of information about \latex/ and \tex/ in
general. This group, formerly a Unix newsgroup, predates
\texttt{tex.stackexchange} by decades, and the archives can be a useful
resource for historical investigation.
%% ------------------------------------------------------------------ %%
\section{Of possible interest}\label{a:possible-interest}
Information about obtaining AMSFonts or other \tex/-related
software from the AMS web server at \fn{www.ams.org}
can be obtained by sending an email request to
\mail{tech-support@ams.org}. This software is also posted on
CTAN\index{CTAN (Comprehensive \TeX\ Archive Network)} and included
in distributions based on \TeX\,Live\index{TEX Live@\TeX\,Live}.
The \tex/ Users Group\index{TeX Users@\tex/ Users Group} is a nonprofit
organization that publishes a journal
(\journalname{TUGboat}\index{TUGboat@\journalname{TUGboat}}), holds
meetings, and serves as a clearinghouse for general information about
\tex/ and \tex/-related software.
\begin{infoaddress}
\tex/ Users Group\\
PO Box 2311\\
Portland, OR 97208-2311\\
USA\\[3pt]
Phone: +1-503-223-9994\\
Email: \mail{office@tug.org}
\end{infoaddress}
Membership in the \tex/ Users Group is a good way to support continued
development of free \tex/-related software. There are also many local
\tex/ user groups in other countries; information about contacting a
local user group can be gotten from the \tex/ Users Group.
\index{amsmath@\texttt{amsmath} package|)}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\newpage
\begin{thebibliography}{10}
\addcontentsline{toc}{chapter}{\bibname}
\raggedright
\bibsubhead{References in print}
\bibitem{mil} George Gr\"atzer, \booktitle{More Math into \latex/}, fifth ed.,
Springer, New York, 2016.
% Deal with a line breaking problem
%\begin{raggedright}
%\bibitem{mil} G. Gr\"{a}tzer,
%\emph{Math into \LaTeX{}: An Introduction to \LaTeX{} and AMS-\LaTeX{}}
% \url{https://www.ams.org/cgi-bin/bookstore/bookpromo?fn=91&arg1=bookvideo&itmc=MLTEX},
%Birkh\"{a}user, Boston, 1995.\par
%\end{raggedright}
\bibitem{kn} Donald E. Knuth, \booktitle{The \tex/book},
Addison-Wesley, Reading, MA, 1984.
\bibitem{lamport} Leslie Lamport, \booktitle{\latex/: A document preparation
system}, 2nd revised ed., Addison-Wesley, Reading, MA, 1994.
\bibitem{tlc2} Frank Mittelbach, Michel Goossens, et al.,
\booktitle{The \latex/ companion}, second ed., Addison-Wesley, Reading,
MA, 2004. This is now also available as an ebook, in both English and
German; see \url{https://www.latex-project.org/help/books/}.
The front matter, including the full Table of Contents, can be viewed
online, from a link on the same page.
%Michel Goossens, Frank Mittelbach, and Alexander Samarin,
%\booktitle{The \latex/ companion}, Addison-Wesley, Reading, MA, 1994.
% [\emph{Note: The 1994 edition is not a reliable guide for the
% \nipkg{amsmath} package unless you refer to the errata for Chapter
% 8\mdash file \fn{compan.err}, distributed with \LaTeX{}.}]
\bibitem{msf} Frank Mittelbach and Rainer Sch\"opf,
\textit{The new font family selection\mdash user
interface to standard \latex/}, \journalname{TUGboat} \textbf{11},
no.~2 (June 1990), pp.~297\ndash 305.
\bibitem{jt} Michael Spivak, \booktitle{The joy of \tex/}, 2nd revised ed.,
Amer. Math. Soc., Providence, RI, 1990.
\bibsubhead{Package documentation}
\bibitem{amshandbk}\booktitle{AMS author handbook}, separate versions
for journal articles, monographs and proceedings articles, Amer. Math.
Soc., Providence, RI, 2017;
\url{https://www.ams.org/publications/authors/tex/author-handbook}.
\bibitem{amsfonts}\booktitle{AMSFonts version \textup{2.2d}\mdash user's guide},
Amer. Math. Soc., Providence, RI, 2002; distributed
with the AMSFonts package
\url{http://mirror.ctan.org/tex-archive/fonts/amsfonts/doc/amsfndoc.pdf}.
\bibitem{amsthdoc}\booktitle{Using the \pkg{amsthm} Package}, version 2.20.3,
Amer. Math. Soc., Providence, RI, 2017;
\url{http://mirror.ctan.org/tex-archive/macros/latex/required/amscls/doc/amsthdoc.pdf}.
\bibitem{mt} Morten H{\o}gholm, Lars Madsen, \booktitle{The \pkg{mathtools}
package}, 2018;
\url{http://mirror.ctan.org/tex-archive/macros/latex/contrib/mathtools/mathtools.pdf}.
\bibsubhead{Online resources}
\bibitem{ltx-team} The \latex/ Project, \url{https://www.latex-project.org}.
\bibitem{ctt} Online discussion group \texttt{comp.text.tex},
\url{https://groups.google.com/forum/\#!forum/comp.text.tex}.
\bibitem{tex-sx} Online question and answer forum \texttt{tex.stackexchange},
\url{https://tex.stackexchange.com}.
\end{thebibliography}
\printindex
\end{document}