我正在寻找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
在相关行的开头指定来提供行号,并在程序之前重置相关计数器,以提供所需的编号。