[Tex/LaTex] varioref: \vref or \vpageref at page boundary (may loop)

cross-referencingloopspage-breakingvarioref

Sometimes a have situations, where I'm not able to compile a document, because the varioref package result in a loop. Here is a MWE, which result not in an endless loop, but it demonstrate the issue (tested with TeX Live 2012)

\documentclass[12pt]{article}
\usepackage{blindtext,varioref}
\begin{document}
\blindtext[3]

These words are only for demonstration purposes. These words are only for demonstration purposes. These words are only for demonstration purposes. These words are only for demonstration purposes. These words are only for demonstration purposes. These words are only for demonstration purposes. These words are only for demonstration purposes. These words are only for demonstration purposes. These words are only for ... See table \vref{tab:example}

\begin{table}[htbp]
\centering
\begin{tabular}{l}
Test\\
\end{tabular}
\caption{Example Table}
\label{tab:example}
\end{table}
\blindtext
\end{document}

Is there a rock solid solution for this issue? I known, removing a word or replace \vref with \ref helps, but this is not a solution (for my opinion).

Best Answer

To say it short: the only solution for this is: rephrase the sentence or use \ref or \pageref.

A little bit longer: This error message informs you that the created reference goes over the current page and variorefdoes not know whether it should count it on page x or x+1. Is the reference on page x the text of the reference is calculated to "this page" or "the page before". If the reference would be on page x+1 it should be "the page before" or "two pages before". If the reference is located on two pages varioref can't be precice.

To get rid of this error the only way is to rephrase the sentence so that the reference stays on a page or use macros \ref and/or \pageref to build a valid reference.

Related Question