页面样式为空的目录

页面样式为空的目录

如何通过页面样式为空来生成目录\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.
}

似乎有需要单独修改的标头:

  1. 第一页,plain无论如何,始终使用该样式。(因此,需要手动重新定义。)
  2. 中间的页面紧跟当前的页面pagestyle
  3. 最后一页,需要修改thispagestyle

您可以fancyhdr通过在序言中添加以下行来添加该包:

\usepackage{fancyhdr}

此解决方案的优点是它可以按照您的期望保留页码。

如果您使用的只是普通的页码,则另一个选择是使用

\clearpage
\pagenumbering{gobble}
\tableofcontents

然后你可以用以下方法恢复它(如果你使用阿拉伯数字)

\pagenumbering{arabic}

(有效选项包括arabicromanRomanalphAlph。)

如果使用此选项时,由于某种原因您希望页码在目录之前和之后继续,则需要保存页码并将其恢复:

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

在序言的某处。

相关内容