为什么下表中列的格式化结果S
不同,即取决于列在表中的位置?因此这些表格的宽度不同。
\documentclass{article}
\usepackage{siunitx}
\usepackage{array}
\newcommand\mc[1]{\multicolumn{1}{c}{#1}}
\begin{document}
\begin{tabular}{c c|
*{2}{S[table-format=2.2,
table-space-text-post=\si{\,\%}\ ]<{\,\%}|}
}
\hline
A & B & \mc{C} & \mc{D} \\ \hline
xx & xx xxx & 12.34 & 56.78 \\ \hline
\end{tabular}
\bigskip
\begin{tabular}{c|
*{2}{S[table-format=2.2,
table-space-text-post=\si{\,\%}\ ]<{\,\%}|}
c}
\hline
A & \mc{C} & \mc{D} & B \\ \hline
xx & 12.34 & 56.78 & xx xxx \\ \hline
\end{tabular}
\end{document}
如您所见,区别在于数字和伴随符号之间的空格\%
。可能在列的格式中D
我错过了一些明显的东西 :-(
答案1
在列之间添加百分比比附加百分比更容易。
\documentclass{article}
\usepackage{siunitx}
\usepackage{booktabs}
\newcommand\mc[1]{\multicolumn{1}{c}{#1}}
\begin{document}
\sisetup{
table-format=2.2
}
\begin{tabular}{ccS@{\,\%\hspace{2\tabcolsep}}S@{\,\%}}
\toprule
A & B & \mc{C} & \mc{D} \\
xx & xx xxx & 12.34 & 56.78 \\
\bottomrule
\end{tabular}
\bigskip
\begin{tabular}{@{}c*2{S@{\,\%\hspace{2\tabcolsep}}}c@{}}
\toprule
A & \mc{C} & \mc{D} & B \\
xx & 12.34 & 56.78 & xx xxx \\
\bottomrule
\end{tabular}
\end{document}
最简单的(从我的角度来看也是最优雅的)变体是将单位添加到列标题。
\documentclass{article}
\pagestyle{empty}
\usepackage{siunitx}
\usepackage{booktabs}
\newcommand\mc[1]{\multicolumn{1}{c}{#1}}
\begin{document}
\sisetup{
table-format=2.2
}
\begin{tabular}{ccSS}
\toprule
A & B & \mc{C [\si{\percent}]} & \mc{D [\si{\percent}]} \\
xx & xx xxx & 12.34 & 56.78 \\
\bottomrule
\end{tabular}
\bigskip
\begin{tabular}{@{}cSSc@{}}
\toprule
A & \mc{C [\si{\percent}]} & \mc{D [\si{\percent}]} & B \\
xx & 12.34 & 56.78 & xx xxx \\
\bottomrule
\end{tabular}
\end{document}
答案2
这是一个众所周知的问题,它被描述在siunitx
手册的7.13 在表格最后一列后添加项目(第 66 页,发布日期 2017/11/26):
当使用数组包“<”构造在
S
或s
列后插入材料时,如果使用标准表格行终止符,则最后一列的对齐方式可能会错误\\
。这是由于 LATEX 在低级别构造表格的方式造成的。可以使用 TEX \cr 基元来结束表格行(表 48)来避免不正确的间距。
将其应用于我的问题中描述的情况:
\documentclass{article}
\usepackage{siunitx}
\usepackage{array}
\newcommand\mc[1]{\multicolumn{1}{c|}{#1}}
\begin{document}
\begin{tabular}{|c c|
*{2}{S[table-format=2.2,
table-space-text-post=\si{\,\%}\ ]<{\,\%}|}
}
\hline
A & B & \mc{C} & \mc{D} \cr \hline
xx & xx xxx & 12.34 & 56.78 \cr \hline
\end{tabular}
\end{document}
给出