algorithm2e 中的子程序

algorithm2e 中的子程序

我正在寻找algorithm2e一个使用子程序编写算法的小例子。

该算法称为algo,它递归调用名为 的子程序proc。在一个环境中,它应该如下所示:

Algorithm 1 algo()
1 xxx
2 xxx
3 proc()
4 return
Procedure proc()
1 xxx
2 return

我不想使用两个不同的算法环境来编写这两个东西。有人能给我举个例子吗?

答案1

这是一个版本。

示例输出

\documentclass{article}
\usepackage{algorithm2e}

\begin{document}
\thispagestyle{empty}

\begin{algorithm}[htp]
  \SetAlgoLined\DontPrintSemicolon
  \SetKwFunction{algo}{algo}\SetKwFunction{proc}{proc}
  \SetKwProg{myalg}{Algorithm}{}{}
  \myalg{\algo{}}{
  \nl xxx\;
  \nl xxx\;
  \nl \proc{}\;
  \nl \KwRet\;}{}
  \setcounter{AlgoLine}{0}
  \SetKwProg{myproc}{Procedure}{}{}
  \myproc{\proc{}}{
  \nl xxx\;
  \nl \KwRet\;}
  \caption{Algorithm with procedure}
\end{algorithm} 

\end{document}

\SetKwProg设置与程序或算法相对应的子环境。 \SetKwFunction用于一致地排版函数名称。通过\nl在相关行的开头指定来提供行号,并在程序之前重置相关计数器,以提供所需的编号。

相关内容