在数字、文本和百分比值的表格中对齐小数点的位置

在数字、文本和百分比值的表格中对齐小数点的位置

我今天问过类似问题,MWE 回答了 David C.,但这是一个更难的后续问题。另外,我刚刚注册了一个新帐户 :)

问题很简单:我希望数字与小数点对齐,并且如果某一列中没有小数点,则以另一种好的方式对齐它们。

在下面的 MWE 中,您将看到问题。值 0 直接位于 0% 上方;但问题是“0%”的“%”位于“0”正下方,因此“0%”实际上比它应该的位置靠左。您可能希望 0 位于另一个 0 正下方,而 % 位于右边一个位置。

因此,我想将所有值对齐到小数点,但如果某一列中没有小数点,例如以下 MWE 的第 3 列,则必须进行另一种对齐。我希望我已经充分描述了这个问题。如果没有,只需查看 MWE 的输出并检查 % 单位的位置。第一列没问题,但第二列错误。

另外请告诉我列的宽度是否可以调整。

这是 MWE。(请注意,我们有意混合使用 % 和十进制符号。在我的最终表格的某些行中,我将使用 %,而在其他行中则不会使用)

\documentclass[a4paper, 12pt]{scrreprt}
\usepackage{setspace}
\usepackage{booktabs}
\usepackage{floatrow}
\floatsetup[table]{capposition=top}
\usepackage{dcolumn}
\newcolumntype{Y}{D..{6.4}}

\begin{document}

\begin{table}[htpb]
\begin{tabular}{lYYYY}
\toprule
\multicolumn{1}{l}{Test 1} & \multicolumn{2}{c}{Test 2} & \multicolumn{2}{c}{Test 3} \\
Observations successful &
\multicolumn{1}{c}{no} & 
\multicolumn{1}{c}{yes}  &
\multicolumn{1}{c}{maybe} &
\multicolumn{1}{c}{no}  \\
adsadad & 546546.546 & 4646 & 45.646 & 456.456 \\
AAA & 235.25\% & 22\% & 232.34\% & 234.25\% \\
CCC3 & 0.0033 & 0 & 0.0031 & 23 \\
CCC4 & 0.0033 & 0\% & 0.0031 & 0 \\
\bottomrule

\end{tabular}
\end{table}

\end{document}

答案1

可能最好使用siunitx\sisetup由于命令出现在环境中,因此设置将是该表的本地设置table

\documentclass[a4paper,12pt]{scrreprt}
\usepackage{booktabs}
\usepackage{siunitx}

\begin{document}

\begin{table}[htpb]

\sisetup{
  table-space-text-post=\%,    % leave space for a ‘%’
  table-align-text-post=false, % push ‘%’ next to the number
}

\centering

\begin{tabular}{
 l
 S[table-format=6.4] % six integer digits, four decimal ones
 S[table-format=4.0]
 S[table-format=3.4]
 S[table-format=3.3]
}
\toprule
\multicolumn{1}{l}{Test 1} & \multicolumn{2}{c}{Test 2} & \multicolumn{2}{c}{Test 3} \\
\cmidrule{1-1}\cmidrule(lr){2-3}\cmidrule(l){4-5}
Observations successful &
\multicolumn{1}{c}{no} & 
\multicolumn{1}{c}{yes}  &
\multicolumn{1}{c}{maybe} &
\multicolumn{1}{c}{no}  \\
\midrule
adsadad & 546546.546 & 4646 & 45.646 & 456.456 \\
\% AAA & 235.25\% & 22\% & 232.34\% & 234.25\% \\
\% CCC3 & 0.0033 & 0 & 0.0031 & 23 \\
\% CCC4 & 0.0033 & 0\% & 0.0031 & 0 \\
\bottomrule

\end{tabular}
\end{table}

\end{document}

在此处输入图片描述

答案2

在此处输入图片描述

\documentclass[a4paper, 12pt]{scrreprt}
\usepackage{setspace}
\usepackage{booktabs}
\usepackage{floatrow}
\floatsetup[table]{capposition=top}
\usepackage{dcolumn}
\newcolumntype{Y}{D..{6.4}}
\newcommand\pct{\rlap{$\%$}}
\begin{document}

\begin{table}[htpb]
\begin{tabular}{lYYYY}
\toprule
\multicolumn{1}{l}{Test 1} & \multicolumn{2}{c}{Test 2} & \multicolumn{2}{c}{Test 3} \\
Observations successful &
\multicolumn{1}{c}{no} & 
\multicolumn{1}{c}{yes}  &
\multicolumn{1}{c}{maybe} &
\multicolumn{1}{c}{no}  \\
adsadad & 546546.546 & 4646 & 45.646 & 456.456 \\
AAA & 235.25\pct & 22\pct & 232.34\pct & 234.25\pct \\
CCC3 & 0.0033 & 0 & 0.0031 & 23 \\
CCC4 & 0.0033 & 0\pct & 0.0031 & 0 \\
\bottomrule

\end{tabular}
\end{table}

\end{document}

相关内容