我想要有两栏的目录:
\begin{multicols}{2}
\tableofcontents
\end{multicols}
但是,如果我将标题包含在两列中,第二列位于标题上方,这看起来很奇怪。所以我想要这样的内容:
\section*{My content}
\begin{multicols}{2}
% table of contents without title
\tableofcontents
\end{multicols}
有什么办法可以做到这一点?
答案1
这article
文档类定义\tableofcontents
为
\newcommand\tableofcontents{%
\section*{\contentsname
\@mkboth{%
\MakeUppercase\contentsname}{\MakeUppercase\contentsname}}%
\@starttoc{toc}%
}
这会将 打印\contentsname
为\section*
并标记标题,之后它会排版实际的目录(通过\@starttoc{toc}
)。如果您放弃标题调整,只需更新\tableofcontents
命令即可
\renewcommand{\tableofcontents}[1][\contentsname]{%
\section*{#1}
\begin{multicols}{2}
\@starttoc{toc}
\end{multicols}
}
就足够了。这将使用\section*
作为可选参数提供的内容名称(默认值为\contentsname
,即Contents
在article
)来排版。之后,如果启动两列multicol
环境并插入目录。这是一个最小示例:
\documentclass{article}
\usepackage{multicol}% http://ctan.org/pkg/multicol
\makeatletter
\renewcommand{\tableofcontents}[1][\contentsname]{%
\section*{#1}
\begin{multicols}{2}
\@starttoc{toc}
\end{multicols}
}
\makeatother
\begin{document}
\tableofcontents[Table of Contents]
\section{First section}%
\subsection{First subsection}%
\subsection{Second subsection}%
\subsection{Third subsection}%
\subsection{Last subsection}%
\section{Second section}%
\subsection{First subsection}%
\subsection{Second subsection}%
\subsection{Third subsection}%
\subsection{Last subsection}%
\section{Last section}%
\subsection{First subsection}%
\subsection{Second subsection}%
\subsection{Third subsection}%
\subsection{Last subsection}%
\end{document}
答案2
对于多列的目录,您只需使用多管包裹。
\documentclass[11pt,english]{article}
\usepackage[T1]{fontenc}
\usepackage{babel}
\usepackage[margin=1in]{geometry}
\usepackage[toc]{multitoc}
\usepackage{blindtext}
\begin{document}
\tableofcontents
\Blinddocument
\end{document}
答案3
使用 KOMASCRIPT 文章并按照以下步骤操作..
\BeforeStartingTOC[toc]{\begin{multicols}{2}}
\AfterStartingTOC[toc]{\end{multicols}}
\tableofcontents{}