This is a long story, whose sources are deep inside the workings of TeX itself; it all derives from the TeX’s striving to generate the best possible output.
The page number is conventionally stored in \count0
; LaTeX
users see this as the counter page, and may typeset its value
using \thepage
.
The number (that is to say, \count0
) is only updated when TeX
actually outputs a page. TeX only even tries to do this when it
detects a hint that it may be a good thing to do. From TeX’s point
of view, the end of a paragraph is a good time to consider outputting
a page; it will output a page if it has more than a page’s
worth of material to output. (Ensuring it always has something in
hand makes some optimisations possible.) As a result, \count0
(\thepage
) is almost always wrong in the first paragraph of a
page (the exception is where the page number has been “forcibly”
changed, either by changing its value directly, or by breaking the
page where TeX wouldn’t necessarily have chosen to break).
LaTeX provides a safe way of referring to the page number, by using label references. So, rather than writing:
you should write:Here is page \thepage{}.
(note: no space between theHere is page \pageref{here}\label{here}.
\pageref
and the \label
, since
that could potentially end up as a page-break space itself, which
rather defeats the purpose of the exercise!).
This question on the Web: http://www.tex.ac.uk/cgi-bin/texfaq2html?label=wrongpn