为什么 \num{} 在 situnitx 的 S 列中不起作用?

为什么 \num{} 在 situnitx 的 S 列中不起作用?

考虑以下 MWE:

\documentclass{article}

\usepackage{siunitx}

\begin{document}
  \begin{tabular}{SS}
        0.01    & \num{0.01} \\
        0.1     & \num{0.1} \\
        1       & \num{1} \\
        10      & \num{10} \\
        100     & \num{100} \\
  \end{tabular}
\end{document}

这使:
在此处输入图片描述

为什么左边的列能按预期显示,而右边的却没有?

其次,我想添加表格的数字范围。

\documentclass{article}

\usepackage{siunitx}

\begin{document}
  \begin{tabular}{rS}
        0.01        & \num{0.01} \\
        0.1         & \num{0.1} \\
        1           & \num{1} \\
        10          & \num{10} \\
        100         & \num{100} \\
        101--1000   & \numrange{101}{1000}
  \end{tabular}
\end{document}

在此处输入图片描述

我怎样才能做到印刷上的“正确”?

答案1

在问题的第一部分,S列对齐数字,并将任何其他输入视为“非数字”。因此,在解析第二列时,宏\num是一个“非数字”值,并且单元格内容排版时会从对齐中省略。不要用它\num来指示S列内的数字。

关于问题的第二部分,范围与十进制值混合在一起很难很好地对齐:老实说,这样的表格往往表明你试图呈现的内容存在问题。也就是说,

\documentclass{article}

\usepackage{siunitx}

\begin{document}
  \begin{tabular}{S[table-format = 3.2,table-align-text-post = false]}
        0.01        \\
        0.1         \\
        1           \\
        10          \\
        100         \\
        101{--1000} \\
  \end{tabular}
\end{document}

将在给定的情况下起作用。这里的想法是忽略范围的第二部分以进行对齐。我还为整个数字指定了固定大小,因为这通常会提供更好的对齐效果。

相关内容