我有一张有 7 列的表格。第一列有长字符,其他 6 列必须具有相同的宽度。我写了这段代码,但无法使最后 6 列具有相同的列宽。这是我的代码:
\begin{table}[h]
\begin{adjustbox}{width=1\textwidth}
\begin{threeparttable}
\caption{Tax-Benefit Structure\tnote{a}}
\centering
\caption{Social Expenditure}
\begin{tabular}{l*{6}{c}r}
\hline
& \multicolumn{3}{c}{Social Expenditure Percentage (\%)} & \multicolumn{3}{c}{GDP Percentage (\%)} \\[-0.5ex]
Type of Social Expenditure & 2005 & 2010 & 2015 & 2005 & 2010 & 2015 \\[0.5ex]
\hline
Health & 17,8 & 3 & 21,9 & 1,2 & 1,9 & 2,7 \\
Promotion of Social Actions & 1,7 & 14,1 & 20,3 & 0,1 & 1,2 & 2,5 \\
Social Welfare & 30,1 & 18,4 & 20,4 & 2,1 & 6 & 2,5 \\
Education & 8,4 & 43 & 35,8 & 3,4 & 3,7 & 4,3 \\
Science \& Technology & 0,1 & 0,3 & 0,7 & 0 & 0 & 0,1 \\
Others & 0,1 & 1,8 & 0,9 & 0 & 0,2 & 0,1 \\
Total & 100 & 100 & 100 & 6,9 & 8,7 & 2,1 \\
\hline
\end{tabular}%
\label{tab:addlabel}%
\end{threeparttable}
\end{adjustbox}
\end{table}%
答案1
对于第 2 至第 4 列,没有办法使用如此宽的标题来获得相等的列;另一方面,“(\%)”已经表明您正在使用百分比,因此您可以省略该词。
现在siunitx
可以轻松获得相等的列。
\documentclass{article}
\usepackage{threeparttable,booktabs,siunitx}
\sisetup{output-decimal-marker={,}}
\begin{document}
\begin{table}[htp]
\begin{threeparttable}
\caption{Tax-Benefit Structure\tnote{a}}\label{tab:addlabel}%
\centering
\caption{Social Expenditure}
\begin{tabular}{
@{}
l
*{6}{S[table-format=3.1]}
@{}
}
\toprule
Type of Social Expenditure & \multicolumn{3}{c}{Social Expenditure} & \multicolumn{3}{c}{GDP} \\
& \multicolumn{3}{c}{(\%)} & \multicolumn{3}{c}{(\%)} \\
\cmidrule(lr){2-4}\cmidrule(l){5-7}
& {2005} & {2010} & {2015} & {2005} & {2010} & {2015} \\
\midrule
Health & 17,8 & 3 & 21,9 & 1,2 & 1,9 & 2,7 \\
Promotion of Social Actions & 1,7 & 14,1 & 20,3 & 0,1 & 1,2 & 2,5 \\
Social Welfare & 30,1 & 18,4 & 20,4 & 2,1 & 6 & 2,5 \\
Education & 8,4 & 43 & 35,8 & 3,4 & 3,7 & 4,3 \\
Science \& Technology & 0,1 & 0,3 & 0,7 & 0 & 0 & 0,1 \\
Others & 0,1 & 1,8 & 0,9 & 0 & 0,2 & 0,1 \\
\midrule
Total & 100 & 100 & 100 & 6,9 & 8,7 & 2,1 \\
\bottomrule
\end{tabular}
\end{threeparttable}
\end{table}
\end{document}
答案2
在你的序言中尝试下一个命令:
\newcolumntype{C}[1]{>{\centering\arraybackslash}p{#1}}
然后使用:
\begin{tabular}{l*{6}{C{1.85cm}}}
您可以根据需要更改长度,当然也可以使用 \resizebox{\textwidth}{!}{ %Your tabular here }