Vertically align the tops of matrices in an equation
A note before, amsmath
provides special *matrix
environments:
pmatrix
for( · )
bmatrix
for[ · ]
Bmatrix
for{ · }
vmatrix
for| · |
Vmatrix
for|| · ||
Solution 1
I used the \vphantom
macro that resizes the box inside the \overset
to same height like the other parts.
Code
\documentclass{article}
\usepackage{amsmath}
\newcommand*\biggestpart{}
\begin{document}
\renewcommand*\biggestpart{
\begin{bmatrix}
t_1 & 1 \\
\vdots & \vdots \\
t_n & 1
\end{bmatrix}
}
\begin{align*}
\overset{A}{\biggestpart}
\overset{x}{
\vphantom{\biggestpart}
\begin{bmatrix}
x_1 \\ x_2
\end{bmatrix}
}
&=
\overset{b}{
\begin{bmatrix}
b_1 \\ \vdots \\ b_n
\end{bmatrix}
}
\end{align*}
\end{document}
Output
Solution 2
As the second row in the bigger matrices are not of the same height of x_2
the \vphantom
command is used again (try it without to see the effect or replace \vdots
with “normal” math stuff like x_0
).
Code
\documentclass{article}
\usepackage{amsmath}
\begin{document}
\begin{align*}
\overset{A}{
\begin{bmatrix}
t_1 & 1 \\
\vdots & \vdots \\
t_n & 1
\end{bmatrix}}
\overset{x}{
\begin{array}{@{}c@{}}{
\begin{bmatrix}
x_1 \\ x_2 \vphantom{\vdots}
\end{bmatrix}}\\
\\
\end{array}
}
&=
\overset{b}{
\begin{bmatrix}
b_1 \\ \vdots \\ b_n
\end{bmatrix}
}
\end{align*}
\end{document}
Output
Here is a sans-amsmath
version of Qrrbrbirlbel's answer:
\documentclass{article}
\newcommand{\matlabel}[2]{% \matlabel{<label>}{<stuff>}
\begin{array}{@{}c@{}} \mbox{\small$#1$} \\ #2 \end{array}
}
\begin{document}
\[
\matlabel{A}{\left[\begin{array}{@{}cc@{}}
t_1 & 1 \\
\vdots & \vdots \\
t_n & 1
\end{array}\right]}
\matlabel{x}{\left[\begin{array}{@{}c@{}}
x_1 \\ \vphantom\vdots x_2 \\
\end{array}\right] \\
\mathstrut}\mathrel{\raisebox{-.5\normalbaselineskip}{=}}
\matlabel{b}{\left[\begin{array}{@{}c@{}}
b_1 \\ \vdots \\ b_n
\end{array}\right]}
\]
\end{document}
The only major difference is the setting of the matrix label as an element in an "vertical array
", rather than an "upper limit in a math operator." As a consequence, the vertical alignment with respect to the mathematical axis has to be adjusted... using \mathrel{\raisebox{-.5\normalbaselineskip}{=}}
.