Как использовать макрос функции algorithm2e внутри заголовка algorithm2e?

Как использовать макрос функции algorithm2e внутри заголовка algorithm2e?

Algorithm2e позволяет вам определять функции, используя \SetKwFunction{Fn}{Function}которые вы затем можете ссылаться в любом месте документа (не только в algorithmсреде) с помощью eg \Fn(что выведет Functionвсе красиво набранным правильным шрифтом). Однако это не работает внутри подписей. Например, следующий документ:

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

умирает с

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

Кто-нибудь знает, что происходит и как это исправить?

решение1

Макрос должен быть защищен, чтобы его можно было использовать внутри caption:

\caption{\protect\Fn my function}

Для получения более подробной информации о том, почему это необходимо, ознакомьтесь с этим вопросом:

В чем разница между командами Fragile и Robust?

Связанный контент