algorithm2e 中似乎没有这样的try
andcatch
块。有没有办法在 algorithm2e 中添加自定义的 andtry
块catch
?
有一个解决方案在 GitHub 中展示了如何使用 algorithmicx/algpseudocode 包完成此操作。我想在 algorithm2e 中执行此操作。
答案1
仔细观察了一下文档并找到了一个适用的解决方案:\SetKwProg{Cmd}{block}{suffix}{end}
和部分是可选的suffix
end
最小工作示例(MWE):
\usepackage[linesnumbered, ruled]{algorithm2e}
\begin{document}
\begin{algorithm}[t]
\SetKwInOut{Input}{Input}
\SetKwInOut{Output}{Output}
\SetKwProg{try}{try}{:}{}
\SetKwProg{catch}{catch}{:}{end}
\Input{Array $a$ and index $i$}
\Output{what the procedure returns}
\try{}{
$v \gets a[i]$
}
\catch{IndexOutOfBoundsException}{
$v \gets -1$
}
\Return $v$
\caption{Exception handling code}
\label{alg:exep}
\end{algorithm}
\end{document}
输出: