将框添加到作为对齐方程一部分的多行表达式中?

将框添加到作为对齐方程一部分的多行表达式中?

我想添加一个框(黑色)来封装这个三行对齐表达式的最后两行。

如你所见,当前的解决方案受到这个帖子并不完美,因为它缺少一些最重要的组件。

在此处输入图片描述

请注意,目标是部分对齐表达式,因此一般赞扬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} 

在此处输入图片描述

相关内容