
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}
Для получения более подробной информации о том, почему это необходимо, ознакомьтесь с этим вопросом: