多列(表格)问题

多列(表格)问题

过去几天我一直在尝试让我的桌子正常工作。但我无法解决这个问题。我希望我的桌子看起来如下所示(图 1)。

在此处输入图片描述

使用我的以下代码

\begin{table}[p]
\begin{tabular}{ccccccccc}
    \hline
    Compound               & \multicolumn{4}{c}{A}                                                                          & \multicolumn{4}{c}{B}                                                                         \\
    AT                     & \#1                     & \#2                    & \#1                    & \#2                    & \#1                    & \#2                    & \#1                    & \#2                    \\
    feedstock              & \multicolumn{2}{c}{C}                          & \multicolumn{2}{c}{B}                         & \multicolumn{2}{c}{C}                         & \multicolumn{2}{c}{B}                         \\ \hline
    Par 1                  & 1                      & 1                     & 2                     & 2                     & 3                     & 3                     & 4                     & 4                     \\
    Par 2                  & 1                      & 1                     & 2                     & 2                     & 3                     & 3                     & 4                     & 4                     \\
    Par 3                  & 1                      & 1                     & 2                     & 2                     & 3                     & 3                     & 4                     & 4                     \\
    Par 4                  & \multicolumn{2}{c}{1}                          & \multicolumn{2}{c}{2}                         & \multicolumn{2}{c}{3}                         & \multicolumn{2}{c}{4}                         \\ \hline
    \multicolumn{9}{l}{Blah Blah Blah Blah Blah Blah Blah Blah Blah Blah Blah Blah Blah Blah Blah Blah Blah Blah Blah Blah Blah Blah Blah Blah Blah Blah Blah Blah Blah Blah Blah Blah Blah Blah Blah Blah Blah Blah Blah Blah Blah Blah Blah Blah Blah Blah Blah Blah Blah Blah Blah Blah Blah Blah} \\ \hline
\end{tabular} \end{table}

我得到了(图 2): 在此处输入图片描述

我尝试使用 tabularx 并定义每列的大小。它一直有效,直到我添加了最后一行(这是所有 9 列的合并形式)。此外,标题“B”和最后一列(图 1)在图 2 中超出了页面范围。

如果有人能帮助我,那就太好了。此外,如果能详细解释一下解决方案,我将不胜感激。

提前致谢。

答案1

据我所知,“Blah Blah ...”材料与前面的表格材料仅间接相关。“Blah Blah”材料可能是某种传说吗?如果这个猜测是正确的,那么你最好不是将其放置在tabular环境内。相反,我建议您加载threeparttable包并将图例放置在tablenotes环境中,该环境(得益于环境的幕后工作threeparttable)将自动与前面的环境一样宽tabular

如果您对threeparttable包的名称感到好奇:它可以处理三种类型的元素:表格标题(在您的代码中不存在)、tabular类似材料和tablenotes材料。但是,即使没有标题,该包也可以工作。

在此处输入图片描述

\documentclass{article}
\usepackage[flushleft]{threeparttable}
\begin{document}
\begin{table}
\centering
\begin{threeparttable}
\begin{tabular}{@{} l *{8}{c} @{}}
\hline
Compound  & \multicolumn{4}{c}{A} & \multicolumn{4}{c}{B} \\
AT  & \#1 & \#2 & \#1 & \#2 & \#1 & \#2 & \#1 & \#2 \\
feedstock & \multicolumn{2}{c}{C} & \multicolumn{2}{c}{B} 
          & \multicolumn{2}{c}{C} & \multicolumn{2}{c}{B} \\ 
\hline
 Par 1 & 1 & 1 & 2 & 2 & 3 & 3 & 4 & 4 \\
 Par 2 & 1 & 1 & 2 & 2 & 3 & 3 & 4 & 4 \\
 Par 3 & 1 & 1 & 2 & 2 & 3 & 3 & 4 & 4 \\
 Par 4 & \multicolumn{2}{c}{1} & \multicolumn{2}{c}{2} 
       & \multicolumn{2}{c}{3} & \multicolumn{2}{c}{4} \\ 
\hline
\end{tabular}

\smallskip
\begin{tablenotes}
\item[]Notes: Blah Blah Blah Blah Blah Blah Blah Blah Blah Blah Blah Blah Blah Blah Blah Blah Blah Blah Blah Blah Blah Blah Blah Blah Blah Blah Blah Blah Blah Blah Blah Blah Blah Blah Blah Blah Blah Blah Blah Blah Blah Blah Blah Blah Blah Blah Blah Blah Blah Blah Blah Blah Blah Blah
\end{tablenotes}
\end{threeparttable}
\end{table}
\end{document}

