我想在左栏中输入方程或计算,在右栏中输入描述。当方程式中包含分数时,我会遇到麻烦。以下是示例:
\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}