我有 4 个 \begin{bmatrix} 矩阵。由于矩阵值不同,因此整体 4x4 矩阵的列宽不同。有没有办法将它们对齐,使所有列的宽度相同,从而使矩阵看起来对称?
\documentclass[10pt,a4paper]{article}
\usepackage[utf8]{inputenc}
\usepackage{amsmath}
\usepackage{mathtools}
\begin{document}
\begin{align*}
\Phi_{1} &=
\begin{bmatrix*}[r]
0 & -\pi & -\pi & 0 \\
\pi & 0 & 0 & \pi \\
\pi & 0 & 0 & \pi \\
0 & -\pi & -\pi & 0 \\
\end{bmatrix*}
&
\Phi_{2} &=
\begin{bmatrix*}[r]
0 & 0 & -\pi & -\pi \\
0 & 0 & -\pi & -\pi \\
\pi & \pi & 0 & 0 \\
\pi & \pi & 0 & 0 \\
\end{bmatrix*}
\\
\Phi_{3} &=
\begin{bmatrix*}[r]
0 & -\pi & 0 & -\pi \\
\pi & 0 & \pi & \pi \\
0 & -\pi & 0 & -\pi \\
\pi & -\pi & \pi & 0 \\
\end{bmatrix*}
&
\Phi_{4} &=
\begin{bmatrix*}[r]
0 & -\frac{\pi}{2} & -\pi & -\frac{3\pi}{2} \\
\frac{\pi}{2} & 0 & -\frac{\pi}{2} & -\pi \\
\pi & \frac{\pi}{2} & 0 & -\frac{\pi}{2} \\
\frac{3\pi}{2} & \pi & \frac{\pi}{2} & 0 \\
\end{bmatrix*}\\
\\
\end{align*}
\end{document}
答案1
您需要为每列设置不同的列宽。使用最新的 TeX 发行版,您可以使用w
提供的列类型array
。但恐怕您必须决定每列的最宽条目。
我提供了右对齐和居中对齐的版本;我更喜欢后者。
避免尾随\\
是一般规则(除非您的对齐有底部规则)。它们在array
或内不会造成伤害matrix
,但在 内会造成伤害align
。
\documentclass[10pt,a4paper]{article}
\usepackage[utf8]{inputenc}
\usepackage{amsmath}
\usepackage{mathtools}
\usepackage{array,calc}
\begin{document}
\begin{align*}
\Phi_{1} &=
\begin{bmatrix}
\begin{array}{
w{r}{\widthof{$\pi$}}
w{r}{\widthof{$-\pi$}}
w{r}{\widthof{$-\pi$}}
w{r}{\widthof{$-\pi$}}
}
0 & -\pi & -\pi & 0 \\
\pi & 0 & 0 & \pi \\
\pi & 0 & 0 & \pi \\
0 & -\pi & -\pi & 0
\end{array}
\end{bmatrix}
&
\Phi_{2} &=
\begin{bmatrix}
\begin{array}{
w{r}{\widthof{$\frac{3\pi}{2}$}}
w{r}{\widthof{$-\pi$}}
w{r}{\widthof{$-\pi$}}
w{r}{\widthof{$-\frac{3\pi}{2}$}}
}
0 & 0 & -\pi & -\pi \\
0 & 0 & -\pi & -\pi \\
\pi & \pi & 0 & 0 \\
\pi & \pi & 0 & 0
\end{array}
\end{bmatrix}
\\
\Phi_{3} &=
\begin{bmatrix}
\begin{array}{
w{r}{\widthof{$\pi$}}
w{r}{\widthof{$-\pi$}}
w{r}{\widthof{$-\pi$}}
w{r}{\widthof{$-\pi$}}
}
0 & -\pi & 0 & -\pi \\
\pi & 0 & \pi & \pi \\
0 & -\pi & 0 & -\pi \\
\pi & -\pi & \pi & 0
\end{array}
\end{bmatrix}
&
\Phi_{4} &=
\begin{bmatrix}
\begin{array}{
w{r}{\widthof{$\frac{3\pi}{2}$}}
w{r}{\widthof{$-\pi$}}
w{r}{\widthof{$-\pi$}}
w{r}{\widthof{$-\frac{3\pi}{2}$}}
}
0 & -\frac{\pi}{2} & -\pi & -\frac{3\pi}{2} \\
\frac{\pi}{2} & 0 & -\frac{\pi}{2} & -\pi \\
\pi & \frac{\pi}{2} & 0 & -\frac{\pi}{2} \\
\frac{3\pi}{2} & \pi & \frac{\pi}{2} & 0
\end{array}
\end{bmatrix}
\end{align*}
\begin{align*}
\Phi_{1} &=
\begin{bmatrix}
\begin{array}{
w{c}{\widthof{$\pi$}}
w{c}{\widthof{$-\pi$}}
w{c}{\widthof{$-\pi$}}
w{c}{\widthof{$-\pi$}}
}
0 & -\pi & -\pi & 0 \\
\pi & 0 & 0 & \pi \\
\pi & 0 & 0 & \pi \\
0 & -\pi & -\pi & 0
\end{array}
\end{bmatrix}
&
\Phi_{2} &=
\begin{bmatrix}
\begin{array}{
w{c}{\widthof{$\frac{3\pi}{2}$}}
w{c}{\widthof{$-\pi$}}
w{c}{\widthof{$-\pi$}}
w{c}{\widthof{$-\frac{3\pi}{2}$}}
}
0 & 0 & -\pi & -\pi \\
0 & 0 & -\pi & -\pi \\
\pi & \pi & 0 & 0 \\
\pi & \pi & 0 & 0
\end{array}
\end{bmatrix}
\\
\Phi_{3} &=
\begin{bmatrix}
\begin{array}{
w{c}{\widthof{$\pi$}}
w{c}{\widthof{$-\pi$}}
w{c}{\widthof{$-\pi$}}
w{c}{\widthof{$-\pi$}}
}
0 & -\pi & 0 & -\pi \\
\pi & 0 & \pi & \pi \\
0 & -\pi & 0 & -\pi \\
\pi & -\pi & \pi & 0
\end{array}
\end{bmatrix}
&
\Phi_{4} &=
\begin{bmatrix}
\begin{array}{
w{c}{\widthof{$\frac{3\pi}{2}$}}
w{c}{\widthof{$-\pi$}}
w{c}{\widthof{$-\pi$}}
w{c}{\widthof{$-\frac{3\pi}{2}$}}
}
0 & -\frac{\pi}{2} & -\pi & -\frac{3\pi}{2} \\
\frac{\pi}{2} & 0 & -\frac{\pi}{2} & -\pi \\
\pi & \frac{\pi}{2} & 0 & -\frac{\pi}{2} \\
\frac{3\pi}{2} & \pi & \frac{\pi}{2} & 0
\end{array}
\end{bmatrix}
\end{align*}
\end{document}
答案2
该包提供了工具来确保在给定范围内由(、等)nicematrix
环境构建的所有矩阵的所有列具有相同的宽度。nicematrix
{pNiceMatrix}
{bNiceMatrix}
\documentclass[10pt,a4paper]{article}
\usepackage{nicematrix}
\usepackage{mathtools}
\begin{document}
\begin{NiceMatrixBlock}[auto-columns-width]
\begin{align*}
\Phi_{1} &=
\begin{bmatrix*}[r]
0 & -\pi & -\pi & 0 \\
\pi & 0 & 0 & \pi \\
\pi & 0 & 0 & \pi \\
0 & -\pi & -\pi & 0 \\
\end{bmatrix*}
&
\Phi_{2} &=
\begin{bNiceMatrix}[r]
0 & 0 & -\pi & -\pi \\
0 & 0 & -\pi & -\pi \\
\pi & \pi & 0 & 0 \\
\pi & \pi & 0 & 0 \\
\end{bNiceMatrix}
\\
\Phi_{3} &=
\begin{bmatrix*}[r]
0 & -\pi & 0 & -\pi \\
\pi & 0 & \pi & \pi \\
0 & -\pi & 0 & -\pi \\
\pi & -\pi & \pi & 0 \\
\end{bmatrix*}
&
\Phi_{4} &=
\begin{bNiceMatrix}[r]
0 & -\frac{\pi}{2} & -\pi & -\frac{3\pi}{2} \\
\frac{\pi}{2} & 0 & -\frac{\pi}{2} & -\pi \\
\pi & \frac{\pi}{2} & 0 & -\frac{\pi}{2} \\
\frac{3\pi}{2} & \pi & \frac{\pi}{2} & 0 \\
\end{bNiceMatrix}\\
\end{align*}
\end{NiceMatrixBlock}
\end{document}
您需要多次编译(因为nicematrix
在文件中写入信息aux
)。