![algorithm2e キャプション内で algorithm2e 関数マクロを使用するにはどうすればよいですか?](https://rvso.com/image/327806/algorithm2e%20%E3%82%AD%E3%83%A3%E3%83%97%E3%82%B7%E3%83%A7%E3%83%B3%E5%86%85%E3%81%A7%20algorithm2e%20%E9%96%A2%E6%95%B0%E3%83%9E%E3%82%AF%E3%83%AD%E3%82%92%E4%BD%BF%E7%94%A8%E3%81%99%E3%82%8B%E3%81%AB%E3%81%AF%E3%81%A9%E3%81%86%E3%81%99%E3%82%8C%E3%81%B0%E3%82%88%E3%81%84%E3%81%A7%E3%81%99%E3%81%8B%3F.png)
Algorithm2e では、関数を定義して、たとえば(適切なフォントですべて適切にタイプセットされて出力されます)を使用して\SetKwFunction{Fn}{Function}
、ドキュメント内の任意の場所 (環境内だけでなく) で参照することができます。ただし、これはキャプション内では機能しません。たとえば、次のドキュメント:algorithm
\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}
これがなぜ必要なのかの詳細については、次の質問をご覧ください。