Знаки питання замість цифр

Мітки потребують ще одного проходу; розміщення міток після підписів.

Знаки питання замість цифр

Ви компілюєте, і там, де має бути цифра чи номер рівняння, PDF показує «??». Це не помилка у вашому джерелі. Саме так LaTeX рендерить посилання, яке ще не може розв’язати, і виправлення зазвичай полягає в повторній компіляції.

Чому одного пропуску недостатньо

LaTeX читає ваш документ зверху вниз за один прохід. Коли він зустрічає \label, він записує поточний номер у файл .aux; коли він зустрічає \ref, він шукає число з файлу .aux, записаного попереднім запуском. У новій компіляції немає попереднього запуску, тому кожне посилання друкується як ??. Другий прохід зчитує завершений файл .aux і заповнює числа. Компілятор Oleafly, що входить до комплекту, автоматично повторює проходи, доки цифри не вирівняються, але якщо ви запускаєте pdflatex вручну, друга компіляція — ваша робота.

Коли?? переживає другий прохід

Якщо знаки питання не зникають, виконайте три перевірки. По-перше, порівняйте написання в \ref з \label символ за символом; мітки чутливі до регістру, а випадковий пробіл зараховується. По-друге, перевірте, де знаходиться етикетка. \label записує значення останнього крокового лічильника, а в float це \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: робить зіткнення рідкісними, а джерело легшим для пошуку; сам процес роботи з мітками описано в числах і покажчиках для рівнянь.

Назад до Журнал грамотності