答案1
该mathtools
包扩展了环境amsmath
等matrix*
,可以采用可选参数来对齐其列(c
默认情况下)。
我添加了另一个解决方案,其中所有列具有相同的宽度,使用以下命令\mathllap
(也来自mathtools
):
\documentclass{article}%
\usepackage{mathtools}
\begin{document}
\begin{equation*}
\begin{bmatrix*}[r]
0 & 0 & 6 & -6 & 0 & 0 \\
0 & 0 & -6 & 6 & 0 & 0 \\
0 & 0 & 0 & 0 & 5 & -5 \\
0 & 0 & 0 & 0 & -5 & 5
\end{bmatrix*}
\end{equation*}
\begin{equation*}\setlength{\arraycolsep}{6pt}
\begin{bmatrix*}[r]
0 & 0 & 6 & \mathllap{-}6 & 0 & 0 \\
0 & 0 & \mathllap{-}6 & 6 & 0 & 0 \\
0 & 0 & 0 & 0 & 5 & \mathllap{-}5 \\
0 & 0 & 0 & 0 &\mathllap{-}5 & 5
\end{bmatrix*}
\end{equation*}
\end{document}
如果第一列中有减号,则会导致左右分隔符的间距不对称,看起来可能不太美观。为了使其可接受,可以在矩阵的每一行末尾添加一个小空格,如下所示:
\begin{equation*}\setlength{\arraycolsep}{6pt}
\begin{bmatrix*}[r]
0 & 0 & 6 & \mathllap{-}6 & 0 & 0\enspace \\
-0 & 0 & \mathllap{-}6 & 6 & 0 & 0\enspace \\
0 & 0 & 0 & 0 & 5 & \mathllap{-}5\enspace \\
0 & 0 & 0 & 0 &\mathllap{-}5 & 5\enspace
\end{bmatrix*}
\end{equation*}
答案2
答案3
这是我的建议。你可以使用(例如,但有几种策略)spalign
包使用相同的方法来构建矩阵或数组以使减号对齐。这里有一个屏幕截图和一个 MWE。
\documentclass[a4paper,12pt]{article}
\usepackage{spalign}
\begin{document}
\[ \spaligndelims{[}{]}\spalignmat[r]{0 0 6 -6 0 0; 0 0 -6 6 0 0; 0 0 0 0 5 -5; 0 0 0 0 -5 5} \]
\end{document}
附录:使用nicematrix
版本 5.0,其中选项r
将所有列右对齐,您可以获得相同的结果。
\documentclass[a4paper,12pt]{article}
\usepackage{nicematrix}
\begin{document}
\[ \begin{pNiceMatrix}[r,margin]
0 & 0 & 6 & -6 & 0 & 0 \\
0 & 0 & -6 & 6 & 0 & 0 \\
0 & 0 & 0 & 0 & 5 & -5 \\
0 & 0 & 0 & 0 & -5 & 5
\end{pNiceMatrix}\]
\end{document}