algorithm2e 中独立编号程序和算法

algorithm2e 中独立编号程序和算法

我想使用algorithm2e生成两个procedure和两个algorithmprocedurealgorithm可以相互交错,并且procedurealgorithm都有它们的独立的柜台號碼。

procnumbered我使用了选项algorithm2e这样就procedure可以对环境进行编号,但我发现另一个问题:procedurealgorithm环境仅共享一个计数器编号。我如何分别对这两个环境进行编号,每个环境都有自己的计数器?

举个例子,我怎样才能将 as 编号procedure为 1,并将algorithmas 编号也为 1(而不是 2)。谢谢。

在此处输入图片描述

\documentclass{article}
\usepackage[procnumbered,ruled]{algorithm2e}
\begin{document}

\begin{procedure}
  \caption{myproc()}
  This is a procedure
\end{procedure}

\begin{algorithm}
  \caption{My algorithm}
  This is a procedure
\end{algorithm}

\end{document}

答案1

两种环境都使用algocf计数器;您可以教 LaTeX 使用另一个计数器进行程序执行。

\documentclass{article}
\usepackage[procnumbered,ruled]{algorithm2e}
\usepackage{etoolbox}
\newcounter{procedure}
\makeatletter
\AtBeginEnvironment{procedure}{\let\c@algocf\c@procedure}
\makeatother
\begin{document}

\begin{procedure}[!htp]
  \caption{myproc()}
  This is a procedure
\end{procedure}

\begin{algorithm}[!htp]
  \caption{My algorithm}
  This is a procedure
\end{algorithm}

\begin{procedure}[!htp]
  \caption{myproc()}\label{aproc}
  This is a procedure
\end{procedure}

\begin{procedure}[!htp]
  \caption{myproc()}
  This is a procedure
\end{procedure}

\begin{algorithm}[!htp]
  \caption{My algorithm}
  This is a procedure
\end{algorithm}

Procedure~\ref{aproc}

\end{document}

在此处输入图片描述

相关内容