summaryrefslogtreecommitdiff
path: root/usergrps/uktug/baskervi/5_4/bailey.tex
diff options
context:
space:
mode:
Diffstat (limited to 'usergrps/uktug/baskervi/5_4/bailey.tex')
-rw-r--r--usergrps/uktug/baskervi/5_4/bailey.tex828
1 files changed, 828 insertions, 0 deletions
diff --git a/usergrps/uktug/baskervi/5_4/bailey.tex b/usergrps/uktug/baskervi/5_4/bailey.tex
new file mode 100644
index 0000000000..737e7ab829
--- /dev/null
+++ b/usergrps/uktug/baskervi/5_4/bailey.tex
@@ -0,0 +1,828 @@
+%latex2e file
+%%%
+%%% An article for Baskerville, intended to be the last of 6 parts
+%%%
+\title{Maths in \LaTeX: Part~6, Harder arrays}
+\author[R.~A.~Bailey]{R.~A.~Bailey\\
+Queen Mary and Westfield College, \\University of London}
+%%%
+
+%% Added by CAR for SPQR, and other small necessary changes made:
+%% search for ``amsmath''.
+
+%%% here are extra environments that I have used in this article.
+%%% I hope that they do not conflict with anything of the editor's.
+%%%
+\newcommand{\writer}[1]{{\sc #1}:}
+\newcommand{\book}[1]{{\it #1},}
+\newcommand{\publish}[2]{{\rm #1, #2,}}
+\newcommand{\byear}[1]{{\rm (#1).}}
+\newtheorem{preqn}{Exercise}
+\newenvironment{qn}{\preqn\rm}{\endpreqn}
+\newcommand{\latexword}[1]{{\tt #1}}
+%%%
+%%%
+%%% editor: I have been as generic as I can, but of course you can't
+%%% put \verb inside a \newcommand. I have consistently used + as the
+%%% delimiter for \verb, except when I needed the + in Maths!
+%%%
+\newcommand{\phz}{\phantom{0}}
+\newcommand{\RBdfrac}[2]{\displaystyle\frac{#1}{#2}}
+\newcommand{\CS}{\mathop{{\rm CS}}\nolimits}
+\newcommand{\normof}[1]{{\left\Vert#1\right\Vert}^2}
+\newcommand{\R}{\mathbb{R}}
+\begin{Article}
+\section{Recall}
+This is the sixth and final part of a sequence of tutorials on
+typesetting Mathematics in \LaTeX. The first five appeared in
+issues~4.4, 4.5, 5.1, 5.2 and~5.3 of \BV. The series includes some
+things which can be found in \cite{leslie}, but I am working in more
+things which, while straightforward and necessary for Mathematical
+work, are not in \cite{leslie} or \cite{newleslie}. In this final
+tutorial I cover the harder parts of arrays, including aligned
+equations.
+
+In case you missed the previous tutorials, I remind you that I expect
+you, the reader, to do some work. Every so often comes a group of
+exercises, which you are supposed to do. Use \LaTeX\ to typeset
+everything in the exercise except sentences in italics, which are
+instructions. If you are not satisfied that you can do the exercise,
+then tell me. Either write to me at
+\begin{verse}
+School of Mathematical Sciences\\
+Queen Mary and Westfield College\\
+Mile End Road\\
+London E1 4NS
+\end{verse}
+with hard copy of your input and output,
+or email me at \mbox{\tt r.a.bailey@qmw.ac.uk}
+with a copy of the
+smallest possible piece of \LaTeX\ input file that contains your
+attempt at the answer.
+In either case
+I will include a solution in the following issue of \BV: you will remain
+anonymous if you wish.
+
+This tutorial covers things that \LaTeX\ is not really very good at.
+You may ask why I have not simply referred you to the packages
+\latexword{amsmath}, \latexword{array} and \latexword{delarray}. One
+reason is that every package has its price: it may give you the
+functionality that you want at the expense of changing something that
+you are quite happy with. The other is that you often are not allowed
+to include style packages when you submit an article to a journal or
+conference proceedings. It is your choice whether to use the inelegant
+solutions presented here or to cut out the relevant pieces of code
+from various style packages.
+
+\section{Answers}
+\subsection{Boxed subarrays}
+In the panel session at the end of the \ukt\ meeting on `The New Maths for
+the New \LaTeX' on 7~June, one of the participants asked how to create an array
+in which there is a box around a subarray, as in
+\[
+\begin{array}{c|cccc|}
+\multicolumn{1}{c}{1} & 2 & 3 & 4 & \multicolumn{1}{c}{5}\\
+\cline{2-5}
+2 & A & B & C & D\\
+3 & B & A & D & C\\
+4 & C & D & A & B\\
+5 & D & C & B & A\\
+\cline{2-5}
+\end{array}
+\]
+The answer is to use \verb+\cline+ for the horizontal sides of the box and to
+put \verb+|+ in the columns specifier to obtain the vertical sides of the box,
+overriding this with \verb+\multicolumn{1}+ where necessary. Thus the input
+for the preceding array begins
+\begin{verbatim}
+ \begin{array}{c|cccc|}
+ \multicolumn{1}{c}{1} & 2 & 3 & 4 &
+ \multicolumn{1}{c}{5}\\
+ \cline{2-5}
+ 2 & A & B & C & D\\
+ ...
+\end{verbatim}
+
+\subsection{Angle brackets}
+Several people have asked me why I insist that \verb+\langle+ and
+\verb+\rangle+ should be used for angle brackets when they prefer the shape of
+\verb+<+ and \verb+>+. At a group theory conference in July I saw a good, if
+unconscious, demonstration of why \verb+<+ and \verb+>+ should not be used. A
+line of displayed Maths on an overhead projector transparency was
+\[
+G = <a,b,c> \times <a,c,e>^x
+\]
+Look at the spacing. \TeX\ knows that $=$ and $<$ are both relations,
+so it puts no space between them, but it does put some space between the
+relation~$>$ and the binary operator~$\times$. If you put this
+equation in the running text, you will find that the line may break between
+the~$<$ and the~$a$. If you really prefer the shapes of $<$ and~$>$ to
+$\langle$ and~$\rangle$ then you should make yourself macros such as
+\begin{verbatim}
+ \newcommand{\llangle}{\mathopen{<}}
+ \newcommand{\rrangle}{\mathclose{>}}
+\end{verbatim}
+\newcommand{\llangle}{\mathopen{<}}
+\newcommand{\rrangle}{\mathclose{>}}
+Then the display becomes
+\[
+G = \llangle a,b,c\rrangle \times \llangle a,c,e\rrangle^x
+\]
+However, you cannot make these new angle brackets expand by preceding them with
+\verb+\left+ and \verb+\right+.
+
+\addtocounter{section}{9}
+\section{Arrays of equations}
+\subsection{Don't do it}
+Many of us write our lecture notes on the board as a series of equations, more
+or less aligned, and are tempted to write in print in the same fashion. Don't.
+For one thing, printed material needs the connecting words that you normally
+say at the board, such as `and' or `it follows that' or `substituting for
+\ldots'. For another, alignment suggests to the reader that the equations are
+somehow related, so it should not be used merely because two displayed
+equations come one after another with no intervening text: use two separate
+lines of displayed Maths instead, using \verb+\[+ and~\verb+\]+.
+
+\subsection{Parallel definitions}
+For two or more parallel or analogous definitions or results, use the
+\latexword{eqnarray*} environment. If a typical line is $A=B$ then type that
+line as \verb+A & = & B+ and put \verb+\\+ at the end of each line except the
+last. Extra space can be added after any \verb+\\+ just as with ordinary
+arrays. For example, the parallel definitions of $\cap$ and~$+$
+\begin{eqnarray*}
+W \cap X& =& \left\{v\in V:v \in W \mbox{ and } v\in X\right\}\\
+W + X & = & \left\{w+x:w\in W \mbox{ and } x\in X\right\}
+\end{eqnarray*}
+have input
+\begin{verbatim}
+ \begin{eqnarray*}
+ W \cap X & =& \left\{v\in V:v \in W
+ \mbox{ and } v\in X\right\}\\
+ W + X & = & \left\{w+x:w\in W
+ \mbox{ and } x\in X\right\}
+ \end{eqnarray*}
+\end{verbatim}
+
+\subsection{Chains of equalities}
+The \latexword{eqnarray*} environment is also useful for a chain of equalities
+or inequalities, such as
+\begin{eqnarray*}
+\sum_{i=1}^q x_{ij}(M-x_{ij}) & = & M^2 - \sum_{i=1}^q x_{ij}^2\\
+ & \leq & M^2 - \frac{M^2}{q}\\
+ & = & \theta M^2.
+\end{eqnarray*}
+Here each line after the first begins with \verb+&+ followed by \verb+=+ or
+some other relation, followed by another~\verb+&+.
+Any line may conclude with \verb+\qquad\mbox{...}+ to give
+a short explanation, just as in a single line of displayed Maths.
+
+\begin{figure*}
+\begin{eqnarray*}
+n(Q_3 - Q_1)^4 \mathop{\rm Var} W
+& = &
+\left[(M-Q_1) \left(\frac{1}{f_M} - \frac{1}{2f_{Q_3}}\right)
+ + (Q_3 - M) \left(\frac{1}{f_M} - \frac{1}{2f_{Q_1}}\right)\right]^2\\
+ & & \mbox{} + \frac{1}{2}\left[\left(\frac{M-Q_1}{f_{Q_3}}\right)^2
+ + \left(\frac{Q_3 - M}{f_{Q_1}}\right)^2\right]
+\end{eqnarray*}
+\caption{An overlong equation}
+\label{loong}
+\end{figure*}
+
+\subsection{Overlong displays}
+Sometimes what is conceptually a single line of displayed Maths, whether it is
+an equation or not, is simply too long to fit on one line. Then you can use
+\latexword{eqnarray*}, choosing where to split the line. If you split it at a
+binary operator, it is usual to put the binary operator after the split. In
+this case you must precede it with \verb+\mbox{}+ so that \TeX\ knows that it
+is a binary operator.
+The two lines in Figure~\ref{loong} are given by
+\begin{verbatim}
+ ...\right]^2\\ & & \mbox{} + \frac{1}{2} ...
+\end{verbatim}
+
+To split an even longer line, you may want the second and succeeding lines to
+come partly underneath the first line. You can do this by enclosing the whole
+of the first line in \verb+\lefteqn{ }+, thus fooling \TeX\ into thinking that
+it has no width. Starting subsequent lines with \verb+& &+ gives that necessary
+bit of indentation.
+In this example
+\begin{eqnarray*}
+\lefteqn{\sum\left\{\sum\left\{f(B) : B \cap A = \emptyset\right\} : A
+\supseteq J\right\} = }\\
+ & & \sum\left\{\sum\left\{f(B) : A \supseteq J,\ A \cap B = \emptyset\right\}
+: B \cap J = \emptyset \right\}
+\end{eqnarray*}
+the lines begin
+\begin{verbatim}
+ \lefteqn{\sum ...
+ & & \sum ...
+\end{verbatim}
+
+\subsection{Numbered aligned equations}
+The environment \latexword{eqnarray} works just like \latexword{eqnarray*}
+except that each line is numbered, in the same sequence as
+\latexword{equation}s. If you want any line to be not numbered, just put
+\verb+\nonumber+ before the end of the line. If you want to refer somewhere
+else to the number, put a \verb+\label+ on the line in the usual way.
+Thus
+\begin{eqnarray}
+\bar{F}(x_1,x_2) & = & \int_0^\infty \exp(-\theta a_1x_1^c - \theta a_2x_2^c)
+\frac{\theta^{b-1}\lambda^b {\rm e}^{-\theta\lambda}}{\Gamma(b)} {\rm
+d}\theta \nonumber \\
+ & = & \frac{\lambda^b}{(\lambda + a_1x_1^c +a_2x_2^c)^b}
+\end{eqnarray}
+is created with
+\begin{verbatim}
+ \begin{eqnarray}
+ \bar{F}(x_1,x_2) & = & \int_0^\infty ...
+ {\rm d}\theta \nonumber \\
+ & = & \frac{ ...
+ \end{eqnarray}
+\end{verbatim}
+
+\subsection{What is \latexword{eqnarray}?}
+The two environments \latexword{eqnarray} and \latexword{eqnarray*} differ only
+in the numbering of lines. Each creates a piece of displayed Maths containing a
+special sort of array. The array has only three columns. The first column is in
+\verb+\displaystyle+ and is right-aligned. The second is in \verb+\textstyle+
+and is centred. The third is in \verb+\displaystyle+ and is left-aligned. The
+space between columns is controlled by \verb+\arraycolsep+ just as for ordinary
+arrays. The space between rows is (unless you put something after the
+\verb+\\+) what you would get in an ordinary array by putting \verb+\\[\jot]+.
+% Corrected by CAR: // to \\ twice here, once below.
+
+\subsection{Simultaneous equations}
+Simultaneous equations are often written with a vertical alignment for each
+variable and for the binary operators in between them, as well as for the
+equals sign, as the following example shows.
+\[
+\setlength{\arraycolsep}{0pt}
+\begin{array}{*{4}{rc}r@{\mbox{}={}}r}
+x_1 &{} -{} & x_2 & {}+{} & x_3 & {}-{} &x_4 &{} +{}& x_5 & 1\\[\jot]
+2x_1 & - & x_2 & +& 3x_3 && & + &4x_5 & 2\\[\jot]
+3x_1 & - &2 x_2 & + & 2x_3 & + &x_4 & +& x_5 & 1\\[\jot]
+x_1 & & & + & x_3 & + &2x_4 & +& x_5 & 0\\[\jot]
+\end{array}
+\]
+This is too many alignments for an \latexword{eqnarray*}, so an
+\latexword{array} has been used in displayed Maths, with every line ending with
+\verb+\\[\jot]+. With a column for each variable and one for each binary
+operator, almost all pairs of adjacent columns should have the separation that
+\TeX\ normally gives between an ordinary Maths symbol and a binary operator,
+which is \verb+\medmuskip+. Unfortunately, you cannot set \verb+\arraycolsep+
+to be equal to \verb+0.5\medmuskip+: \TeX\ will complain. So I have set
+\verb+\arraycolsep+ to zero: the command
+\begin{verbatim}
+ \setlength{\arraycolsep}{0pt}
+\end{verbatim}
+has been placed before the array but within the displayed Maths, to limit its
+scope. Then the columns specifier
+\verb+{*{4}{rc}r@{{}={}}r}+ does the trick for the equals sign, which comes in
+every column: for the binary operators I have put \verb!{}+{}! or \verb+{}-{}+
+as least once in each column.
+
+There are two other possibilities that could be used here. The
+\latexword{array} package allows you to put items in the columns specifier that
+will be incorporated in array entries before the boxes are made. So you could
+put the \verb+{}+ either side of each binary operator by putting it in the
+columns specifier once and for all. See \cite[Section~5.3]{companion}.
+That would be useful if the binary
+operators in the array had differing widths. The second is to effectively set
+\verb+\arraycolsep+ equal to \verb+0.5\medmuskip+. Now, \verb+\medmuskip+ is
+4\,mu plus some stretchability, and 1\,mu is $1/18$ of an em in the current
+font.
+So you can do
+\begin{verbatim}
+ \setlength{\arraycolsep}{0.11em}
+\end{verbatim}
+and omit all the \verb+{}+,
+so long as the current font does not change (by too much) between the issuing
+of that command and the setting of the entries in the array.
+
+\subsection{Which to use: \latexword{eqnarray} or \latexword{array}?}
+Regular readers will know that I am a big fan of \LaTeX. All the same, I think
+that the design of \latexword{eqnarray} is fundamentally flawed. It is not
+simply a method of aligning lines of displayed Maths, chiefly because it uses
+\verb+\arraycolsep+ to insert larger spaces than normal, but also because it
+changes between \verb+\displaystyle+ and \verb+\textstyle+ and because it is
+limited to three columns. For these last two reasons, it is also not a method
+of achieving a displayed array all of whose entries are in
+\verb+\displaystyle+ and whose rows are spread out,
+which would have been a useful environment.
+
+So which should you use, \latexword{eqnarray} or \latexword{eqnarray*} or
+\latexword{array}? Each of them needs some work to give good results.
+
+If you need a set of aligned
+equations carrying a single number then I recommend using
+\latexword{array} inside an \latexword{equation}. You will have to put in
+\verb+\displaystyle+ and \verb+\jot+ where necessary. If one or more lines
+must be individually numbered then there is nothing for it but to use
+\latexword{eqnarray}.
+
+If an unnumbered set of aligned equations has only two alignment points you may
+be able to use \latexword{eqnarray*} if you are careful about the inter-column
+spacing. Thus if you put an \verb+&+ on only one side of an equals sign you
+must put a quad space on the other side. In the following display each line has
+the form
+\begin{verbatim}
+ ... \quad = & ... & \qquad ...
+\end{verbatim}
+\begin{eqnarray*}
+g(x) \quad = & {\rm e}^{x} &\qquad\mbox{for $x\in\R$,}\\
+h(y) \quad= & \ln y &\qquad\mbox{for $y > 0$,}\\
+h'(y) \quad = & \frac{1}{y} &\qquad\mbox{for $y > 0$.}
+\end{eqnarray*}
+
+For a set with more alignment points, such as
+\[
+\begin{array}{r@{(1)={}}rr@{(2)={}}rr@{(3)={}}rr@{(4)={}}r}
+f & 1 & f & 0 & f & -2 & f & 3\\[\jot]
+g & 5 & g & 7.5 & g & 6 & g & -4\\
+\end{array}
+\]
+or simultaneous equations, use \latexword{array} and be cunning with the
+columns specifier.
+
+For parallel results, or for chains of (in)equalities, it would be good to
+have a form of \latexword{eqnarray} and \latexword{eqnarray*} in which the
+space on either side of the equals sign is what \TeX\ normally puts between a
+relation and an ordinary Maths symbol, which is \verb+\thickmuskip+.
+Now, \verb+\thickmuskip+ is 5\,mu plus some stretchability, so we can use the
+same fudge that we used for simultaneous equations.
+It is no
+good changing \verb+\arraycolsep+ globally, because that would affect other
+\latexword{array}s. So you could make an environment to use in place of
+\latexword{eqnarray} such as the following.
+\begin{verbatim}
+ \newenvironment{bettereqnarray}%
+ {\setlength{\arraycolsep}{0.14em}%
+ \eqnarray}%
+ {\endeqnarray}
+\end{verbatim}
+\newenvironment{bettereqnarray}%
+{\setlength{\arraycolsep}{0.14em}\eqnarray}%
+{\endeqnarray}
+
+Compare the following display, made with \latexword{bettereqnarray} and
+\verb+\nonumber+, with the previous form made with \latexword{eqnarray*}.
+Now that the spaces around the aligned~\verb+=+ are correct, a second~\verb+=+
+can be placed on the same line.
+\begin{bettereqnarray}
+\sum_{i=1}^q x_{ij}(M-x_{ij}) & = & M^2 - \sum_{i=1}^q x_{ij}^2\nonumber\\
+ & \leq & M^2 - \frac{M^2}{q}
+ = \theta M^2 \nonumber
+\end{bettereqnarray}
+
+If you are uneasy about that fudge, set \verb+\arraycolsep+ to zero.
+Then put \verb+& {}={} &+ instead of \verb+& = &+ in the centre of the array.
+
+There is a disadvantage common to both of these \latexword{bettereqnarray}
+environments: if you have any ordinary \latexword{array} within them then
+the value
+of \verb+\arraycolsep+ will almost certainly be wrong and you will have to
+reset it locally.
+
+There are several better environments for aligned equations in the
+\latexword{amsmath} package, which is described in \cite{ams}. However, it does
+not seem to be possible to obtain these environments without the rest of the
+package, which you may not want: for example, it disables \verb+\over+.
+
+\section{Exercises}
+\addtocounter{preqn}{71}
+\begin{qn}
+M\"obius inversion gives:
+\begin{eqnarray}
+B_\gamma & = & \sum_{\alpha\in\Gamma} z(\gamma,\alpha) S_\alpha,\\
+S_\alpha & = & \sum_{\gamma\in\Gamma} m(\alpha,\gamma) B_\gamma.
+\label{arrayref}
+\end{eqnarray}
+\end{qn}
+
+\begin{qn}
+{\it Get the number cited here from the question above, by cross-reference.}
+
+Now\begin{eqnarray*}
+L_\alpha & = & X'S_\alpha X\\
+ & = & \sum_{\gamma\in\Gamma} m(\alpha,\gamma)X'B_\gamma X \qquad \mbox{by
+Equation~(\ref{arrayref})}\\
+ & = & \sum_{\gamma\in\Gamma} \frac{m(\alpha,\gamma)}{k_\gamma} C_\gamma.
+\end{eqnarray*}
+\end{qn}
+
+\begin{qn}
+\begin{eqnarray}
+\sum a_j b_k & = & a_1b_1 + a_1b_2 + a_1b_3 \nonumber\\
+ & & \mbox{} + a_2b_1 + a_2b_2 + a_2b_3 \nonumber\\
+ & & \mbox{} + a_3b_1 + a_2b_2 + a_3b_3.
+\end{eqnarray}
+\end{qn}
+
+\begin{qn}
+\begin{equation}
+\begin{array}{rcl}
+\displaystyle
+\sum_{1\leq j,k\leq 3} a_j b_k
+&=&
+\begin{array}[t]{l}
+ a_1b_1 + a_1b_2 + a_1b_3 \\[\jot]
+ \mbox{} + a_2b_1 + a_2b_2 + a_2b_3 \\[\jot]
+ \mbox{} + a_3b_1 + a_2b_2 + a_3b_3.
+\end{array}
+\end{array}
+\end{equation}
+\end{qn}
+
+\begin{qn}
+Using the hint, we get
+\begin{eqnarray*}
+\lefteqn{3(1-z)^2\sum_k
+%% Changed for amsmath:
+% {1/2\choose k}
+ \binom{1/2}{k}
+ \left({\frac{8}{9}z}\right)^k
+(1-z)^{2-k} = }\\
+ & & 3(1-z)^2 \sum_k
+%% Changed for amsmath:
+% {1/2\choose k}
+ \binom{1/2}{k}
+ \left({\frac{8}{9}}\right)^k
+\sum_j
+%% Changed for amsmath:
+% {k+j-3\choose j}
+\binom{k+j-3}{j}
+z^{j+k}
+\end{eqnarray*}
+and now look at the coefficient of $z^{3+l}$.
+\end{qn}
+
+\begin{qn}
+Solve the system of equations
+\[
+\setlength{\arraycolsep}{0pt}
+\begin{array}{rcrcr@{{}={}}l}
+2x &{} +{} &y &{}+{}& 5z&4\\[\jot]
+3x & - & 2y & + & 2z & 2\\[\jot]
+5x & - & 8y & - & 4z & 1.
+\end{array}
+\]
+\end{qn}
+
+\begin{qn}
+The dyad appears as
+\begin{equation}
+\begin{array}{rcc@{}@{\mbox{}+\mbox{}}c@{\mbox{}+\mbox{}}c@{\mbox{}+\mbox{}}c}
+{\bf AB} & = & \multicolumn{1}{c}{}& A_xB_x {\bf ii} & A_xB_y{\bf ij} &
+A_xB_z{\bf ik} \\[\jot]
+ & && A_yB_x{\bf ji} & A_yB_y{\bf jj} & A_yB_z{\bf jk}\\[\jot]
+ & && A_zB_x{\bf ki} & A_zB_y{\bf kj} &A_zB_z{\bf kk}
+\end{array}
+\end{equation}
+\end{qn}
+
+\begin{qn}
+\[
+\begin{array}{r@{(x)={}}l@{\qquad}r@{{}=(}r@{,}r@{,}r@{,}r@{,}r@{)}l}
+f & 1 & f & 1&\phz1&\phz1&1&1\\[\jot]
+g & x & g & 1&2&3&4&5\\[\jot]
+h & x^2 & h & 1&4&9&\phz16&\phz25&.
+\end{array}
+\]
+\end{qn}
+
+\section{Hand-crafting alignments}
+In this section I show a few tricks for difficult alignments. I show them
+because I know that I am not the only Mathematician who needs
+to produce these effects. I am not particularly proud of the methods I have
+used, because in each case I have had to either measure a length explicitly or
+use phantoms: I couldn't find a way of getting the right sizes automatically.
+So if any reader can write in with a better way of doing these things, I shall
+be delighted.
+
+\subsection{Horizontal braces in arrays}
+When I use an \latexword{array} to show a chain of equalities, I often use an
+under- or overbrace to indicate how terms are grouped. Here is an example.
+
+\newlength{\gnat}
+\settowidth{\gnat}{$\bar{y} (1,\ldots, 1)$}
+\newlength{\gnu}
+\settowidth{\gnu}{$\RBdfrac{\CS(x,y)}{\CS(x,x)} x'$}
+\[
+\begin{array}{rcccccc}
+y & = & \multicolumn{3}{c}{f} & +& r\\
+ & & \multicolumn{3}{c}{
+\overbrace{\hphantom{\bar{y} (1,\ldots, 1)\quad+\quad
+\RBdfrac{\CS(x,y)}{\CS(x,x)}
+x'}}}\\
+ &= & \bar{y} (1,\ldots, 1)&{}+{}&\RBdfrac{\CS(x,y)}{\CS(x,x)} x'
+&{}+{} & r\\
+ & & \uparrow & & \uparrow & & \uparrow\\
+ & & \multicolumn{1}{p{\gnat}}{\centering fit for null model} &&
+ \multicolumn{1}{p{\gnu}}{\centering
+extra fit \mbox{for straight} line model} &&
+ \mbox{residual}
+\end{array}
+\]
+
+The problem is that the brace needs to span several columns. So the brace needs
+to be put in with a \verb+\multicolumn+ command, so it cannot automatically be
+set to the correct width. I solve this by using \verb+\hphantom+ to obtain the
+width of the spanned columns. Here there is an entry
+\begin{verbatim}
+ \multicolumn{3}{c}{f}
+\end{verbatim}
+in the first row; and the corresponding entry in the second row is
+\begin{verbatim}
+ \multicolumn{3}{c}{
+ \overbrace{\hphantom{\bar{y} (1,\ldots, 1)
+ \quad+\quad ... x'}}}
+\end{verbatim}
+I have used the fact that the intercolumn space is one quad.
+
+An alternative solution is to use the command \verb+\downbracefill+ as the
+final argument of the \verb+\multicolumn+ in the second row. However, you have
+to be outside Maths mode to use \verb+\downbracefill+, and putting it inside an
+\latexword{mbox} is no good because that destroys the expandability. So you
+have to set the whole thing in a \latexword{tabular} environment rather than
+\latexword{array}, and then enclose every other entry in \verb+$ $+, which is a
+pain. There is also an analogous command \verb+\upbracefill+.
+
+\subsection{Paragraph boxes in arrays}
+In the preceding display I have also set some explanatory text in paragraph
+boxes whose width is determined by the width of a Mathematical expression in
+the same column. For each such column I make a new length and use
+\verb+\settowidth+ to make it as wide as the desired Mathematical expression:
+see \cite[page~95]{leslie} or \cite[page~101]{newleslie}. Then I make a
+\verb+p+ column element of that width.
+
+For example, in the first column I get the correct width with
+\begin{verbatim}
+ \newlength{\gnat}
+ \settowidth{\gnat}{$\bar{y} (1,\ldots, 1)$}
+\end{verbatim}
+and then use it as follows.
+\begin{verbatim}
+ \multicolumn{1}{p{\gnat}}{\centering
+ fit for null model}
+\end{verbatim}
+
+
+\subsection{Top-aligned matrices}
+
+\newcommand{\topthing}[1]{\begin{array}{@{}c@{}}#1\\\phz\end{array}}
+\newcommand{\vecmu}{\mbox{\boldmath$\mu$}}
+\newcommand{\vecx}{{\bf x}}
+\newcommand{\cov}{\mathop{{\rm Cov}}\nolimits}
+
+\begin{figure*}
+\[
+\topthing{3(\vecx - \vecmu)^{\rm T} \Sigma^{-1} (\vecx - \vecmu)
+=
+(x-1, y+2)}
+\left[\begin{array}{rr}
+4&1\\1&1
+\end{array}
+\right]
+\left(\begin{array}{c}
+x-1\\y+2
+\end{array}
+\right)
+\]
+\caption{Matrices aligned on their top rows}
+\label{topmat}
+\end{figure*}
+
+In the last article I showed Figure~\ref{topmat} as an example of
+something that is not easy to do in \LaTeX. To achieve this I have
+made a macro \verb+\topthing+ which takes as its single argument any
+item that must be aligned with the top rows of the arrays. The biggest
+arrays here have two rows, so \verb+\topthing+ produces a two-rowed
+array whose second row is empty. If there were bigger arrays here I
+would have to have a macro for each smaller size of array. The empty
+second row of the array contains a phantom zero: this works because
+zero is the standard height, as are all the entries that occur in the
+second rows of arrays. I don't know how to fudge this for arbitrary
+heights of entries. Finally, I remove the extra space that is usually
+put on each side of an array.
+
+The \verb+\topthing+ macro is defined by
+\begin{verbatim}
+ \newcommand{\topthing}[1]%
+ {\begin{array}{@{}c@{}}
+ #1\\\phantom{0}
+ \end{array}}
+\end{verbatim}
+Then the equation in Figure~\ref{topmat} is done with
+\begin{verbatim}
+ \topthing{3(... (x-1, y+2)}
+ \left[\begin{array}{rr}
+ 4&1\\1&1
+ \end{array}
+ ...
+\end{verbatim}
+
+
+Top-aligned matrices can be done very simply if you have access to the package
+\latexword{delarray}. Get it. See \cite[Section 5.3.6]{companion}. However, be
+warned that \latexword{delarray} inputs the package \latexword{array}, which
+makes a small difference to the way that \verb+|+ works in all
+\latexword{array}s.
+
+
+\subsection{Bordered matrices}
+Using \verb+\left[+ and so on to get the right size of fences around a matrix
+works fine for unbordered matrices. But how do you get a bordered matrix such
+as the following?
+\newlength{\perch}
+\newcommand{\fish}[2]{\settowidth{\perch}{$#1$}\makebox[\perch]{$#2$}}
+\newcommand{\minone}{\llap{$-$}1}
+\begin{equation}
+\begin{array}{c@{}c}
+ & \begin{array}{ccccc}
+\emptyset & \{1\} & \{2\} & \{1,2\} & \{1,2,3\}\\
+\end{array}\\
+\begin{array}{c}
+\emptyset \\ \{1\} \\ \{2\} \\ \{1,2\} \\ \{1,2,3\}
+\end{array}
+&
+\left[
+\begin{array}{ccccc}
+\fish{\emptyset}{1} & \fish{\{1\}}{\minone} & \fish{\{2\}}{\minone}
+& \fish{\{1,2\}}{1} & \fish{\{1,2,3\}}{0}\\
+0 & 1 & 0 & \minone & 0\\
+0 & 0 & 1 & \minone & 0\\
+0 & 0 & 0 & 1 & \minone\\
+0 & 0 & 0 & 0 & 1
+\end{array}
+\right]
+\end{array}
+\label{zeta}
+\end{equation}
+
+The command \verb+\bordermatrix+ given by plain \TeX\ will not do, because it
+uses parentheses for the fences and does not let you choose how the columns are
+aligned.
+
+The problem is to get the fences of the right size while keeping the alignment
+of the two borders with the body of the matrix. My solution is to set the whole
+thing as a $2 \times 2$ array with no space between the columns. The top left
+entry is empty. The top right entry is a one-rowed array containing the column
+labels. The bottom left entry is a one-columned array containing the row
+labels. The bottom right entry is the body of the matrix, including the fences.
+
+If all entries have the same width and height, that's enough. However, if any
+column in the body of the matrix has a different width from the corresponding
+column in the top border, then the narrower of the two has to be expanded.
+Set a new length equal to the wider item and then put the smaller item in a
+\latexword{makebox} of that width.
+
+In the matrix~(\ref{zeta}) it is clear that, in every column, it is the label
+that is the widest element. So I made a macro to set the first row of the body
+of the matrix to the width of the labels, as follows.
+\begin{verbatim}
+ \newlength{\perch}
+ \newcommand{\fish}[2]%
+ {\settowidth{\perch}{$#1$}
+ \makebox[\perch]{$#2$}}
+\end{verbatim}
+For example, the first entry in the main body of the matrix is
+\begin{verbatim}
+ \fish{\emptyset}{1}
+\end{verbatim}
+Note that it suffices to make a single entry in each column of the body as wide
+as the column label.
+
+(By the way, I can never decide whether the minus signs should be taken into
+account or not when centering the columns of such a matrix. Here I decided not
+to, and so I defined
+\begin{verbatim}
+ \newcommand{\minone}{\llap{$-$}1}
+\end{verbatim}
+and then used \verb+\minone+ for each $-1$.)
+
+If the row heights in the body of the matrix do not match those in the array of
+row labels, as in the following matrix, they can be adjusted with
+\verb+\vphantom+. If \verb+X+ is the tallest item in the row, simply put
+\verb+\vphantom{X}+ in a single entry of the corresponding row of the other
+array: it will not affect the horizontal spacing.
+
+\begin{equation}
+\begin{array}{c@{}c}
+ & \begin{array}{c|c}
+\multicolumn{1}{c}{1\quad \ldots\quad r} & r+1 \quad\ldots\quad n
+\end{array}\\
+ \begin{array}{c}
+ \begin{array}{c}
+ 1\\\vdots\\ r
+ \end{array}\\
+ \begin{array}{c}
+ r+1\\\vdots\\ n
+ \end{array}
+ \end{array}
+ &
+\left[
+\begin{array}{c|c}
+\fish{1\quad \ldots\quad r}{\Sigma_1}
+ \vphantom{\begin{array}{c}
+ 1\\\vdots\\r
+ \end{array}}
+& \fish{r+1\quad \ldots\quad n}{0}\\
+\hline
+ \vphantom{\begin{array}{c}
+ r+1\\\vdots\\ n
+ \end{array}}
+ 0
+ &
+\Sigma_2
+\end{array}
+\right]
+\end{array}
+\label{showoff}
+\end{equation}
+
+\section{Exercises}
+\begin{qn}
+\[
+\begin{array}{ccccccc}
+\normof{f} & = & e_1^2 u_1\cdot u_1 & + & e_2^2 u_2 \cdot u_2 &+& e_3^2 u_3
+\cdot
+u_3\\[\jot]
+ & & 18 \bar{y}^2 & + & {\tt ss1} & + & {\tt ss2}\\[\jot]
+ & & & & 104474 & + & 2284\\
+ & & & &
+\multicolumn{3}{c}{\underbrace{\hphantom{e_2^2 u_2 \cdot u_2\quad+\quad
+e_3^2 u_3 \cdot u_3}}_{\textstyle 106758}}
+\end{array}
+\]
+\end{qn}
+
+\begin{qn}
+\begin{bettereqnarray}
+\topthing{\cov(U,V)} &
+\topthing{=} &
+\topthing{(2,1)}
+{
+\renewcommand{\arraycolsep}{5pt}
+ \left[\begin{array}{@{}rr@{}}1 & -1 \\ -1 & 4
+ \end{array}\right]
+ \left(\begin{array}{@{}r@{}}-2 \\ 1\end{array}\right)
+}
+\nonumber\\
+ &
+\topthing{=} &
+\topthing{(2,1)}
+ \left(\begin{array}{@{}r@{}}-3 \\6\end{array}\right)
+ \topthing{{}=0}
+\nonumber
+\end{bettereqnarray}
+\end{qn}
+
+\begin{qn}
+{\it Typeset the matrix~(\ref{showoff}).}
+\end{qn}
+
+\section{Acknowledgements}
+While writing these tutorials I have had to expand my own knowledge of how to
+typeset Mathematics in \LaTeX\ to cover topics that I had never really bothered
+with properly. I should like to thank David Carlisle, Frank Mittelbach and
+Chris Rowley for patiently answering my questions, even when they did not
+wholly approve of what I was writing. Of course, any remaining mistakes are my
+own, as are the personal opinions expressed.
+
+Thanks also to many of my colleagues, both at Goldsmiths' College and at Queen
+Mary and Westfield College, for badgering me to explain how to do these things.
+And thanks to those readers who have sent kind messages of appreciation while
+the tutorials have been appearing.
+
+\begin{thebibliography}{9}
+\bibitem{ams}
+\writer{American Mathematical Society}
+\book{\AMS-\LaTeX\ Version~1.2 User's Guide}
+\publish{American Mathematical Society}{Providence, Rhode Island}
+\byear{1995}
+
+
+\bibitem{companion}
+\writer{Goossens,~M., Mittelbach,~F. \& Samarin,~A.}
+\book{The \LaTeX\ Companion}
+\publish{Addison-Wesley}{Reading, Mass.}
+\byear{1994}
+
+\bibitem{leslie}
+\writer{Lamport,~L.}
+\book{\LaTeX: A Document Preparation System}
+first edition,
+\publish{Addison-Wesley}{Reading, Mass.}
+\byear{1986}
+
+\bibitem{newleslie}
+\writer{Lamport,~L.}
+\book{\LaTeX: A Document Preparation System}
+second edition,
+\publish{Addison-Wesley}{Reading, Mass.}
+\byear{1994}
+\end{thebibliography}
+\end{Article}
+
+