我该如何修复代码,使得下括号文本“xxxx”都在同一行?
\documentclass{article}
\usepackage{amsmath}
\begin{document}
\begin{align}
\hat{y}_{\Psi}^t &= \Psi(g^t_\text{h}) \\
\hat{y}^t_{\Phi,i} &= \Phi([y^t \circ m,x_i^t,\mathrm{BPS}_i,s])\\
\hat{y}^t &= \underbrace{y^t \circ m_s}_\text{xxxx} + \underbrace{\textstyle\sum_i (\hat{\alpha}_i^t \hat{y}^t_{\Phi,i}}_\text{xxxx} + \underbrace{\hat{\alpha}^t_{\text{h}}\hat{y}_{\Psi}^t)}_{\mathclap{\text{xxxx}}} \circ (1 - m_s)
\end{align}
\end{document}
答案1
- 我已经建议了一个命令
\tsum
来代替错误的命令\textstyle\sum
。 - 我还建议你使用
\mathrm{h}
和不是\text{h}
,因为如果数学模式之外的活动字体是斜体,那么您会得到斜体“h”。 _\text{whatever}
是错误的,应该是_{\text{whatever}}
,也是一样\mathrm
。
最后,您应该在发布之前测试您的代码:使用发布的代码您会收到错误,因为\mathclap
未定义(它需要mathtools
);另一方面,在特定情况下\mathclap
不需要。
今天的建议是定义一个替代品\underbrace
:将我的输出与你的输出进行比较,特别是最后一个周围的间距\circ
。
现在的解决方案是:在公式中确定要支撑的较深项,并使用垂直幻影。我建议使用本地命令来简化输入。
\documentclass{article}
\usepackage{amsmath}
\newcommand{\tsum}{\mathop{\textstyle\sum}\nolimits}
\newcommand{\ubrace}[2]{{\underbrace{#1}_{#2}}}
\begin{document}
\begin{align}
\hat{y}_{\Psi}^t &= \Psi(g^t_{\mathrm{h}}) \\
\hat{y}^t_{\Phi,i} &= \Phi([y^t \circ m,x_i^t,\mathrm{BPS}_i,s])\\
\hat{y}^t &=
\newcommand{\?}{\vphantom{\hat{\alpha}_i^t \hat{y}^t_{\Phi,i}}}%
\ubrace{\? y^t \circ m_s}{\text{xxxx}} +
\ubrace{\tsum_i (\hat{\alpha}_i^t \hat{y}^t_{\Phi,i}}{\text{xxxx}} +
\ubrace{\? \hat{\alpha}^t_{\mathrm{h}}\hat{y}_{\Psi}^t)}{\text{xxxx}} \circ (1 - m_s)
\end{align}
\end{document}
作为修复的替代方案,\underbrace
你应该使用
{\underbrace{<formula>}_{<subscript>}}
加上一对额外的大括号(这基本上就是它的\ubrace
作用)。
应该使用类似的修复方法\overbrace
。
答案2
我建议(a)定义一个印刷支柱——一个在基线上方具有一定高度和在基线下方具有一定深度的不可见物体——其深度由中间项中的材料给出\underbrace
,以及(b)将该支柱添加到第一项和第三\underbrace
项中。
\documentclass{article}
\usepackage{mathtools}
% define a typographic strut:
\newcommand\mystrut{\vphantom{\textstyle\sum_i\hat{y}^t_{\Phi,i}}}
\begin{document}
\begin{align}
\hat{y}_{\Psi}^t
& = \Psi(g^t_\mathrm{h})\\
\hat{y}^t_{\Phi,i}
& = \Phi([y^t \circ m,x_i^t,\mathrm{BPS}_i,s]) \\
\hat{y}^t
& = \underbrace{y^t \circ m_s \mystrut}_{\text{xxxx}}
+ \underbrace{\textstyle\sum_i (\hat{\alpha}_i^t \hat{y}^t_{\Phi,i})}_{\text{xxxx}}
+ \underbrace{\hat{\alpha}^t_{\mathrm{h}}\hat{y}_{\Psi}^t \mystrut}_{\text{xxxx}} \circ (1 - m_s)
\end{align}
\end{document}