![将 stackbox 与多列结合起来](https://linux22.com/image/458380/%E5%B0%86%20stackbox%20%E4%B8%8E%E5%A4%9A%E5%88%97%E7%BB%93%E5%90%88%E8%B5%B7%E6%9D%A5.png)
我试图使多列表格尽可能小,并希望将第一行堆叠起来。但是,当我尝试使用 \stackbox 选项时,名称会继续到下一个未包含在多列中的名称。为了清晰起见,我添加了一张图片和我的程序代码。
\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
同名包中定义的 - 对于您的表格,我将使用
tabularray
、booktabs
和包。有了它们siunitx
,mhchem
表格代码更简单,编译结果也更好:
\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 \%}} \\
(观察}}
单元格末尾的两个)
编译结果如下:
答案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}