¿Cómo puedo utilizar una macro de función de algoritmo2e dentro de un título de algoritmo2e?

¿Cómo puedo utilizar una macro de función de algoritmo2e dentro de un título de algoritmo2e?

Algorithm2e le permite definir funciones mediante \SetKwFunction{Fn}{Function}las cuales puede hacer referencia a cualquier parte del documento (no solo en un algorithmentorno) usando, por ejemplo, \Fn(lo que generará Functiontodo muy bien escrito en la fuente correcta). Sin embargo, esto no funciona dentro de los subtítulos. Por ejemplo, el siguiente documento:

\documentclass{article}
\usepackage{algorithm2e}
\SetKwFunction{Fn}{Function}
\begin{document}
\begin{algorithm}
  \caption{\Fn, my function}
  \KwRet{0}\;
\end{algorithm}
\end{document}

muere con

Argument of \@caption has an extra }.
<inserted text> 
                \par 
l.6   \caption{\Fn, my function}

¿Alguien sabe qué está pasando y cómo solucionarlo?

Respuesta1

La macro debe estar protegida para que pueda usarse dentro caption:

\caption{\protect\Fn my function}

Para obtener más información sobre por qué es necesario, consulte esta pregunta:

¿Cuál es la diferencia entre comandos frágiles y robustos?

información relacionada