\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):
我怎样才能做到这一点?
这个问题与此处发布的问题非常相似: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}