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}