如何使最后六列的宽度相同?

如何使最后六列的宽度相同?

我有一张有 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 }

相关内容