我对页脚的新定义没有在目录中使用:为什么?

我对页脚的新定义没有在目录中使用:为什么?

有了这个 MWE

\documentclass{book}
\usepackage{fancyhdr}

\pagestyle{fancy}
\renewcommand{\headrulewidth}{0pt}%
\renewcommand{\footrulewidth}{0.4pt}%
\fancyhf{}
\fancyhf[OLF]{{\footnotesize \textForFooter}}
\fancyhf[ORF]{{\footnotesize \thepage}}
\fancyhf[ERF]{{\footnotesize \textForFooter}}
\fancyhf[ELF]{{\footnotesize \thepage}}

\def\textForFooter{test}

\begin{document}

\tableofcontents

\newpage

\section{One}
\section{Two}

\end{document}

目录的页脚是

在此处输入图片描述

而下一页的页脚是

在此处输入图片描述

为什么这样?

答案1

默认情况下,book文档类使用plain页面样式第一的章节类文档单元的页面和headings所有其他页面的页面样式。(附注:LaTeX 内核定义了四种页面样式:empty、、plain和。文档类使用以下页面样式headingsmyheadingsarticleplain全部页。

该指令\pagestyle{fancy}指示 LaTeX 使用fancy页面样式而不是headings“所有其他页面”的页面样式,但它不会更改章节类文档单元首页的样式设置。而且,正如您现在已经知道的那样,该\tableofcontents指令会启动一个新的章节类单元。

  • 要覆盖目录的默认设置,并假设目录的长度小于一整页,您可以执行

    \thispagestyle{fancy}
    

    之后立马\tableofcontents

  • 如果要plainfancy整个文档中替换页面样式,可以插入指令

    \fancypagestyle{plain}{}
    

    在序言中(fancyhdr当然是加载包了)。

  • 最后,如果目录长度超过一页,而您仍想将页面fancy样式应用于目录页面(并且可能也应用于表格列表和图表列表页面),我建议您执行

    \usepackage[titles]{tocloft}
    \tocloftpagestyle{fancy}
    

    在序言中。

答案2

对于目录超过一页的文档,重新定义页面样式plain是必要的。但这也会改变每章第一页的页脚。如果您不想这样,您可以使用组将重新定义限制在目录中,如下所示。

{
\fancypagestyle{plain}{}%
\tableofcontents
\newpage
}

相关内容