cleveref の \cpageref が間違ったラベルを生成する

cleveref の \cpageref が間違ったラベルを生成する

次のコード

\documentclass{article}

\usepackage[utf8]{inputenc}
\usepackage[T1]{fontenc}
\usepackage[american]{babel}

\usepackage[hidelinks]{hyperref}

\usepackage[nameinlink, capitalize, noabbrev]{cleveref}

\begin{document}

\begin{figure}[!htbp]
  %
  \caption{Sample.}
  \label{fig:sample}
  %
  \centering
  %
  Some nice picture goes here.
  %
\end{figure}

Some text referring to the stuff on \cpageref{fig:sample}.

\end{document}

結果は以下のようになります:

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

これはパッケージのバグでしょうcleverefか、それとも何か明らかなことを見逃しているのでしょうか?

答え1

2018/02/08 からバグが発生していますcleveref 0.21.1。2013 年のバージョン 0.19 は期待通りに動作します。

refcount小さな回避策では、機能 (とにかくロードされる)を含むハイパー アンカーを抽出しますhyperref

\documentclass[english]{article}

\usepackage[utf8]{inputenc}
\usepackage[T1]{fontenc}
\usepackage{babel}

\usepackage[hidelinks]{hyperref}

\usepackage[nameinlink, capitalize, noabbrev]{cleveref}



\renewcommand{\cpageref}[1]{%
  \IfRefUndefinedExpandable{#1}{}{%
    \hyperlink{\getrefbykeydefault{#1}{anchor}{??}}{Page \getpagerefnumber{#1}}%
  }%
}

\begin{document}

\begin{figure}%[!htbp]
  %
  \caption{Sample.} \label{fig:sample}
  %
  \centering
  %
  Some nice picture goes here.
  %
\end{figure}

Some text referring to the stuff on \cpageref{fig:sample}.

\end{document}

答え2

最新のプレリリース(現在v0.21.3)で修正されており、以下から入手可能です。私のウェブサイト

Stackexchange はバグ トラッカーではないことに注意してください。SE に質問を投稿するか、ソフトウェアの通常のバグ報告チャネルを介してバグを報告してください。(より高度なソフトウェアの場合は、パッケージ ドキュメントに記載されているアドレスに通常の電子メールを送信してくださいcleveref。bugzilla/github/trac/whatever-bug-tracker-it-uses は、より高度なソフトウェアの場合に使用します。)

バグレポートは、コード貢献と同様に、フリーソフトウェア開発において貴重な部分です。まずは SE で質問してください。ただし、適切なバグレポートも提出することを忘れないでください。そうしないと、バグは SE で気付かれず、愛されず、修正されないまま放置される危険があります。

関連情報