如何向标题添加子标题

如何向标题添加子标题

我目前有一个 8 列 5 行的表格,我想添加一个从 C4 到 C6 的子列。例如,这是我的表格下面的代码

\usepackage{adjustbox}
    \begin{table}[ht]
        \centering
        \begin{adjustbox}{width=1\textwidth,center=\textwidth}
        \small
        \begin{tabular}{rrrrrrrr}
          \hline
         c1 & c2 & c3 & c4  & c5 & c6 & c7 & c8 \\ 
          \hline
        r1 & 8.95e-04 & 7.35e-04 & 4.78e-06 &  10 & 0.52 & 0.67 & 0.30 \\ 
           r2 & 7.08e-21 & 2.09e-02 & 1.70e-26 &  54 & 0.55 & 0.64 & 0.25 \\ 
          r3 & 4.94e-04 & 5.50e-02 & 3.52e-06 &  17 & 0.38 & 0.61 & 0.13 \\ 
          r4 & 1.16e-06 & 6.65e-02 & 5.54e-08 &  10 & 0.52 & 0.62 & 0.28 \\ 
           r5 & 1.27e-05 & 8.61e-02 & 5.20e-07 &  10 & 0.53 & 0.66 & 0.27 \\ 
           \hline
        \end{tabular}
        \end{adjustbox}
        \caption{table example} 
        \end{table} 

输出如下:表格1

但是,我需要做的是在 C4、C5、C6 顶部添加一个标题,并将 C4、C5、C6 向下推。以下是我想要实现的目标:

表2

顶列与其他列对齐,且相应列位于顶列下方

答案1

在这里,使用\multicolumn

\documentclass{article}
\usepackage{adjustbox}
\usepackage{booktabs}
\begin{document}
    \begin{table}[ht]
        \centering
        \begin{adjustbox}{width=1\textwidth,center=\textwidth}
        \small
        \begin{tabular}{rrrrrrrr}
        \toprule
            c1 &       c2 &       c3 &                     c4 & c5 &   c6 &   c7 &   c8 \\
        \cmidrule(lr){4-6}
               &          &          & \multicolumn3r{c4--c6}             &      &      \\
        \midrule
            r1 & 8.95e-04 & 7.35e-04 &               4.78e-06 & 10 & 0.52 & 0.67 & 0.30 \\
            r2 & 7.08e-21 & 2.09e-02 &               1.70e-26 & 54 & 0.55 & 0.64 & 0.25 \\
            r3 & 4.94e-04 & 5.50e-02 &               3.52e-06 & 17 & 0.38 & 0.61 & 0.13 \\
            r4 & 1.16e-06 & 6.65e-02 &               5.54e-08 & 10 & 0.52 & 0.62 & 0.28 \\
            r5 & 1.27e-05 & 8.61e-02 &               5.20e-07 & 10 & 0.53 & 0.66 & 0.27 \\
        \bottomrule
        \end{tabular}
        \end{adjustbox}
        \caption{table example} 
        \end{table} 
\end{document}

在此处输入图片描述

\multicolumn{number of columns}{alignment}{text}可能不言自明。如果您的参数只有一个标记,则可以省略括号,而我倾向于这样做 --- 因此我在这里写了\multicolumn3r而不是\multicolumn{3}{r}。从功能上讲,它们是相同的。

我还使用了包提供的规则booktabs来改善表格的整体外观。

顺便说一句,对于减号,您可能想要使用$-$而不是-;后者您会得到一个破折号,这是不一样的。

答案2

如前所述,\multicolumn命令可用于共享列标题。以下 MWE 还包含一些可以改进表格的题外建议:对于水平线,我使用了包中的命令booktabs。为了改善表格列中数字的对齐方式,我使用了包S中的类型列。由于在表格上siunitx使用不可避免地会导致整个文档中的字体大小不一致,这是您可能想要避免的,所以我完全删除了环境。表格应该已经足够窄以适合可用的文本宽度。如果您仍然坚持使表格与文本宽度完全一样宽,您可能需要使用:adjustboxadjustboxtabular*