答案2

由于您用标签标记了您的问题,tabularx我建议使用这个包。除此之外,您还可以通过使用booktabs水平规则包获得更好的结果:

\documentclass{article}
\usepackage{booktabs, tabularx}
\newcolumntype{C}{>{\centering\arraybackslash}X}
\newcommand\mcc[1]{\multicolumn{2}{c}{#1}}

%---------------- show page layout. don't use in a real document!
\usepackage{showframe}
\renewcommand\ShowFrameLinethickness{0.15pt}
\renewcommand*\ShowFrameColor{\color{red}}
%---------------------------------------------------------------%

\begin{document}
    \begin{table}[p]
\begin{tabularx}{\linewidth}{@{} c *{8}{C} @{}}
    \toprule
Compound    & \multicolumn{4}{c}{A}         & \multicolumn{4}{c}{B}         \\
    \cmidrule(lr){2-5}\cmidrule(l){6-9}
    AT      & \#1   & \#2   & \#1   & \#2   & \#1   & \#2   & \#1   & \#2   \\
    \cmidrule(lr){2-3}\cmidrule(lr){4-5}
    \cmidrule(lr){6-7}\cmidrule(lr){8-9}
feedstock   & \mcc{C}       & \mcc{B}       & \mcc{C}       & \mcc{B}       \\
    \midrule
Par 1       & 1     & 1     & 2     & 2     & 3     & 3     & 4     & 4     \\
Par 2       & 1     & 1     & 2     & 2     & 3     & 3     & 4     & 4     \\
Par 3       & 1     & 1     & 2     & 2     & 3     & 3     & 4     & 4     \\
Par 4       & \mcc{1}       & \mcc{2}       & \mcc{3}       & \mcc{4}       \\
    \midrule
\multicolumn{9}{@{} p{\linewidth} @{}}{Blah Blah Blah Blah Blah Blah Blah Blah Blah Blah Blah Blah Blah Blah Blah Blah Blah Blah Blah Blah Blah Blah Blah Blah Blah Blah Blah Blah Blah Blah Blah Blah Blah Blah Blah Blah Blah Blah Blah Blah Blah Blah Blah Blah Blah Blah Blah Blah Blah Blah Blah Blah Blah Blah} \\
    \bottomrule
\end{tabularx}
    \end{table}
\end{document}

在此处输入图片描述

(红线表示文字边框)

答案3

您可以向列添加宽度参数,例如\multicolumn{9}{p{\linewidth}}。也许\multicolumn{9}{p{.7\linewidth}}效果会更好。将其添加到您的示例中会产生以下结果输出 https://i.stack.imgur.com/Axj6X.jpg

这是 mwe 的完整代码

\documentclass{article}
\begin{document}
\begin{table}[p]
\begin{tabular}{ccccccccc}
\hline
Compound               & \multicolumn{4}{c}{A}                                                                          & \multicolumn{4}{c}{B}                                                                         \\
AT                     & \#1                     & \#2                    & \#1                    & \#2                    & \#1                    & \#2                    & \#1                    & \#2                    \\
feedstock              & \multicolumn{2}{c}{C}                          & \multicolumn{2}{c}{B}                         & \multicolumn{2}{c}{C}                         & \multicolumn{2}{c}{B}                         \\ \hline
Par 1                  & 1                      & 1                     & 2                     & 2                     & 3                     & 3                     & 4                     & 4                     \\
Par 2                  & 1                      & 1                     & 2                     & 2                     & 3                     & 3                     & 4                     & 4                     \\
Par 3                  & 1                      & 1                     & 2                     & 2                     & 3                     & 3                     & 4                     & 4                     \\
Par 4                  & \multicolumn{2}{c}{1}                          & \multicolumn{2}{c}{2}                         & \multicolumn{2}{c}{3}                         & \multicolumn{2}{c}{4}                         \\ \hline
\multicolumn{9}{p{\linewidth}}{Blah Blah Blah Blah Blah Blah Blah Blah Blah 
Blah Blah Blah Blah Blah Blah Blah Blah Blah Blah Blah Blah Blah Blah Blah Blah Blah Blah Blah Blah Blah Blah Blah Blah Blah Blah Blah Blah Blah Blah Blah Blah Blah Blah Blah Blah Blah Blah Blah Blah Blah Blah Blah Blah Blah} \\ \hline
\end{tabular} \end{table}
\end{document}

相关内容