我正在尝试构建如下所示的表格。位置X
表示表格的条目。如何在 latex 中构建这样的表格?我很高兴开始使用该multirows
软件包,如下所示:
\begin{table}[h]
\begin{center}
\begin{tabular}{|c|c|c|c|c|c|c|}
\hline \\
\multirow{2}{*}{X} & \multicolumn{2}{c|}{X} & \multicolumn{2}{|c|}{X} & \multicolumn{2}{|c|}{X}\\
\cline{2-7}
&X & X & X & X & X & X \\
\hline \\
X & & & & & X & X \\
\hline \\
X & X & X & & & X & X \\
答案1
以下\multirow
和的组合\multicolumn
或许可以帮助您入门:
\documentclass{article}
\usepackage{multirow}
\begin{document}
\begin{tabular}{|l|c|c|}
\hline
xxxxxxx & \multicolumn{2}{c|}{x} \\
\hline
\multicolumn{1}{|r|}{xxx} & x &\multirow{2}{*}{x}\\
\cline{1-2}
\multicolumn{1}{|r|}{xxx} & x &\\
\hline
xxx & x &\multirow{2}{*}{x}\\
\cline{1-2}
xxx & x &\\
\hline
\multicolumn{1}{|r|}{xxx} & x &\multirow{2}{*}{x}\\
\cline{1-2}
\multicolumn{1}{|r|}{xxx} & x &\\
\hline
\end{tabular}
\end{document}
答案2
您\\
在 -command 的两边都有\hline
。这是错误的。使用\arraystretch
和\extrarowheight
来增加行高。
如果需要更多列宽,可以使用w
数组包中的固定宽度 -columns ( )。此外,您只能在多列中在列定义的右侧wc{1cm}
添加垂直规则命令 ( ),即,除非多列跨越第一列:|
c|
\documentclass{article}
\usepackage{array, multirow}
\setlength{\extrarowheight}{2pt}
\renewcommand*{\arraystretch}{1.2}
\begin{document}
\begin{table}[tbh!]
\centering
\begin{tabular}{|c|c|c|c|c|c|c|}
\hline
\multirow{2}{*}{X} & \multicolumn{2}{c|}{X} & \multicolumn{2}{c|}{X} & \multicolumn{2}{c|}{X}\\
\cline{2-7}
&X & X & X & X & X & X \\
\hline
X & & & & & X & X \\
X & X & X & & & X & X \\
X & X & X & & & X & X \\
X & X & X & X & X & X & X \\
X & X & X & X & X & X & X \\
X & X & X & X & X & & \\
X & & & X & X & & \\
X & & & X & X & & \\
\hline
\end{tabular}
\end{table}
\end{document}
答案3
- 您已
\hline
使用 row terminology终止\\
。不要这样做! - 你的桌子不完整(错过了它的结尾)
这些问题都在 @leandriis 的回答 (+19) 中得到解决。这里的许多表格设计专家通常建议“不要将表格内容锁定在垂直线和水平线的牢笼中”。您可以在Sveinung
答案 (+1) 中找到“解放”单元格内容的步骤。朝这个方向迈出的进一步步骤(为了答案的完整性)在下面的 MWE 中,其中删除了所有垂直线,对于真正需要的水平线,使用booktabs
包中的规则:
\documentclass{article}
\usepackage{booktabs, multirow}
\newcommand\mcc[1]{\multicolumn{2}{c}{#1}}
\begin{document}
\begin{table}[tbh!]
\centering % instead `\begin{center} which introduce additional vertical space
\renewcommand*{\arraystretch}{1.1}
\begin{tabular}{ *{7}{c} }
\toprule
\multirow{2.4}{*}{X} & \mcc{XXX} & \mcc{XXX} & \mcc{XXX}\\
\cmidrule(l){2-3}\cmidrule(l){4-5}\cmidrule(l){6-7}
& XX & XX & XX & XX & XX & XX \\
\midrule
XX & & & & & XX & XX \\
XX & XX & XX & & & XX & XX \\
XX & XX & XX & & & XX & XX \\
\addlinespace
XX & XX & XX & XX & XX & XX & XX \\
XX & XX & XX & XX & XX & XX & XX \\
XX & XX & XX & XX & XX & & \\
\addlinespace
XX & & & XX & XX & & \\
XX & & & XX & XX & & \\
\bottomrule
\end{tabular}
\end{table}
\end{document}