正如标题所示,我希望标题(“内容”)出现在两列上方,如下图所示:
即目录中的项目应从两者的同一级别开始。目前,标题被视为第一列的一部分(这就是问题所在)。我遵循的创作似乎非常简单——使用多列——所以我可能需要指导一个全新的方向来取代它。下面您可以找到我的代码:
\documentclass[7pt,a4paper]{report}
\usepackage[english]{babel}
\usepackage[T1]{fontenc}
\usepackage[utf8]{inputenc}
\usepackage{multicol}
\usepackage{tocloft}
\setlength{\cftbeforetoctitleskip}{0pt}
\setlength{\cftaftertoctitleskip}{8pt}
\begin{document}
\begin{multicols}{2}
\tableofcontents
\end{multicols}
\chapter{Asdf}
\chapter{Asdf}
\chapter{Asdf}
\chapter{Asdf}
\chapter{Asdf}
\chapter{Asdf}
\chapter{Asdf}
\chapter{Asdf}
\chapter{Asdf}
\chapter{Asdf}
\chapter{Asdf}
\chapter{Asdf}
\chapter{Asdf}
\chapter{Asdf}
\chapter{Asdf}
\chapter{Asdf}
\chapter{Asdf}
\chapter{Asdf}
\end{document}
答案1
如果不采用multicol
,您可以进入双列模式,执行目录,然后返回单列模式。
使用答案两列中的目录,无多列
\documentclass[7pt,a4paper]{report}
\usepackage[english]{babel}
\usepackage[T1]{fontenc}
\usepackage[utf8]{inputenc}
\usepackage{multicol}
\usepackage{tocloft}
\setlength{\cftbeforetoctitleskip}{0pt}
\setlength{\cftaftertoctitleskip}{8pt}
%% From https://tex.stackexchange.com/a/353870/161015
\makeatletter
\newcommand{\twocolumntoc}{% added <<<<<<<<<<<<<<<<
\twocolumn
\chapter*{\contentsname
\@mkboth{%
\MakeUppercase\contentsname}{\MakeUppercase\contentsname}}%
\@starttoc{toc}%
\onecolumn
}
\makeatother
\begin{document}
\twocolumntoc % added <<<<<<<<<<<<<<<<
\chapter{Asdf}
\chapter{Asdf}
\chapter{Asdf}
\chapter{Asdf}
\chapter{Asdf}
\chapter{Asdf}
\chapter{Asdf}
\chapter{Asdf}
\chapter{Asdf}
\chapter{Asdf}
\chapter{Asdf}
\chapter{Asdf}
\chapter{Asdf}
\chapter{Asdf}
\chapter{Asdf}
\chapter{Asdf}
\chapter{Asdf}
\chapter{Asdf}
\chapter{Asdf}
\chapter{Asdf}
\chapter{Asdf}
\chapter{Asdf}
\chapter{Asdf}
\chapter{Asdf}
\chapter{Asdf}
\chapter{Asdf}
\chapter{Asdf}
\chapter{Asdf}
\chapter{Asdf}
\chapter{Asdf}
\chapter{Asdf}
\chapter{Asdf}
\chapter{Asdf}
\chapter{Asdf}
\chapter{Asdf}
\chapter{Asdf}
\end{document}
如果你想要一个平衡的列,你现在可以multicol
使用
\makeatletter
\newcommand{\twocolumntoc}{% added <<<<<<<<<<<<<<<<
\chapter*{\contentsname
\@mkboth{%
\MakeUppercase\contentsname}{\MakeUppercase\contentsname}}%
\begin{multicols}{2}
\@starttoc{toc}%
\end{multicols}
\onecolumn
}
\makeatother
要得到