我的问题看似简单,但我还没有找到任何解决方案。我正在用 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 包的选项中使用“匈牙利语”作为最后一种语言,则会出现错误。如果您使用任何其他排列,代码将编译而不会出现任何问题......