我有以下代码,需要在最后一个主列中添加 2 个子列。我编写的代码如下:
\begin{table}
\centering
\begin{tabular}{|c|l|c|c|}
\hline
\multicolumn{1}{|c|}{\bfseries First} & \multicolumn{1}{|c|}{\bfseries Characteristics} & \multicolumn{2}{|c|}{\bfseries Implemented in}\\ A&B \\ \hline
a & b & c & d \\
1 & 2 & 3 & 4\\
\end{tabular}
\end{table}
结果是
我想要将“A”和“B”作为“实施于”列中的子列。
答案1
您可以使用\\ && A&B
而不是\\ A&B
。前两个&&
是跳过前两列。
笔记:
- 根据 Bernard 的评论, 包裹
multirow
用于将前两个标题垂直居中放置在两行上。 - 根据@AlanMunn 的评论,
\cline{3-4}
可以用来在指定的列上画线。
不过,我强烈建议你看看包裹booktabs
对于表格:
代码:
\documentclass{article}
\usepackage{multirow}
\begin{document}
\begin{tabular}{|c|l|c|c|}
\hline
\multirow{2}{*}{\bfseries First} &
\multirow{2}{*}{\bfseries Characteristics} &
\multicolumn{2}{|c|}{\bfseries Implemented in}\\ \cline{3-4}
&& A&B \\ \hline
%------
& b & c & d \\
1 & 2 & 3 & 4\\
\end{tabular}
\end{document}
代码:booktabs
\documentclass{article}
\usepackage{booktabs}
\usepackage{multirow}
\begin{document}
\begin{tabular}{c l c c}
\toprule
\multirow{2}{*}{\bfseries First} &
\multirow{2}{*}{\bfseries Characteristics} &
\multicolumn{2}{c}{\bfseries Implemented in}\\ \cmidrule(lr){3-4}
&& A&B \\ \cmidrule(lr){1-4}
%------
& b & c & d \\
1 & 2 & 3 & 4\\
\bottomrule
\end{tabular}
\end{document}
答案2
使用新包tabularray
很简单。使用它你需要为每一列插入一个 & 符号,即在你的情况下每行三个 & 符号:
\documentclass{article}
\usepackage{tabularray}
\UseTblrLibrary{booktabs}
\begin{document}
\begin{table}[ht]
\centering
\begin{tblr}{vlines,
colspec={c l Q[c,wd=3.3em] Q[c,wd=3.3em]},
row{1}={font=\bfseries},
}
\toprule
\SetCell[r=2]{c} First
& \SetCell[r=2]{c} Characteristics
& \SetCell[c=2]{c} Implemented in
& \\
\midrule
& & A & B \\
\midrule
& b & c & d \\
1 & 2 & 3 & 4 \\
\bottomrule
\end{tblr}
\end{table}
\end{document}