答案1
添加适当的内容\vphantom
并水平展平较长的文本:
\documentclass{article}
\usepackage{amsmath}
\begin{document}
\begin{equation}
g'(t) = Df_{\gamma(t)} \bigl( \gamma'(t) \bigr)
= \underbrace{\nabla f_{\gamma(t)}}_{\text{gradient}} \hspace{1.5em} \cdot \hspace{1.5em}
\underbrace{\vphantom{f_{()}}\gamma'(t)}_{\text{\makebox[0pt]{tangent to level line}}}
\end{equation}
\end{document}
您还可以改变括号的方向:
\documentclass{article}
\usepackage{amsmath}
\begin{document}
\begin{equation}
g'(t) = Df_{\gamma(t)} \bigl( \gamma'(t) \bigr)
= \underbrace{\nabla f_{\gamma(t)}}_{\text{gradient}} \cdot
\overbrace{\gamma'(t)}^{\text{\makebox[0pt]{tangent to level line}}}
\end{equation}
\end{document}
答案2
完整工作示例:
\documentclass{article}
\usepackage{amsmath}
\usepackage{calc}
\begin{document}
\newlength{\lowerlength}
\newlength{\upperlength}
\newlength{\correction}
\setlength{\upperlength}{\widthof{$\gamma'(t)$}}
\setlength{\lowerlength}{\widthof{\scriptsize tangent to level line}}
\setlength{\correction}{(\lowerlength-\upperlength)*\real{0.5}}
\begin{equation*}
g'(t)=Df_{\gamma(t)}\left(\gamma'(t)\right)=\underbrace{\nabla f_{\gamma(t)}}_{\text{gradient}} \;\quad\cdot\quad\; {\underbrace{\gamma'(t)\llap{\phantom{$_{()}$}}}_{\hspace{-\correction}\text{tangent to level line}\hspace{-\correction}}}
\end{equation*}
\end{document}
该calc
包可用于计算长度,它提供了一种计算文本长度的简单方法。在下标中添加负空间可防止第二个因子向右移动太远。
为了垂直对齐两个下括号,我们需要让两个因子看起来具有相同的高度。这里的关键点是第一个因子下标中的括号。因此,我们将它们不可见地添加到第二个因子中(\phantom
),并让 TeX 忽略它们的高度(\llap
)。