tex4ht:无法使用 \vref 命令编译文档

tex4ht:无法使用 \vref 命令编译文档

我用来tex4ht编译我的文档。

如果我 \vref在文档中使用命令,编译将失败并出现错误:

Undefined control sequence

如何处理这种情况?

答案1

好的,看来hyperrefvarioref之间存在一个问题tex4ht

\documentclass{article}
\usepackage{hyperref}
\usepackage{varioref}
% \let\vref\ref

\begin{document}
\section{first}\label{section}

See~\vref{section}


And \vpageref{section}. 
And a range: \vrefrange{section}{second}

\section{second}\label{second}
\end{document}

失败并显示错误消息:

(./sample.aux)
! TeX capacity exceeded, sorry [input stack size=5000].
<inserted text> 
                macro:->
l.9 See~\vref{section}

这个问题似乎是由于这三个包在将标签信息写入辅助文件的方式上存在冲突而引起的。我不知道系统解决方案,但作为一种修复方法,我们可以将和重新定义\vref\vpageref普通的\ref\pageref。您将丢失该on page部分,但由于html没有页码,所以无论如何它都没有意义。

尝试这个.cfg文件:

\Preamble{xhtml}
\makeatletter
\let\vr@f\ref
\let\vp@geref\pageref
\makeatother
\begin{document}
\EndPreamble

顺便说一句,\vrefrange似乎无需重新定义即可工作。这是配置的结果:

在此处输入图片描述

相关内容