目录包含两列,标题位于列上方

目录包含两列,标题位于列上方

我正在编写一个文档,其中章节和部分名称非常短(日期)。这使得沿整个页面宽度设置的目录看起来相当可笑。

因此,出于美观原因,我想将目录设置为两列,并将目录标题置于列上方。

尝试了不同的解决方案,但还没有成功。请在下面找到 MWE。

我的尝试:

\documentclass{scrbook}

\usepackage{multicol} 

\begin{document}

\section*{Contents} % Manually create heading 
\renewcommand{\contentsname}{} % Remove heading name from TOC

% TOC with two columns
\begin{multicols}{2}
    \tableofcontents
\end{multicols}

\chapter{A chapter}
\section{A section}
\chapter{A chapter}
\section{A section}
\chapter{A chapter}
\section{A section}
\chapter{A chapter}
\section{A section}
\chapter{A chapter}
\section{A section}
    
\end{document}

两列目录

答案1

因为您正在使用 KOMA-Script 类,所以您只需使用\BeforeStartingTOC\AfterStartingTOC添加multicols环境即可:

\documentclass{scrbook}

\usepackage{multicol} 

\BeforeStartingTOC[toc]{\begin{multicols}{2}}
\AfterStartingTOC[toc]{\end{multicols}}

\begin{document}

\tableofcontents

\chapter{A chapter}
\section{A section}
\chapter{A chapter}
\section{A section}
\chapter{A chapter}
\section{A section}
\chapter{A chapter}
\section{A section}
\chapter{A chapter}
\section{A section}
    
\end{document}

在此处输入图片描述

使用\twocolumns\onecolumn也是可能的。但是为了获得最后一页目录的平衡列,您还需要包balance

\documentclass{scrbook}
\usepackage{balance}

\BeforeTOCHead[toc]{\balance\twocolumn}
\AfterStartingTOC[toc]{\onecolumn\nobalance}

\begin{document}

\tableofcontents

\chapter{A chapter}
\section{A section}
\chapter{A chapter}
\section{A section}
\chapter{A chapter}
\section{A section}
\chapter{A chapter}
\section{A section}
\chapter{A chapter}
\section{A section}
  
\end{document}

或者

\documentclass{scrbook}
\usepackage{balance}

\unsettoc{toc}{onecolumn}

\begin{document}

\twocolumn\balance
\tableofcontents
\onecolumn\nobalance

\chapter{A chapter}
\section{A section}
\chapter{A chapter}
\section{A section}
\chapter{A chapter}
\section{A section}
\chapter{A chapter}
\section{A section}
\chapter{A chapter}
\section{A section}
  
\end{document}

两者的结果是:

在此处输入图片描述

有关\BeforeStartingTOC、和的更多信息\AfterStartingTOC,请参阅KOMA-Script 使用手册中的章节(当前为第 15.2 节)。\BeforeTOCHead\unsettoctocbasic

相关内容