如何通过页面样式为空来生成目录\tableofcontents
?它不适用于\thispagestyle{empty}
或\pagestyle{empty}
。
答案1
您可以在序言中使用它来将第一个(通常是普通的)目录页更改为空样式:
\AtBeginDocument{\addtocontents{toc}{\protect\thispagestyle{empty}}}
如果您像第一次那样使用,其他页面的行为将与预期一致\pagestyle{empty}
。因此您的文档可能看起来像
\documentclass{book}
\AtBeginDocument{\addtocontents{toc}{\protect\thispagestyle{empty}}}
\begin{document}
\pagestyle{empty}
\tableofcontents
\cleardoublepage
\pagestyle{headings}
...
答案2
如果您使用该fancyhdr
包,您可以按照如下方式删除多页目录的页码:
\clearpage % Otherwise \pagestyle affects the previous page.
{ % Enclosed in braces so that re-definition is temporary.
\pagestyle{empty} % Removes numbers from middle pages.
\fancypagestyle{plain} % Re-definition removes numbers from first page.
{
\fancyhf{}% % Clear all header and footer fields.
\renewcommand{\headrulewidth}{0pt}% Clear rules (remove these two lines if not desired).
\renewcommand{\footrulewidth}{0pt}%
}
\tableofcontents
\thispagestyle{empty} % Removes numbers from last page.
}
似乎有三需要单独修改的标头:
- 第一页,
plain
无论如何,始终使用该样式。(因此,需要手动重新定义。) - 中间的页面紧跟当前的页面
pagestyle
。 - 最后一页,需要修改
thispagestyle
。
您可以fancyhdr
通过在序言中添加以下行来添加该包:
\usepackage{fancyhdr}
此解决方案的优点是它可以按照您的期望保留页码。
如果您使用的只是普通的页码,则另一个选择是使用
\clearpage
\pagenumbering{gobble}
\tableofcontents
然后你可以用以下方法恢复它(如果你使用阿拉伯数字)
\pagenumbering{arabic}
(有效选项包括arabic
、roman
、Roman
、alph
和Alph
。)
如果使用此选项时,由于某种原因您希望页码在目录之前和之后继续,则需要保存页码并将其恢复:
\newcounter{savepage} % Creates a counter for saving the page
\setcounter{savepage}{\thepage} % Saves the page
\clearpage % Table of contents, without numbering
\pagenumbering{gobble}
\tableofcontents
\clearpage % New section, with numbering
\pagenumbering{arabic}
\setcounter{page}{\thesavepage} % Restores the old page number
\addtocounter{page}{1} % Upticks the page number by one to continue the numbering
答案3
使用 tocloft,
\usepackage{tocloft}
很简单,只要放置这一行:
\tocloftpagestyle{empty}
在序言的某处。