Подписи, соответствующие номеру
Поместите метку после подписи, чтобы номер запомнился.
Подписи, соответствующие номеру
Перекрестные ссылки — это одна из вещей, с которыми LaTeX справляется лучше, чем текстовый процессор. Вы никогда не печатаете «Рисунок 3» от руки. Вместо этого вы прикрепляете к фигуре метку и позволяете LaTeX заполнять число везде, где оно упоминается, поэтому числа остаются правильными независимо от того, сколько вы меняете порядок, вставляете или удаляете. В механизме есть одно правило, которое хотя бы раз сбивает с толку почти каждого: порядок \caption и \label имеет значение.
Почему порядок важен
Команда \caption выполняет две задачи. Он печатает текст подписи под вашим рисунком или таблицей и перемещает счетчик, превращая это плавающее число в рисунок 3. Команда \label делает нечто более глупое, чем люди ожидают: она записывает любое число, которое было присвоено последним, каким бы оно ни было. Он понятия не имеет, что находится «внутри фигуры». Поэтому метка должна идти после заголовка:
\caption{A neat diagram.}\label{fig:neat}Если вы поместите \label перед \caption, заголовок еще не перешагнул счетчик цифр, поэтому метка полностью захватывает самое последнее число откуда-то еще, обычно из текущего раздела. Затем в вашем тексте говорится «см. рисунок 2.4», хотя на самом деле это рисунок 7. Это классический симптом: ссылки, указывающие на номера разделов, а не на номера рисунков, почти всегда означают, что метка размещена слишком рано. Самая безопасная привычка — писать \label в строке, следующей сразу за \caption, каждый раз, как на рисунках, так и в таблицах.
Ссылка на метку
В тексте напишите ссылку следующим образом:
Figure~\ref{fig:neat}\ref{fig:neat} расширяется до простого числа, и вы сами указываете слово «Рисунок». ~ между ними представляет собой неразрывный пробел, который не позволяет LaTeX когда-либо заканчивать строку после «Рисунок» и начинать следующую с «3». Префиксы, такие как fig:, tab:, sec: и eq:, являются чистым соглашением, LaTeX не интерпретирует их, но они сохраняют читабельность ваших меток и предотвращают случайное использование общего имени для рисунка и таблицы.
Обратите внимание, что \pageref{fig:neat} дает номер страницы, на которой находится рисунок, что полезно в длинных документах, где число с плавающей запятой может отойти далеко от упоминания. Полный обзор ссылающихся команд см. в разделе объяснение каждой команды.
Двойная компиляция и другие подводные камни
Ссылки разрешаются при запуске компилятора: первый проход записывает позиции меток в файл .aux, а второй проход считывает их обратно. До этого второго прохода ссылки печатаются в виде жирных вопросительных знаков, поэтому ?? в вашем PDF-файле обычно означает просто «перекомпилировать заново», а не то, что что-то сломано. Большинство редакторов, включая Oleafly, автоматически повторяют проходы. Если ?? выдерживает повторные компиляции, метка не существует. Вероятными причинами являются опечатка в названии метки или \caption, который вы удалили, оставив \label.