4

I have a LaTeX document using the algorithm2e package. It used to work before I upgraded to texlive (it's the Debian version 2012.20120516-1 -- some snapshot from 2012, if I understand correctly).

The problem is that now it seems that I can't use underscores in captions of algorithms, functions, and so on...

\documentclass{article}

\usepackage{algorithm2e}

\begin{document}

\begin{procedure}
This is ``A''
\caption{method\_A}
\end{procedure}

\end{document}

When I try to process the above document with pdflatex, I see this error:

Runaway argument?
method\_A@\endcsname ##1{\FuncSty {\algocf@captname method\_A@(}\ArgSty \ETC.
! Paragraph ended before \algocf@captname was complete.
<to be read again> 
                   \par 
l.11 

? 

What does this error mean, and is there anything I can do to fix it?

Werner
  • 603,163
Jay
  • 2,895
  • 2
  • 27
  • 38

1 Answers1

6

The procedure environment supplied by algorithm2e has a strict requirement in terms of its caption. From the algorithm2e documentation:

...the syntax of the \caption command is restricted as follow: you MUST put a name followed by 2 braces like this “Name()”. You can put arguments inside the braces and text after. If no argument is given, the braces will be removed in the title.

As such, you're required to use something like:

enter image description here

\documentclass{article}
\usepackage{algorithm2e}% http://ctan.org/pkg/algorithm2e
\begin{document}

\begin{procedure}
This is ``A''
\caption{proc(method\_A)}
\end{procedure}

\end{document}
Werner
  • 603,163
  • Thanks! It is a bit strange (particularly because C function names may have underscores -- and usually do), but I can rework the document to not use those. – Jay Jun 06 '12 at 18:56
  • 2
    @Jay: Sure. Of course, a completely different question would be to change the caption to meet your needs. Using procedure or function forces a certain requirement and also output. Asking follow-up questions like this are more than welcome! Please use the "Ask Question" link for your new question; there you can link to this question to provide the background. – Werner Jun 06 '12 at 18:58
  • @Werner fyi, I added related question here with reference to your answer here. – Nasser Mar 27 '23 at 19:22