使用 make4ht 编译时 Hyperref 包无法与 titlesec 包一起使用

使用 make4ht 编译时 Hyperref 包无法与 titlesec 包一起使用

使用 make4ht 编译时,hyperref 包似乎与 titlesec 包有冲突。以下文档使用 make4ht 编译。编译后的 html 文件不包含目录。

\documentclass{article}
\usepackage{titlesec}
\titleformat{\section}[runin]{\normalfont\bfseries}{\thesection.}{3pt}{}
\usepackage{hyperref}
\begin{document}
\tableofcontents
\section{First}
\section{Second}
\section{Third}
\end{document}

这该如何处理?请注意,删除 titlesec 包和命令 titleformat 后就不会出现问题。

答案1

这个问题与 hyperref 无关,\titleformat问题的关键在于runin选项。它似乎重新定义了,\section无法tex4ht插入 HTML 标签作为标题,而且这些标签不会保存到目录中。此外,文档中完全没有第三部分。

我发现该hang格式适用于tex4ht,因此有一个简单的解决方法:只需将runin(和display,与 有同样的问题runin)格式重新定义为hang

\Preamble{xhmtl}
\begin{document}
\titlelabel{\thetitle.}
\makeatletter
\let\ttlh@runin\ttlh@hang
\let\ttlh@display\ttlh@hang
\makeatother
\EndPreamble

我添加了\titlelabel{\thetitle.}一行来获取节号后的点,因为似乎此功能不受tex4ht以下配置支持\titleformat-

现在看来可以了:

在此处输入图片描述

相关内容