算法 2e:在标题和文档文本中使用函数名称(格式化)

算法 2e:在标题和文档文本中使用函数名称(格式化)

在 algorithm2e 中,我如何在标题和文档的任何其他部分使用函数名称(如打印/样式)。我注意到使用“\FUNNAME”,一般来说,有时有效,有时无效。在下面的示例中,使用 \GETMAX 在文档中有效(有时),但在标题中根本不起作用。有没有具体的方法可以解决这个问题?

例子:

\documentclass{article}

\usepackage{epsfig}


\usepackage[linesnumbered,ruled,vlined]{algorithm2e}
\SetKwProg{Fn}{Function}{}{end}
\SetKwFunction{GETMAX}{getMax}
\begin{document}

\begin{algorithm}
\DontPrintSemicolon
\Fn{\GETMAX{atom, neighbour}} {
\KwIn{x }
\KwOut{max}
$max \gets x[1]$\;
\For{$i \gets 2$ \textbf{to} $n$} {
  \If{$x[i] > max$} {
    $max \gets x[i]$\;
  }
}
\Return{$max$}\;
}
\caption{\texttt{getMax}  isa  function }
\label{algo:getmax}
\end{algorithm}

Algorithm~\ref{algo:getmax} \GETMAX function I can not use same command inside the caption 



\end{document}

答案1

algorithm2e 以脆弱的方式定义 \GETMAX。这意味着在将其参数也移动到其他位置的命令中(标题是移动到算法列表),它可能会中断。

您应该保护该命令:

 \caption{\protect\GETMAX  isa  function }

或者使其更强大:

 \usepackage{etoolbox}
 \robustify\GETMAX

相关内容