# How to use mathematical symbols in listing?

I want to use math mode in lstlisting. How do I do that? How to put tab in this mode?

\begin{document}

module main()
enumerated States {$S_0$,$S_1$,$S_2$,$S_3$}
integer c;
initial : c = 0 and States = $S_0$;
endmodule
\end{lstlisting}


\end{document}

-
See 4.14 Escaping to LATEX of the documentation of listings. –  Ulrike Fischer Jul 18 '12 at 10:36

The escapeinside option allows you to define how to escape from verbaitm. Here's an example:

\begin{lstlisting}[escapeinside={(*}{*)}]
if foo
list= { (*$S_1,S_2,S_3$*) }
\end{lstlisting}


I've used escapeinside to define an opening (* and closing *) escape commands. Things between (* and *) will be typeset normally. Obviously, if (* or *) are common in whatever language you're using, you should pick something else.

In fact, if all you want to do is escape maths, you can use the mathescape option:

\begin{lstlisting}[mathescape=true]
if foo
list= { $S_1,S_2,S_3$ }
\end{lstlisting}

-