如何按小数点对齐矩阵中的数字?

如何按小数点对齐矩阵中的数字?

这是一个矩阵:

\documentclass{article}

\usepackage{amsmath}

\begin{document}
\begin{equation*}
  \begin{pmatrix}
    1.41 & -1.73\\
    2.718 & 3.14
  \end{pmatrix}
\end{equation*}
\end{document}

如您所见,小数点的数量可能不同,并且有些数字是负数。我希望将列与小数点对齐。

通常情况下,我会使用半 em 空格来表示“缺失”的数字和\hphantom-- ,但我使用的字体中的数字宽度不一样,所以这种可能性被排除在外。

我浏览了 TeX.SE,但只找到了amsmath,而不是矩阵。我也查看了和的文档mathtools,但无济于事。

我想我可以使用 TikZ 矩阵来实现这一点,但如果可能的话我宁愿保持简单。

有什么建议么?

答案1

matrix是不可能的(至少不容易),尝试使用S在包中定义的带有列的数组siunitx

\documentclass{article}
\usepackage{siunitx}

\begin{document}
\[
  \left(\begin{array}{@{} S[table-format=1.3]S[table-format=-1.2] @{}}
    1.41  & -1.73\\
    2.718 &  3.14
  \end{array}\right)
\]
\end{document}

在此处输入图片描述

答案2

使用nicematrixsiunitx

\documentclass{article}
\usepackage{nicematrix}
\usepackage{siunitx}

\begin{document}
\[
  \begin{pNiceArray}{S[table-format=1.3]S[table-format=-1.2]}
    1.41  & -1.73\\
    2.718 &  3.14
  \end{pNiceArray}
\]
\end{document}

上述代码的输出

答案3

对原始帖子唯一需要的修改是使用 columntype S

\documentclass{article}

\usepackage{mathtools}
\usepackage{siunitx}

\begin{document}

\begin{equation}
  \label{eq:1}      
  \begin{pmatrix*}[S]
    1.41  & -1.73 \\
    2.718 & 3.14
  \end{pmatrix*}      
\end{equation}

\end{document}

输出

答案4

可以\phantom用于:

\def\0{\phantom{0}} \def\+{\phantom{+}}
$$
  \pmatrix{ 1.41\0 &  -1.73 \cr
            2.718  & \+3.14 }
$$

相关内容