ハイパーリファレンスを使用した図の参照問題

ハイパーリファレンスを使用した図の参照問題

私の問題は単純なようですが、まだ解決策が見つかっていません。私は 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 では、「図」という単語の後に数字はなく、さらに) 記号も欠落しています。

図とその参照の順序を変更し、() マークを残してみましたが、何も効果がありませんでした。

皆さんの助けを待っています。よろしくお願いします :)

アップデート: 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}

これを 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エラーが発生する可能性があります。.auxhyperrefnameref

回避策:

  • この場合、エラーは無視でき、新しい.auxファイルが書き込まれ、次の LaTeX 実行は正常に実行されるはずです。

  • hyperrefまたは、 / nameref(または他のパッケージ) が追加または削除された場合は、補助ファイルを削除します。

答え2

答えを見つけました: babel パッケージのオプションで最後の言語として「ハンガリー語」を使用すると、エラーが発生します。他の組み合わせを使用すると、コードは問題なくコンパイルされます...

関連情報