在此处输入图片描述

\documentclass{article}
\usepackage{booktabs}
\usepackage{siunitx}
\begin{document}


\begin{table}[ht]
    \centering
    \caption{table example}
    \begin{tabular}{r*{3}{S[table-format=1.2e-2]}S[table-format=2]*{3}{S[table-format=1.2]}}
      \toprule
      c1 & {c2}     & {c3}     &\multicolumn{3}{c}{common header} & {c7} & {c8} \\ \cmidrule{4-6}
         &          &          & {c4}     & {c5}& {c6} &      &    \\ 
      \midrule
      r1 & 8.95e-04 & 7.35e-04 & 4.78e-06 &  10 & 0.52 & 0.67 & 0.30 \\ 
      r2 & 7.08e-21 & 2.09e-02 & 1.70e-26 &  54 & 0.55 & 0.64 & 0.25 \\ 
      r3 & 4.94e-04 & 5.50e-02 & 3.52e-06 &  17 & 0.38 & 0.61 & 0.13 \\ 
      r4 & 1.16e-06 & 6.65e-02 & 5.54e-08 &  10 & 0.52 & 0.62 & 0.28 \\ 
      r5 & 1.27e-05 & 8.61e-02 & 5.20e-07 &  10 & 0.53 & 0.66 & 0.27 \\ 
      \bottomrule
    \end{tabular} 
\end{table} 


\begin{table}[ht]
    \sisetup{output-exponent-marker=\ensuremath{\mathrm{E}}}
    \centering
    \caption{table example}
    \begin{tabular}{r*{3}{S[table-format=1.2e-2]}S[table-format=2]*{3}{S[table-format=1.2]}}
      \toprule
      c1 & {c2}     & {c3}     &\multicolumn{3}{c}{common header} & {c7} & {c8} \\ \cmidrule{4-6}
         &          &          & {c4}     & {c5}& {c6} &      &    \\ 
      \midrule
      r1 & 8.95e-04 & 7.35e-04 & 4.78e-06 &  10 & 0.52 & 0.67 & 0.30 \\ 
      r2 & 7.08e-21 & 2.09e-02 & 1.70e-26 &  54 & 0.55 & 0.64 & 0.25 \\ 
      r3 & 4.94e-04 & 5.50e-02 & 3.52e-06 &  17 & 0.38 & 0.61 & 0.13 \\ 
      r4 & 1.16e-06 & 6.65e-02 & 5.54e-08 &  10 & 0.52 & 0.62 & 0.28 \\ 
      r5 & 1.27e-05 & 8.61e-02 & 5.20e-07 &  10 & 0.53 & 0.66 & 0.27 \\ 
      \bottomrule
    \end{tabular} 
\end{table} 

\begin{table}[ht]
    \centering
    \caption{table example}
    \begin{tabular*}{\linewidth}{r@{\extracolsep{\fill}}*{3}{S[table-format=1.2e-2]}S[table-format=2]*{3}{S[table-format=1.2]}}
      \toprule
      c1 & {c2}     & {c3}     &\multicolumn{3}{c}{common header} & {c7} & {c8} \\ \cmidrule{4-6}
         &          &          & {c4}     & {c5}& {c6} &      &    \\ 
      \midrule
      r1 & 8.95e-04 & 7.35e-04 & 4.78e-06 &  10 & 0.52 & 0.67 & 0.30 \\ 
      r2 & 7.08e-21 & 2.09e-02 & 1.70e-26 &  54 & 0.55 & 0.64 & 0.25 \\ 
      r3 & 4.94e-04 & 5.50e-02 & 3.52e-06 &  17 & 0.38 & 0.61 & 0.13 \\ 
      r4 & 1.16e-06 & 6.65e-02 & 5.54e-08 &  10 & 0.52 & 0.62 & 0.28 \\ 
      r5 & 1.27e-05 & 8.61e-02 & 5.20e-07 &  10 & 0.53 & 0.66 & 0.27 \\ 
      \bottomrule
    \end{tabular*} 
\end{table} 
        
\end{document}

相关内容