如何让 \hypereff[]{} 与 htlatex 一起工作?

如何让 \hypereff[]{} 与 htlatex 一起工作?

在这个最小的例子中:

\documentclass[11pt]{book}
\usepackage[utf8]{inputenc}
\usepackage[]{hyperref}

\begin{document}
Hahaha \hyperref[other]{2}
\end{document}

使用 pdflatex 进行编译,结果很好:

pdf

但是当我用

make4ht minimal.tex "mathml"

html 版本无法正确显示数字。

在此处输入图片描述

我想知道,如何调整 htlatex 以使其正确生成带有 \hyperref 的文档?

谢谢

答案1

这似乎是 TeX4ht 对该\hyperref命令的支持中的一个错误。它\ref在内部使用该命令,因此当未找到链接的标签时,它会打印??以表示缺少引用。由于您的文档中没有任何other标签,因此您会得到这个缺少的引用符号。

您可以使用以下配置文件来模拟该\hyperref行为,即使缺少引用也会打印文本:

\Preamble{xhtml}
\makeatletter
\def\label@hyperref[#1]{%
  \expandafter\label@@hyperref\csname r@#1\endcsname{#1}%
}%
\def\label@@hyperref#1#2#3{%
  \ifx#1\relax
    \protect\G@refundefinedtrue
    \@latex@warning{%
      Hyper reference `#2' on page \thepage \space undefined%
    }%
    \begingroup
      \hyperrefundefinedlink{#3}%
    \endgroup
  \else%
    \def\hyperrefLabel{#3}%
    \Configure{ref}%
      {\Link}{\EndLink}{\Configure{ref}{}{}{}#3}\ref{#2}%
  \fi
}
\makeatother
\begin{document}
\EndPreamble

编译使用:

 make4ht -c config.cfg minimal.tex "mathml"

结果如下:

在此处输入图片描述

相关内容