Linux mint 17 上的 texlive 2014。
此 MWE 不会在 htlatex 生成的 HTML 文件中生成目录
\documentclass{article}
\usepackage{tocloft} %if this line is commented, then toc will show up
\begin{document}
\tableofcontents
\section{sec1}
some text 1
\section{sec2}
some text 2
\end{document}
如果tocloft
是不是使用后,toc 将会以 html 形式显示。
编译命令是
htlatex foo.tex
然后查看同一文件夹中的文件foo.html
以查看丢失的目录。
当我尝试更改目录的字体大小并使用这个包时出现了这个问题,它可以与 pdflatex 配合使用,然后我注意到 HTML 文件中缺少目录。
答案1
tex4ht
和都tocloft
重新定义目录机制,因此它们相互冲突。因为无论如何都不能使用tocloft
设置tex4ht
,所以最好禁用tocloft
。从快速查看tocloft
源代码来看,似乎我们可以\if@cftnctoc
为此目的使用条件,当设置为 true 时,不会发生重新定义。幸运的是,所有重新定义都是在\AtBeginDocument
命令中完成的,这似乎是在.4ht
加载文件时完成的。因此,我们可以引入tocloft.4ht
文件,内容非常简单:
\@cftnctoctrue
\endinput
的值\if@cftnctoc
设置为 true。此文件在tocloft
重新定义命令检查 的值之前加载\if@cftnctoc
,因此不会发生重新定义。