我注意到一个大问题。当我在文档上使用拆分级别时,它应该在部分级别进行拆分,因为我使用了级别2
,但事实并非如此。
事实证明,当我删除时hyperref
,它会做正确的事情并在部分级别进行拆分。
看如何使用 tex4ht 在子部分级别拆分文章? 用于分割级别。
这是 MWE
\documentclass[12pt]{article}
\usepackage{hyperref}
\begin{document}
\section{section one}
text
\section{section two}
text
\end{document}
使用编译
make4ht -ulm default -a debug foo.tex "mathjax,htm,2"
给出这个 HTML
你看,它没有分割页面。现在只需删除\usepackage{hyperref}
并重新编译,它就会给出正确的页面,其中每个部分都放在自己的页面上
我在 TL 2023 和 TL 2022 中检查了这一点。
难怪我总是很难使用 tex4ht 进行分层。它的工作方式取决于是否\usepackage{hyperref}
使用。要让它在hyperref
加载时在节级别进行拆分,3
应该使用 level 而不是2
。但这完全是错误的。拆分级别不应受到加载的影响hyperref
错误追踪关联
答案1
这是因为 TeX4ht 检查\@chapter
命令是否存在,以决定应使用哪些分段级别来分页。通常,此命令在类中未定义article
,但hyperref
加载nameref
包时,该包似乎无条件地定义了它。这意味着,在这种情况下,该选项会在和2
处分页。我们需要取消定义才能使一切正常工作,例如使用此配置文件:\part
\chapter
\@chapter
\makeatletter
\ifdefined\chapter\else
\global\let\@chapter\@relax
\fi
\makeatother
\Preamble{xhtml}
\begin{document}
\EndPreamble
我们需要在处理文件之前发生这种改变.4ht
,这意味着它需要在\Preamble
命令之前发生。
结果: