在等式中的算法之间对齐等号

在等式中的算法之间对齐等号

我目前有类似的代码:

\documentclass[openacc]{amsart}
\usepackage[linesnumbered,ruled,vlined]{algorithm2e}
\let\oldnl\nl% Store \nl in \oldnl
\newcommand{\nonl}{\renewcommand{\nl}{\let\nl\oldnl}}% Remove line number for one line
\begin{document}
\begin{algorithm}
\nonl $\hat{\beta}_{j}^{\bullet} = \arg\min_{\beta} \left\|\mathbf{y} -\mathbf{X}\beta\right\|_2^2 + \lambda\sum_{k=1}^{p}w_k|\beta_{k}|$;\\
\bigskip
\nonl $\hat{\beta}_{j} = \arg\min_{\beta_{j}} \left\|\mathbf{y} -\mathbf{X}\beta\right\|_2^2$\\
\end{algorithm}
\end{document}

但我试图让两种算法之间的等号完美对齐。我尝试将代码更改为:

\documentclass[openacc]{amsart}
\usepackage[linesnumbered,ruled,vlined]{algorithm2e}
\let\oldnl\nl% Store \nl in \oldnl
\newcommand{\nonl}{\renewcommand{\nl}{\let\nl\oldnl}}% Remove line number for one line
\begin{document}
\begin{algorithm}
\nonl $\hat{\beta}_{j}^{\bullet} = \arg\min_{\beta} \left\|\mathbf{y} -\mathbf{X}\beta\right\|_2^2 + \lambda\sum_{k=1}^{p}w_k|\beta_{k}|$;\\
\bigskip
\nonl $\hat{\beta}_{j} \ { }= \arg\min_{\beta_{j}} \left\|\mathbf{y} -\mathbf{X}\beta\right\|_2^2$\\
\end{algorithm}
\end{document}

但这似乎并不能使它们完全对齐,而且似乎只是一种临时解决办法,并不能真正解决问题。

有没有办法让 LaTex 中的算法框架内的等号完美对齐?

提前致谢。

答案1

我建议你 (a) 将两个方程式都放在一个环境中,并且 (b)在 之前aligned使用单个指令。如果你不打算为算法提供 ,那么你可以简单地将环境夹在指令之间。下面说明了这两种可能性。\nonl\begin{aligned}\captionaligned\hrule

我还将\argmin其本身定义为数学运算符。

在此处输入图片描述

\documentclass[openacc]{amsart}
\usepackage[linesnumbered,ruled,vlined]{algorithm2e}
\newcommand{\nonl}{\renewcommand{\nl}{\let\nl\oldnl}}% Remove line number for one line

\usepackage{mathtools} % for '\DeclarePairedDelimiter' macro
\DeclarePairedDelimiter\abs\lvert\rvert
\DeclarePairedDelimiter\norm\lVert\rVert
\DeclareMathOperator*\argmin{argmin}

\begin{document}

\begin{algorithm}
\caption{Two aligned equations} \label{alg:2eq} % optional
\nonl%
$\begin{aligned}
\hat{\beta}_j^{\bullet} 
  &= \argmin_{\beta}   \norm{\mathbf{y} -\mathbf{X}\beta}_2^2 
     + \lambda\sum\nolimits_{k=1}^{p} w_k\abs{\beta_k};\\
\hat{\beta}_j^{\phantom{\bullet}} 
  &= \argmin_{\beta_j} \norm{\mathbf{y} -\mathbf{X}\beta}_2^2
\end{aligned}$
\end{algorithm}

\bigskip
\hrule
\smallskip
$\begin{aligned}
\hat{\beta}_j^{\bullet} 
  &= \argmin_{\beta}   \norm{\mathbf{y} -\mathbf{X}\beta}_2^2 
     + \lambda\sum\nolimits_{k=1}^{p} w_k\abs{\beta_k};\\
\hat{\beta}_j^{\phantom{\bullet}} 
  &= \argmin_{\beta_j} \norm{\mathbf{y} -\mathbf{X}\beta}_2^2
\end{aligned}$
\smallskip
\hrule

\end{document}

相关内容