我在乳胶中处理多行、多列表时遇到了困难。到目前为止,我有这个(混乱的)代码:
\begin{tabular}{cccccccccc}
\toprule
\multirow{2}{*}{\textbf {A}} &
\multirow{2}{*}{\textbf {B}} &
\multirow{2}{*}{\textbf {C}} &
\multicolumn{3}{c}{\textbf {D}} && D1 & D2 & D3 &
\multicolumn{3}{c}{\textbf {E}} && E1 & E2 & E3 &
\multirow{2}{*}{\textbf {F}}\\
\cmidrule(lr){1-10}
a & b & c & d1 & d2 & d3 & e1 & e3 & e3 & f\\
aa & bb & cc & dd1 & dd2 & dd3 & ee1 & ee3 & ee3 & ff
\bottomrule
\end{tabular}
理想情况下,表格看起来应该是这样的:
子标题 D1-E3 不应该加粗....
任何帮助都将受到赞赏。
答案1
我尝试稍微清理一下你的代码。
结果如下:
\documentclass{article}
\usepackage{booktabs}
\usepackage{multirow}
\begin{document}
\begin{tabular}{*{10}{c}}
\toprule
\multirow{2}{*}{\textbf{A}} & \multirow{2}{*}{\textbf{B}} & \multirow{2}{*}{\textbf{C}} &
\multicolumn{3}{c}{\textbf{D}} & \multicolumn{3}{c}{\textbf{E}} & \multirow{2}{*}{\textbf{F}}\\
\cmidrule{4-9}
&&& D1 & D2 & D3 & E1 & E2 & E3 & \\ \midrule
a & b & c & d1 & d2 & d3 & e1 & e3 & e3 & f\\
aa & bb & cc & dd1 & dd2 & dd3 & ee1 & ee3 & ee3 & ff\\
\bottomrule
\end{tabular}
\end{document}
它的渲染效果如下:
但是,如果您确实需要垂直线,我不知道如何仅在两行上进行操作......
享受!
答案2
我比较喜欢下面的表格设计:
\documentclass{article}
\usepackage{booktabs, makecell, multirow}
\renewcommand\theadfont{\bfseries\normalsize}
\renewcommand\theadgape{}
\begin{document}
\begin{tabular}{*{10}{c}}
\toprule
\multirow{2.5}{*}{\thead{A}}
& \multirow{2.5}{*}{\thead{B}}
& \multirow{2.5}{*}{\thead{C}}
& \multicolumn{3}{c}{\thead{D}}
& \multicolumn{3}{c}{\thead{E}}
& \multirow{2.5}{*}{\thead{F}} \\
\cmidrule(l){4-6} \cmidrule(l){7-9}
& & & D1 & D2 & D3 & E1 & E2 & E3 & \\
\midrule
a & b & c & d1 & d2 & d3 & e1 & e3 & e3 & f\\
aa & bb & cc & dd1 & dd2 & dd3 & ee1 & ee3 & ee3 & ff\\
\bottomrule
\end{tabular}
\end{document}
答案3
如果您确实想添加与水平规则兼容的垂直规则booktabs
(这完全不符合 的精神booktabs
),您应该尝试{NiceTabular}
。nicematrix
该环境在表格的单元格、行和列下创建 PGF/Tikz 节点,并且可以使用这些节点使用 Tikz 绘制您想要的任何规则。
\documentclass{article}
\usepackage{booktabs}
\usepackage{nicematrix}
\usepackage{tikz}
\begin{document}
\begin{NiceTabular}{*{10}{c}}
\toprule
\RowStyle{\bfseries}
\Block{2-1}{A}
& \Block{2-1}{B}
& \Block{2-1}{C}
& \Block{1-3}{D}
&&& \Block{1-3}{E}
&&& \Block{2-1}{F} \\
\cmidrule(l){4-9}
& & & D1 & D2 & D3 & E1 & E2 & E3 & \\
\midrule
a & b & c & d1 & d2 & d3 & e1 & e3 & e3 & f\\
aa & bb & cc & dd1 & dd2 & dd3 & ee1 & ee3 & ee3 & ff\\
\bottomrule
\CodeAfter \tikz \draw (1-|7) -- (3-|7) ;
\end{NiceTabular}
\end{document}
nicematrix
因为使用 PGF/Tikz 节点,所以您需要多次编译。
答案4
将垂直线添加到@Alexandre Quenon(编辑:抱歉弄混了)解决方案
\documentclass{article}
\usepackage{booktabs}
\usepackage{multirow}
\begin{document}
\begin{tabular}{cccccccccc}
\toprule
\multirow{2}{*}{\textbf{A}} & \multirow{2}{*}{\textbf{B}} & \multirow{2}{*}{\textbf{C}} &
\multicolumn{3}{c|}{\textbf{D}} & \multicolumn{3}{|c}{\textbf{E}} & \multirow{2}{*}{\textbf{F}}\\
\cmidrule{4-9}
&&& D1 & D2 & \multicolumn{1}{c|}{D3} & E1 & E2 & E3 & \\
\midrule
a & b & c & d1 & d2 & d3 & e1 & e3 & e3 & f\\
aa & bb & cc & dd1 & dd2 & dd3 & ee1 & ee3 & ee3 & ff\\
\bottomrule
\end{tabular}
\end{document}