奇妙な\crefバグ

奇妙な\crefバグ

私はcleverref自分の文書で を使用しています。残念ながら、奇妙なバグが発生しています。方程式 を参照して\label{eg:hey}、 と記述する\cref{eq:hey}と が得られますequation (1,1)。多くの場合、その結果は方程式になりますが、バグが発生して に変わることもありますsection 1.1.1

理由について何か考えはありますか? 複数の参照が定義されていないことを二重三重に確認しました。

私の参照コード:

\hypersetup{colorlinks = true,citecolor = title,linkcolor = title,urlcolor = title}
\usepackage[noabbrev]{cleveref}
\creflabelformat{figure}{\color{tudelft-dark-blue} \textbf{#1#2#3}}
\crefname{figure}{figure}{figures}
\creflabelformat{table}{\color{tudelft-dark-blue} \textbf{#1#2#3}}
\crefname{table}{table}{table}
\creflabelformat{equation}{[#1#2#3]}
\creflabelformat{equation}{\color{tudelft-dark-blue}(#1#2#3)}
\crefname{equation}{\color{tudelft-dark-blue}equation}{equations}
\crefrangeformat{equation}{eq. #3[#1]#4--#5[#2]#6}
\crefrangeformat{equation}{equation #3#1#4--#5#2#6}

私のコード:

 \cref{eq:K1}
\begin{eqnarray}
K_1 &=&\sigma_n Y\sqrt{\pi a}\label{eq:K1}
\end{eqnarray}

結果:

ここに画像の説明を入力してください

\cref変化した結果\ref

ここに画像の説明を入力してください

助けてください!

答え1

問題は実際には では\crefなく、 を使用していることですeqnarrayeqnarrayはいくつかの点で問題があることが知られており、使用すべきではありません。例を参照してください。

あなたが示した方程式では、とにかく位置合わせは必要ありません。これが、 を使用しないもう一つの理由ですeqnarray。代わりに を使用してくださいequation

amsmathリンクされた質問のいくつかで述べられているように、の代わりにが提供する環境を使用してくださいeqnarray

問題を示す最小限の例:

ここに画像の説明を入力してください

\documentclass{article}
\usepackage{cleveref}    
\begin{document}
\section{ABC}
\cref{a,b}
\begin{eqnarray}
\mathit{wrong} \label{a}
\end{eqnarray}
\begin{equation}
\mathit{right} \label{b}
\end{equation}
\end{document}

答え2

eqnarrayTorbjørn T. が言うように、(MWE を盗むことは)避けるのが最善ですが、本当にそれを使用する必要がある場合は、カウンター\crefを拾うのに少し手助けすることができますequation

ここに画像の説明を入力してください

\documentclass{article}
\usepackage{cleveref}    
\begin{document}
\section{ABC}
\cref{a,b}
\begin{eqnarray}
\mathit{wrong}
%set up \label for \cref
\addtocounter{equation}{-1}\refstepcounter{equation}
\label{a}
\end{eqnarray}
\begin{equation}
\mathit{right} \label{b}
\end{equation}
\end{document}

関連情報