mjsr
mjsr

Reputation: 7590

how write this in verbatim latex

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?

Upvotes: 8

Views: 13621

Answers (6)

Duc Nguyen
Duc Nguyen

Reputation: 11

Here is my method, thanks @S.Lott for his advice.

If you want to write \end{verbatim} in the verbatim environment, you have to using another 'verbatim' layer to nest your code (this is where fancyvr package comes to play). Here it is:

\documentclass{article}
\usepackage{fancyvrb}           
\begin{document}
            
Some text here
    
\begin{Verbatim} % note 'uppercase V' in verbatim
                
\begin{verbatim}
Code example    
\end{verbatim}      
                
\end{Verbatim}
            
\end{document}

Upvotes: 0

Dervin Thunk
Dervin Thunk

Reputation: 20129

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.

Upvotes: 2

Craig Citro
Craig Citro

Reputation: 6625

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.)

Upvotes: 4

Charles Stewart
Charles Stewart

Reputation: 11837

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

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

Upvotes: 1

S.Lott
S.Lott

Reputation: 391852

Use the fancyvrb package instead of the default verbatim package.

Upvotes: 2

Jonno_FTW
Jonno_FTW

Reputation: 8809

 \\end{verbatim}

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

Upvotes: 5

Related Questions