我想制作一个类似以下屏幕截图中的表格。我可以使用 \multicolumn 创建第二行,其中包含 S1、S2 等。在下一阶段,我无法拆分“V”和“I”的单元格。
答案1
表格中的垂直规则越少越好。如果我们接受这个公理,那么垂直线的正确数量就是零。它们没有任何用处,只是妨碍阅读。
此外,水平线应谨慎使用,主要用于分隔链接在一起的行块。垂直移动单元格内容是没有必要的:表格主体中的空白单元格意味着“重复上面的值”。
这是我对表格的建议,与 Svend Tveskæg 的建议非常相似,但在行标题的位置上有所不同。
请注意,\cmidrule(lr)
用于清楚地说明如何解释列组。
\documentclass{article}
\usepackage{booktabs}
\begin{document}
\begin{table}
\centering
\begin{tabular}{*{16}{l}}
\toprule
\multicolumn{2}{c}{Data1} & \multicolumn{14}{c}{Data2} \\
\cmidrule(lr){3-16}
&& \multicolumn{2}{c}{S1} & \multicolumn{2}{c}{S2}
& \multicolumn{2}{c}{S3} & \multicolumn{2}{c}{S4}
& \multicolumn{2}{c}{S5} & \multicolumn{2}{c}{S6}
& \multicolumn{2}{c}{S7} \\
\cmidrule(lr){3-4}\cmidrule(lr){5-6}\cmidrule(lr){7-8}\cmidrule(lr){9-10}
\cmidrule(lr){11-12}\cmidrule(lr){13-14}\cmidrule(lr){15-16}
&& V & I & V & I & V & I & V & I & V & I & V & I & V & I \\
\midrule
Subdata1 & Try1 &&&&&&&&&&&&&& \\
& Try2 &&&&&&&&&&&&&& \\
\midrule
Subdata2 & Try1 &&&&&&&&&&&&&& \\
& Try2 &&&&&&&&&&&&&& \\
\midrule
Subdata3 & Try1 &&&&&&&&&&&&&& \\
& Try2 &&&&&&&&&&&&&& \\
\bottomrule
\end{tabular}
\end{table}
\end{document}
答案2
以下是我的做法(参考了埃格尔合并):
\documentclass{article}
\usepackage[hmargin = 3cm]{geometry} % to avoid `overfull \hbox' warning
\usepackage{booktabs,multirow,makecell}
\def\mc#1#2{\multicolumn{#1}{c}{#2}}
\def\mr[#1]#2#3{\multirowcell{#2}[#1]{#3}}
\begin{document}
\begin{table}
\setlength\tabcolsep{9pt}
\centering
\begin{tabular}{*{16}{l}}
\toprule
\mc{2}{Data1}
& \mc{14}{Data2} \\
\cmidrule{3-16}
&& \mc{2}{S1}
& \mc{2}{S2}
& \mc{2}{S3}
& \mc{2}{S4}
& \mc{2}{S5}
& \mc{2}{S6}
& \mc{2}{S7} \\
\cmidrule(lr){3-4}
\cmidrule(lr){5-6}
\cmidrule(lr){7-8}
\cmidrule(lr){9-10}
\cmidrule(lr){11-12}
\cmidrule(lr){13-14}
\cmidrule(lr){15-16}
&& V & I & V & I & V & I & V & I & V & I & V & I & V & I \\
\midrule
\mr[-0.5ex]{2}{Subdata1} & Try1 &&&&&&&&&&&&&& \\
\cmidrule(l){2-16}
& Try2 &&&&&&&&&&&&&& \\
\midrule
\mr[-0.5ex]{2}{Subdata2} & Try1 &&&&&&&&&&&&&& \\
\cmidrule(l){2-16}
& Try2 &&&&&&&&&&&&&& \\
\midrule
\mr[-0.5ex]{2}{Subdata3} & Try1 &&&&&&&&&&&&&& \\
\cmidrule(l){2-16}
& Try2 &&&&&&&&&&&&&& \\
\midrule
& &&&&&&&&&&&&&& \\
\cmidrule(l){2-16}
& &&&&&&&&&&&&&& \\
\bottomrule
\end{tabular}
\end{table}
\end{document}
请注意没有任何垂直线;它们带来的困扰往往比帮助更大。
答案3
您无需考虑拆分单元格,但可以合并不同数量的单元格。正如您已经知道的,\multicolumn
它的语法非常简单,以下是使用不同合并生成前三行的方法。
- 我生成一行,所有单元格都是简单单元格
- 我创建了一行合并的 2 个单元格
- 我插入了合并的 14 单元格行
- 我小心地保留了所需的行,并将它们添加到多列格式规范中
\documentclass{article}
\renewcommand*{\familydefault}{\sfdefault}
\renewcommand*{\arraystretch}{1.5}
\begin{document}
\begin{tabular}{|l|c|c|c|c|c|c|c|c|c|c|c|c|c|c|c|}
\hline
\multicolumn{2}{|l|}{Data1} & \multicolumn{14}{c|}{Data 2} \\
\cline{3-16}
\multicolumn{2}{|c|}{} & \multicolumn{2}{l|}{S1} & \multicolumn{2}{l|}{S2}
& \multicolumn{2}{l|}{S3} & \multicolumn{2}{l|}{S4}
& \multicolumn{2}{l|}{S5} & \multicolumn{2}{l|}{S5}
& \multicolumn{2}{l|}{S7} \\
\cline{3-16}
\multicolumn{2}{|c|}{} & V & I & V & I & & & & & & & & & & \\
\hline
\end{tabular}
\end{document}
点击右侧的“链接”和“相关”链接了解有关合并的更多信息。
最后一点:考虑不要使用太多线条。这样的网格可能有助于以后输入数据(如果有意的话),否则可能会更难阅读。