[Tex/LaTex] verbatim environment inside algorithm2e

algorithm2ealgorithmsverbatim

I need to output Prolog style inside algorithm2e and It seems that I cannot use \verb inside algorithm2e.

How can I use \verb or verbatim for only one line inside algorithm2e in Latex?

Best Answer

Since algorithm2e uses a macro-style interface for its programming structures, using verbatim directly is a problem. If its use is really necessary, boxing the content before using it allows you to pass it as an argument to the programming structure commands:

enter image description here

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

\begin{algorithm}[H]
  \begin{lrbox}{\mycode}
  \verb!%&$*@#*%!
  \end{lrbox}
  \SetAlgoLined
  \KwData{this text}
  \KwResult{how to write algorithm with \LaTeX2e}
  initialization\;
  \While{not at end of this document}{
    read current\;
    \eIf{understand}{
      go to next section and \usebox{\mycode}\;
      current section becomes this one\;
    }{
      go back to the beginning of current section\;
    }
  }
  \caption{How to write algorithms}
\end{algorithm}
\end{document}

The verbatim content is stored in \mycode first using the lrbox environment. Subsequent usage of this box is via \usebox{\mycode}.

If it's not really necessary, using \texttt{..}, say, would (should) suffice. The decide here would be based on whether you have funny characters included in the part you designate as requiring verbatim.