我想要在一列中放置“对齐”方程式,在另一列中放置文本表。在 LaTeX 中,“表”和“列”似乎是独立但重叠的机制。
在 LaTeX 中,“列”似乎是自动流动的东西。我想要手动指定每列的内容的列。我猜这是通过“表格”和表格列完成的?但是,在表格内部,我不能使用许多构造,例如\[ \]
或align
元素。有什么解决办法吗?
\begin{longtable}{|c|c|}
\hline
\begin{align*}
y = b + \sum\limits_i x_i w_i
\end{align*}
&
\begin{tabular}{ll}
a & b \\
a & b \\
\end{tabular} \\
\hline
\end{longtable}
答案1
要在列内使用排版align
或显示的方程式,您需要一个段落类型列;要么或(后者由\[...\]
p{<length>}
m{<length>}
array
包裹)。
但是,在您的示例中,我建议您使用aligned
而不是align*
并抑制垂直规则,并使用booktabs
包裹。
表格的三个版本:第一个版本,没有重大修改(除了使用aligned
);第二个版本,通过引入更多“空气”改进水平线和内容\arraystretch
,第三个版本,使用booktabs
和 没有垂直线。
代码:
\documentclass[12pt]{report}
\usepackage{amsmath}
\usepackage{longtable}
\usepackage{array}
\usepackage{booktabs}
\begin{document}
\begin{longtable}{|>{$}c<{$}|c|}
\hline
\begin{aligned}
y &= b + \sum\limits_i x_i w_i \\
&= c.
\end{aligned}
&
\begin{tabular}{ll}
a & b \\
a & b \\
\end{tabular} \\
\hline
\end{longtable}
{
\renewcommand\arraystretch{1.7}
\begin{longtable}{|>{$}c<{$}|c|}
\hline
\begin{aligned}
y &= b + \sum\limits_i x_i w_i \\
&= c.
\end{aligned}
&
\begin{tabular}{ll}
a & b \\
a & b \\
\end{tabular} \\
\hline
\end{longtable}
}
\begin{longtable}{>{$}c<{$} c}
\toprule
\begin{aligned}
y &= b + \sum\limits_i x_i w_i \\
&= c.
\end{aligned}
&
\begin{tabular}{ll}
a & b \\
a & b \\
\end{tabular} \\
\bottomrule
\end{longtable}
\end{document}
也许,根据您的实际意图,抑制内部开始和结束处的填充也是一个好主意tabular
:
\begin{tabular}{@{}ll@{}}
a & b \\
a & b \\
\end{tabular}