除非使用 cleveref,否则将报告页面边界处的 \vref 和 \vpageref(来自 varioref)

除非使用 cleveref,否则将报告页面边界处的 \vref 和 \vpageref(来自 varioref)

以下 MWE(借自varioref:\vref 或 \vpageref 在页面边界(可能循环)) 表明页面边界处的\vref\vpageref(从 开始)报告有错误(如果放在前言中,则报告有警告):varioref\vrefwarning

包 varioref 错误:\vref 或 \vpageref 在页面边界 [...](可能循环)。

但是,如果cleveref加载了,即使出现循环也不会有报告(就像 MWE 中该行% \usepackage{cleveref}被注释掉时会发生的那样)。

cleveref你知道即使使用了又如何获取报告吗?

\documentclass[12pt]{article}
\usepackage{blindtext,varioref}
% \usepackage{cleveref}

\makeatletter
\@ifpackageloaded{cleveref}{%
  \newcommand{\crossref}{\vref{tab:example}}
}{%
  \newcommand{\crossref}{table \vref{tab:example}}
}%
\makeatother

\newcommand{\test}{%
  \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 \crossref

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

\begin{document}
\test
\end{document}

答案1

这可能与 这个错误,这个问题现在应该在最新版本 (0.19.3) 中得到修复,可从我的网站。至少,您cleveref启用的 MWE 现在会产生页面边界警告。

相关内容