\cpageref von cleveref erzeugt falsches Label

\cpageref von cleveref erzeugt falsches Label

Der folgende Code

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

Ergibt das Ergebnis:

Bildbeschreibung hier eingeben

Handelt es sich hier um einen Fehler im cleverefPaket oder übersehe ich etwas völlig Offensichtliches?

Antwort1

Es gibt einen Fehler cleveref 0.21.1vom 08.02.2018. Die Version 0.19 von 2013 funktioniert wie erwartet.

Ein kleiner Workaround extrahiert den Hyperanker mit refcountFeatures (die hyperrefsowieso geladen werden).

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

Antwort2

Behoben in der neuesten Vorabversion (aktuell v0.21.3), verfügbar untermeine Webseite.

Bitte beachten Sie, dass Stackexchange kein Bugtracker ist. Stellen Sie Fragen an SE; melden Sie Fehler über den normalen Fehlermeldekanal der Software. (Einfache E-Mail an die in den Paketdokumenten angegebene Adresse für cleveref; Bugzilla/Github/Trac/welcher Bugtracker auch immer verwendet wird für anspruchsvollere Software.)

Fehlerberichte sind ein ebenso wertvoller Teil der Entwicklung freier Software wie Codebeiträge. Fragen Sie unbedingt zuerst bei SE danach, aber vergessen Sie nicht, auch einen richtigen Fehlerbericht einzureichen! Andernfalls besteht die Gefahr, dass sie unbeachtet, ungeliebt und ungefixt bei SE versauern.

verwandte Informationen