我正在尝试将目录分成两列,但我想将内容名称置于中央。
现在我正在做
\twocolumn
\tableofcontents
但这些命令给出了如下结果:
Contents name section 3
section 1 section 4
section 2 section 5
而我想获得这样的东西:
Contents name
section 1 section 3
section 2 section 4
我不知道如何才能实现这一目标......
答案1
由于缺少 documentclass,我给出了类report
和的示例article
。 的重新定义\tableofcontents
将原始定义\tableofcontents
与环境的定义合并theindex
。 通过偷运来完成居中\centering
。
例如report
:
\documentclass[twocolumn]{report}
\makeatletter
\renewcommand*{\tableofcontents}{%
\if@twocolumn
\@restonecolfalse
\else
\@restonecoltrue
\fi
\twocolumn[\@makeschapterhead{\centering\contentsname}]%
\@mkboth{\MakeUppercase\contentsname}%
{\MakeUppercase\contentsname}%
\thispagestyle{plain}%
\@starttoc{toc}%
\if@restonecol
\onecolumn
\else
\clearpage
\fi
}
\makeatother
\begin{document}
\tableofcontents
\chapter{Foobar}
\section{Hello World}
\subsection{Subsection}
\addtocontents{toc}{\protect\newpage}
\chapter{Last chapter}
\section{Last section}
\end{document}
例如article
:
\documentclass[twocolumn]{article}
\makeatletter
\renewcommand*{\tableofcontents}{%
\if@twocolumn
\@restonecolfalse
\else
\@restonecoltrue
\fi
\twocolumn[\section*{\centering\contentsname}]%
\@mkboth{\MakeUppercase\contentsname}%
{\MakeUppercase\contentsname}%
\thispagestyle{plain}%
\@starttoc{toc}%
\if@restonecol
\onecolumn
\else
\clearpage
\fi
}
\makeatother
\begin{document}
\tableofcontents
\section{Foobar}
\subsection{Hello World}
\subsubsection{Subsubsection}
\addtocontents{toc}{\protect\newpage}
\section{Last section}
\subsection{Last subsection}
\end{document}