使用此代码:
\documentclass[a4paper]{article}
\usepackage{amsmath}
\usepackage{tabu}
\begin{document}
\tabulinesep=2mm
\begin{tabu} to \textwidth {|X|X[0.8,c]|}
\hline
With dfrac & $\dfrac{1}{2}$ \\
\hline
Without dfrac & $\frac{1}{2}$ \\
\hline
\end{tabu}
\end{document}
可以注意到,在第一行,第一个单元格的基线已经降低了:
那么,有没有办法让第一列上的所有单元格正确对齐到顶部(即保持其原始基线),同时在其他地方使用大分数?
答案1
扩展芭芭拉·比顿 (barbara beeton) 的评论:较大的尺寸会将\dfrac
整行向下推,以便在行的中心获得垂直对齐。
您可以\smash
在 周围使用\dfrac
,这样可以像处理具有零宽度和高度的参数一样处理该参数。然后,行的基线/中心不再受 的影响\dfrac
,从而导致左侧单元格达到所需的顶部对齐。但是,现在右侧的单元格不再扩展,因此分数不再适合。为了解决这个问题,可以添加一些额外的垂直空间\vspace
(这不会影响文本基线)。为了更容易使用,可以定义一个新的宏(\mydfrac
在下面的示例中)。
额外的垂直空间是硬编码的,如果分数的大小不同,则无法正常工作。下面的示例包含一个额外的宏,其中顶部和底部的空间可以作为第 3 和第 4 个参数提供。
梅威瑟:
\documentclass[a4paper]{article}
\usepackage{amsmath}
\usepackage{tabu}
\begin{document}
\newcommand{\mydfrac}[2]{\vspace{2mm}$\smash{\dfrac{#1}{#2}}$\vspace{2mm}}
\newcommand{\mydfracsize}[4]{\vspace{#3mm}$\smash{\dfrac{#1}{#2}}$\vspace{#4mm}}
\tabulinesep=2mm
\begin{tabu} to \textwidth {|X|X[0.8,c]|}
\hline
With default dfrac & $\dfrac{1}{2}$\\
\hline
With adjusted dfrac & \mydfrac{1}{2}\\
\hline
Without dfrac & $\frac{1}{2}$ \\
\hline
With custom size dfrac & \mydfracsize{\sum_{i=0}^4 \sqrt{i}}{x}{3}{1}\\
\hline
\end{tabu}
\end{document}
结果: