当有减号时对齐数值矩阵的内容

当有减号时对齐数值矩阵的内容

我有一个看起来像的矩阵

在此处输入图片描述

\begin{equation*}  
  \left [\begin{array}{cccccc}  
    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{array} \right ]  \end{equation*}

我应该如何对齐这个矩阵,以使其看起来更对称,并且不会因负号而出现令人厌恶的轻微偏移?

答案1

mathtools包扩展了环境amsmathmatrix*,可以采用可选参数来对齐其列(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

您可以将列说明符从 更改为cr您将获得:

在此处输入图片描述

这是你要找的吗?上述矩阵的 MWE 为:

\documentclass[a4paper,12pt]{article}

\begin{document}
\[
\left[\begin{array}{*{6}{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{array} \right]
\]
\end{document}

答案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}

相关内容