Вопросительные знаки вместо цифр
Этикетки требуют еще одного прохода; размещение меток после подписей.
Знаки вопроса вместо цифр
Вы компилируете, и там, где должен быть номер цифры или уравнения, в PDF-файле отображается ??. Это не ошибка в вашем источнике. Именно так LaTeX отображает ссылку, которую он еще не может разрешить, и исправление обычно заключается в повторной компиляции.
Почему одного прохода недостаточно
LaTeX читает ваш документ сверху вниз за один проход. Когда он встречает \label, он записывает текущий номер в файл .aux; когда он встречает \ref, он ищет номер в файле .aux, записанном при предыдущем запуске. В новой компиляции нет предыдущего запуска, поэтому каждая ссылка печатается как ??. Второй проход считывает завершенный файл .aux и заполняет его числами. Входящий в комплект компилятор Oleafly автоматически выполняет повторные запуски до тех пор, пока числа не установятся, но если вы управляете pdflatex вручную, вторая компиляция – это ваша работа.
Когда ?? выдерживает второй проход
Если знаки вопроса не исчезли, выполните три проверки. Сначала сравните написание в \ref с написанием \label посимвольно; метки чувствительны к регистру, и ненужные пробелы учитываются. Во-вторых, проверьте, где находится этикетка. \label записывает значение последнего шага счетчика, а в формате с плавающей запятой именно \caption перемещает счетчик, поэтому метка должна идти после заголовка:
\begin{figure} \centering \includegraphics[width=0.7\textwidth]{plot.pdf} \caption{Convergence of the estimator.} \label{fig:convergence}\end{figure}
Figure~\ref{fig:convergence} shows the effect.Метка, помещенная перед заголовком, компилируется без проблем, но принимает неправильный счетчик, обычно текущий раздел, поэтому ссылка печатает правдоподобное, но неправильное число, а не ??. Этот вариант хуже, потому что его легко пропустить. В-третьих, если файл .aux был удален во время выполнения или компиляция была прервана, записанные метки могут быть неполными; перекомпилировать из чистого состояния.
Чтение предупреждений
В журнале указано, в каком случае вы находитесь. «Были неопределенные ссылки» означает, что по крайней мере один \ref ничего не нашел. «Метка(и) могла быть изменена. Повторите запуск, чтобы получить правильные перекрестные ссылки» означает, что другой проход исправит это. «Множественное определение метки» означает, что две команды \label имеют одно имя, и LaTeX молча использует одну из них, поэтому переименовывайте, пока каждая метка не станет уникальной. Соглашение об именах с префиксами eq:, fig: и tab: делает коллизии редкими и облегчает поиск источника; сам рабочий процесс создания этикеток описан в числах и указателях для уравнений.