TeX - LaTeX Stack Exchange is a question and answer site for users of TeX, LaTeX, ConTeXt, and related typesetting systems. Join them; it only takes a minute:

Sign up
Here's how it works:
  1. Anybody can ask a question
  2. Anybody can answer
  3. The best answers are voted up and rise to the top

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


\begin{lstlisting}[frame=single]                % Start your code-block
module main()
enumerated States {$S_0$,$S_1$,$S_2$,$S_3$}
integer c;
initial : c = 0 and States = $S_0$;

enter image description here

share|improve this question
See 4.14 Escaping to LATEX of the documentation of listings. – Ulrike Fischer Jul 18 '12 at 10:36
up vote 11 down vote accepted

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

  if foo
  list= { (*$S_1,S_2,S_3$*) }

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:

  if foo
  list= { $S_1,S_2,S_3$ }
share|improve this answer

Your Answer


By posting your answer, you agree to the privacy policy and terms of service.

Not the answer you're looking for? Browse other questions tagged or ask your own question.