我想制作一个包含两章的网页,其中每章包含一些节,并且节内又包含小节。
我在调用 tex4ht 时使用split=4
。这意味着按节进行拆分。即,将每个节作为其自己的单独页面。
但是,对于第一章,我不想进行拆分。即,我希望整个章节显示在它自己的页面上(包括所有章节和任何小节)。
为此,我使用技巧
\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
结果如下: