在 siunitx 列类型 S 中对齐数字和范围

在 siunitx 列类型 S 中对齐数字和范围

S使用列类型在表中混合纯数字和范围的最简单方法是什么siunitx?例如,假设我正在对某个数量进行文献综述,几乎每个人都报告了感兴趣数量的值,但有几篇论文报告了一个范围,我想将所有值放在一个表中。我认为按照 中的建议为范围创建单独的高列和低列是没有意义的这个问题,因为只有少数数量列出了范围。

例如,这里有一个演示该问题的 MWE。

\documentclass{article}
\usepackage{siunitx}
\begin{document}
\begin{table}
\begin{tabular}{lS}
Ref & {Value} \\
1   & 1.0e2 \\
2   & 1.5e2 \\
3   & \numrange{1.0e2}{2.0e2} \\
4   & 2.0e2
\end{tabular}
\end{table}
\end{document}

在此处输入图片描述

另一件可能有帮助的事情是,当范围内的两个数字共享相同的 10 的幂时压缩数字范围,可以\SIrange像这样完成: \SIrange[range-units=single, range-phrase= --, tight-spacing=true, fixed-exponent=2, scientific-notation=fixed]{1e2}{2e2}{\metre} 但不能像这样\numrange[range-units=single, range-phrase= --, tight-spacing=true, fixed-exponent=2, scientific-notation=fixed]{1e2}{2e2}

理想情况下,我认为 10 的幂应该在表中对齐,并且前缀应该是 (1.0 到 2.0) 或 (1.0--2.0)。


编辑:使用提出的答案@Bernard\SIrange{1.0e2}{2.0e2}{}当表号和范围具有相同的精度时(如我的 MWE 中所示),使用有效。但是,如果范围的精度低于列中的数字(例如\SIrange{1e2}{2e2}{}),则对齐会中断。对于这种特殊情况,我可以使用 强制对齐,table-figures-exponent = 3但这似乎是一种黑客行为并且很脆弱。有没有更通用的方法?

答案1

我将使用以下代码之一:

\documentclass{article}
\usepackage{geometry} \usepackage{siunitx}
\sisetup{range-phrase=--, fixed-exponent=2, scientific-notation = fixed, range-units =single, table-number-alignment =center, table-figures-exponent=1}

 \begin{document}

\begin{table}
  \centering
  \begin{tabular}{l|S}
    Ref & {Value} \\
    1 & 1.0e2 \\
    2 & 1.5e2 \\
    3 & \SIrange{1.0e2}{2.0e2}{} \\
    4 & 2.0e2
  \end{tabular}
  \qquad
  \begin{tabular}{l|c}
    Ref & {Value} \\
    1 & \num{1.0e2} \\
    2 & \num{1.5e2} \\
    3 & {\SIrange{1.0e2}{2.0e2}{}} \\
    4 & \num{2.0e2}
  \end{tabular}
\end{table}

\end{document} 

在此处输入图片描述

相关内容