将 stackbox 与多列结合起来

将 stackbox 与多列结合起来

我试图使多列表格尽可能小,并希望将第一行堆叠起来。但是,当我尝试使用 \stackbox 选项时,名称会继续到下一个未包含在多列中的名称。为了清晰起见,我添加了一张图片和我的程序代码。

enter image description here

\begin{table}[h!]
    \caption{XXX}
     \label{tab:PECs}
     \begin{adjustbox}{center,max width=\linewidth}
      \begin{tabular}{lll}
      \toprule   
        {} & \multicolumn{2}{l}\stackbox{Durchschnittlicher Verbrauch\\ pro Woche in \%} \\
      \cmidrule{2-3} 
       \small ABs & \small {Reaktor 1 und 2} & \small {Reaktor 3 und 4}  \\
      \midrule
\small CPX    & -83,7481154     & -47,2712685     \\
\small ETM    & -5,65120427     & 11,0344732      \\
\small ETM-H\textsubscript{2}O & -1,71578858     & 15,4926193      \\
\small RXM    & -18,4440202     & -17,1456878     \\
\small SMX    & -5,37574324     & 14,2887729      \\
\small TCC    & -70,281838      & -49,0324859     \\
\small TMP    & -11,4882087     & -9,21633665     \\ 
      \bottomrule
    \end{tabular}
  \end{adjustbox}
\end{table}\\

答案1

  • 请始终提供 MWE(最小工作示例),一个完整的小文档(参见@Barbara Beeton 评论)。
  • 我猜那个表格是在两列文档中
  • 对于具有两行文本的单元格,我不会使用adjustbox包和环境,这可以更简单地获得,例如使用规定的单元格宽度或使用\makecell同名包中定义的
  • 对于您的表格,我将使用tabularraybooktabs和包。有了它们siunitxmhchem表格代码更简单,编译结果也更好:

enter image description here

\documentclass[twocolumn, ngerman]{article}
\usepackage{lipsum} % for dummy text filler

\usepackage{babel}
\usepackage[skip=1ex]{caption}
\usepackage[version=4]{mhchem}
\usepackage{tabularray}
\UseTblrLibrary{booktabs, siunitx}
\sisetup{locale = DE}

\begin{document}
\lipsum[66]
    \begin{table}[ht]
\caption{XXX}
\label{tab:PECs}
    \begin{tblr}{colspec  = {@{} l *{2}{X[c, si={table-format=-2.8}]} @{}},
                 rowsep   = 1pt,
                 row{1,2} = {guard, font=\small\bfseries, m}
                 }
      \toprule
             &   \SetCell[c=2]{c}    {Durchschnittlicher Verbrauch\\ pro Woche in \%}
                                &                   \\
      \cmidrule{2-3}
ABs          & Reaktor 1 und 2  & Reaktor 3 und 4   \\
      \midrule
CPX          & -83,7481154      & -47,2712685       \\
ETM          &  -5,65120427     & 11,0344732        \\
ETM-\ce{H2O}& -1,71578858       & 15,4926193        \\
RXM          & -18,4440202      & -17,1456878       \\
SMX          & -5,37574324      & 14,2887729        \\
TCC          & -70,281838       & -49,0324859       \\
TMP          & -11,4882087      & -9,21633665       \\
      \bottomrule
    \end{tblr}
\end{table}
\lipsum
\end{document}

附录:
但是,如果您出于某种原因坚持要编写表格,那么您需要}在多列单元格中添加缺失值:

\multicolumn{2}{l}{\stackbox{Durchschnittlicher Verbrauch\\ pro Woche in \%}} \\ 

(观察}}单元格末尾的两个)

编译结果如下:

enter image description here

答案2

我不知道\stackbox是什么,但实现它并不难。

绝不需要adjustbox围在桌子周围。

下面我将展示\normalsize这个表已经足够好了,以及如何使它变得和一样宽\columnwidth

\documentclass[twocolumn]{article}
\usepackage[T1]{fontenc}
\usepackage[ngerman]{babel}
\usepackage{siunitx}
\usepackage{booktabs}
\usepackage{chemformula}
\usepackage{caption}

\usepackage{lipsum} % for mock text

\sisetup{locale=DE}

\newcommand{\stackbox}[2][c]{\begin{tabular}[#1]{@{}c@{}}#2\end{tabular}}

\begin{document}

\lipsum[1]

\begin{table}[htp!]

\caption{XXX}\label{tab:PECs}

\centering\small

\begin{tabular}{
  @{}
  l
  S[table-format=-2.8]
  S[table-format=-2.8]
  @{}
}
\toprule   
ABs & \multicolumn{2}{c}{\stackbox[t]{Durchschnittlicher Verbrauch\\ pro Woche in \%}} \\
\cmidrule(l){2-3} 
& {Reaktor 1 und 2} & {Reaktor 3 und 4}  \\
\midrule
CPX           & -83,7481154     & -47,2712685     \\
ETM           & -5,65120427     & 11,0344732      \\
ETM-\ch{H2 O} & -1,71578858     & 15,4926193      \\
RXM           & -18,4440202     & -17,1456878     \\
SMX           & -5,37574324     & 14,2887729      \\
TCC           & -70,281838      & -49,0324859     \\
TMP           & -11,4882087     & -9,21633665     \\ 
\bottomrule
\end{tabular}
\end{table}

\lipsum[2-3]

\begin{table}[htp!]

\caption{XXX}\label{tab:PECs}

\centering
\setlength{\tabcolsep}{0pt}% let TeX compute

\begin{tabular*}{\columnwidth}{
  @{\extracolsep{\fill}}
  l
  S[table-format=-2.8]
  S[table-format=-2.8]
  @{}
}
\toprule   
ABs & \multicolumn{2}{c}{\stackbox[t]{Durchschnittlicher Verbrauch\\ pro Woche in \%}} \\
\cmidrule(l){2-3} 
& {Reaktor 1 und 2} & {Reaktor 3 und 4}  \\
\midrule
CPX           & -83,7481154     & -47,2712685     \\
ETM           & -5,65120427     & 11,0344732      \\
ETM-\ch{H2 O} & -1,71578858     & 15,4926193      \\
RXM           & -18,4440202     & -17,1456878     \\
SMX           & -5,37574324     & 14,2887729      \\
TCC           & -70,281838      & -49,0324859     \\
TMP           & -11,4882087     & -9,21633665     \\ 
\bottomrule
\end{tabular*}
\end{table}

\lipsum[4-7]

\end{document}

enter image description here

相关内容