tex4ht 中的目录问题。子部分级别缺少编号,并且对齐不正确

tex4ht 中的目录问题。子部分级别缺少编号,并且对齐不正确

我不确定我在这里做错了什么。我需要在图书类中制作这个目录

在此处输入图片描述

但在 html 中它看起来像这样

在此处输入图片描述

以下是 MWE 和用于编译它的命令。我想我已经添加了 tex4ht 所需的所有代码,但它不起作用。我一定是漏掉了一些额外的选项?

\documentclass[12pt]{book}

\begin{document}

\frontmatter
\title{my book}
\author{me}
\date{\today}
\maketitle

\ifdefined\HCode 
\Configure{tableofcontents*}{chapter,section,subsection,subsubsection,paragraph}   
\else 
\setcounter{tocdepth}{5}
\setcounter{secnumdepth}{5}
\fi 

\tableofcontents
\mainmatter

\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}

将其编译为 html 的命令是

 make4ht -ulm default -a debug  foo.tex "mathjax,htm"

我也试过了

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

没有区别。我一直尝试不用它\frontmatter,但没有任何区别。

如何添加编号subsubsection以及paragraph为什么paragraph条目没有像 PDF 目录显示的那样对齐?

TL2022。

>which latex
/usr/local/texlive/2022/bin/x86_64-linux/latex
>which make4ht
/usr/local/texlive/2022/bin/x86_64-linux/make4ht

答案1

尝试这个配置文件:

\Preamble{xhtml}
\Configure{tableofcontents*}{chapter,section,subsection,subsubsection,paragraph}   
\catcode`\:=11
\makeatletter
\ConfigureMark{paragraph}{\ifnum \c:secnumdepth>\c@secnumdepth\expandafter\:gobble
    \else
       \HCode{<span class="titlemark">}\@seccntformat{paragraph}%
       \HCode{</span>}\fi}
\Configure{paragraph}{}{}
  {\par\ShowPar\IgnoreIndent\HCode{<span
      class="paragraphHead"\a:LRdir>}\begingroup\bf\TitleMark}
  {\endgroup\HCode{</span>}\IgnorePar}
\Css{.paragraphToc{margin-left:8em;}}

\NewConfigure{tableofcontents*}[1]{%
   \def\:tempa{#1}\ifx\empty\:tempa
      \ifx \au:StartSec\:UnDef \else \gdef\:StartSec{\au:StartSec}\fi
   \else
      \edef\auto:toc{#1}%
         \ifx \au:StartSec\:UnDef
            \let\au:StartSec\:StartSec
            \def\:StartSec{\:tableofcontents
               \global\let\auto:toc\:UnDef \let\:StartSec\au:StartSec \:StartSec}%
            \pend:def\tableofcontents{\gdef\:StartSec{\au:StartSec}}%
   \fi  \fi
}
\makeatother
\catcode`\:=12
\begin{document}
\EndPreamble

它使用 声明要在目录中打印的节级\Configure{tableofcontents*},然后使用 修复paragraph文本中的编号处理\Configure{paragraph},其中我添加了\TitleMark打印编号的命令,以及\ConfigureMark{paragraph},用于配置编号本身。我还必须修复\NewConfigure{tableofcontetns*},因为否则它会打印两次目录。

然后您可以简化您的文档:

\documentclass[12pt]{book}

\begin{document}

\frontmatter
\title{my book}
\author{me}
\date{\today}
\maketitle

\setcounter{tocdepth}{5}
\setcounter{secnumdepth}{5}


\tableofcontents
\mainmatter

\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}

结果如下:

在此处输入图片描述

相关内容