我第一次使用siunitx
它来格式化我的表格,效果很好。现在我想在每个值后面添加一些(未报告的)总数的百分比。这些值是 5 位整数,百分比应四舍五入到小数点后一位。
到目前为止,我的尝试是劫持不确定性选项,四舍五入到小数点后一位,但用来zero-decimal-to-integer
很好地格式化整数,并在错误中添加百分号。使用一些试错法和其他 SE 页面,我得到了
\documentclass{article}
\usepackage{siunitx}
\begin{document}
\begin{table}
\begin{tabular}{S[table-alignment=right,
round-mode=places,
round-precision=1,
table-format=5.3,
zero-decimal-to-integer,
input-symbols={()}]}
{title} \\
11111(1.11) \\
55555(55.55) \\
\end{tabular}
\end{table}
\end{document}
它可以工作但是缺少另外两个元素。
- 百分号:如果我使用
(1.11{\percent})
我会很惊讶地得到undefined control sequence
。 - 左括号前有一个空格:我本以为
table-space-text-pre={(}
可以实现这一点,但却做不到。
正如我所说,这是我第一次尝试siunitx
,所以我希望我只是误解了。另外,我怀疑有一种更优雅的方法来实现相同的输出,但在丰富的包选项中找不到它。
答案1
您只需要在括号的内容周围添加一对括号,以使其不属于对齐数字的一部分:
\documentclass{article}
\usepackage{siunitx}
\newcommand{\mypc}[1]{\hfill(\SI{#1}{\percent})}
\begin{document}
\begin{table}
\begin{tabular}{S[table-alignment=right,
round-mode=places,
round-precision=1,
table-format=5.0,
zero-decimal-to-integer,
input-symbols={()\%},,
table-space-text-post={\enspace(11.1\,\%)},
table-align-text-post=true]}
{title} \\
11111 \mypc{1.11} \\
55555 \mypc{5.55} \\
55555 \mypc{55.55}
\end{tabular}
\end{table}
\end{document}