summaryrefslogtreecommitdiff
path: root/usergrps/uktug/baskervi/5_4/bailey.tex
blob: 737e7ab8291746b7559f2d518bb46262848e4536 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
639
640
641
642
643
644
645
646
647
648
649
650
651
652
653
654
655
656
657
658
659
660
661
662
663
664
665
666
667
668
669
670
671
672
673
674
675
676
677
678
679
680
681
682
683
684
685
686
687
688
689
690
691
692
693
694
695
696
697
698
699
700
701
702
703
704
705
706
707
708
709
710
711
712
713
714
715
716
717
718
719
720
721
722
723
724
725
726
727
728
729
730
731
732
733
734
735
736
737
738
739
740
741
742
743
744
745
746
747
748
749
750
751
752
753
754
755
756
757
758
759
760
761
762
763
764
765
766
767
768
769
770
771
772
773
774
775
776
777
778
779
780
781
782
783
784
785
786
787
788
789
790
791
792
793
794
795
796
797
798
799
800
801
802
803
804
805
806
807
808
809
810
811
812
813
814
815
816
817
818
819
820
821
822
823
824
825
826
827
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}