Abbildungsreferenzprobleme mit HyperRef

Abbildungsreferenzprobleme mit HyperRef

Mein Problem scheint einfach zu sein, obwohl ich noch keine Lösung dafür finden konnte. Ich schreibe meine Abschlussarbeit in LaTeX, aber diese Art von Sprache ist für mich völliges Neuland.

Ich versuche, auf eine Zahl wie folgt zu verweisen:

(see Figure~\ref{fig:transistor1})

wobei die Zahl direkt nach der Quellenangabe wie folgt definiert wird:

\begin{figure}[htb]
\centering
\includegraphics[width=0.4\linewidth]{./_pic/transistor1}
\caption[The first transistor]{The first point-contact transistor developed by Bell Laboratories}
\label{fig:transistor1}
\end{figure}

Während der Kompilierung erhalte ich die Fehlermeldung "Absatz endete, bevor \Hy@setref@link vollständig war", und natürlich steht im kompilierten PDF nach dem Wort Figure keine Zahl, außerdem fehlt auch das )-Symbol.

Ich habe versucht, die Reihenfolge der Abbildung und ihrer Referenz zu ändern und die Markierungen () belassen, aber nichts hat geholfen.

Ich warte auf eure Hilfe, Leute, und danke im Voraus :)

Aktualisieren: MWE:

\documentclass[a4paper,12pt,twoside,openright]{report}

\usepackage[pdfusetitle, colorlinks, filecolor={[rgb]{0,0,1}},urlcolor={[rgb]{0,0,1}}, citecolor={[rgb]{0,0,0.4}}, linkcolor={[rgb]{0,0,0.4}}, bookmarks]{hyperref}

\begin{document}
\chapter{MEMS technology}

\ref{fig:transistor1}

\begin{figure}[htb]
\centering
\caption[The first transistor]{The first point-contact transistor developed by Bell Laboratories}
\label{fig:transistor1}
\end{figure}

\end{document}

Wenn Sie dies nun ohne das Hyperref-Paket kompilieren, können Sie denselben Fehler erhalten. Wenn Sie es erneut kompilieren, verschwindet der Fehler im MWE (im gesamten Dokument bleibt er jedoch bestehen).

Update Nr. 2: Jetzt habe ich es geschafft, das richtige MWE zu finden, das Problem tritt auf, wenn der Befehl \selectlanguage verwendet wird:

\documentclass[a4paper,12pt,twoside,openright]{report}
\usepackage[british,german,hungarian]{babel}
\usepackage[pdfusetitle, colorlinks, filecolor={[rgb]{0,0,1}},urlcolor={[rgb]{0,0,1}}, citecolor={[rgb]{0,0,0.4}}, linkcolor={[rgb]{0,0,0.4}}, bookmarks]{hyperref}

\begin{document}
\selectlanguage{british}
\chapter{MEMS technology}

\ref{fig:transistor1}

\begin{figure}[htb]
\centering
\caption[The first transistor]{The first point-contact transistor developed by Bell Laboratories}
\label{fig:transistor1}
\end{figure}

\end{document}

Vielen Dank im Voraus Adam

Antwort1

Paket hyperrefmit Paket namerefverändert das interne Datenformat der \labelDateien, da diese zusätzliche Daten benötigen. Daher können Fehler auftreten, wenn die Daten in die .auxDatei mit unterschiedlichen Paketkombinationen geschrieben werden, insbesondere mit oder ohne hyperref/ nameref.

Problemumgehungen:

  • In diesem Fall kann der Fehler ignoriert werden, eine neue .auxDatei wird geschrieben und der nächste LaTeX-Lauf sollte problemlos verlaufen.

  • Oder löschen Sie die Hilfsdateien, wenn hyperref/ nameref(oder andere Pakete) hinzugefügt oder entfernt werden.

Antwort2

Ich habe die Antwort gefunden: Wenn Sie „Ungarisch“ als letzte Sprache in den Optionen des Babel-Pakets verwenden, tritt der Fehler auf. Wenn Sie andere Permutationen verwenden, wird der Code problemlos kompiliert....

verwandte Informationen