
У меня возникла проблема, когда команда \ref устанавливает число на 1 больше, чем должно быть для уравнений в align; уравнения пронумерованы правильно, но ссылки отключены. Вызов \ref к последнему уравнению в align просто печатает ??. Среда уравнений работает правильно.
\documentclass{pnastwo}
\usepackage[xdvi]{graphicx}
\usepackage{amsmath}
\usepackage{xfrac}
\usepackage{refcount}
\begin{document}
\begin{article}
\begin{align}
vt=d\\\nonumber
\label{eq:1}
\end{align}
\begin{align}
\frac{d}{t}=v\\\nonumber
\label{eq:2}
\end{align}
\begin{equation}
t=\frac{d}{v}\\\nonumber
\label{eq:3}
\end{equation}
Here is the first reference: \ref{eq:1}
And here is the second: \ref{eq:2}
And here is the third: \ref{eq:3}
\end{article}
\end{document}
производит
Вот первая ссылка: 2
А вот и второй: ??
А вот и третий: 3
решение1
Никогда не следует использовать завершающий \\
в окружениях типа align
или gather
. Также не следует использовать align
или gather
для отображения одной строки. Более того, \\
ничего не делает внутри equation
.
Команда \label
относится к строке отображения, в которой она находится; указание ее после \nonumber
просто запутает LaTeX.
\documentclass{pnastwo}
\usepackage{amsmath}
\usepackage{lipsum} % just for the example
\begin{document}
\begin{article}
\lipsum*[1]
\begin{align}
vt &= d \label{eq:1} \\
\frac{d}{t} & =v \label{eq:2}
\end{align}
\lipsum*[3]
\begin{equation}
t=\frac{d}{v} \label{eq:3}
\end{equation}
\lipsum[4]
Here is the first reference: \ref{eq:1}
And here is the second: \ref{eq:2}
And here is the third: \ref{eq:3}
\end{article}
\end{document}
Заключительные замечания
Пакет lipsum
предназначен только для предоставления текста. Не используйте опцию xdvi
для graphicx
: она существует, но только для обратной совместимости. Если вы не используете драйвер, такой как dvipdfmx
, никакой опции не должно быть. Я также удалил пакеты, не нужные для примера.