我用来tex4ht
编译我的文档。
如果我 \vref
在文档中使用命令,编译将失败并出现错误:
Undefined control sequence
如何处理这种情况?
答案1
好的,看来hyperref
和varioref
之间存在一个问题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
似乎无需重新定义即可工作。这是配置的结果: