From e0c6872cf40896c7be36b11dcc744620f10adf1d Mon Sep 17 00:00:00 2001 From: Norbert Preining Date: Mon, 2 Sep 2019 13:46:59 +0900 Subject: Initial commit --- usergrps/uktug/baskervi/5_3/bailey.tex | 1065 ++++++++++++++++++++++++++++++++ 1 file changed, 1065 insertions(+) create mode 100644 usergrps/uktug/baskervi/5_3/bailey.tex (limited to 'usergrps/uktug/baskervi/5_3/bailey.tex') diff --git a/usergrps/uktug/baskervi/5_3/bailey.tex b/usergrps/uktug/baskervi/5_3/bailey.tex new file mode 100644 index 0000000000..961324c4d5 --- /dev/null +++ b/usergrps/uktug/baskervi/5_3/bailey.tex @@ -0,0 +1,1065 @@ +\title{Maths in \protect\LaTeX: Part~5, Getting started on arrays} +%%% +\author[R.~A.~Bailey]{R.~.A.~Bailey\\ +Queen Mary and Westfield College\\University of London} +%%% +%%% 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} +%%% Dear Mr Editor, I should like the content of exercises +%%% to come out in what all copy-editors call ROMAN, not in what +%%% Frank Mittelbach calls roman. And this should be irrespective +%%% of the surrounding text. +%%% +\newcommand{\latexword}[1]{{\tt #1}} +%%% and the above should be in typewriter-ordinary IRRESPECTIVE of the +%%% surrounding fonts +%%% +%%% +%%% 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{\lamport}{{\it \LaTeX: A Document Preparation System\/} by Leslie +Lamport} +\newcommand{\shortlamp}{{\it The Manual}} +\let\torl\AllTeX +\newcommand{\phz}{\phantom{0}} +\newcommand{\dfrac}[2]{\displaystyle\frac{#1}{#2}} +\newcommand{\CS}{\mathop{{\rm CS}}\nolimits} +\newcommand{\normof}[1]{{\left\Vert#1\right\Vert}^2} +\newcommand{\littlehead}[1]{\textit{#1}} + +\begin{Article} +\section*{Recall} +This is the fifth part of a sequence of tutorials on typesetting Mathematics in +\LaTeX. The first four appeared in issues~4.4, 4.5, 5.1 and~5.2 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 +tutorial and the next +I cover arrays: matrices, tables of data, aligned equations, and other +items with a two-dimensional layout. + +I do not cover the extra array goodies +provided by packages such as Frank Mittelbach's \latexword{array.sty}, David +Carlisle's plethora of array add-ons or the new packages from the American +Mathematical Society. I hope that someone else will write a follow-on article +describing some or all of those, particularly if they can give easier methods +of doing some of the more cumbersome items in this tutorial. + +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. + +\addtocounter{section}{7} +\section{Mathematical arrays} +\subsection{Basics} +The \latexword{array} environment is used to set all manner of aligned +Mathematics. A simple example is: +\[ +\begin{array}{l} +\verb+\begin{array}{lrrr}+\\ +\verb+x & 1 & 2 & 5\\+\\ +\verb+x^2 & 1 & 4 & 25 \\+\\ +\verb+\end{array}+ +\end{array} +\quad \qquad +\begin{array}{lrrr} +x & 1 & 2 & 5\\ +x^2 & 1 & 4 & 25 +\end{array} +\] +This array has four columns. The alignment of these columns is shown in the +argument \latexword{lrrr} of the environment. The first column is left-aligned; +the other three are right-aligned. It is also possible to have a centred +column, shown by a~\latexword{c}. Typically columns of Mathematical symbols are +centred, integers are right-aligned and powers of a single symbol are +left-aligned. +>From now on I shall refer to the argument such as \latexword{lrrr} as the +{\em columns specifier}. + +Entries in each row of the \latexword{array} are separated by ampersands. +The end of a row +(except the last one) is shown by \verb+\\+. If the last few entries in a row +are blank there is (usually) no need to put in all the ampersands. + +The \latexword{array} environment can be used only in Maths mode. All its +entries are automatically in Maths mode, in \verb+\textstyle+. +If you have fractions or summations in an array you may want to precede them by +\verb+\displaystyle+. + +Each entry is in a separate `box', +which is typeset before the array is built up. Thus switches such as +\verb+\bf+, \verb+\displaystyle+ and \verb+\raggedright+ extend no further than +the end of the current entry. If a binary relation or operator, such as~$=$ +or $+$, occurs at the beginning or end of an entry \torl\ cannot give it the +proper spacing relative to the previous or succeeding entry. + +\subsection{Matrices and vectors} +The most obvious use for \latexword{array} is for a matrix. Use \verb+\left+ +and \verb+\right+ to surround the matrix with fences of the right size. +For example, the matrix in Figure~\ref{mv} begins +\begin{verbatim} + \left( + \begin{array}{rrr} +\end{verbatim} + +\begin{figure*} +\begin{minipage}{.5\textwidth} +\[ +\left( +\begin{array}{rrr} +2 & -1 & -1\\ +-1 & 3 & -1\\ +-1 & -1 & 4 +\end{array} +\right) +\left( +\begin{array}{r} +5\\-3\\8 +\end{array} +\right) + = +\left( +\begin{array}{r} +5\\-22\\30 +\end{array} +\right) +\] +\caption{A matrix equation} +\label{mv} +\end{minipage} +\begin{minipage}{.5\textwidth} +\[ +\renewcommand{\arraystretch}{2} +\det \left [ +\begin{array}{cccc} +\dfrac{\partial h_1}{\partial y_1} & \dfrac{\partial h_1}{\partial y_2} & + \cdots & \dfrac{\partial h_1}{\partial y_n}\\ +\dfrac{\partial h_2}{\partial y_1} & \dfrac{\partial h_2}{\partial y_2} & + \cdots & \dfrac{\partial h_2}{\partial y_n}\\ +\vdots & \vdots &\ddots & \vdots\\ +\dfrac{\partial h_n}{\partial y_1} & \cdots & \cdots & + \dfrac{\partial h_n}{\partial y_n} +\end{array} + \right] +\] +\caption{The Jacobian of~$h$} +\label{jacob} +\end{minipage} +\end{figure*} + +The commands \verb+\vdots+ and \verb+\ddots+ are useful in matrices. They are +both used in Figure~\ref{jacob}. + + +An array can have a single column, as in the column vectors in Figure~\ref{mv}, +or a single row, which is useful for a permutation or a row vector. + +\subsection{Arrays of arrays} +Try to think logically, rather than visually, about the contents of an array. +For example, if you have six $5\times 5$ Latin squares set out in a $2 \times +3$ rectangle then you might think that you have $10~$rows and $15$~columns. +However, it is more logical to do \verb+\begin{array}{ccc}+ and then make each +entry in this array a new array with five centred columns. One advantage of +this approach is that it makes editing +the file much easier when you decide to +change the order of the Latin squares, or to lay them out in a $3\times 2$ +rectangle. + +\subsection{Changing the row spacing} +The default spacing between the rows of an \latexword{array} is fine for simple +matrices with numbers in, but is often insufficient for large entries, +particularly if you use \verb+\displaystyle+. To adjust the amount of space +after the current row, put an explicit length in square brackets after the +\verb+\\+: for example, \verb+\\[20pt]+. + +I find it useful to work in multiples +of \verb+\jot+: this length is the usual extra space between lines of displayed +Mathematics. Curiously, \verb+\jot+ is equal to $3$~points in all of \LaTeX's +three point sizes, so an adjustment in a $10$~pt document may not be correct if +you change the document to $11$~pt. If you work in multiples of +the length \verb+\baselineskip+ +then no extra adjustment is needed if the point size of the +document is changed. + +Because of the complicated way in which the row-spacing in an array is adjusted +to fit the contents, the length given in \verb+[ ]+ is not exactly an {\em +addition}. You have to experiment to find out what works best: doubling the +length given does not usually double the space between the rows. + +The existence of this optional length parameter to \verb+\\+ implies that no row +of an array may start with \verb+[+. If you need to do this, +precede it with an emtpy pair of braces: \verb+{}[...+. + +Changing the inter-row spacing for the whole array is much simpler than +changing it for a single row. This spacing is governed by the value of the +number +\verb+\arraystretch+, whose default setting is~$1$. +Between the rows of an array, the length \verb+\baselineskip+ is multiplied by +\verb+\arraystretch+. +In Figure~\ref{jacob}, +the rows have been spread out by putting +\begin{verbatim} + \renewcommand{\arraystretch}{2} +\end{verbatim} +before the \verb+\begin{array}+. However, this command was given {\em after\/} +the start of the displayed Maths, so that it remained local to that particular +display. If you experiment with other values of \verb+\arraystretch+ in this +example you will find that there is virtually no separation between the first +two rows when \verb+\arraystretch+ is smaller than~$2$. +Figure~\ref{ima} also shows an array in which \verb+\arraystretch+ +has been altered. + +Arrays inside arrays can have different values of \verb+\arraystretch+. +For example, in +\begin{verbatim} + \[ + \renewcommand{\arraystretch}{2} + \begin{array}{ccc} + A & B & + \renewcommand{\arraystretch}{1.2} + \begin{array}{lr} + ... +\end{verbatim} +the outer array has \verb+\arraystretch+ equal to~$2$, while the inner +array which is the third entry in the first row +has \verb+\arraystretch+ equal to~$1.2$. + +\begin{figure*} +\[ +\renewcommand{\arraystretch}{2} +\addtolength{\arraycolsep}{1.5\arraycolsep} +\begin{array}{cccp{1.5in}c} +W_{1_G} & V_0 & 1 & one stratum\\ +W_\psi &\left(V_{\rm rows} + V_{\rm cols} \right) \cap V_0^\perp & +2(q^2 + q) & +\raggedright +direct sum of two +unidentifiable strata +& +\\ +W_\eta &\left(V_{\rm rows} + V_{\rm cols} \right) ^\perp & q^3 & one stratum +\end{array} +\] +\caption{A table of mathematical information} +\label{ima} +%This gives four candidates for automorphisms: +\[ +\begin{array}{l@{\colon p + q\omega + r \omega^2 + +s\omega^3 + t\omega^4 \mapsto p + +{}}r@{\omega + {}}r@{\omega^2 + {}}r@{\omega^3 + {}}r@{\omega^4}} +\alpha_1 & q & r & s & t\\ +\alpha_2 & s & q & t & r\\ +\alpha_3 & r & t & q & s\\ +\alpha_4 & t & s & r & q +\end{array} +\] +\caption{Four automorphisms of a splitting field} +\label{galois} +\end{figure*} + +\subsection{Changing the column spacing} +The default inter-column spacing in an array is one quad. To change the spacing +between a pair of adjacent columns, use \verb+@{...}+ between their alignment +codes in the columns specifier, putting inside the braces +the actual horizontal space +required. For example, +\verb+\begin{array}{cc@{\qquad}c@{}c}+ +produces an array with four centred columns in which the inter-column spaces +are, in order, one quad, two quads and zero. + +At the start and end of the array there is usually a space of width half the +inter-column space. These can be suppressed by putting \verb+@{}+ at the start +and end of the columns specifier. + +The overall inter-column spacing is controlled by the value of the length +\verb+\arraycolsep+, which is half the default inter-column space. +This can be changed by using \verb+\addtolength+ in the +usual way. I like to alter \verb+\arraycolsep+ by multiples of itself. +%, so that +%the changes are correct no matter what the point size of the document. +For example, to treble the size of \verb+\arraycolsep+ do +\begin{verbatim} + \addtolength{\arraycolsep}{2\arraycolsep} +\end{verbatim} +while to halve it make the last parameter \verb+-0.5\arraycolsep+. +In Figure~\ref{ima}, \verb+\arraycolsep+ has been multiplied by~$2.5$. + +Finally, the command \verb+\extracolsep+ inside an \verb+@{...}+ +can be used to insert extra space to the left of all subsequent columns: +for example, \verb+@{\extracolsep{1em}}+. This is not suppressed by a +subsequent \verb+@{...}+. + +My remarks about quads above are not strictly true unless your current text font +is Computer Modern roman in $10$~pt. A quad length is defined to be $1$~em, +whose size depends on the current font, whereas \verb+\arraycolsep+ is defined +to be $5$~pt, irrespective of the point size of the document. I find it very +odd that \LaTeX, which has been so carefully set up so that the user can +apparently change painlessly +between $10$~pt, $11$~pt and $12$~pt, does not change the +size of Maths lengths like \verb+\jot+ and \verb+\arraycolsep+ in the different +point sizes. + +\subsection{Words in arrays} +The odd word or two in an array can be put in by using \verb+\mbox+. But what +should you do when you have a verbal phrase extending over more than one line, +as in the final column of Figure~\ref{ima}? + +Most people's first thought is to have a separate line of the array for each +line of text. As usual, this visual approach is inferior to the logical one +when it comes to revising your file. Hard experience has shown me that you have +to keep altering which words go on which lines as you alter other parts of the +array. It is better to use the fourth type of column code~\verb+p+, which +creates a paragraph box of a specified width. Thus the +columns specifier in Figure~\ref{ima} is actually +\verb+cccp{1.5in}+. Just guess a length to put inside +\verb+p{...}+ at first: changing it later is much simpler than shuffling words +around. + +Figure~\ref{ima} demonstrates another good reason to use the \verb+p+ code. +The rows are far apart, because \verb+\arraystretch+ has been magnified. But we +{\em don't\/} want the lines of text at the end of the second row to be that +far apart. We could make an inner array with a smaller value of +\verb+\arraystretch+, but it's simpler to use~\verb+p+. + +The only problem with the naked \verb+p+ columns is that they are set +justified on both sides, which is absurd in narrow columns. I usually put +\verb+\centering+ or \verb+\raggedright+ at the beginning of every entry in +such a column. Unfortunately, you cannot do this in the final column of an +array, because \LaTeX\ gets confused about whether \verb+\\+ refers to the row +of the array or the line in the paragraph. If necessary, I get round this by +adding a dummy unused column at the end of the array. Thus I told a lie above: +the columns specifier in Figure~\ref{ima} is really +\verb+cccp{1.5in}c+. + +\subsection{Inter-column constants} +The code \verb+@{...}+ can be used for putting anything between two columns +that must appear in every row, not just spaces. This is convenient for any +repeated items. For example, the columns specifier in +Figure~\ref{galois} is +\begin{verbatim} + {l@{\colon p + q\omega + r \omega^2 + + s\omega^3 + t\omega^4 \mapsto p + + {}}r@{\omega + {}}r@{\omega^2 + + {}}r@{\omega^3 + {}}r@{\omega^4}} +\end{verbatim} +while the first row is just +\begin{verbatim} + \alpha_1 &q & r & s & t +\end{verbatim} +Notice the pairs \verb+{}+ that have been inserted to make $+$ behave +as a binary operator. + + +\subsection{Positioning} +By default, each array is positioned so that it is centred vertically. In +Figure~\ref{mv}, the equals sign is aligned with the centre of each of the +three arrays. To align an array on its top row, start it with +\verb+\begin{array}[t]{...}+; +to align it on its bottom row, use \verb+[b]+ in place of \verb+[t]+. + +These positionings work well for simple tables of numbers. However, the +logical interaction between them and \verb+\left+ and \verb+\right+ fences +produces bizarre results (try it!). If you want matrices aligned on their top +rows, as in Figure~\ref{topmat}, you have to do something quite complicated, +which I shall come back to later. + +\begin{figure*} +\newcommand{\topthing}[1]{\begin{array}{@{}c@{}}#1\\\phz\end{array}} +\newcommand{\vecmu}{\mbox{\boldmath$\mu$}} +\newcommand{\vecx}{{\bf x}} +\[ +\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*} + +\subsection{Cases} +We often write equations where the value on the right-hand side depends on some +condition, as in +%The $(\omega,t)$-entry of~$X$ is defined by +\begin{equation} +X(\omega,t) = \cases{1 & if $\phi(\omega) = t$\cr + 0 & otherwise.} +\label{eqncase} +\end{equation} +You can do the right-hand side of this using an \latexword{array}, but it is +simpler to use the direct plain \TeX\ command \verb+\cases+. The right-hand +side of Equation~(\ref{eqncase}) was produced with +\begin{verbatim} + \cases{1 & if $\phi(\omega) = t$\cr + 0 & otherwise.} +\end{verbatim} +The argument of \verb+\cases+ is like a two-column array, with its rows +separated by \verb+\cr+ instead of \verb+\\+. The first entry in each row is in +Maths mode; the second is in non-Maths mode. Both +columns are left-aligned. + +\subsection{Binomial coefficients} +If you write your binomial coefficients as +$6 \choose 2$ rather than ${}^6{\rm C}_2$ +you may be tempted to build them with an +\latexword{array}. Don't. Use the plain \TeX\ infix command \verb+\choose+, as +follows. +\[ +\verb+6 \choose 2+ \quad \qquad {6 \choose 2} +\] +It comes out rather differently in \verb+\textstyle+ and in +\verb+\displaystyle+. + +Because \verb+\choose+ does not have its two arguments in braces, it is +safest if you enclose the whole expression in grouping braces, as in +\verb+{6 \choose 2}+, to ensure that \verb+\choose+ does not search too far +back or too far forward for its arguments. +If you need to use this a lot, make a \LaTeX-style macro such as +\begin{verbatim} + \newcommand{\binom}[2]{{#1\choose#2}} +\end{verbatim} + + +The command \verb+\atop+ works similarly, but omits the parentheses. + +\section*{Exercises} +\addtocounter{preqn}{54} +\begin{qn} +The matrix $\left[\begin{array}{cc} +1 & 3\\ +3 & 5 +\end{array} +\right]$ +is symmetric. +\end{qn} + +\begin{qn} +The determinant is given by +\[ +\det A = \left | +\begin{array}{ccc} +a_{11} & \ldots & a_{1n}\\ +\vdots & \ddots & \vdots\\ +a_{n1} & \ldots & a_{nn} +\end{array} +\right| +\] +\end{qn} + +\begin{qn} +For a rotation, +\[ +\left(\begin{array}{rr} +\cos \theta & \sin \theta\\ +-\sin \theta & \cos \theta +\end{array} +\right) +\left(\begin{array}{c}x \\ y\end{array}\right) + = +\left(\begin{array}{c} +x\cos \theta + y\sin \theta\\ +y\cos\theta - x\sin\theta +\end{array} +\right). +\] +\end{qn} + +\begin{qn} +Here is a pair of mutually orthogonal Latin squares: +\[ +\begin{array}{cc} +\begin{array}{ccc} +A & B & C\\ +B & C & A\\ +C & A & B\\ +\end{array} +& +\begin{array}{ccc} +\alpha & \beta & \gamma\\ +\gamma & \alpha & \beta\\ +\beta & \gamma & \alpha +\end{array} +\\ \\ +\mbox{Square 1} & \mbox{Square 2} +\end{array} +\] +\end{qn} + +\begin{qn} +A few real functions: +\[ +\begin{array}{lp{2in}c} +x \mapsto x^2 & \raggedright differentiable everywhere & \\ +x \mapsto \left| x\right | & \raggedright +differentiable everywhere except at the origin &\\ +x \mapsto \lfloor x \rfloor & \raggedright +continuous everywhere except at the integers +\end{array} +\] +\end{qn} + +\begin{qn} +\it Typeset the table in Figure~\ref{ima}. +\end{qn} + +\begin{qn} +\addtolength{\arraycolsep}{-0.5\arraycolsep} +Pascal's Triangle begins +\[ +\begin{array}{*{13}{c}} + & & & & & & 1 & & & & & & \\ + & & & & & 1 & & 1 & & & & & \\ + & & & & 1 & & 2 & & 1 & & & &\\ + & & & 1 & & 3 & & 3 & & 1 & & &\\ + & & 1 & & 4 & & 6 & & 4 & & 1 & &\\ + & 1 & & 5 & & 10 & & 10 & & 5 & & 1 &\\ + 1 & & 6 & & 15 & & 20 & & 15 & & 6 & & 1 +\end{array} +\] +\end{qn} + +\begin{qn} +The Stirling numbers of the second kind are defined by +\[ +S(n,k) = \frac{1}{k!} \sum_{j=1}^{k} (-1)^{k-j} {k \choose j} j^n. +\] +\end{qn} + +\begin{qn} +If the random variable $X$ is symmetric about~$0$ and if $Y = X^2$ then +\[ +f_Y(y) = \cases{ 0 & if $y \leq 0$ \cr + \dfrac{f_X(\sqrt{y})}{\sqrt{y}} & if $y > 0$.} +\] +\end{qn} + +\begin{qn} +\[ +\left[ +\begin{array}{cccc} +\sigma_{11} & \sigma_{12} &\cdots & \sigma_{1n}\\ +\sigma_{21} & \sigma_{22} &\cdots & \sigma_{2n}\\ + \vdots & \cdots & \ddots& \vdots\\ +\sigma_{1n} & \cdots & \cdots & \sigma_{nn} +\end{array} +\right] +\] +\end{qn} + +\begin{qn} +\[ +\begin{array}{ccccccccc} +M_0 & \subseteq & M_1 & \subseteq & M_2 & \subseteq & \cdots & \subseteq & +M_m\\ +\uparrow && \uparrow && \uparrow\\ +\mbox{null} && \mbox{linear} && \mbox{quadratic} +\end{array} +\] +\end{qn} + +\section{Tables of data} +\subsection{General} +The extra topics +that I cover in this section are most pertinent to tables of data, but do +sometimes arise in Mathematical arrays. Likewise, +many considerations about Mathematical arrays also apply to tables of data. +For example, the table in Figure~\ref{eel} does not really have eight columns: +it has two long columns but has been broken down into four parts to fit on the +page nicely. So it is set as an array with one row and four +columns, each of whose entries is an array with two columns. + +\LaTeX\ has another environment, called \latexword{tabular}, which is very +similar to \latexword{array}. It may be used inside or outside Maths mode. By +default, each of its entries is set in ordinary mode. However, any +extra space on either side of the ampersands has no effect. +The length \verb+\arraycolsep+ is replaced by the length +\verb+\tabcolsep+. +Tables of data often have +a mix of words and symbols, and you have to decide which is less trouble: using +an \latexword{array} and putting the words in \verb+mbox+es or +\verb+p+~columns, or using a \latexword{tabular} and putting the symbols in +\verb+$...$+. If the latter, don't forget to put numbers in \verb+$...$+ if +they involve a minus sign. + +\begin{figure*} +\[ +\begin{tabular}{c|c|c|c} +\begin{tabular}{cc} +Year 1 & Year 2\\ +\hline +269 & 466\\ +100 & 219\\ +197 & 421\\ +216 & 708\\ +\end{tabular} +& +\begin{tabular}{cc} +Year 1 & Year 2\\ +\hline +134 & 590\\ +\phz 74 & 137\\ +\phz 88 & 356\\ +\phz 25 & 212 +\end{tabular} +& +\begin{tabular}{cc} +Year 1 & Year 2\\ +\hline +211 & 505 \\ +102 & 363\\ +191 & 563\\ +\phz 67 & 338\\ +\end{tabular} +& +\begin{tabular}{cc} +Year 1 & Year 2\\ +\hline +209 & 352\\ +\phz 29 & 254\\ +\phz 19 & 106\\ +\phz 44 & 268 +\end{tabular} +\end{tabular} +\] +\caption{Number of eelworms in two successive years} +\label{eel} +\end{figure*} + +\subsection{Horizontal rules} + +\begin{figure*}[hbtp] +\[ +\begin{tabular}{l@{\qquad}l@{\qquad}lrrrrrrrrr} +\hline + & & & \multicolumn{3}{c}{1961} & \multicolumn{3}{c}{1971} & +\multicolumn{3}{c}{1981}\\ +\hline +\multicolumn{3}{l}{Billion passenger kilometres travelled by:}\\ + & \multicolumn{2}{l}{Air} && 1 &&& 2 &&& 3&\\ + & \multicolumn{2}{l}{Rail} && 39 &&& 36 &&& 34&\\ + & \multicolumn{2}{l}{Road}\\ + & & Buses and coaches && 67 &&& 51 &&& 42&\\ + & & Cars, taxis and two-wheeled motor vehicles && 142 &&& 284 &&& 380&\\ + & & Bicycles && 10 &&& 4 &&& 4&\\ +\cline{4-12} + & \multicolumn{2}{l}{Total} && 259 &&& 377 &&& 406&\\ +\hline +\end{tabular} +\] +\caption{Passenger transport (from \protect\cite{keyd})} +\label{cars} +\end{figure*} + +To obtain a horizontal rule stretching the full width of the array, use +\verb+\hrule+. Don't forget to finish the previous row with \verb+\\+, even if +it is the last row of the array, as at the end of Figure~\ref{cars}. Two or +more \verb+\hrule+s can follow each other with no intervening \verb+\\+. +A little vertical space is put between two such horizontal rules. +However, any vertical rules in the array (see below) will be suppressed between +the successive horizontal rules. + +For a horizontal rule spanning only columns \mbox{$2$--$4$}, say, use +\verb+\cline{2-4}+. Again, finish the preceding row with \verb+\\+. +Figure~\ref{cars} shows an example of this. +Successive +\verb+\cline+s will be interpreted as being in the same row, as in +\verb+\cline{2-4}\cline{7-7}+, for example, so that +\verb+\cline{2-4}\cline{2-4}+ does {\em not\/} produce two horizontal lines +with a little space between them. Likewise, there is no space between an +\verb+\hline+ and an immediately preceding or succeeding \verb+\cline+. + +\subsection{Vertical rules} + +A vertical rule is obtained by putting \verb+|+ at the appropriate place in the +columns specifier. For example, the columns specifier for the +\latexword{tabular} in Figure~\ref{travel} is +\begin{verbatim} + |r@{ Month}l@{\quad\pounds}r| +\end{verbatim} +Two or more \verb+|+s may come next to each other. + +\begin{figure*} +\begin{minipage}{.5\textwidth} +\[ +\begin{tabular}{|r@{ Month}l@{\quad\pounds}r|} +\hline +\multicolumn{3}{|c|}{Premiums}\\ +\hline +1 & & 18\\ +3 & s & 48\\ +6 & s & 95 \\ +9 & s & 136\\ +\hline +\end{tabular} +\] +\caption{Travel insurance} +\label{travel} +\end{minipage} +\begin{minipage}{.5\textwidth} + +\[ +\begin{tabular}{lr@{}l} +Bootstrap & 0.301\\ +Jackknife & 0.314\\ +Delta method & 0.244& *\\ +Half-samples & 0.364 & \dag\\ +Random subsampling & 0.423 & \ddag\\ +Normal theory & 0.302 +\end{tabular} +\] +\caption{Sticking out to the right (from \protect\cite{brad})} +\label{efron} +\end{minipage} +\end{figure*} + +For a vertical rule in a single item, stretching from the top to bottom of its +row, use \verb+\vline+. This cannot be used in a \verb+p+~column, but may be +put inside \verb+@{...}+. + +If you omit the trailing ampersands in a row with few items the trailing +vertical rules will also be omitted. This can be a nuisance in a sparse table. +If you want a vertical rule at each side of a sparse table, consider doing +this: +\begin{verbatim} + \begin{array}{|c|} + \begin{array}{@{}...@{}} + ... + \end{array} + \end{array} +\end{verbatim} + +The length \verb+\arrayrulewidth+ controls the thickness of all the horizontal +and vertical rules just described. The width of the space between the vertical +rules created by \verb+||+ in a the columns specifier is controlled by the +length \verb+\doublerulesep+, as is the vertical space between two successive +\verb+\hline+s. + +\subsection{Spanning several columns} +The \verb+\multicolumn+ command is used to create an entry spanning several +columns. It takes three arguments. The first is the number of columns to be +spanned; the second is the code for the type of column to be used; +the third is the text of the entry. +\begin{verbatim} + \begin{tabular}{crrrr} + Type & \multicolumn{4}{c}{Grade}\\ + \cline{2-5} + & 12 & 16 & 24 & 30\\ + \hline + $A$ & 0 & 1 & 21 & 24\\ + $B$ & 1 & 6 & 24 & 13 + \end{tabular} +\end{verbatim} +\[ +\begin{tabular}{crrrr} +Type & \multicolumn{4}{c}{Grade}\\ +\cline{2-5} + & 12 & 16 & 24 & 30\\ +\hline +$A$ & 0 & 1 & 21 & 24\\ + $B$ & 1 & 6 & 24 & 13 +\end{tabular} +\] + +Any \verb+|+ in the columns specifier is +regarded as belonging to its preceding column, and may be overwritten by +\verb+\multicolumn+ unless it is included in the second argument. The exception +is any \verb+|+ to the left of the first column, which is regarded as part of +the first column. +For example, the first row in Figure~\ref{travel} is +\begin{verbatim} + \multicolumn{3}{|c|}{Premiums}\\ +\end{verbatim} +Expressions \verb+@{...}+ in the columns specifier are similarly assigned to +columns and similarly overwritten. + +Indented row labels for subheadings can also be conveniently obtained by using +\verb+\multicolumn+. The \latexword{tabular} in Figure~\ref{cars} begins with +three \verb+l+~columns. The first row after the second horizontal rule is a +\verb+\multicolumn+ spanning three columns; the next begins with \verb+&+ +followed by a +\verb+\multicolumn+ spanning two columns. + +Unfortunately, if the width of a multicolumn entry spanning three or more +columns is more than the total width of the spanned columns, \LaTeX\ cannot +adjust the spacing between those columns to make it equal: it puts all the +extra space to the left of the last of the spanned columns. The only way that +I know +around this is to use \verb+@{...}+ to put the same amount of extra space +between each adjacent pair of the spanned columns. + +\subsection{Changing the type of an entry} +Although its name does not suggest it, the command +\verb+\multicolumn+ is also used to +change the type of a single entry. This is most often used to give a centred +heading to a column of right-aligned data. +\begin{verbatim} + \begin{array}{rrr} + \multicolumn{1}{c}{n} & + \multicolumn{1}{c}{n^2} & + \multicolumn{1}{c}{\phi(n)}\\ + 9 & 81 & 6\\ + 10 & 100 & 4\\ + 11 & 121 & 10 + \end{array} +\end{verbatim} +\[ +\begin{array}{rrr} +\multicolumn{1}{c}{n} & \multicolumn{1}{c}{n^2} +& \multicolumn{1}{c}{\phi(n)}\\ +9 & 81 & 6\\ +10 & 100 & 4\\ +11 & 121 & 10 +\end{array} +\] +As this example shows, this works fine when the centred heading is narrower +than the widest other entry in the column. However, when it is wider then all +the other entries in the column are aligned with its right-hand edge, when +probably what you wanted was to have them right-aligned among themselves and +then all centred under the heading. +How can this be fixed? + +If most of the numbers are the same length, a reasonable solution is to make the +whole column centred and put in \verb+\phantom{0}+s to make the shorter numbers +as long as the longest. This works because all digits have the same width. + That is what I did in Figure~\ref{eel}. + +I adopted a different solution in Figure~\ref{cars}, where I decided that the +year headings, not being numbers to be added to other numbers in their columns, +should be centred. This time I used the columns specifier \verb+rrr+ for each +column of data. In the headings I used \verb+\multicolumn{3}{c}{...}+ and in +the data rows I left one blank entry either side of each data entry. The result +is rather widely spaced: space could be saved by using \verb+@{...}+ between +each data column and its blank neighbours. + +The command +\verb+\multicolumn{1}+ can also be used to remove a vertical rule or the +contents of an \verb+@{...}+ from one particular row. For example, if the +columns specifier is \verb+l|r+ then the vertical rule is missing from any row +whose first entry is made with \verb+\multicolumn{1}{l}+. + +\subsection{Decimal tabulation} +Sometimes a column of numbers with decimal points should be aligned +on those decimal points. If they all have the same number of digits after the +point, there is no problem: simply use an \verb+r+ column. If only a few numbers +are missing a few digits after the point, fill in the spaces with +\verb+\phantom{0}+ and still use an \verb+r+ column. Only if you have a long +column of numbers with very variable numbers of digits after the point is it +worth going to the trouble of using the columns specifier \verb+r@{.}l+ and +entering a number such as 3.142 as \verb+3 & 142+. + +\subsection{Things that stick out} +Sometimes you have a column of numbers that should be right-aligned but some of +the entries have accretions that should stick out to the right, as in +Figure~\ref{efron}, or a left-aligned column with pieces sticking out to the +left. There are three ways of dealing with this, each appropriate in different +circumstances. + + +If the pieces that stick out are all digits, use \verb+\phantom{0}+ as +described above. + +Sometimes the piece that sticks out is very small and occurs in only one row. +If a displayed Mathematical array ends the sentence +then sometimes the full stop needs to +come outside the array, vertically centred (with \verb+\end{array}.\]+); but +sometimes the final row of the array +needs a full stop at the end of it without upsetting the column alignment. +Then the trick is to add the full stop in such a way that \torl\ thinks that it +doesn't take up any space. According to \cite[page~98]{leslie}, you do this +with +\verb+\makebox[0pt][l]{.}+, but the plain \TeX\ \verb+\rlap{.}+ is shorter and +achieves the same effect. For a small item sticking out on the left use +\verb+\makebox[0pt][r]{ }+ or \verb+\llap{ }+. Of course, the content of +\verb+\makebox{ }+ or \verb+\rlap+ or \verb+\llap+ is not in Maths mode. + +Statisticians sometimes put a question mark to indicate dubious data, and +scientists often decorate numbers with stars to show statistical significance. +In such cases it is best to use the columns specifier \verb+r@{}l+ for the +column: the \verb+r+ part is used for the numbers and the \verb+l+ part is used +for any decorations. +In Figure~\ref{efron} the columns specifier is \verb+lr@{}l+ and +the fourth line is +\begin{verbatim} + Half-samples & 0.364 & \dag\\ +\end{verbatim} + +To see the difference between these last two solutions, compare the following. +\begin{center} +$ +\begin{array}{ll} +\begin{array}{l} +\verb+\begin{array}{|r@{}l|}+\\ +\verb!20 & ++!\\ +\verb+\end{array}+ +\end{array} +& +\begin{array}{|r@{}l|} +20 & ++ +\end{array} +\\ \\ +\begin{array}{l} +\verb+\begin{array}{|r|}+\\ +\verb!20 \rlap{$++$}!\\ +\verb+\end{array}+ +\end{array} +& +\begin{array}{|r|} +20 \rlap{$++$} +\end{array} +\end{array} +$ +\end{center} + +\subsection{Columns specifiers} +We have seen that a columns specifier is a string of the following objects: +\verb+r+, \verb+l+, \verb+c+, \verb+p{...}+, \verb+@{...}+ and \verb+|+. It is +easy to lose track when setting up the column specifier for a complicated +array. However, repeated elements may be simplified by using \verb+*+. Thus an +array with $15$~centred columns can be specified with \verb+*{15}{c}+. This +shorthand is really advantageous for something complicated like +\verb+l|*{4}{r@{}lrr|}+. Moreover, \verb+*+~expressions can be nested within +each other. + +\section*{Exercises} +\begin{qn} +\renewcommand{\arraystretch}{1.6} +\[ +\begin{array}{c|ccccc} +\multicolumn{6}{c}{\mbox{Values of $\nu_{\gamma\chi}$ for the design}}\\ +\hline +\gamma & \chi_0 & \chi_1 & \chi_2 &\chi_3 & \chi_4\\ +\hline +\mu & 1 & 0 & 0 & 0 & 0 \\ +\sigma & 1 & 0 & 0 & 0 & 0\\ +\rho & 1 & 0 & 0 & \frac{1}{4} & 0\\ +\kappa & 1 & \displaystyle\frac{3 + e_2 - e_1}{36} & +\displaystyle\frac{3 + e_4 - e_2}{36} & 0 & +\displaystyle\frac{3 + e_1 - e_4}{36}\\ +\varepsilon & 1 & 1 & 1 & 1 & 1\\ +\hline +\end{array} +\] +\end{qn} + +\begin{qn} +Table of results: +\[ +\begin{array}{l|cc|r} + & B_1 & B_2\\ +\hline +A_1 & 37 & \phz53 & 90\\ +A_2 & 41 & \phz48 & 89\\ +\hline + & 78 & 101 & 179 +\end{array} +\] +\end{qn} + +\begin{qn} +\it Typeset the table in Figure~\ref{eel}. +\end{qn} + +\begin{qn} +\[ +\begin{array}{lrrrr@{.}l} +\mbox{Source} & \mbox{df} & \multicolumn{1}{c}{\mbox{SS}} & +\multicolumn{1}{c}{\mbox{MS}} & \multicolumn{2}{c}{\mbox{VR}}\\ +\hline +x_1 & 1 & 104474 & 104474 & 1220 & 5\\ +x_2 \mid x_1 & 1 & 2284 & 2284 & 26 & 68\\ +\cline{1-3} +\mbox{regression} & 2 & 106758\\ +\mbox{residual} & 15 & 1284 & 85.6\\ +\cline{1-3} +\mbox{`total'} & 17 & 108042 +\end{array} +\] +\end{qn} + +\begin{qn} +\it Typeset the table in Figure~\ref{cars}. +\end{qn} + +\begin{qn} +\[ +\begin{tabular}% +{||r@{ }l|r@{}l|cr@{}lc|@{}c@{\hspace{\arraycolsep}\pounds}r||} +\multicolumn{2}{||c|}{Date} & \multicolumn{2}{c|}{Miles} & +\multicolumn{4}{c|}{Gallons} & \multicolumn{2}{c||}{Cost}\\ +\hline +27 & December & 46674 & && 4 & .18 &&& 5.56\\ +3 & January & 46038 & & &3 & .93 && &5.00\\ +6 & January & 47956 & ? && 7 & .1 && &10.50\\ +10 & January & 47292 & && 7 & .89&& & 10.50\\ +17 & January & 47464 &&& 4 & &&&5.00\\ +\multicolumn{10}{||c||}{\dotfill}\\ +3 & February & 48112 &&& 6 & .88 &&& 9.00 +\end{tabular} +\] +\end{qn} + +\begin{thebibliography}{9} +\bibitem{keyd} +\writer{Central Statistical Office} +\book{Key Data 1986} +\publish{Her Majesty's Stationery Office}{London} +\byear{1986} + +\bibitem{brad} +\writer{Efron,~B.} +\book{The Jackknife, the Bootstrap and Other Resampling Plans} +\publish{Society for Industrial and Applied Mathematics}{Philadelphia} +\byear{1982} + +\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} + + -- cgit v1.2.3