使用 hyperref 的图形引用问题

使用 hyperref 的图形引用问题

我的问题看似简单,但我还没有找到任何解决方案。我正在用 LaTeX 写论文,但我对这种语言完全陌生。

我试图引用一个图如下:

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

而该图在引用之后定义为:

\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}

在编译过程中,我收到错误“段落在 \Hy@setref@link 完成之前结束”,当然在编译出来的pdf中,Figure后面没有任何数字,而且也没有)符号。

我尝试改变图形及其参考的顺序,保留()标记,但没有任何帮助。

我正在等待你们的帮助,提前感谢你们:)

更新: 梅威瑟:

\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}

现在,如果您不使用 hyperref 包编译此文件,则与使用该包编译时相比,您会得到相同的错误。如果您再次编译,MWE 中的错误会消失(但整个文档中的错误仍然存​​在)。

更新#2: 现在我已经设法找到了正确的 MWE,当使用 \selectlanguage 命令时会出现问题:

\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}

提前谢谢你,亚当

答案1

hyperref带有包的包nameref会更改数据的内部数据格式\label,因为它们需要额外的数据。因此,如果文件中的数据.aux是由不同的包组合写入的,尤其是带有或不带有hyperref/ nameref,则可能会触发错误。

解决方法:

  • 在这种情况下,可以忽略错误,.aux写入新文件,下次运行 LaTeX 应该没问题。

  • 或者删除辅助文件(如果hyperref/ nameref(或其他一些包)被添加或删除)。

答案2

我找到了答案:如果您在 babel 包的选项中使用“匈牙利语”作为最后一种语言,则会出现错误。如果您使用任何其他排列,代码将编译而不会出现任何问题......

相关内容