Общие принципы
Как мы знаем, любое место в тексте можно пометить с помощью команды \label с одним аргументом; на помеченное место можно сослаться с помощью команды \ref или \pageref с тем же самым аргументом. Команда \pageref дает на печати номер страницы, на которую попала соответствующая метка; поэтому \label нужно ставить вплотную к тому слову, к которому относится ссылка (при наличии пробела слово и ссылка на него могут попасть на разные страницы).
Что же до команды \ref, то с ней дело обстоит так. Многие конструкции LaTeX'а автоматически нумеруют те или иные элементы документа. Из тех, с которыми мы уже сталкивались, можно назвать следующие:
- команды рубрикации текста (\chapter, \section, и т.п.); те из них (наиболее "мелкие"), что номеров разделов не печатают, влияния на команду \ref не оказывают;
- окружения, создающие нумерованные выключные формулы (такие, как {equation} и {eqnarray}, а также многочисленные окружения, определенные в пакете {amsmath}: {multline}, {gather}, {align} и иже с ними);
- команда \caption;
- команда \item в окружении \env{enumerate};
- команда \cite.
Кроме того, автоматически создают номера, например, окружения типа "теорема", о которых пойдет речь в разд.7.5.2; можно также самостоятельно создавать команды, дающие автоматическую нумерацию (см.лекцию 7 ). Так или иначе, действует следующее правило:
если в тексте стоит команда \label{ghnm}, то \ref{ghnm} выдает на печати последний из автоматически сгенерированных номеров, оказавшихся перед \label{ghnm}.При первом (после появления новой команды \label) запуске LaTeX'а команды \ref и \pageref печатают вместо номеров вопросительные знаки, а на экран и в протокол трансляции выдается сообщение
LaTeX Warning: There were undefined references.Если при дальнейшей работе над текстом номера, на которые ссылается \ref или \pageref, изменятся, LaTeX выдаст такое предупреждение:
LaTeX Warning: Label(s) may have changed. Rerun to get cross-references right.Это означает, что в данный момент ссылки, сгенерированные командами \ref или \pageref, могут быть неверными. После повторного запуска LaTeX'а (иногда — не одного) все встает на свои места, и это предупреждение пропадает.
Скажем несколько слов про то, какие символы можно использовать в аргументе команды \label. Всегда можно пользоваться цифрами и (строчными и прописными) латинскими буквами; ни в коем случае нельзя помещать в аргумент \label фигурные скобки, а также симоволы ~(тильда) или \ (backslash). Прочие символы в аргументе команды \label иногда безобидны, а иногда приводят к синтаксическим ошибкам. Пока вы не стали TeX-ником, лучше такие эксперименты не ставить.
Возможность использования русских букв в метках зависит от используемой вами русификации.