我目前有类似的代码:
\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}
\caption
aligned
\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}