Latex之使用algorithm2e包来写算法

algorithm2e是latex上用来写算法的包。
目前还有很多,比如algorithmc等。两者的语法不同。

使用时要先导入包:

\usepackage[ruled,linesnumbered]{algorithm2e}

下面贴出一个示例:

\begin{algorithm}[t]
	\caption{Event Detection}
	\label{algo:event}
	\LinesNumbered
	\KwIn{FFT Bins $B_{1}, B_{2}, B_{3}, ..., B_{n}$}
	\KwOut{Event start point $S$, end point $E$}
	\For{i=1:n}{	
		\eIf{max($B_{i}$) : max($B_{(i+4)}$)$>$-80}{
			$S$=i; \tcp*{Start Point}
		\For{j=S:n}{
			\eIf{max($B_{j}$) : max($B_{(j+4)}$)$<$-100}{
				$E$=j; \tcp*{End Point}
				Return [$S,E$];
			}{j++;}
		}
	}{
	i++;}
}
\end{algorithm}

得到的结果如下:
Latex之使用algorithm2e包来写算法_第1张图片
下载与详细的使用请参考手册

需要注意的是,在algorithm2e中,\If, \Else, \ElseIf都是会以endif结尾的,而\uIf, \lIf, \uElse, \lElse, \uElseIf, \lElseIf都是不带endif的。u和l的区别是,u是块级元素,而l是行内元素。
比如在上面的示例中,带else的if是\elf,如果只使用\Else会使else后也多出一个end来。

\tcc是/* */注释
\tcp是//注释。

其他注意事项,这里有一个参考:https://blog.csdn.net/jlu_leven/article/details/8948997

你可能感兴趣的:(Latex)