
我想製作一張類似於下面螢幕截圖中的表格。我可以使用 \multicolumn 用 S1、S2 等創建第二行。
答案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}
點擊右側的“鏈接”和“相關”鏈接,以了解有關合併的更多資訊。
最後一句話:考慮不要使用這麼多行。如果有意的話,這樣的網格可能有助於稍後輸入數據,否則可能會更難以閱讀。