在 tabularx 中顶部对齐

在 tabularx 中顶部对齐

我想在左栏中输入方程或计算,在右栏中输入描述。当方程式中包含分数时,我会遇到麻烦。以下是示例:

    \documentclass[a4paper,11pt]{memoir}

    \usepackage{lipsum}
    \usepackage{amsmath}
    \usepackage{tabularx}

    \begin{document}
    \renewcommand*{\arraystretch}{2}
    \begin{tabularx}{\linewidth}{lX}
    Foo & Bar\\\hline
    $\dfrac{1}{2}+\dfrac{1}{3}=\dfrac{5}{6}$ & \lipsum[1]
    \end{tabularx}
    \end{document}

看起来像这样: 在此处输入图片描述

我的问题是:如何去除右列文本上方的空白?我知道我可以用 来修复它,raisebox但我希望有一个更通用的解决方案,即以某种方式修复或忽略右列的基线。

我希望有人能给我指明正确的方向。

答案1

您可以使用\raisebox盒子的高度和深度:

\documentclass[a4paper,11pt]{memoir}

\usepackage{lipsum}
\usepackage{amsmath}
\usepackage{tabularx}

\newcommand\topalign[1]{%
  \setbox0\hbox{#1}%
  \raisebox{\dimexpr-\ht0+\dp0\relax}{\usebox0}}

\begin{document}
\renewcommand*{\arraystretch}{2}
\begin{tabularx}{\linewidth}{lX}
Foo & Bar\\\hline
\topalign{$\dfrac{1}{2}+\dfrac{1}{3}=\dfrac{5}{6}$} & \lipsum[1]
\end{tabularx}
\end{document}

在此处输入图片描述

答案2

adjustbox可以在这种情况下提供帮助,因为它的valign=t选项与框的顶部对齐,而不是与框第一行的基线对齐。

示例输出

\documentclass[a4paper,11pt]{memoir}

\usepackage{lipsum}
\usepackage{amsmath}
\usepackage{tabularx}
\usepackage{adjustbox}

\begin{document}
\renewcommand*{\arraystretch}{2}
\begin{tabularx}{\linewidth}{lX}
  Foo & Bar\\\hline
  \adjustbox{valign=t}{$\dfrac{1}{2}+\dfrac{1}{3}=\dfrac{5}{6}$} &
  \lipsum[1]
\end{tabularx}
\end{document}

相关内容