\pageref 在 TeX4HT 中给出错误的页码

\pageref 在 TeX4HT 中给出错误的页码

当我在文档中使用 \pageref 时,我在 TeX4HT 输出(即 Html 文件)中得到了错误的页码

平均能量损失

\documentclass{article}

\title{Sample TeX4HT}

\begin{document}
\maketitle

\section{A Head}\label{sec1}

Macro language has evolved gradually: as the need arose for actions beyond a predefined set of commands. As a consequence, it is a pretty non-standard language that implements loops and conditional statements with macro functions rather than keywords. 
\pageref{sec1}
\end{document}

如下所示,输出中得到的是“x”,而不是 1,

<span class="pageref"><a href="#x1-10001"><span class="cmsy-10">x</span></a></span>

我使用参数编译了该文件

htlatex filename "xhtml"

请建议如何获取正确的页码

答案1

HTML 中没有页面的概念,因此默认\S使用部分 ( ) 符号tex4ht。但在内部,页面仍然被使用,因此实际上可以使用它们。它们只是在 HTML 文件中不存在,因此可能会有点令人困惑。

pageref配置有三个参数,前两个在引用之前和之后插入标签,第三个参数包含引用中应使用的文本。当第三个参数为空时,将使用默认文本,即引用对象的 DVI 文件中的页面:

\Preamble{xhtml}
\Configure{pageref}{\HCode{<span class="pageref">}}{\HCode{</span>}}{}
\begin{document}
\EndPreamble

下面的例子:

%https://tex.stackexchange.com/q/501041/2891
\documentclass{article}

\usepackage{lipsum}
\title{Sample TeX4HT}

\begin{document}
\maketitle

\section{A Head}\label{sec1}

\lipsum[1-12]
Macro language has evolved gradually: as the need arose for actions beyond a predefined set of commands. As a consequence, it is a pretty non-standard language that implements loops and conditional statements with macro functions rather than keywords. 
\section{another}\label{sec2}
\pageref{sec1}, \pageref{sec2}
\end{document}

产生以下结果:

在此处输入图片描述

请注意,页码与同一文档生成的 PDF 版本完全不对应,因为tex4ht插入分页符是为了它自己的目的!

相关内容