使用 [twocolumn] 内容将内容名称居中

使用 [twocolumn] 内容将内容名称居中

我正在尝试将目录分成两列,但我想将内容名称置于中央。

现在我正在做

\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}

相关内容