如何在 algorithm2e 中自定义算法标题中的数字

如何在 algorithm2e 中自定义算法标题中的数字

在 中algorithm2e,如果您使用“ruled”选项,算法的标题会自动编号。例如,如果您在一个文档中编写了 2 个算法,则第一个算法的标题为算法 1,第二个算法的标题为算法 2。我如何自定义此编号?假设我只编写了一个算法,并希望将其标题为“算法 3”,如下图所示。

在此处输入图片描述

答案1

您可以强制与该环境相关的计数器。

请注意,在典型的 LaTeX 方式中,计数器在使用前会递增。因此,为了强制算法按Algorithm 3(比如说)方式启动,可以将相关计数器设置为 2。algorithm2e环境algorithmalgocf(我猜是以作者 Christophe Fiorio 的名字命名的)。因此,使用

\setcounter{algocf}{2}

在使用algorithm环境之前立即将以下算法设置为Algorithm 3

以下示例取自algorithm2e文档

在此处输入图片描述

\documentclass{article}
\usepackage[ruled]{algorithm2e}% http://ctan.org/pkg/algorithm2e
\begin{document}

\setcounter{algocf}{2}% Modify counter of algorithm

\begin{algorithm}
  \DontPrintSemicolon
  \KwData{$G=(X,U)$ such that $G^{tc}$ is an order.}
  \KwResult{$G’=(X,V)$ with $V\subseteq U$ such that $G’^{tc}$ is an
    interval order.}
  \Begin{
    $V \longleftarrow U$\;
    $S \longleftarrow \emptyset$\;
    \For{$x\in X$}{
      $NbSuccInS(x) \longleftarrow 0$\;
      $NbPredInMin(x) \longleftarrow 0$\;
      $NbPredNotInMin(x) \longleftarrow |ImPred(x)|$\;
    }
    \For{$x \in X$}{
      \If{$NbPredInMin(x) = 0$ {\bf and} $NbPredNotInMin(x) = 0$}{
        $AppendToMin(x)$}
      }
      \nl\While{$S \neq \emptyset$}{\label{InRes1}
      \nlset{REM} remove $x$ from the list of $T$ of maximal index\;\label{InResR}
      \lnl{InRes2}\While{$|S \cap ImSucc(x)| \neq |S|$}{
        \For{$ y \in S-ImSucc(x)$}{
          \{ remove from $V$ all the arcs $zy$ : \}\;
          \For{$z \in ImPred(y) \cap Min$}{
            remove the arc $zy$ from $V$\;
            $NbSuccInS(z) \longleftarrow NbSuccInS(z) - 1$\;
            move $z$ in $T$ to the list preceding its present list\;
            \{i.e. If $z \in T[k]$, move $z$ from $T[k]$ to
              $T[k-1]$\}\;
          }
          $NbPredInMin(y) \longleftarrow 0$\;
          $NbPredNotInMin(y) \longleftarrow 0$\;
          $S \longleftarrow S - \{y\}$\;
          $AppendToMin(y)$\;
        }
      }
      $RemoveFromMin(x)$\;
    }
  }
  \caption{IntervalRestriction\label{IR}}
\end{algorithm}

\end{document}

答案2

@pegausbupt:如何在引用算法时使用相同的更新计数器编号?对于标题为算法 3 的算法,新标题是算法 1,但当我引用时仍然得到算法 3。我需要建议。谢谢

\setcounter{algocf}{0} 我用它来手动设置计数器。

相关内容