Наведите указатель мыши на другие части PDF-файла.
label и ref, а также smartef для автоматических имен.
Укажите на другие части PDF-файла
Ввод «см. рисунок 3» вручную — это обещание, которое вы не сможете сдержать. Добавьте одну цифру, указанную ранее в документе, и каждое набранное от руки число после того, как оно окажется неправильным. LaTeX решает эту проблему с помощью механизма, состоящего из двух частей: \label присоединяет выбранное вами имя к пронумерованному объекту, а \ref печатает любой номер, который получил этот объект. Вы ссылаетесь на имена, а компилятор сохраняет цифры честными.
Метка и ссылка
\section{Methods}\label{sec:methods}\begin{equation}\label{eq:main} ... \end{equation}\begin{figure} ... \caption{...}\label{fig:pipeline}\end{figure}
See Section~\ref{sec:methods}, Eq.~\eqref{eq:main}, and Figure~\ref{fig:pipeline}.\label{sec:methods} записывает последний назначенный номер (здесь это номер раздела) под ключом sec:methods. Позже \ref{sec:methods} печатает это число, а \eqref — это вариант amsmath, который добавляет соглашение о скобках для уравнений, печатая «(1)», а не «1».
Две детали в этом примере имеют большое значение. Во-первых, внутри рисунка метка должна идти после \caption, потому что заголовок — это то, что перемещает счетчик рисунка; метка, помещенная перед тем, как он вместо этого автоматически выбирает текущий номер раздела. Во-вторых, ~ в Figure~\ref{...} представляет собой неразрывный пробел, который удерживает слово и его номер в одной строке, вместо того, чтобы позволить “Рисунок” заканчивать одну строку, а “3” начинать следующую.
Префиксы sec:, fig: и eq: являются чистым соглашением. LaTeX не требует их, но они делают ключи читаемыми и позволяют редактору автозаполнения группировать ваши метки по типу.
Почему ты видишь??
При первой компиляции после добавления метки \ref печатает ??. Числа разрешаются через файл .aux, записанный во время предыдущего запуска, поэтому для появления новой метки требуется еще одна компиляция; почему вы компилируете более одного раза объясняет механизм. ??, который выдерживает две последовательные компиляции, почти всегда означает, что ключ в \ref не соответствует ключу в \label.
умник напишет за тебя слово
С умным (загрузка после гиперрефера):
\usepackage{cleveref}\cref{fig:pipeline}\cref{fig:pipeline} печатает «Рисунок 3», включая имя типа, и адаптируется, если вместо этого метка оказывается таблицей или уравнением. \Cref начинает предложение с заглавной буквы, а \cref{eq:a,eq:b,eq:c} сжимает список в диапазон. Обратите внимание на порядок загрузки: smartef — один из немногих пакетов, которые должны идти после hyperref, что противоречит обычному правилу. Примите это заранее. Модификация \cref в бумагу, полную рукописных фраз “Figure~\ref”, утомительна.