在算法环境中正确格式化过程名称

在算法环境中正确格式化过程名称

我想在算法环境中调用一个函数。

\documentclass{article}
\usepackage{algorithm}
\usepackage{algpseudocode}

\begin{document}

\begin{algorithm}
\caption{Recursion}

\begin{algorithmic}[1]
\Procedure{Recursion}{$a$}
    \State $a\gets Recursion(a)$ \Comment{Call Recursion again}
    \State \textbf{return} $a$ 
\EndProcedure
\end{algorithmic}
\end{algorithm}

\end{document}

我该怎么做才能让行中的“Recursion”一词获得“正确”的样式\State $r\gets Recursion(a)$

我尝试了类似 的方法\State $r\gets \Procedure{Recursion}{a}$,但只收到错误。官方文档没有关于此问题的示例。

答案1

我不认为您可以像尝试过的那样在其他地方打印程序的内容\State $a\gets \Procedure{Recursion}{a}$

您可以通过手动设置样式来做到这一点。您可以\textsc在数学模式中使用来执行此操作。您还可以添加\Comment(参见我提供的示例)。\textsc您也可以使用而不是\Call。有时要么\textsc要么\Call 不会按预期运作

% arara: pdflatex

\documentclass{article}
\usepackage{algorithm}
\usepackage{algpseudocode}

\begin{document}
\begin{algorithm}
\caption{Recursion}
\begin{algorithmic}[1]
\Procedure{Recursion}{$a$}
    \State $a\gets\Call{Recursion}(a)$ \Comment{Call Recursion again}
    \State \textbf{return} $a$ 
\EndProcedure
\end{algorithmic}
\end{algorithm}
\end{document}

在此处输入图片描述

答案2

在包中执行此操作的预期方式algorithmicx是使用\Call宏,例如:

\begin{algorithm}
\begin{algorithmic}
   \Function{Fix}{f}
      f(\Call{Fix}{f})
   \EndFunction
\end{algorithmic}
\end{algorithm}

答案3

这对我有用:

\documentclass{article}
\usepackage{algorithm}
\usepackage{algpseudocode}

\begin{document}

\begin{algorithm}
\caption{Recursion}

\begin{algorithmic}[1]
\Procedure{Recursion}{$a$}
    \State $a\gets$ \Call{Recursion}{$a$} \Comment{Call Recursion again}
    \State \textbf{return} $a$ 
\EndProcedure
\end{algorithmic}
\end{algorithm}

\end{document}

其渲染结果为: 递归

相关内容