对齐矩阵中的减号

对齐矩阵中的减号

我希望能够对齐矩阵中的减号,以便减号位于数字列的左侧。我已将矩阵写成如下形式:

\begin{eqnarray}
  \left(
    \begin{array}{llll}
      1 & 0   & 0  & 0 \\
      0 & 2   & 2i & 0 \\
      0 & -2i & 2  & 0 \\
      0 & 0   & 0  & 1
    \end{array}
  \right),
  \label{eq:rhot}
\end{eqnarray}

其提取形式如下:

在此处输入图片描述

但所需的形状应为这样的格式:[3,2] 元素 (-2i) 必须写成:2 在 [2,2] 元素的 2 下面,并且减号位于第二列的左侧,如下所示:

在此处输入图片描述

尽管我是用油漆做成的。

答案1

使用该mathtools包,您可以使用增强版的matrix环境。在此示例中,我使用星号版本,pmatrix该版本接受一个可选参数,即单元格的对齐方式。为了保留减号的空间,我只需将\phantom{-}其放在要隔开的条目前面即可。

\documentclass{article}
\usepackage{mathtools} % loads amsmath
\begin{document}
\begin{equation*}
  \begin{pmatrix*}[l]
    1 & \phantom{-}0 & 0 & 0 \\
    0 & \phantom{-}2 & 2i & 0 \\
    0 & -2i & 2 & 0 \\
    0 & \phantom{-}0 & 0 & 1
  \end{pmatrix*}
\end{equation*}
\end{document}

在此处输入图片描述

要在 处对齐i,只需反向应用上述技巧,即\phantom{i}在需要的地方添加。

\documentclass{article}
\usepackage{mathtools} % loads amsmath
\usepackage{dcolumn}
\begin{document}
\begin{equation*}
  \begin{pmatrix*}[r]
    1 & 0\phantom{i} & 0\phantom{i} & 0 \\
    0 & 2\phantom{i} & 2i & 0 \\
    0 & -12i & 2\phantom{i} & 0 \\
    0 & 0\phantom{i} & 0\phantom{i} & 1
  \end{pmatrix*}
\end{equation*}
\end{document}

在此处输入图片描述

使用 David 的dcolumn包,您还可以实现对齐i。 但这有个缺点,它i甚至在没有的列中也为保留了空间i(例如示例中的第一列和最后一列)。

\documentclass{article}
\usepackage{mathtools} % loads amsmath
\usepackage{dcolumn}
\newcolumntype{d}{D{i}{i}{0}}
\begin{document}
\begin{equation*}
  \begin{pmatrix*}[d]
    1 & 0 & 0 & 0 \\
    0 & 2 & 2i & 0 \\
    0 & -12i & 2 & 0 \\
    0 & 0 & 0 & 1
  \end{pmatrix*}
\end{equation*}
\end{document}

在此处输入图片描述

答案2

好吧,您已经设置了一个四列左对齐的数组\begin{array}{llll}- 这就是您的四个ls 所做的。

为了对齐 2,我建议进行一些 hack

\documentclass[12pt]{article}
\pagestyle{plain}
\usepackage[margin=1.8cm]{geometry}
\geometry{a4paper}
\usepackage[parfill]{parskip}
\usepackage{amsmath}
\usepackage{amssymb}

\newlength{\minuslength}
\settowidth{\minuslength}{$-$}

\begin{document}

\begin{equation*}
  \left(
  \begin{array}{llll}
    1 & \hspace{\minuslength}0 & 0 & 0 \\
    0 & \hspace{\minuslength}2 & 2i & 0 \\
    0 & -2i & 2 & 0 \\
    0 & \hspace{\minuslength}0 & 0 & 1
  \end{array}
  \right)
\end{equation*}

\end{document}

在此处输入图片描述

我在这里所做的是设置一个长度,称为\minuslength

\newlength{\minuslength}

然后我给这个长度赋予减号的宽度:

\settowidth{\minuslength}{$-$}

\settowidth{\minuslength}{$-$}然后我可以在每个元素前插入一个减号宽度的空格。

不过这有点不雅。可能有更好的方法来实现这一点,但你确定居中不是更好的选择吗?

为了使列居中,您必须指定四个居中的列\begin{array}{cccc}

\begin{equation*}
  \left(
  \begin{array}{cccc}
    1 & 0 & 0 & 0 \\
    0 & 2 & 2i & 0 \\
    0 & -2i & 2 & 0 \\
    0 & 0 & 0 & 1
  \end{array}
  \right)
\end{equation*}

在此处输入图片描述

但老实说,使用pmatrix(会更容易,对于括号,对于矩阵p可以使用方括号 ( ),对于矩阵可以使用大括号 ( ) 等等):bmatrix[]Bmatrix{}

\begin{equation*}
  \begin{pmatrix}
    1 & 0 & 0 & 0 \\
    0 & 2 & 2i & 0 \\
    0 & -2i & 2 & 0 \\
    0 & 0 & 0 & 1
  \end{pmatrix}
\end{equation*}

在此处输入图片描述

答案3

使用\llap 如评论中所述,\llap{$-$}2i单独使用时,列间距太紧。

但是,基于其他答案的想法,使用\phantom,而不是在“减号”行以外的每一行中使用它,这里它只使用一次,通过在第一列中使用来更正列间距,在带有\llap减号的行上使用一个 ,将减号向左翻转:

在此处输入图片描述

\documentclass{article}
\usepackage{mathtools}
\begin{document}
    \begin{equation*}
    \begin{pmatrix*}[l]
    1\phantom{-} & 0 & 0 & 0 \\
    0 & 2 & 2i & 0 \\
    0 & \llap{$-$}2i & 2 & 0 \\
    0 & 0 & 0 & 1
    \end{pmatrix*}
    \end{equation*}
\end{document}

这也适用于 2 位数字:

在此处输入图片描述

并通过操纵分组,例如\llap{$-$1}2i可以在任何数字上对齐:

在此处输入图片描述

感谢 Henri Menke 耐心地纠正我最初的回答。我模仿了他的用法pmatrix*并实施了他给出的建议。

相关内容