我想使用algorithm2e
生成两个procedure
和两个algorithm
。procedure
和algorithm
可以相互交错,并且procedure
和algorithm
都有它们的独立的柜台號碼。
procnumbered
我使用了选项algorithm2e
这样就procedure
可以对环境进行编号,但我发现另一个问题:procedure
和algorithm
环境仅共享一个计数器编号。我如何分别对这两个环境进行编号,每个环境都有自己的计数器?
举个例子,我怎样才能将 as 编号procedure
为 1,并将algorithm
as 编号也为 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}