tex4ht 使用 \PauseCutAt{section} 时会删除子节。为什么会发生这种情况?

tex4ht 使用 \PauseCutAt{section} 时会删除子节。为什么会发生这种情况?

我想制作一个包含两章的网页,其中每章包含一些节,并且节内又包含小节。

我在调用 tex4ht 时使用split=4。这意味着按节进行拆分。即,将每个节作为其自己的单独页面。

在此处输入图片描述

以上来自如何使用 tex4ht 在子节级别拆分文章

但是,对于第一章,我不想进行拆分。即,我希望整个章节显示在它自己的页面上(包括所有章节和任何小节)。

为此,我使用技巧

\ifdefined\HCode
\PauseCutAt{section}
\fi

\chapter{This is Chapter 1}
   .....

\ifdefined\HCode
\ContCutAt{section}
\fi

\chapter{This is Chapter 2}
   .....

上述作品。即第 1 章现在都在其自己的网页上(所有部分都在同一页面中),但第 2 章的每个部分都在单独的页面中,这正是我想要的。

但问题是,第 1 章现在缺少第 3 节中的子节。它们完全消失了。

我不知道为什么会发生这种情况。以下是 MWE。

如何让它停止在节级分割,但不删除子节?这些子节确实出现在第 2 章中。

\documentclass[12pt]{book}
\usepackage{hyperref}
    
\begin{document}      
\frontmatter
\title{the title}
\author{me}
\date{\today}
\maketitle    

\ifdefined\HCode
\Configure{tableofcontents*}{chapter}
\else
\setcounter{tocdepth}{1} % for main TOC, only show chapter and sections
\tableofcontents
\fi 

\ifdefined\HCode
\TocAt{chapter,section}
\TocAt{section,subsection}
\fi

\mainmatter  


\ifdefined\HCode
\PauseCutAt{section}
\fi

\chapter{This is Chapter 1}
\section{First section in chapter 1}
This is First section in chapter 1
\section{Second section in chapter 1}
This is Second section in chapter 1
\section{Third section in chapter 1}
This is Third section in chapter 1
\subsection{First subsection in third section in chapter 1}
This is First subsection in third section in chapter 1
\subsection{Second subsection in third section in chapter 1}
This is First subsection in third section in chapter 1

\section{Fourth section in chapter 1}
This is Fourth section in chapter 1

\ifdefined\HCode
\ContCutAt{section}
\fi

\chapter{This is  Chapter 2}
\section{First section in chapter 2}
This is First section in chapter 2
\section{Second section in chapter 2}
This is Second section in chapter 2
\section{Third section in chapter 2}
This is Third section in chapter 2
\subsection{First subsection in third section in chapter 2}
This is First subsection in third section in chapter 2
\subsection{Second subsection in third section in chapter 2}
This is First subsection in third section in chapter 2

\section{Fourth section in chapter 2}
This is Fourth section in chapter 2

\end{document}

使用编译

make4ht  -ulm default -a debug  index.tex "mathjax,htm,4,fn-in,notoc*"

给予

在此处输入图片描述

点击第一章,我看到了这个

在此处输入图片描述

对于已恢复拆分的第 2 章,这些小节确实显示正常。

我尝试在命令行上更改拆分级别,但子部分仍然缺失!

make4ht  -ulm default -a debug  index.tex "mathjax,htm,5,fn-in,notoc*"
make4ht  -ulm default -a debug  index.tex "mathjax,htm,3,fn-in,notoc*"

这是 tex4ht 中的错误还是用户错误?我可以将其报告为错误,但现在我不确定我是否正确使用了此功能。

更新

我找到了一个解决方案。但这毫无意义。但它现在确实生成了第 1 章,没有缺少的小节。它应该使用 split=2 !但根据上面的列表,split=2 意味着在 \part 处拆分。所以我的问题是,为什么这样做有效?为什么 split=4 不起作用?

make4ht  -ulm default -a debug  index.tex "mathjax,htm,2,fn-in,notoc*"

现在第一章是这样的

在此处输入图片描述

我想我真的还是不明白 texh4t 的拆分级别以及它的实际含义。如果不是我所想的那样,即“将每个部分及其中的所有内容放在一个网页上”,那么 4 级拆分级别实际上意味着什么?我认为现在这是一个漏洞

如果用户想要分割级别 4 但仍然看到那里的子部分怎么办?

TL 2022

>which make4ht
/usr/local/texlive/2022/bin/x86_64-linux/make4ht
>make4ht --version
make4ht version v0.3l

答案1

这是因为您需要使用\PauseCutAt\ContCutAt才能获得正确的级别。使用选项,您可以在、、和处4剪切页面(请注意,我已更新\part\chapter\section\subsection链接答案,因为它提供了不正确的事实)。

因此,您不仅需要停止切割\section,还需要停止切割\subsection。因此正确的代码是:

\ifdefined\HCode
\PauseCutAt{section}
\PauseCutAt{subsection}
\fi

\chapter{This is Chapter 1}
\section{First section in chapter 1}
This is First section in chapter 1
\section{Second section in chapter 1}
This is Second section in chapter 1
\section{Third section in chapter 1}
This is Third section in chapter 1
\subsection{First subsection in third section in chapter 1}
This is First subsection in third section in chapter 1
\subsection{Second subsection in third section in chapter 1}
This is First subsection in third section in chapter 1

\section{Fourth section in chapter 1}
This is Fourth section in chapter 1

\ifdefined\HCode
\ContCutAt{section}
\ContCutAt{subsection}
\fi

结果如下:

在此处输入图片描述

相关内容