如何对齐两个独立矩阵的列?

如何对齐两个独立矩阵的列?

我在对齐环境中有两个涉及矩阵的方程。其中一个矩阵比另一个矩阵宽。如何对齐它们以使它们的宽度相等?

最小工作示例:

\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}

您需要多次编译。

上述代码的输出

相关内容