0

I don't get page numbers of sections in the table of content correctly when I use the package lstlisting. I'm using the documentclass article. I need to use this class, not report.

Any ideas how this can be fixed?

6
  • Did you run latex a few times?
    – Kerrek SB
    Commented Jan 6, 2012 at 3:04
  • I don't understand your question. I make sure I'm not overrunning Latex. I close everything then try.
    – stupidity
    Commented Jan 6, 2012 at 4:32
  • Have a look at tex.stackexchange.com/questions/38802/…
    – lockstep
    Commented Jan 6, 2012 at 11:36
  • In order to get the correct page numbers, a couple of LaTeX runs are needed.
    – egreg
    Commented Jan 6, 2012 at 11:37
  • 2
    Information contained within the Table of Contents is extracted from a file that is created after you run latex. As such, it usually takes (at least) two separate runs in order for the entries to be there and correct. If this is not the case, edit your post and include a minimal working example (MWE) that illustrates your problem.
    – Werner
    Commented Jan 6, 2012 at 18:46

1 Answer 1

2

Based on the comments I suspect that you are not running latex enough times. Compiling the example below the first time produces:

enter image description here

But upon subsequent run (assuming that you do not delete the temporary files that are generated upon the first run) you get:

enter image description here

\documentclass{article}
\usepackage{listings}
\usepackage{lipsum}% for dummy text


\usepackage{filecontents}

\begin{filecontents*}{foo.java}
 public int nextInt(int n) {
     if (n<=0)
        throw new IllegalArgumentException("n must be positive");

     if ((n & -n) == n)  // i.e., n is a power of 2
         return (int)((n * (long)next(31)) >> 31);

     int bits, val;
     do {
         bits = next(31);
         val = bits % n;
     } while(bits - val + (n-1) < 0);
     return val;
 }
\end{filecontents*}


\begin{document}
\tableofcontents\newpage
\section{First Section}
\lipsum[1-7]

\lstinputlisting{foo.java}

\section{Second Section}
\lipsum[8-12]
\end{document}
1
  • 1
    Thanks all for the comments. I use Latexian for Mac. I figured that it runs 2 times by default. I changed it to 3 times, and that took care of the issue.
    – stupidity
    Commented Jan 7, 2012 at 1:24

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .