如何在合并的行中垂直居中方程?

时间:2010-11-01 07:16:28

标签: latex

我在一个应该垂直居中的多行单元格(也就是合并单元格)中有一个等式。我使用以下代码片段:

\documentclass{article}
\usepackage
{
    multirow,
    longtable,
    array
}

\begin{document}
\begin{tabular}{|*{2}{c|}}\hline
\parbox[c][1cm]{5cm}{Description} & \parbox[c][1cm]{5cm}{Formula}\\\hline
\multirow{3}*
{
    \parbox[c][1cm]{5cm}
    {
        \centering$\displaystyle \int_a^b f(x)\, \textrm{d}x=F(b)-F(a)$
    }
}
            &\parbox[c][1cm]{5cm}{ A } \\\cline{2-2}
            &\parbox[c][1cm]{5cm}{ B } \\\cline{2-2}
            &\parbox[c][1cm]{5cm}{ C } \\\hline
\parbox[c][1cm]{5cm}{D} & \parbox[c][1cm]{5cm}{E}\\\hline
\end{tabular}
\end{document}

alt text

有没有办法让它垂直居中而不进行试错调整?

2 个答案:

答案 0 :(得分:2)

我花了一些时间没有真正解决它。您当然可以将parbox的第二个参数从1厘米增加到3厘米,因为每个单元格高1厘米(给出或取几毫米)。但是如何扩展parbox以完全填充我无法弄清楚的单元格。甚至不确定它是否可能。

也许你可以使用

\newlength{\threecells}
\settoheight{\threecells}{a tabular of three cells}

然后在第二个参数中使用\threecells

答案 1 :(得分:1)

不是将\ multirow用于第一个单元格,而是将三行放在第二个单元格内的表格中可以解决问题。这让你可以自由地忽略第二个细胞的高度。

\documentclass{article}
\usepackage{multirow,longtable,array}

\begin{document}

\begin{tabular}{|*{2}{c@{}|@{}}}
\hline
\parbox[c][1cm]{5cm}{Description} 
& \parbox[c][1cm]{5cm}{~~~Formula}\\\hline
$\displaystyle \int_a^b f(x)\,
     \textrm{d}x=F(b)-F(a)$
&\begin{tabular}{@{}l@{}}
  \parbox[c][1cm]{5cm}{~~ A } \\\hline
  \parbox[c][1cm]{5cm}{~~ B } \\\hline
  \parbox[c][1cm]{5cm}{~~ C } \\
 \end{tabular}\\\hline
\parbox[c][1cm]{5cm}{D} & \parbox[c][1cm]{5cm}{~~~E}\\\hline
\end{tabular}

\end{document}