我想添加一个框(黑色)来封装这个三行对齐表达式的最后两行。
如你所见,当前的解决方案受到这个帖子并不完美,因为它缺少一些最重要的组件。
请注意,目标是部分对齐表达式,因此一般赞扬boxed
可能empheq
不起作用。
\newcommand{\pstrut}[1]{\vrule height0pt depth0pt width0pt #1 \fboxsep}
\newcommand*\bmarkeq{\stepcounter{markeq}%
\tikz[remember picture]\node(startframe-\themarkeq){\pstrut{height}};%
\kern\fboxsep}
\newcommand*\emarkeq{\kern\fboxsep
\begin{tikzpicture}[remember picture,overlay]
\node (endframe-\themarkeq){\pstrut{depth}};
\draw[,black,opacity=0.8] (startframe-\themarkeq.north)
rectangle (endframe-\themarkeq.south);
\end{tikzpicture}%
}
\begin{align*}
\mathrm{L}_{c}(\theta)
= &\sum_{i=1}^{m} \ln p\left(x_{i}, z_{i} ; \theta\right) \\
= \bmarkeq &\sum_{i=1}^{m}\left(z_{i}\left[\ln (\pi)+x_{i} \ln \left(p_{r}\right)+\left(1-x_{i}\right) \ln \left(1-p_{r}\right)\right] \\
&+ \left(1-z_{i}\right)\left[\ln (1-\pi)+x_{i} \ln \left(p_{b}\right)+\left(1-x_{i}\right) \ln \left(1-p_{b}\right)\right]\right) \emarkeq
\end{align*}
答案1
您不需要 TiKZ 来执行此操作:amsmath
有\boxed
命令并 mathtools
添加\Aboxed
命令,其中可能包括对齐点。以下是执行此操作的两个建议:
\documentclass{article}
\usepackage{mathtools}
\begin{document}
\begin{align*}
\mathrm{L}_{c}(\theta)
&=\sum_{i=1}^{m} \ln p(x_{i}, z_{i} ; \theta) \\
& =\boxed{\begin{aligned}[t] &\sum_{i=1}^{m}\bigl(z_{i}\bigl[\ln (\pi)+x_{i} \ln (p_{r})+(1-x_{i}) \ln(1-p_{r})\bigr]\\
&+(1-z_{i})\bigl[\ln (1-\pi)+x_{i} \ln(p_{b})+(1-x_{i}) \ln(1-p_{b})\bigr]\bigr)\end{aligned}}
\end{align*}
\begin{align*}
\mathrm{L}_{c}(\theta)
&=\sum_{i=1}^{m} \ln p(x_{i}, z_{i} ; \theta) \\
\Aboxed{& ={\begin{aligned}[t]&\sum_{i=1}^{m}\bigl(z_{i}\bigl[\ln (\pi)+x_{i} \ln (p_{r})+(1-x_{i}) \ln(1-p_{r})\bigr]\\
&+(1-z_{i})\bigl[\ln (1-\pi)+x_{i} \ln(p_{b})+(1-x_{i}) \ln(1-p_{b})\bigr]\bigr)\end{aligned}}}
\end{align*}
\end{document}