我必须写出两个矩阵方程的列表。它们几乎完全相同,但其中一个矩阵中的元素比另一个矩阵中的元素稍大,这使其看起来很糟糕。
\begin{align}
\begin{pmatrix}
-\id & \id \\
\id & -\id \\
\end{pmatrix} u = 0 \\
\begin{pmatrix}
\id & \id \\
\id & \id
\end{pmatrix} v = 0
\end{align}
有没有一种简单而优雅的方法可以让两个矩阵的大小匹配?我发现这,但情况比我的情况复杂得多。有没有更简单的?
答案1
我提出两个版本,我更喜欢第二个版本。
这些calc
包仅对第一个解决方案是必要的。一般来说,永远不要align
在没有对齐点的情况下使用。
\documentclass{article}
\usepackage{amsmath,calc}
\newcommand{\id}{\mathrm{id}}
\newcommand{\cid}{\makebox[\widthof{$-\id$}]{$\id$}}
\begin{document}
\begin{align}
\begin{pmatrix}
-\id & \id \\
\id & -\id \\
\end{pmatrix} u &= 0 \\
\begin{pmatrix}
\cid & \cid \\
\cid & \cid
\end{pmatrix} v &= 0
\end{align}
A different version
\begin{gather}
\begin{pmatrix}
-\id & \id \\
\id & -\id \\
\end{pmatrix} u = 0 \\
\begin{pmatrix}
\id & \id \\
\id & \id
\end{pmatrix} v = 0
\end{gather}
\end{document}
答案2
这里有两个解决方案,但远非完美。我使用 定义的矩阵环境的变体,它允许指定矩阵中的对齐,并且我在需要时mathtools
修改 的值。\arraycolsep
我还定义了一个数学运算符,它可以纠正中和\nid
之间的间距,这是不好的。–
id
-\id
\documentclass{article}
\usepackage{textcomp} \usepackage{mathtools}
\usepackage[showframe]{geometry}
\DeclareMathOperator{\id}{{id}}
\newcommand*\nid{\ensuremath{-{\id}}}%
\newcommand*\varnid{\ensuremath{\mskip-5mu-{\id}}}
\newcommand*\varid{\ensuremath{\mskip-5mu\phantom{-}{\id}}}%
\begin{document}
\begin{align}
\begin{pmatrix*}[r]
\varnid & \id \\
\id & \nid \\
\end{pmatrix*} u = 0 \\
\setlength\arraycolsep{0.9em}
\begin{pmatrix*}[r]
\varid & \id \\
\id & \id
\end{pmatrix*} v = 0 \\
\setlength\arraycolsep{1.1em}
\begin{pmatrix*}[r]
\id & \id \\
\id & \id
\end{pmatrix*} v = 0
\end{align}
\end{document}
答案3
该软件包nicematrix
有专门用于解决此类问题的工具。具体来说,有一个环境{NiceMatrixBlock}
,其键auto-columns-width
用于对给定范围内矩阵的所有列施加相同的宽度。但是,您需要进行多次编译。
\documentclass{article}
\usepackage{nicematrix}
\DeclareMathOperator{\id}{{id}}
\begin{document}
\begin{NiceMatrixBlock}[auto-columns-width]
\NiceMatrixOptions{right-margin=2pt}
\begin{align}
\begin{pNiceMatrix}[r]
-\id & \id \\
\id & -\id \\
\end{pNiceMatrix} u = 0 \\
\begin{pNiceMatrix}[r]
\id & \id \\
\id & \id
\end{pNiceMatrix} v = 0 \\
\begin{pNiceMatrix}[r]
\id & \id \\
\id & \id
\end{pNiceMatrix} v = 0
\end{align}
\end{NiceMatrixBlock}
\end{document}