我正在使用以下软件包:
\usepackage{algpseudocode}
\usepackage{algorithm}
但我不明白什么是包algpseudocode
,因为我找不到文档。我已经关注了这一页。它和 有什么区别algorithmicx
?
另外,如何在不使用的情况下在函数内部进行调用(例如递归?)\text{...}
(字体会有所不同,并且看起来不像函数)。以下是示例:
\begin{algorithm}
\begin{algorithmic}[1]
\Function {foo}{$a$}
...
\State \Return \text{foo($a-1$)}
\EndFunction
\end{algorithmic}
\end{algorithm}
我该如何创建新行(例如,如果 a\text{...}
太长)?
最后,我如何定义\TRUE
宏(如algorithmic
包)?
提前致谢。
答案1
感谢 texenthusiast 和 karlkoeller 的帮助,我解决了所有问题。
algpseudocode
是algorithmicx
包的一部分(文档)
对于嵌套函数我刚刚做了
\begin{algorithm}
\begin{algorithmic}[1]
\Function {foo}{$a$}
...
\State \Return \Call{foo}{$a-1$}
\EndFunction
\end{algorithmic}
\end{algorithm}
拆分长行To split a long line
\State \parbox[t]{.7\linewidth}{a very very very very very very very very very very very long line}
至于\True
我\algnewcommand\True{\textbf{true}\space}
在文档开头添加的宏,
下面是完全可编译的代码:
\documentclass{report}
\usepackage[noend]{algpseudocode}
\usepackage{algorithm}
\algnewcommand\True{\textbf{true}\space}
\algnewcommand\False{\textbf{false}\space}
\begin{document}
\begin{algorithm}
\begin{algorithmic}[1]
\Function {foo}{$a$}
\State \parbox[t]{.7\linewidth}{a very very very very very very very very very very very long line}
\State \Return \Call{foo}{$a-1$}
\EndFunction
\end{algorithmic}
\end{algorithm}
\end{document}