更改 algorithm2e 中算法的标题编号

更改 algorithm2e 中算法的标题编号

我正在尝试定义一个使用algorithm来自 的环境的新环境algorithm2e。我想为这个新环境使用单独的标题计数器。截至目前,这就是我所拥有的,但我不知道如何使用计数器\def\renewcommand标题变量hdps

\newcounter{hdps}
\newenvironment{asm}{%
\stepcounter{hdps}%
\renewcommand*{\algorithmcfname}{ASM Spec.}%
\begin{algorithm}}
{%
\def\thealgocf{}%
\end{algorithm}}

非常感谢您的帮助。

答案1

你可以使用这样的方法:

\newcounter{hdps}
\newenvironment{asm}
  {\refstepcounter{hdps}%
    \renewcommand*{\algorithmcfname}{ASM Spec.}%
    \begin{algorithm}\renewcommand\thealgocf{\arabic{hdps}}}
  {\end{algorithm}\addtocounter{algocf}{-1}}

编辑:当然,只有在和环境\caption中一致使用,这种方法才会按预期发挥作用。algorithmasm

答案2

在环境中使用环境有时会出现问题。请参阅相关文章根据其他环境来定义环境:正确的方法是什么?。从这个意义上讲,我建议使用环境提供的计数器,而不是定义新环境并使用单独的计数器algorithmalgocf,并修改算法名称(从AlgorithmASM Spec.)和计数器样式(如果需要)。例如,

\renewcommand*{\algorithmcfname}{ASM Spec.}% Algorithm name
\usepackage{dcounter}% http://ctan.org/pkg/dcounter
\countstyle{<section>}%
\DeclareDynamicCounter{algocf}% <- algocf will be 'dynamic' within <section>

algocf将在 内重置计数器<section>(可以是您指定的任何部分单位,例如chaptersection或 、subsection或 或subsubsection)。这还将计数器的表示形式重新定义为\the<section>.\arabic{algocf}

Algorithm当然,如果您想要两种不同风格的算法(比如命名和ASM Spec.),这将不起作用。

相关内容