Any document that requires information to be written to and read from an ancillary file will need compiling more than once. These include documents that contain
- references using
\thumbsoverview (thumbs package)
In particular, one would need to compile more than once if any of the above has cause to change- for example, you add a new section to your document, which would necessarily change the
Of course, in the case of
indexes one would need to run
makeidx between multiple compilations to ensure that these are kept up to date.
Following Gonzalo's comment, there are also cases in which no ancillary files are involved as is the case with some table-building packages which require several passes to calculate the proper elements of the table (
longtable, for example); or code using
PGF/TikZ specially when using the
remember picture/overlay options.