我在表格环境中制作表格,列宽出现了一些奇怪的问题。在此示例中,第一行使用多列按 2 个组合并单元格。然后下一行有 2 个单独的单元格。我希望它在第一行标题下方均匀划分这些单元格,而不是为第一个条目 (A) 设置最小宽度,并用第二个条目 (B) 填充其余空间。
\begin{table}
\caption{Caption.}
\centering
\begin{tabular}{c|c|c|c|c|c}
\hline \hline
\multicolumn{2}{c|}{Long Header 1} & \multicolumn{2}{c|}{Long Header 2} & \multicolumn{2}{c}{Long Header 3} \\
\hline
A & B & A & B & A & B \\
\hline \hline
\end{tabular}
\end{table}
答案1
tabularx
您可以使用的列类型的居中版本X
:
\documentclass{article}
\usepackage{tabularx}
\newcolumntype{C}{>{\centering\arraybackslash}X}
\begin{document}
\begin{table}
\caption{Caption.}
\centering
\begin{tabularx}{0.7\textwidth}{C|C|C|C|C|C}
\hline \hline
\multicolumn{2}{c|}{Long Header 1} & \multicolumn{2}{c|}{Long Header 2} & \multicolumn{2}{c}{Long Header 3} \\
\hline
A & B & A & B & A & B \\
\hline \hline
\end{tabularx}
\end{table}
\end{document}
编辑:
为了使其与不同的标题一起工作,您必须告知tabularx
您正在使用\multicolumn
:
\documentclass{article}
\usepackage{tabularx}
\newcolumntype{C}{>{\centering\arraybackslash}X}
% Number of multicolumns here ↓ and ↓ here (source: https://tex.stackexchange.com/a/236156/134574)
\newcolumntype{D}{>{\hsize=\dimexpr2\hsize+2\tabcolsep+\arrayrulewidth\relax}C}
\begin{document}
\begin{table}
\caption{Caption.}
\centering
\begin{tabularx}{0.85\textwidth}{C|C|C|C|C|C}
\hline \hline
\multicolumn{2}{D|}{This is a very, very long Header 1} & \multicolumn{2}{D|}{Long Header 2} & \multicolumn{2}{D}{Long Header 3} \\
\hline
A & B & A & B & A & B \\
\hline \hline
\end{tabularx}
\end{table}
\end{document}
编辑2:
我对此并不感到自豪……
如果你坚持用一行代码,那么可以使用同一张表中的两个 tabularx 来实现更 hack 的版本。你没看错,Jimmy,两个!
\documentclass{article}
\usepackage{tabularx}
\newcolumntype{C}{>{\centering\arraybackslash}X}
\newcolumntype{D}{>{\hsize=\dimexpr2\hsize+2\tabcolsep+\arrayrulewidth\relax}C}
\begin{document}
\begin{table}
\caption{Caption.}
\centering
\begin{tabularx}{0.5\textwidth}{C|C|}
\hline \hline
\multicolumn{2}{D|}{This is a very, very long Header 1}\\
\hline
A & B\\
\hline \hline
\end{tabularx}%
\begin{tabularx}{0.5\textwidth}{C|C|C|C}
\hline \hline
\multicolumn{2}{c|}{Long Header 2} & \multicolumn{2}{c}{Long Header 3} \\
\hline
A & B & A & B \\
\hline \hline
\end{tabularx}
\end{table}
\end{document}