如何使用 tex4ht 将目录设置为两列?

如何使用 tex4ht 将目录设置为两列?

这是 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.tableofcontensdiv上的 CSS 属性:

\Preamble{xhtml}
\Css{ .tableofcontents{columns: 2;}}
\begin{document}
\EndPreamble

结果:

在此处输入图片描述

相关内容