Перейти к содержанию

Перекрёстные ссылки в LaTeX: \label и \ref

Поставьте \label{key} сразу после того, на что хотите сослаться (после \section{...}, после \caption{...}, внутри формулы), и напишите \ref{key} там, где нужен его номер; Scissor LaTeX подставит номер при вёрстке.

Сначала метка, потом ссылка

Перекрёстная ссылка состоит из двух половин. \label{key} отмечает пронумерованный объект, а \ref{key} печатает его номер. Ключ может быть любым именем по вашему выбору; префиксы вроде sec:, fig:, tab: и eq: представляют собой привычку, которая делает ключи читаемыми, а не правило.

Ссылка на раздел и рисунок

\section{Results}
\label{sec:results}

\begin{figure}[h]
  \centering
  \begin{tikzpicture}
    \draw (0,0) -- (1,0.8) -- (2,0.3) -- (3,1.1);
  \end{tikzpicture}
  \caption{Measured values.}
  \label{fig:values}
\end{figure}

Section~\ref{sec:results} shows the values in Figure~\ref{fig:values}.
Свёрстано в Scissor LaTeX: Ссылка на раздел и рисунок

~ между словом и ссылкой означает неразрывный пробел, поэтому «Figure» и его номер остаются на одной строке.

Куда ставить метку

Метка получает номер ближайшего пронумерованного объекта перед ней:

Ссылка наГде ставить \label\ref печатает
Разделсразу после \section{...} (или \subsection, \chapter)2, 2.1
Рисунок или таблицупосле \caption{...}, внутри плавающего объекта1
Формулувнутри equation или нумерованного align1
Пункт спискапосле \item в enumerate2, 2b
Теоремувнутри theorem, lemma и похожих окружений1
Сноскувнутри текста \footnote{...}2

Формулы

\eqref{key} печатает номер формулы в скобках, как обычно и показывают номера формул. \ref{key} даёт номер без скобок.

\eqref и \ref для формулы

LaTeXПреамбула: \usepackage{amsmath}Открыть в редакторе (откроется в новой вкладке)
\begin{equation}
  a^2 + b^2 = c^2
  \label{eq:pythagoras}
\end{equation}
Equation~\eqref{eq:pythagoras} is famous; its number is \ref{eq:pythagoras}.

В Scissor LaTeX блок align или gather получает один номер, а не по номеру на строку. Сохраняется только первая \label в блоке, поэтому ссылка на метку следующей строки печатает ??. Подробности см. на странице Формулы, выравнивание и нумерация.

Команды, добавляющие название: \autoref и \cref

\autoref (из hyperref) и \cref (из cleveref) печатают вид объекта вместе с его номером, поэтому писать «Figure» самому не нужно. \cref следует настройкам cleveref по умолчанию: строчные буквы и короткие названия («fig.», «eq.»), а \Cref в начале предложения даёт полное название с заглавной буквы.

\autoref, \cref и \Cref

LaTeXПреамбула: \usepackage{amsmath,hyperref,cleveref}Открыть в редакторе (откроется в новой вкладке)
\section{Method}
\label{sec:method}
\begin{equation}
  y = 44x
  \label{eq:line}
\end{equation}
\begin{table}[h]
  \centering
  \caption{Settings.}
  \label{tab:settings}
  \begin{tabular}{lr} Runs & 44 \\ \end{tabular}
\end{table}
\autoref{sec:method} uses \cref{tab:settings} and \cref{eq:line}.
\Cref{tab:settings} lists the runs.
Свёрстано в Scissor LaTeX: \autoref, \cref и \Cref

cleveref умеет также ссылаться сразу на несколько меток и на диапазон:

Списки и диапазоны с \cref

LaTeXПреамбула: \usepackage{amsmath,cleveref}Открыть в редакторе (откроется в новой вкладке)
\begin{equation} a = 1 \label{eq:a} \end{equation}
\begin{equation} b = 2 \label{eq:b} \end{equation}
See \cref{eq:a,eq:b}, or \crefrange{eq:a}{eq:b}.

Параметры пакета capitalise (или capitalize), noabbrev и nameinlink учитываются, как и \crefname и \Crefname в преамбуле.

Параметры cleveref и \crefname

\documentclass{article}
\usepackage{amsmath}
\usepackage[capitalise,noabbrev]{cleveref}
\crefname{table}{Tab.}{Tabs.}
\begin{document}
\begin{equation} E = mc^2 \label{eq:e} \end{equation}
\begin{table}[h]
  \centering
  \caption{Masses.}
  \label{tab:m}
  \begin{tabular}{l} 44 kg \\ \end{tabular}
\end{table}
\cref{eq:e} uses the mass in \cref{tab:m}.
\end{document}
Свёрстано в Scissor LaTeX: Параметры cleveref и \crefname
КомандаВ Scissor LaTeXПримечания
\ref{key}РаботаетТолько номер.
\eqref{key}РаботаетНомер в скобках.
\pageref{key}РаботаетНомер страницы, на которой стоит метка.
\autoref{key}Частично«Section 2», «Figure 1», «Table 1», «Theorem 1». Для формул печатает только номер, а не «Equation 1».
\cref, \CrefРаботаетОдна или несколько меток; названия cleveref по умолчанию или ваши из \crefname.
\crefrange, \cpageref, \namecrefРаботаетДиапазон, страница или только название.
\nameref{key}ЧастичноПечатает номер, а не заголовок раздела.
\vref{key}ЧастичноПечатает номер без «on the next page».
\hyperref[key]{text}РаботаетПечатает ваш текст как ссылку на метку.

Страницы и отсутствующие метки

\pageref печатает страницу, на которой стоит метка. Ссылка на несуществующую метку печатает полужирные ??, как LaTeX до второго прогона, а вкладка «Проблемы» один раз перечисляет каждую отсутствующую метку: «References to labels that do not exist (shown as ??): sec:nowhere».

\pageref и отсутствующая метка

\section{Data}
\label{sec:data}
The data is described on page~\pageref{sec:data}.
This label does not exist: Section~\ref{sec:nowhere}.

Вкладка «Проблемы»: References to labels that do not exist (shown as ??): sec:nowhere

Отличия от установленного TeX

О пакетах см. cleveref и hyperref; полные руководства находятся на CTAN: cleveref, hyperref.

Вопросы и ответы

Почему моя ссылка в LaTeX показывает ???

Метки не существует, или она написана иначе, чем в \ref. В Scissor LaTeX это может также означать, что метка вторая в блоке align, который получает только один номер.

Как сослаться на формулу в скобках?

Используйте \eqref{key} из amsmath. Она печатает номер в скобках, например (1).

Чем \ref отличается от \autoref?

\ref печатает только номер. \autoref добавляет вид объекта, например «Figure 1» или «Section 2», и вам не нужно набирать это слово самому.

Каждый пример на этой странице верстается в Scissor LaTeX при сборке сайта. Обновлено 2026-11-07.