当我在文档中使用 \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
插入分页符是为了它自己的目的!