我在对齐环境中有两个涉及矩阵的方程。其中一个矩阵比另一个矩阵宽。如何对齐它们以使它们的宽度相等?
最小工作示例:
\documentclass[12pt,a4paper]{article}
\usepackage[latin1]{inputenc}
\usepackage{amsmath}
\usepackage{amsfonts}
\usepackage{amssymb}
\begin{document}
\begin{align}
g^\mathrm{x} &:= \frac{1}{8}\begin{bmatrix} -1 & 0 & 1 \\ -2 & 0 & 2 \\
-1 & 0 & 1 \end{bmatrix}\\
g^\mathrm{y} &:= \frac{1}{8}\begin{bmatrix} -1 & -2 & -1 \\ 0 & 0 & 0 \\
1 & 2 & 1 \end{bmatrix}
\end{align}
\end{document}
这产生了
答案1
一种方法是右对齐两个矩阵,使用\begin{bmatrix*}[r]
… \end{bmatrix*}
(来自mathtools
包)而不是bmatrix
。然后,\phantom{-}0
在第一个矩阵的第二列和第三列中添加条目将添加正确的空间量。
\documentclass{article}
\usepackage{mathtools}
\begin{document}
\begin{align} % ↓ Here
g^\mathrm{x} &:= \frac{1}{8}\begin{bmatrix*}[r] -1 & \phantom{-}0 &
\phantom{-}1 \\ -2 & 0 & 2 \\ -1 & 0 & 1 \end{bmatrix*}\\
g^\mathrm{y} &:= \frac{1}{8}\begin{bmatrix*}[r] -1 & -2 & -1 \\
0 & 0 & 0 \\ 1 & 2 & 1 \end{bmatrix*}
\end{align}
\end{document}
答案2
该包nicematrix
有专门用于解决此类问题的工具。它为环境提供了{NiceMatrixBlock}
一个键,以确保环境范围内auto-columns-width
所有环境列的宽度相同。提供的环境与经典的类似,但具有新功能。{bNiceMatrix}
{NiceMatrixBlock}
{bNiceMatrix}
nicematrix
{bmatrix}
amsmath
\documentclass[12pt,a4paper]{article}
\usepackage{nicematrix}
\begin{document}
\begin{NiceMatrixBlock}[auto-columns-width]
\begin{align}
g^{\mathrm{x}} &
:= \frac{1}{8}\begin{bNiceMatrix} -1 & 0 & 1 \\ -2 & 0 & 2 \\ -1 & 0 & 1 \end{bNiceMatrix} \\
g^{\mathrm{y}} &
:= \frac{1}{8}\begin{bNiceMatrix} -1 & -2 & -1 \\ 0 & 0 & 0 \\ 1 & 2 & 1 \end{bNiceMatrix}
\end{align}
\end{NiceMatrixBlock}
\end{document}
您需要多次编译。