有没有办法把目录做成两列不使用 multicol?
我添加了twocolumn
文档类,但是目录仍然只有一列。
我发现的所有解决方案都使用了 muitlcol。
但是,multicol
在双列模式下使用会给我警告:
Package multicol Warning: May not work with the twocolumn option on input line 150.
所以,我不想使用multicol
。有没有办法把目录做成两列无需使用multicol
?
编辑:我正在使用book
课程
答案1
\tableofcontents
标准命令检查book.cls
模式是否twocolumn
已激活,使用onecolumn
并设置标志以便在twocolumn
之后恢复。
\newcommand\tableofcontents{%
\if@twocolumn
\@restonecoltrue\onecolumn
\else
\@restonecolfalse
\fi
\chapter*{\contentsname
\@mkboth{%
\MakeUppercase\contentsname}{\MakeUppercase\contentsname}}%
\@starttoc{toc}%
\if@restonecol\twocolumn\fi
}
我决定使用一个新命令,比如\twocolumntoc
不检查。当然,可以将命令放入twocolumn
新宏中,并在\onecolumn
命令末尾使用 进行恢复。
\documentclass{book}
\usepackage{pgffor}
\makeatletter
\newcommand{\twocolumntoc}{%
\chapter*{\contentsname
\@mkboth{%
\MakeUppercase\contentsname}{\MakeUppercase\contentsname}}%
\@starttoc{toc}%
}
\makeatother
\setcounter{tocdepth}{4}
\begin{document}
\twocolumn
\twocolumntoc
\onecolumn
\foreach \x in {1,...,50}{%
\chapter{Chap \x}
\section{Foo section}
\subsection{Foo subsec}
\subsubsection{Foo subsecsec}
}
\end{document}
该pgffor
包仅用于快速生成此处的内容。