
Ich habe ein Problem, bei dem der Befehl \ref für Gleichungen in align eine um 1 höhere Zahl setzt als sie sein sollte; Gleichungen sind korrekt nummeriert, aber die Referenzen sind falsch. Ein \ref-Aufruf der letzten Gleichung in align gibt nur ?? aus. Die Gleichungsumgebung funktioniert korrekt.
\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}
produziert
Hier ist die erste Referenz: 2
Und hier ist das zweite: ??
Und hier ist der dritte: 3
Antwort1
\\
In Umgebungen wie align
oder sollten Sie niemals ein Endzeichen verwenden gather
. Sie sollten auch nicht align
oder gather
für einzeilige Anzeigen verwenden. Darüber hinaus \\
passiert innerhalb nichts equation
.
Der \label
Befehl verweist auf die Anzeigezeile, in der er steht. Ihn danach einzugeben, \nonumber
verwirrt LaTeX nur.
\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}
Abschließende Anmerkungen
Das lipsum
Paket dient nur zur Bereitstellung von Text. Verwenden Sie die xdvi
Option nicht für graphicx
: Sie ist vorhanden, aber nur aus Gründen der Abwärtskompatibilität. Wenn Sie keinen Treiber wie verwenden dvipdfmx
, sollte keine Option angegeben werden. Ich habe auch die Pakete entfernt, die für das Beispiel nicht erforderlich sind.