对齐算法内部和外部的方程编号

对齐算法内部和外部的方程编号
\documentclass[12pt, a4paper]{report}
\usepackage{amsmath}
\usepackage{mathtools}
\usepackage[ruled]{algorithm2e}

\begin{document}

\begin{algorithm}
    \caption{my capt}
    \begin{minipage}{\dimexpr\textwidth-2\algomargin\relax}
    \begin{enumerate}
        \item step 1
        \item step 2
        \item step 3 
        \begin{equation}\label{alg1}
            \tau = x + y.
        \end{equation}
        \item step 5
    \end{enumerate}
    \end{minipage}
\end{algorithm}
I have an equation:
\begin{equation}\label{myeq}
        \alpha = x^2 y.
    \end{equation}
\end{document}

在上面的 MWE 中,我使用 minipage 环境来避免出现 overfull hbox 错误。我想在算法内部和外部垂直对齐方程编号。如下图所示。我想对齐方程 (1) 和 (2):

它看起来像这样。我想对齐方程编号 (1) 和 (2)。

我怎样才能做到这一点?

这个问题与此处发布的问题非常相似:https://tex.stackexchange.com/a/460466/139314 我有一个算法环境,而不是一个盒子。

提前谢谢了。

答案1

这将使内部方程与外部方程对齐(而不是将外部方程与内部方程对齐)。它用于\makebox与左边距重叠,负数\hspace用于与右边距重叠。

在此处输入图片描述

\documentclass[12pt, a4paper]{report}
\usepackage{mathtools}
\usepackage[ruled]{algorithm2e}

\begin{document}

\begin{algorithm}
    \caption{my capt}
    \begin{enumerate}
        \item step 1
        \item step 2
        \item step 3\\
        \makebox[\dimexpr \linewidth-2\algomargin][r]{% overlap left margin
        \begin{minipage}{\textwidth}% equation is in vmode
        \begin{equation}\label{alg1}
            \tau = x + y.
        \end{equation}
        \end{minipage}\hspace{-\algomargin}}% overlap right margin
        \item step 5
    \end{enumerate}
\end{algorithm}
I have an equation:

\begin{equation}\label{myeq}
        \alpha = x^2 y.
    \end{equation}

\end{document}

相关内容