我想将目录标题居中,使其看起来如下所示:
Table of contents
1. Section 1
1.1 Subsection 3
1.2 Subsection 5
2 Section 11
代替
Table of contents
1. Section 1
1.1 Subsection 3
1.2 Subsection 5
2 Section 11
我已尝试过\renewcommand{\contentsname}{\centerline{Table of contents}}
,这对于页面的外观来说效果很好。
但我使用的是书本风格,在页面顶部,在左边侧,我希望获得当前章节/部分/任何其他内容的名称。但如果我执行上述操作,文本Table of contents
不会在左侧,而是在中间(因为\centerline
)。
有没有什么办法可以实现我的愿望?
答案1
有多个包可以修改内容布局。标准文档类中最简单的包可能是tocloft
。您可以使用:
\usepackage{tocloft}
\renewcommand{\cfttoctitlefont}{\hfill\Large\bfseries}
\renewcommand{\cftaftertoctitle}{\hfill}
\tableofcontents
排版为\chapter*
(对于book
和report
)或\section*
(对于article
)。您可以修改目录的章节(部分)标题的布局。因此sectsty
或titlesec
可用于标准类。您可以使用:
% \documentclass{article}
% \usepackage{sectsty}
\sectionfont{\centering}
\tableofcontents
\sectionfont{}
或者
% \documentclass{article}
% \usepackage{titlesec}
\titleformat*{\section}{\centering\bfseries\Large}
\tableofcontents
\titleformat*{\section}{\bfseries\Large}
如果你正在使用诸如memoir
和 之类的类koma-script
,那么将会有其他命令用于此目的。你最好阅读这些类的手册。
答案2
\documentclass{book}
\begin{document}
\makeatletter
\chapter*{\centerline{\contentsname}}
\@mkboth{\MakeUppercase\contentsname}{\MakeUppercase\contentsname}%
\@starttoc{toc}%
\makeatother
\chapter{foo}
bar
\end{document}
答案3
对我来说,唯一可行的解决方案是
\begin{center}
\tableofcontents
\end{center}