代码之家  ›  专栏  ›  技术社区  ›  Display Name Camilo Terevinto

如何在合并行中将公式垂直居中?

  •  4
  • Display Name Camilo Terevinto  · 技术社区  · 15 年前

    \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 回复  |  直到 15 年前
        1
  •  1
  •   CV Radhakrishnan    15 年前

    将这三行放在第二个单元格的表格中可以解决问题,而不是对第一个单元格使用\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}
    
        2
  •  2
  •   aioobe    15 年前

    我花了一些时间在这上面却没有真正解决它。你当然可以把第二个论点增加到 parbox 从1厘米到3厘米,因为每个细胞都有1厘米高(给或拿几个毫米)。但是如何扩展parbox来完全填满我不知道的单元格。甚至不确定这是可能的。

    也许你可以用

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

    然后使用 \threecells 在你的第二次辩论中。