我正在尝试构建一个表,使用以下代码:
\begin{table}[]
\begin{tabular}{@{}lllll@{}}
\toprule
\multicolumn{3}{c}{gamma function} & \multicolumn{2}{c}{\begin{tabular}[c]{@{}c@{}}zeta and gamma \\ function\end{tabular}} \\ \midrule
1 & 1 & 1 & 1 & 1 \\
2 & 3 & 4 & 5 & 6 \\
4 & 7 & 8 & 43 & 21 \\ \bottomrule
\end{tabular}
\end{table}
但是第三列和第四列的宽度不同。我尝试为所有列设置相同的宽度,但没有成功。我该如何解决这个问题?
答案1
这是一个将所有五列设置为等宽的解决方案。它采用了包w
提供的列类型。列内容通过列的第一个参数中的选项array
居中设置。c
w
\documentclass{article}
\usepackage{booktabs}
\usepackage{array} % for "w" column type
\begin{document}
\begin{table}
\begin{tabular}{@{} *{5}{w{c}{11mm} }@{}}
\toprule
\multicolumn{3}{@{}c}{gamma function} &
\multicolumn{2}{c}{\begin{tabular}[c]{@{}c@{}}
zeta and gamma \\ function\end{tabular}} \\
\midrule
1 & 1 & 1 & 1 & 1 \\
2 & 3 & 4 & 5 & 6 \\
4 & 7 & 8 & 43 & 21 \\
\bottomrule
\end{tabular}
\end{table}
\end{document}
答案2
我建议,用一个空列来分隔各组,siunitx
并makecell
作为列标题:
\documentclass{article}
\usepackage{makecell}
\usepackage{booktabs}
\usepackage{siunitx}
\begin{document}
\begin{table}
\sisetup{table-format=2.0, table-number-alignment=center}
\begin{tabular}{@{}SSSc@{\enspace}SS}
\toprule
\multicolumn{3}{@{}c}{\thead{gamma \\ function}} & & \multicolumn{2}{@{\enspace}c}{\makebox[0pt]{\thead{zeta and\\ gamma \\ functions}}} \\
\midrule
1 & 1 & 1 & & 1 & 1 \\
2 & 3 & 4 & & 5 & 6 \\
4 & 7 & 8 & & 43 & 21 \\
\bottomrule
\end{tabular}
\end{table}
\end{document}