对齐多个 \begin{bmatrix*} 以具有相同的“列宽”

对齐多个 \begin{bmatrix*} 以具有相同的“列宽”

我有 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)。

上述代码的输出

相关内容