这是 tex4ht 特有的问题。我想将目录设置为仅显示在 2 列中。以下文章https://texblog.org/2013/08/14/tidy-and-compact-table-of-contents-with-multitoc/ 使用 lualatex 编译时,它在 pdf 中可以工作。但我无法让它与 tex4ht 一起工作。我尝试了所有不同的选项。这是 MWE
\documentclass[12pt]{article}%
\usepackage[toc]{multitoc}
\renewcommand*{\multicolumntoc}{2}
\setlength{\columnseprule}{0.5pt}
\begin{document}
\title{My book}
\author{Joe doe}
\date{\today}
\maketitle
%this has no effect on changing the output
%\ifdefined\HCode
%\Configure{tableofcontents*}{section}
%\fi
\tableofcontents
\clearpage
\section{A}
stuff
\section{B}
stuff
\section{C}
stuff
\section{D}
stuff
\section{E}
stuff
\end{document}
结果lualatex foo.tex
给出
但是当使用
make4ht -ulm default foo.tex "mathjax,htm"
给出
我发现一种方法是这样的。但它看起来不如 PDF 好:
\documentclass[12pt]{article}%
\usepackage[toc]{multitoc}
\renewcommand*{\multicolumntoc}{2}
\setlength{\columnseprule}{0.5pt}
\begin{document}
\title{My book}
\author{Joe doe}
\date{\today}
\maketitle
\ifdefined\HCode
\begin{multicols}{2}
{
\tableofcontents
}
\end{multicols}
\else
\tableofcontents
\fi
\clearpage
\section{A}
stuff
\section{B}
stuff
\section{C}
stuff
\section{D}
stuff
\section{E}
stuff
\end{document}
使用与上述相同的命令编译为 HTML 可得
目录没有像 PDF 那样对齐。
如果上面的第一个例子在 tex4ht 中不起作用?有没有更好的方法在 HTML 中做到这一点?
我的目录很长,我想将其分成两列,以便更容易查看。
Linux 上的 TL 2020。
答案1
您可以使用columns
.tableofcontens
div上的 CSS 属性:
\Preamble{xhtml}
\Css{ .tableofcontents{columns: 2;}}
\begin{document}
\EndPreamble
结果: