在 Ubuntu 15.04 下,我想用algorithm2e
它来编写伪代码,当我从文档中复制一个示例时,TeXStudio 显示错误,指示命令\Fn
未定义。我认为该包可能已过时,所以我通过 texlive-science 运行了更新
sudo apt-get install texlive-science
但它显示 texlive-science 已经是最新版本。它没有在 Ubuntu 存储库中更新吗?如果是这样,我该如何更新algorithm2e
到最新版本?
答案1
您可以\Fn
在algorithm2e
文档代码. 它使用 来定义\SetKwProg
。
这通用算法以以下定义作为前缀:
\SetKwProg{Fn}{Function}{}{end}\SetKwFunction{FRecurs}{FnRecursive}%
\newcommand{\forcond}{$i=0$ \KwTo $n$}
\documentclass{article}
\usepackage{algorithm2e}
\newcommand{\forcond}{$i=0$ \KwTo $n$}
\SetKwProg{Fn}{Function}{}{end}\SetKwFunction{FRecurs}{FnRecursive}%
\SetAlgoLongEnd
\begin{document}
\begin{algorithm}
\Fn(\tcc*[h]{algorithm as a recursive function}){\FRecurs{some args}}{
\KwData{Some input data\\these inputs can be displayed on several lines and one
input can be wider than line's width.}
\KwResult{Same for output data}
\tcc{this is a comment to tell you that we will now really start code}
\If(\tcc*[h]{a simple if but with a comment on the same line}){this is true}{
we do that, else nothing\;
\tcc{we will include other if so you can see this is possible}
\eIf{we agree that}{
we do that\;
}{
else we will do a more complicated if using else if\;
\uIf{this first condition is true}{
we do that\;
}
\uElseIf{this other condition is true}{
this is done\tcc*[r]{else if}
}
\Else{
in other case, we do this\tcc*[r]{else}
}
}
}
\tcc{now loops}
\For{\forcond}{
a for loop\;
}
\While{$i<n$}{
a while loop including a repeat--until loop\;
\Repeat{this end condition}{
do this things\;
}
}
They are many other possibilities and customization possible that you have to
discover by reading the documentation.
}
\end{algorithm}
\end{document}
对于文档的其他部分,它重新定义\Fn
为显示其他内容(取决于输出要求)。