我在对齐环境中运行以下代码时遇到问题:
\begin{align*}
&\mathrm{
E(Y_i|D_i=1)-E(Y_i|D_i=0)&=E(Y_{1i}|D_i=1)-E(Y_{0i}|D_i=0)
}\\
\mathrm{
&=\underbrace{E(Y_{1i}|D_i=1)-E(Y_{0i}|D_i=1)}_{\text{ATT}}+\underbrace{E(Y_{0i}|D_i=1)-E(Y_{0i}|D_i=0)}_{\text{selection bias}}
}.
\end{align*}
错误消息显示以下内容: !Missing } 已插入。\end {align}
我曾尝试自己调试代码,但是所有调试尝试均未成功。
谁能找出错误在哪里?
答案1
由于您将 放在&
内\mathrm{}
,因此会导致该错误。我稍微修改了您的代码(将 移出&
并\mathrm{}
在 中添加一些空格\:
)。
\begin{align*}
&\mathrm{
E(Y_i|D_i=1)-E(Y_i|D_i=0)}\\
=\:&\mathrm{E(Y_{1i}|D_i=1)-E(Y_{0i}|D_i=0)
}\\
=\:&\mathrm{\underbrace{E(Y_{1i}|D_i=1)-E(Y_{0i}|D_i=1)}_{\text{ATT}}+\underbrace{E(Y_{0i}|D_i=1)-E(Y_{0i}|D_i=0)}_{\text{selection bias}}
}.
\end{align*}
如果最后一行也想获得正常文本,你可以尝试这个
\begin{align*}
&\mathrm{
E(Y_i|D_i=1)-E(Y_i|D_i=0)}\\
=\:&\mathrm{E(Y_{1i}|D_i=1)-E(Y_{0i}|D_i=0)
}\\
=\:&\underbrace{\mathrm{E(Y_{1i}|D_i=1)-E(Y_{0i}|D_i=1)}}_{\text{ATT}}+\underbrace{\mathrm{E(Y_{0i}|D_i=1)-E(Y_{0i}|D_i=0)}}_{\text{selection bias}}.
\end{align*}
答案2
如果您确实想要直立打印数学运算,请使用专用包,而不是添加不需要的标记,例如\mathrm
。
\documentclass{article}
\usepackage{amsmath}
\usepackage{mathastext}
\begin{document}
\begin{align*}
& E(Y_i|D_i=1)-E(Y_i|D_i=0)
\\
&=E(Y_{1i}|D_i=1)-E(Y_{0i}|D_i=0)
\\
&=\underbrace{E(Y_{1i}|D_i=1)-E(Y_{0i}|D_i=1)}_{\text{ATT}}
+\underbrace{E(Y_{0i}|D_i=1)-E(Y_{0i}|D_i=0)}_{\text{selection bias}}.
\end{align*}
\end{document}
答案3
欢迎!这是由于mathrm{…}
命令包含一个 & 符号。无论如何,使用align*
,公式不适合文本宽度,所以我建议使用 。我还用multline*
替换了各种,它具有更好的间距,并在两行之间添加了一个小的垂直间距。|
\mid
\documentclass{article}
\usepackage{amsmath, amssymb}
\begin{document}
\begin{multline*}
\mathrm{E(Y_i\mid D_i=1)-E(Y_i\mid D_i=0) =E(Y_{1i}\mid D_i=1)-E(Y_{0i}\mid D_i=0)}
\\[0.8ex]
=\underbrace{\mathrm{E(Y_{1i}\mid D_i = 1) - E(Y_{0i}\mid D_i=1)}}_{\text{ATT}} + \underbrace{\mathrm{E(Y_{0i}\mid D_i=1)-E(Y_{0i}\mid D_i=}0)}_{\text{selection bias}}.
\end{multline*}
\end{document}