Для любознательных
Скажем несколько слов о том, как происходит автоматическая генерация ссылок. Когда в обрабатываемом файле встречается команда \label, LaTeX записывает информацию о ней в специальный файл, называемый aux-файлом (при обработке файла text.tex имя aux-файла будет text.aux)9) При этом в aux-файл заносится следующая информация о метке: выбранное вами имя метки (аргумент команды \label), номер страницы, на которую эта метка попала (этот номер будет в дальнейшем напечатан командой \pageref), и, наконец, тот номер, который должен будет напечататься командой \ref (говоря более TeX'ническим языком, это вид на печати того счетчика, который последним подвергся увеличению с помощью \refstepcounter — см. лекцию 7.
Далее, всякий aux-файл читается LaTeX'ом за один сеанс работы дважды: первый раз до начала обработки текста и второй раз — после ее завершения. При первом чтении aux-файла LaTeX запоминает имеющуюся в нем информацию о метках; именно исходя из этой информации команды \ref и \pageref печатают ссылки (если информации о данной метке при первом чтении aux-файла не обнаружено, вместо ссылки печатаются вопросительные знаки, а на экран выдается сообщение о неопределенной метке; так будет заведомо, если в tex-файле присутствуют ссылки на впервые появившуюся метку). При втором чтении aux-файла (после завершения работы с текстом, когда aux-файл был записан заново) LaTeX сравнивает имеющуюся у него информацию о метках с той, что содержится в новой версии aux-файла; если информация о метках изменилась, выдается знакомое предупреждение " Label(s) may have changed".