这是后续问题内容不在表格中央
我可以考虑使用table-format=2.2
数据示例22.22
。如果我有一个整数(例如)和表中的10
百分比,会发生什么情况。22.22%
有什么方法可以让它居中并且看起来美观吗?
\documentclass[12pt,oneside]{book}
\usepackage[showframe]{geometry}
\usepackage{amsmath}
\usepackage{ragged2e}
\usepackage{booktabs, makecell, multirow, tabularx,
threeparttable, tabulary}
\renewcommand\theadfont{\small\bfseries} % for bold in table using \small
\renewcommand\theadgape{}
\usepackage[svgnames, table]{xcolor}
\usepackage{siunitx} %for table spacing to second row
\usepackage{graphicx}
\usepackage[font=small,
labelfont={bf,sf}, textfont={sf},
justification=centering]{caption}
\begin{document}
\begin{table}[h!]
\setlength{\tabcolsep}{1em}
\centering
\begin{tabular}{
l
S[table-format=2.2,table-space-text-post=\%]
S[table-format=2.2,table-space-text-post=\%]
S[table-format=2.2,table-space-text-post=\%]
}
\toprule
& \multicolumn{3}{c}{\thead{\makebox[0pt]{\textbf{System Nuclear Accuracy}}}}\\
\cmidrule{2-4}
& {\textbf{AA}}
& {\textbf{BB}}
& {\textbf{CC}} \\
\midrule
N & {10} & {10} & {10} \\
Mean & 33.83\% & 33.67\% & 33.78\% \\
Median & 44.33\% & 33.89\% & 44.83\% \\
Variance & 254.42 & 444.708 & 33.79 \\
\bottomrule
\end{tabular}
\end{table}
\end{document}
答案1
我建议使用下列三个表格中的其中一个。
在第一个中,我已将 更正为。table-format
这是必要的,因为您最长的数字是“444.708”,它有 3 个整数和 3 个小数位。因此。我还删除了 周围的 ,因为您在评论中表示您还希望将 10 与其他数字对齐。(就我个人而言,我会将 10 居中。)如您所见,数字和百分号之间现在将有一个水平空白。您可以通过将所有数字四舍五入到相同的小数位数来消除它(如 Zarko 所示)2.2
3.3
3.3
{}
10
在他们的回答中)或者您可以table-align-text-post=false
像我在第二个例子中所做的那样添加。
在第三个表中,我删除了百分号并将其添加到第一列。使用此方法,您将只得到两个百分号,而不是 6 个。
在所有表格中,我还注释掉了\setlength{\tabcolsep}{1em}
列之间的额外空白。我还添加了两个简化功能以节省一些输入时间并使代码更短。S
您可以使用*{<number>}{<column specification>}
来重复同一列,而不必重新输入列及其所有选项。我在表一和表二中使用了它。您不必像 那样将选项直接添加到列说明符中,S[<options here>]
您还可以使用\sisetup{table-format=3.3}
。我在第三个表中使用了它。
\documentclass[12pt,oneside]{book}
\usepackage[showframe]{geometry}
\usepackage{amsmath}
\usepackage{ragged2e}
\usepackage{booktabs, makecell, multirow, tabularx,
threeparttable, tabulary}
\renewcommand\theadfont{\small\bfseries} % for bold in table using \small
\renewcommand\theadgape{}
\usepackage[svgnames, table]{xcolor}
\usepackage{siunitx} %for table spacing to second row
\usepackage{graphicx}
\usepackage[font=small,
labelfont={bf,sf}, textfont={sf},
justification=centering]{caption}
\begin{document}
\begin{table}[h!]
%\setlength{\tabcolsep}{1em}
\centering
\begin{tabular}{
l
*{3}{S[table-format=3.3,table-space-text-post = \si{\percent}]}
}
\toprule
& \multicolumn{3}{c}{\thead{System Nuclear Accuracy}}\\
\cmidrule{2-4}
& {\thead{AA}}
& {\thead{BB}}
& {\thead{CC}} \\
\midrule
N & 10 & 10 & 10 \\
Mean & 33.83\% & 33.67\% & 33.78\% \\
Median & 44.33\% & 33.89\% & 44.83\% \\
Variance & 254.42 & 444.708 & 33.79 \\
\bottomrule
\end{tabular}
\end{table}
\begin{table}[h!]
%\setlength{\tabcolsep}{1em}
\centering
\begin{tabular}{
l
*{3}{S[table-format=3.3,table-space-text-post = \si{\percent}, table-align-text-post=false]}
}
\toprule
& \multicolumn{3}{c}{\thead{System Nuclear Accuracy}}\\
\cmidrule{2-4}
& {\thead{AA}}
& {\thead{BB}}
& {\thead{CC}} \\
\midrule
N & 10 & 10 & 10 \\
Mean & 33.83\% & 33.67\% & 33.78\% \\
Median & 44.33\% & 33.89\% & 44.83\% \\
Variance & 254.42 & 444.708 & 33.79 \\
\bottomrule
\end{tabular}
\end{table}
\begin{table}[h!]
%\setlength{\tabcolsep}{1em}
\centering
\sisetup{table-format=3.3}
\begin{tabular}{
l
*{3}{S}
}
\toprule
& \multicolumn{3}{c}{\thead{System Nuclear Accuracy}}\\
\cmidrule{2-4}
& {\thead{AA}}
& {\thead{BB}}
& {\thead{CC}} \\
\midrule
N & 10 & 10 & 10 \\
Mean (\si{\percent}) & 33.83 & 33.67 & 33.78 \\
Median (\si{\percent}) & 44.33 & 33.89 & 44.83 \\
Variance & 254.42 & 444.708 & 33.79 \\
\bottomrule
\end{tabular}
\end{table}
\end{document}
答案2
尝试:
\documentclass[12pt,oneside]{book}
\usepackage[showframe]{geometry}
\usepackage{amsmath}
\usepackage{ragged2e}
\usepackage{booktabs, makecell, multirow, tabularx,
threeparttable, tabulary}
\renewcommand\theadfont{\small\bfseries} % for bold in table using \small
\renewcommand\theadgape{}
\usepackage[svgnames, table]{xcolor}
\usepackage{siunitx} %for table spacing to second row
\usepackage{graphicx}
\usepackage[font=small,
labelfont={bf,sf}, textfont={sf},
justification=centering]{caption}
\begin{document}
\begin{table}[ht] % <---
%\setlength{\tabcolsep}{1em}
\centering
\sisetup{table-format=3.2, % <---
table-space-text-post=\%,
round-mode=places, % <---
round-precision=2 % <---
}
\begin{tabular}{l *{3}{S}} % <---
\toprule
& \multicolumn{3}{c}{\thead{System Nuclear Accuracy}}\\ % <---
\cmidrule{2-4}
& {\thead{AA}} & {\thead{BB}} & {\thead{CC}} \\ % <---
\midrule
N & {10} & {10} & {10} \\
Mean & 33.83\,\% & 33.67\,\% & 33.78\,\% \\ % <---
Median & 44.33\,\% & 33.89\,\% & 44.83\,\% \\ % <---
Variance & 254.42 & 444.708 & 33.79 \\
\bottomrule
\end{tabular}
\end{table}
\end{document}