Latex 多列,多行表

Latex 多列,多行表

我在乳胶中处理多行、多列表时遇到了困难。到目前为止,我有这个(混乱的)代码:

\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}

结果

相关内容