我想创建一个这样的表格:
+------------+----------+
| M1 | M2 |
+--------+------+-----+------+---+
| Prog | E | S | E | S |
+--------+------+-----+------+---+
| P1 | 1 | 5 | 0.6 | 10|
| P2 | 2 | 7 | 2 | 6 |
+--------+------+-----+------+---+
根据这些例子,我写了这篇文章
\begin{document}
\begin{table}
\centering
\caption{Multiprogram sets}
\label{multiprogram}
\begin{tabular}{c|c|c|c|c|}
\cline{2-5}
& \multicolumn{2}{|c|c|}{M1} & \multicolumn{2}{|c|c|}{M2} \\
\cline{2-5}
& E & S & E & S\\
\hline
\multicolumn{1}{|c|}{P1} & 1 & 5 & 0.6 & 10\\
\hline
\multicolumn{1}{|c|}{P2} & 2 & 7 & 2 & 6 \\
\end{tabular}
\end{table}
\end{document}
但它无法工作,并且出现很多错误。我该如何修复它?
答案1
像这样:
\documentclass[twoside, a4paper]{article}
\usepackage{array}
\begin{document}
\begin{table}
\centering
\caption{Multiprogram sets}
\label{multiprogram}
\begin{tabular}{c|c|c|c|c|}
\cline{2-5}
& \multicolumn{2}{c|}{M1} & \multicolumn{2}{c|}{M2} \\
\cline{2-5}
& E & S & E & S\\
\hline
\multicolumn{1}{|c|}{P1} & 1 & 5 & 0.6 & 10\\
\hline
\multicolumn{1}{|c|}{P2} & 2 & 7 & 2 & 6 \\
\hline
\end{tabular}
\end{table}
\end{document}
tabularray
或者使用packageČ使列宽相等
\documentclass[twoside, a4paper]{article}
\usepackage[skip=1ex]{caption}
\usepackage{tabularray}
\begin{document}
\begin{table}
\centering
\caption{Multiprogram sets}
\label{multiprogram}
\begin{tblr}{hline{1}={2-Z}{solid}, hline{2-Z}=solid,
vline{1}={3-Z}{solid}, vline{2-Z}=solid,
colspec= {*{5}{Q[c, wd=3em]}},
}
\SetCell[r=2]{c}
& \SetCell[c=2]{c} M1
& & \SetCell[c=2]{c} M2
& \\
& E & S & E & S \\
P1 & 1 & 5 & 0.6 & 10 \\
P2 & 2 & 7 & 2 & 6 \\
\end{tblr}
\end{table}
\end{document}
答案2
如果你只想让代码编译,只需将 的两个实例替换\multicolumn{2}{|c|c|}
为\multicolumn{2}{c|}
。@JensHabricht 已经在评论中和Zarko 的回答。
此外,如果您希望表格具有更好的视觉吸引力,请考虑 (a) 为四个数据列提供相等的宽度,以及 (b) 将最后两个数据列中的数字与其显式或隐式小数标记对齐。进行这些调整的结果显示在以下屏幕截图中的第二个表格中,标记为“改进版本”。
\documentclass{article}
%% setup code for second version of table:
\usepackage{siunitx,array,calc}
\newcolumntype{T}[1]{S[table-format=#1]}
\newcommand\mc[1]{\multicolumn{1}{c|}{#1}}
\newcommand\mw[1]{\multicolumn{1}{wc{\widthof{0.6}}|}{#1}}
\begin{document}
\begin{table}
\centering
\caption{Initial version}
\label{multiprogram}
\begin{tabular}{c|c|c|c|c|}
\cline{2-5}
& \multicolumn{2}{c|}{M1} & \multicolumn{2}{c|}{M2} \\
\cline{2-5}
& E & S & E & S\\
\hline
\multicolumn{1}{|c|}{P1} & 1 & 5 & 0.6 & 10\\
\hline
\multicolumn{1}{|c|}{P2} & 2 & 7 & 2 & 6 \\
\end{tabular}
\bigskip\bigskip
\setlength\extrarowheight{2pt}
\caption{Improved version\strut}
\label{tab:multi}
\begin{tabular}{| c | c | c | T{1.1}| T{2.0} |}
\cline{2-5}
\mc{} & \multicolumn{2}{c|}{M1} & \multicolumn{2}{c|}{M2} \\
\cline{2-5}
\mc{} & \mw{E} & \mw{S} & \mw{E} & \mw{S} \\
\hline
P1 & 1 & 5 & 0.6 & 10 \\
\hline
P2 & 2 & 7 & 2 & 6 \\
\hline
\end{tabular}
\end{table}
\end{document}