我想创建这种表格,其中有 3 个大列,并且在某一时刻该列被分成两个较小的列。请注意,列并未在整个空间中被划分。
如何在较大的列内创建具有自定义列大小的表?
|------------------------------------------------------------|
| | A | Most Mon |
-------------------------------------------------------------|
| Methods | Time [s] | RunCount | Time [s] | RunCount |
|----------------|---------------------|---------------------|
| C | | | 4 | 1 |
| D | | | 5 | 2 |
| E | | | 6 | 3 |
-------------------------------------------------------------|
答案1
事实上,情况恰恰相反;最初您声明 5 列,然后在第一行中,使用\multicolumn
跨越一些单元格来占据其中的 5 列。
在以下示例中,包siunitx
和booktabs
用于改进表格格式:
\documentclass{article}
\usepackage{siunitx}
\usepackage{booktabs}
\begin{document}
\noindent\begin{tabular}{lSSSS}
\toprule
& \multicolumn{2}{c}{A} & \multicolumn{2}{c}{Most Mon} \\
\cmidrule(r){2-3}\cmidrule(l){4-5}
Methods & {Time [\si{\second}]} & {RunCount} & {Time [\si{\second}]} & {RunCount} \\
\midrule
C & 12.3 & 5 & 34.6 & 7 \\
D & 1.35 & 5 & 4.93 & 7 \\
\bottomrule
\end{tabular}
\end{document}
当然,您也可以使用任何其他列类型(并以其他方式处理可能的对齐) ,S
例如c
、、或。l
r
p{<length>}
在评论中,有人要求制作带有垂直规则的表格;这里是:
\documentclass{article}
\usepackage{siunitx}
\begin{document}
\noindent\begin{tabular}{| l | S | S | S | S |}
\cline{2-5}
\multicolumn{1}{c|}{}& \multicolumn{2}{c|}{A} & \multicolumn{2}{c|}{Most Mon} \\
\hline
Methods & {Time [\si{\second}]} & {RunCount} & {Time [\si{\second}]} & {RunCount} \\
\hline
C & 12.3 & 5 & 34.6 & 7 \\
D & 1.35 & 5 & 4.93 & 7 \\
\hline
\end{tabular}
\end{document}
答案2
另一种尝试M
是定义用于居中的列类型,并通过在单元格中使用数字对齐\tablenum[format]{num}
。
代码
\documentclass[border=10pt]{standalone}
\usepackage{array,siunitx}
\begin{document}
\newcolumntype{M}{>{\centering\arraybackslash}m{2cm}}
%\begin{table}%[!htb]
%\centering
%\caption{The caption}
\begin{tabular}{*{6}{|M}|}
\hline
\multicolumn{2}{|c|}{} & \multicolumn{2}{c}{A} & \multicolumn{2}{|c|}{Most Mon}\\ \hline
\multicolumn{2}{|c|}{Methods} & Time [s] & RunCount &Time [s] & RunCount\\ \hline
\multicolumn{2}{|c|}{C} &\tablenum[table-format=4.4]{3.5} & &4 & 1 \\
\multicolumn{2}{|c|}{D} &\tablenum{3.75} & &5 & 2 \\
\multicolumn{2}{|c|}{E} &\tablenum{23.6} & &6 & 3 \\ \hline
\end{tabular}
%\end{table}