我不确定我在这里做错了什么。我需要在图书类中制作这个目录
但在 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}
结果如下: