使用 tex4ht 时书籍和文章类的目录间距差异很大。如何让它们都使用相同的间距?

使用 tex4ht 时书籍和文章类的目录间距差异很大。如何让它们都使用相同的间距?

比较书籍类中的目录与 tex4ht

\documentclass[12pt]{article}
\setcounter{tocdepth}{5} % for main TOC must be in preamble
\setcounter{secnumdepth}{5}

\begin{document}
\title{my book}
\author{me}
\date{\today}
\maketitle

\tableofcontents

\section{section name}
section data
\subsection{subsection name}
subsection data
\subsubsection{subsubsection name}
subsubsection data
\paragraph{paragraph name}
paragraph data

\end{document}

编译为

make4ht -ulm default -a debug  main.tex 'mathjax,htm'

给出(仅显示目录)

在此处输入图片描述

注意向右移动的量。现在与这个 MWE 进行比较,它是相同的,但是是书籍类

\documentclass[12pt]{book}    

\setcounter{tocdepth}{5} % for main TOC must be in preamble
\setcounter{secnumdepth}{5}

\begin{document}
\title{my book}
\author{me}
\date{\today}
\maketitle

\tableofcontents

\chapter{book name}
my book
\section{section name}
section data
\subsection{subsection name}
subsection data
\subsubsection{subsubsection name}
subsubsection data
\paragraph{paragraph name}
paragraph data       
\end{document}

使用相同命令编译得到

在此处输入图片描述

我发现两个问题:

  1. 在上面的第一个例子中,向右移动的量太小,可以稍微大一些,并且1.1.1.1没有向右移动的段落号subsubsection
  2. 在书籍类中,向右移动的量与文章类相比太大了。如果目录中所有类的移动量都相同,那就更好了。请注意,在书籍类中,段落编号现在移到了子小节的右侧,这是正确的做法,只是移动量太大了。

我只是喜欢有美观的目录,即使是 HTML 格式,而不只是 PDF 格式 :)

链接至 tex4ht 错误跟踪入口

有什么建议可以解决上述两个问题吗?

TL 2023

2023 年 7 月 27 日更新

我在 tex4ht 中发现了 TOC 的另一个问题,因此在此记录。如果我发现更多问题,将在此处添加。

此 MWE

\documentclass[12pt]{book}
\setcounter{tocdepth}{5} % must be in preamble
\setcounter{secnumdepth}{5}

\begin{document}
\title{my book}
\author{me}
\date{\today}
\maketitle

\tableofcontents

\part{first part}
\chapter{book name}
my book
\section{section name}
section data
\subsection{subsection name}
subsection data
\subsubsection{subsubsection name}
subsubsection data
\paragraph{paragraph name}
paragraph data
\end{document}

使用 lualatex 进行编译,然后使用make4ht -ulm default -a warning main.tex 'mathjax,htm'给出这些不同的 TOC

在此处输入图片描述

答案1

似乎根本没有设置 article 类的 TOC 缩进,因此您只能从 HTML 文件中的空格获得一些缩进。您可以使用 CSS 设置缩进。例如,此示例检测当前文档类是否提供\chapter并相应地设置缩进。它还在每个级别仅使用1em而不是2em,因此它不那么明显:

\Preamble{xhtml}
\ifdefined\chapter
\def\indentstart{1}
\else
\def\indentstart{0}
\fi
\def\calcindent#1{margin-left: \the\numexpr #1+\indentstart\relax em;}
 \Css{.sectionToc,    .likesectionToc    {\calcindent{0}}}
 \Css{.subsectionToc,    .likesubsectionToc    {\calcindent{1}}}
 \Css{.subsubsectionToc, .likesubsubsectionToc {\calcindent{2}}}
 \Css{.paragraphToc, .likeparagraphToc {\calcindent{3}}}
 \Css{.subparagraphToc, .likesubparagraphToc  {\calcindent{4}}}
\begin{document}
\EndPreamble

这是书籍的结果:

在此处输入图片描述

以下是本文:

在此处输入图片描述

我最终会更新 TeX4ht 源,但可能还需要几周时间。

相关内容