I want to use the package varioref
, but using abbreviations ... (p.1)
instead
of ... on page 1
. Unfortunately, I have also references in
parentheses, where this would lead to unaesthetic/forbidden (?) double closing brackets.
I tried using \@ifnextchar
to recognize this case, but this seems not to work.
Here, a minimal example:
\documentclass[]{article}
\usepackage{varioref}
\usepackage{cleveref}
\usepackage[english]{babel}
\makeatletter
\addto\extrasenglish{%
\def\reftextfaraway#1{\@ifnextchar){on p.~\pageref{#1}}{(p.~\pageref{#1})}}%
}
\makeatother
\begin{document}
In \vref{sec:test}, this is explained.
Other text (cf.\ \vref{sec:test}).
\newpage
\null\newpage
\section{Test}
\label{sec:test}
\end{document}
Intended output:
In chapter 1 (p. 3), this is explained. Other text (cf. chapter 1 on p. 3).
Current output:
In chapter 1 (p. 3), this is explained. Other text (cf. chapter 1 (p. 3)).
\unskip
fixes the problem. – jofel Mar 18 '16 at 14:30