我在使用混合了数学公式、多行和对齐的表格环境时遇到了一些问题。我有以下代码:
\begin{tabular}[!ht]{p{5cm}p{5cm}p{5cm}}
\toprule
Col1 & Col2 & Col3 \\
\midrule
Text with a\\
linebreak
&
\[
A = B
= C
\]
& Text with wrong vertical alignment \\
\bottomrule
\end{tabular}
生产这种乳胶
如您所见,这样做存在几个问题:
- Col2 和 A = B = C 未水平对齐
- A = B = C 不在单元格顶部
- = C 应该在下一行(我需要多行方程)
- 使用多行方程时无法使用
&= C
对齐等号 - “文本错误...”也不在单元格顶部
- 我必须指定每一列的宽度(以厘米为单位)。有没有办法只指定一个宽度,让其他列适合左侧空间?
- 我必须对每一行重复
\[
and\]
。我在里面找到了预定义命令{p{5cm}p{5cm}p{5cm}}
,您可以在其中自动向单元格添加数学环境。但它没有起作用
我找到了几个表格环境,比如 threeparttable、table、tabular……我有点困惑该用哪一个,我不知道如何实现我想要的布局(我也不知道该用哪个包)。所以也许有人可以帮助我。
亲切的问候。
答案1
你没有提供最小工作示例(MWE)所以我做了一些(不完全正确的)假设。
首先,\\
之前的“linebreak”导致当前行结束。\newline
在表格中的段落内改用。
其次,amsmath
aligned
环境不需要处于显示环境中(这将使其居中)。它在普通数学模式下也能很好地工作。但由于\\
换行符是必需的,所以整个内容需要隐藏在一个组中,最容易用{...}
括号完成。添加一个[t]
选项会将其对齐到顶部基线上。
\documentclass{article}
\usepackage{amsmath}
\usepackage{booktabs}
\begin{document}
\begin{tabular}[!ht]{p{3cm}p{3cm}p{3cm}}
\toprule
Col1 & Col2 & Col3 \\
\midrule
Text with a\newline
linebreak
&
{$\begin{aligned}[t]
A &= B\\a
&= C
\end{aligned}
$}
& Text with wrong vertical alignment \\
\bottomrule
\end{tabular}
\end{document}