| Hallo TeXWelt! Mir ist ein komischer Bug im Zusammenspiel von  Open in writeLaTeX %%%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 Open in writeLaTeX \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 Open in writeLaTeX 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  Hat jemand von euch eine Idee? Danke! :) Hier das Minimalbeispiel: Open in writeLaTeX \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} | 
| Das ist kein Bug von  Ich schlage daher zwei (oder eigentlich drei...) Änderungen an der Definition vor: 
 Um die Tests bequem zu machen, lade ich  Open in writeLaTeX \ifcsdef{r@<labelname>}{<wahr>}{<falsch>} ob das Label existiert. Allerdings könnte das zu Problemen führen, wenn man vor dieser Verwendung von  Open in writeLaTeX \ifundefinedorrelax{r@<labelname>}{<wahr>}{<falsch>} % oder \scr@ifundefinedorrelax{r@<labelname>}{<wahr>}{<falsch>} zurückgreifen. Beide werden vom Paket  Statt  Open in writeLaTeX \ifdefstring{\curtlabtype}{<string>}{<wahr>}{<falsch>} Damit ich auf  Open in writeLaTeX \ifboolexpr { test {\ifdefstring{\curtlabtype}{chapter}} or test {\ifdefstring{\curtlabtype}{appendix}} } {ab Seite} {auf Seite}% Damit erhalte ich: 
 für folgenden Beispielcode: Open in writeLaTeX \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{etoolbox} % Cleveref & Varioref: % für Kapitel `ab Seite' statt `auf Seite' setzen \makeatletter \newcommand*\curtlabtype{} \let\@old@cref@vref\cref@vref \renewcommand*\cref@vref[2]{% \scr@ifundefinedorrelax{r@#2}% teste, ob Label `#2' definiert ist {} {\cref@gettype{#2}{\curtlabtype}}% \@old@cref@vref{#1}{#2}% } \vref@addto\extrasngerman{% \renewcommand*\reftextfaraway[1]{% \ifboolexpr { test {\ifdefstring{\curtlabtype}{chapter}} or test {\ifdefstring{\curtlabtype}{appendix}} } {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}. Hier auf \vref{chapA}. \Blindtext \appendix \chapter{Chap A}\label{chapA} \begin{figure}[h]% \includegraphics[width=0.5\textwidth]{} \caption{test caption} \label{test} \end{figure} \end{document} Klappt wunderbar! Die tikzexternalize funktioniert nun ebenfalls. Vielen Dank! Edit: "Bug"-Report an Schlosser gerade abgeschickt. 
                
                
                
                
                
                (02 Jul '14, 20:30)
                maphy-psd
                
             @maphy-psd Keine Ursache :) Mal sehen, ob Joachim seinen Blogpost anpasst. 
                
                
                
                
                
                (02 Jul '14, 22:03)
                cgnieder
                
             Er will es korrigieren. ;-) 
                
                
                
                
                
                (03 Jul '14, 10:31)
                maphy-psd
                
             | 
 
			
 
  
Ich bekomme weder mit einem aktuellen MiKTeX 2.9 noch mit einem aktuellen TeXLive 2014 Fehlermeldungen mit dem Code.
Allerdings funktioniert die Umschaltung auf "ab Seite" für den Anhang nicht, wenn ich das Label auf die Überschrift des Anhanges A verweisen lasse. Es erscheint dann immer nach "auf Seite". Im Anhang ist der entsprechende
\curtlabtypevermutlichappendixund nichtchapter.Mir fällt grad auf, dass er beim ersten Lauf den Fehler anzeigt, beim zweiten Lauf läuft alles sauber durch. Die Unterscheidung nach ab/auf Seite funktioniert auch. Das Problem besteht nun eigentlich darin, dass ich in meiner Arbeit tikzexternalize aktiviert habe und durch den Fehler im 1. Lauf die Bilder nicht erstellt werden.
Ich (akt. TL2014) bekomme beim ersten Kompilieren für jedes neue Label den Fehler, beim zweiten Durchlauf geht es. Für Label für
\chapterim Anhang kann ich das falsche Verhalten, das @esdd erwähnt, bestätigen.Für Labels chapter erhalte ich ebenfalls keine Unterscheidung, für das Bild schon. Habe ebenfalls TL2014.