Question

i have a little question about the verbatim environment in latex..... my problem is how can i write "\end{verbatim}" inside of a verbatim environment, it supposed that everything inside a verbatim is written just like it looks but this is the string to end the environment, so how can i do this?

Was it helpful?

Solution

I think it might be impossible in a verbatim environment -- at least, that's what Lamport says in the LaTeX book (first paragraph on pg. 64). However, you can do it with the \verb command: \verb+\end{verbatim}+ works just fine (and in fact, you can use any character instead of + as long as you make them match).

That said, the listings package is smart enough to have an escape character. For example,

\begin{lstlisting}[escapechar=+]
+\verb!\end{lstlisting}!+
\end{lstlisting}

does exactly what you're looking for. (Again, pick a different character than + if you're already using that for something else.)

OTHER TIPS

 \\end{verbatim}

Should do it by making the initial \ into a literal backslash.

Use the fancyvrb package instead of the default verbatim package.

Craig's answer is good. Alternatively, \expandafter\string\csname end{verbatim}\endcsname.

These solutions won't linebreak nicely: fixing this is fiddly.

I have a simpler solution. Write a non-breaking space, in Emacs it's C-x 8 SPC (Windows, though I haven't tried it is Alt+0160 (on numeric keypad)). So, you can do this:

\begin{verbatim}
\_end{verbatim}
\end{verbatim}

where the first \end{verbatim} has this "_", the non-breaking character.

Licensed under: CC-BY-SA with attribution
Not affiliated with StackOverflow
scroll top