Наведіть вказівник на інші частини PDF-файлу
label і ref, плюс cleveref для автоматичних імен.
Вказуйте на інші частини 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, оскільки підпис є тим, що змінює лічильник фігур; мітка, розміщена перед ним, мовчки підбирає номер поточного розділу. По-друге, ~ у Рисунок~\ref{...} є нерозривним пробілом, який зберігає слово та його номер на одному рядку замість того, щоб «Рисунок» закінчував один рядок, а «3» починав наступний.
Префікси sec:, fig: і eq: є чистою умовністю. LaTeX не потребує їх, але вони роблять ключі читабельними та дозволяють редактору автозаповнення групувати ваші мітки за типом.
Чому ти бачиш??
Під час першої компіляції після додавання мітки \ref друкує ??. Числа розпізнаються через файл .aux, записаний під час попереднього запуску, тому для появи нової мітки потрібна ще одна компіляція; чому ви компілюєте більше одного разу пояснює механізм. ??, який витримує дві послідовні компіляції, майже завжди означає, що ключ у \ref не збігається з ключем у \label.
cleveref пише слово за вас
З cleveref (завантаження після гіперпосилання):
\usepackage{cleveref}\cref{fig:pipeline}\cref{fig:pipeline} друкує «Рисунок 3», включаючи назву типу, і адаптує, якщо натомість мітка виявиться таблицею або рівнянням. \Cref починає речення з великої літери, а \cref{eq:a,eq:b,eq:c} стискає список у діапазон. Зверніть увагу на порядок завантаження: cleveref — це один із небагатьох пакунків, який має стояти після hyperref, навпаки звичайного правила. Приймайте це рано. Перевстановлення \cref на папір, повний написаних від руки фраз «Figure~\ref» — справа втомлива.