vref in den appendix
Hallo TeXWelt!
Mir ist ein komischer Bug im Zusammenspiel von varioref [`varioref`][1] und cleveref [`cleveref`][2] aufgefallen. Ich würde gerne in den Anhang mit varioref's \vref `varioref`'s `\vref` verweisen. Jedoch habe ich die Anpassung von [Schlosser][1] [Schlosser][3] bzgl.
"ab Seite"/"auf Seite" übernommen und mit dieser hat er Probleme, wenn man in den Ahang Anhang verweist.
%%%Cleveref & Varioref ab Seite statt auf Seite setzen
\makeatletter
\def\curtlabtype{}% << define temporary variable
\let\@old@cref@vref\cref@vref% << save cleveref's definition
\def\cref@vref#1#2{% << modify cleveref's definition
\cref@gettype{#2}{\curtlabtype}% << get type of label
\@old@cref@vref{#1}{#2}}% << call original macro
\vref@addto\extrasngerman{% << modify varioref macros
\def\reftextfaraway#1{% << only change far away references
\ifthenelse{\equal{\curtlabtype}{chapter}}{ab Seite}{auf Seite}~\pageref{#1}}}%
\makeatother
Ich konnte den Fehler auf die Zeile
\cref@gettype{#2}{\curtlabtype}%
eingrenzen. Kommentiert man diese Zeile aus, dann läuft es durch, natürlich ohne ab/auf Seite Anpassung. Die Fehlermeldung ist
Argument of \@firstoftwo has an extra }. <inserted text> \par l.41 ...pt1}. Und hier in den Appendix \vref{test} .
Nachdem ich in die jeweiligen Dokus und .sty `.sty` Files geschaut habe und kein offensichtlichen Fehler entdecken kann, komme ich nun nicht mehr weiter.
Hat jemand von euch eine Idee? Danke! :)
Hier das Minimalbeispiel:
\documentclass[
paper=a4,
fontsize=12pt,
]{scrreprt}
\usepackage[T1]{fontenc}
\usepackage[utf8]{inputenc}
\usepackage[ngerman]{babel}
\usepackage{blindtext}
\usepackage[demo]{graphicx}
\usepackage[ngerman]{varioref}
%\usepackage{hyperref}
\usepackage[ngerman]{cleveref}
\usepackage{ifthen}
%%%Cleveref & Varioref ab Seite statt auf Seite setzen
\makeatletter
\def\curtlabtype{}% << define temporary variable
\let\@old@cref@vref\cref@vref% << save cleveref's definition
\def\cref@vref#1#2{% << modify cleveref's definition
\cref@gettype{#2}{\curtlabtype}% << get type of label, hier entsteht der Fehler
\@old@cref@vref{#1}{#2}}% << call original macro
\vref@addto\extrasngerman{% << modify varioref macros
\def\reftextfaraway#1{% << only change far away references
\ifthenelse{\equal{\curtlabtype}{chapter}}{ab Seite}{auf Seite}~\pageref{#1}}}%
\makeatother
\begin{document}
\chapter{Chap 1}
\label{chapt1}
\Blindtext[5]
\chapter{Chap 2}
\label{chapt2}
Ein Test auf \vref{chapt1}. Und hier in den Appendix \vref{test}.
\Blindtext
\appendix
\chapter{Chap A}
\begin{figure}[h]%
\includegraphics[width=0.5\textwidth]{}
\caption{test caption}
\label{test}
\end{figure}
\end{document}
[1]: http://www.ctan.org/pkg/varioref
[2]: http://www.ctan.org/pkg/cleveref
[3]: http://www.schlosser.info/latex-cleveref-varioref-ab-seite/