使用 fancyhdr 包仅更改目录页的标题

使用 fancyhdr 包仅更改目录页的标题

我想使用 package 使目录页面的标题中显示“目录” fancyhdr。现在,根据下面的 MWE,它显示的内容如下: 在此处输入图片描述

我想要它展示的是: 在此处输入图片描述 在这种情况下,标题是通过 完成的\fancyhead[RE,LO]{Table of Contents}。但这会影响所有其他页面,这绝对不是我想要的。

以下是我的 MWE:

\documentclass[10pt,openany]{book}
\usepackage{fancyhdr}
\pagestyle{fancy}
    \fancyhf{}
    \fancyhead[RE,LO]{Part \thepart\enspace--\enspace Chapter \thechapter}
    \fancyhead[LE,RO]{\thepage}
    \fancyfoot[C]{My Book}

\begin{document}
\tableofcontents
\part{One}
\chapter{1}
\chapter{2}
\part{Two}
\chapter{3}
\chapter{4}
\chapter{5}
\chapter{6}
\chapter{7}
\part{Three}
\chapter{8}
\chapter{9}
\chapter{10}
\chapter{11}
\chapter{12}
\part{Four}
\chapter{13}
\chapter{14}
\part{Five}
\chapter{15}
\chapter{16}
\chapter{17}
\chapter{18}
\chapter{19}
\chapter{20}
\part{Six}
\chapter{21}
\chapter{22}
\chapter{23}
\chapter{24}
\end{document}

编辑:我的环境是 Windows 10 上的 MikTeX 2.9 和命令行pdflatex(在 Neovim 的帮助下)。

更多编辑:我希望能够更改页眉/页脚中的内容,因此即使\pagestyle{fancy}打印目录页的目录,除非绝对必要,否则我还是想避免使用该选项。

答案1

嗯,例如,您可以定义两种要使用的样式:

\fancypagestyle{styletoc}{% <===========================================
  \fancyhf{}
  \fancyhead[RE,LO]{Table of contents}
  \fancyhead[LE,RO]{\thepage}
  \fancyfoot[C]{My Book}
% \renewcommand{\headrulewidth}{0pt}
}

\fancypagestyle{stylenor}{% <===========================================
  \fancyhf{}
  \fancyhead[RE,LO]{Part \thepart\enspace--\enspace Chapter \thechapter}
  \fancyhead[LE,RO]{\thepage}
  \fancyfoot[C]{My Book}
% \renewcommand{\headrulewidth}{0pt}
}

样式styletoc仅用于目录部分,stylenor其他部分使用样式。请注意您还应该定义一种新样式plain

\fancypagestyle{plain}{% <===========================================
  \fancyhf{}
  \renewcommand{\headrulewidth}{0pt}
} 

去掉没有任何其他数据的页眉和页脚中心的标准页码......

使用以下 mwe

\documentclass[10pt,openany]{book}

\usepackage{blindtext}
\usepackage{fancyhdr}

\fancypagestyle{styletoc}{% <===========================================
  \fancyhf{}
  \fancyhead[RE,LO]{Table of contents}
  \fancyhead[LE,RO]{\thepage}
  \fancyfoot[C]{My Book}
% \renewcommand{\headrulewidth}{0pt}
}

\fancypagestyle{stylenor}{% <===========================================
  \fancyhf{}
  \fancyhead[RE,LO]{Part \thepart\enspace--\enspace Chapter \thechapter}
  \fancyhead[LE,RO]{\thepage}
  \fancyfoot[C]{My Book}
% \renewcommand{\headrulewidth}{0pt}
}

\fancypagestyle{plain}{% <===========================================
  \fancyhf{}
  \renewcommand{\headrulewidth}{0pt}
}


\begin{document}

\pagestyle{styletoc} % <================================================
\tableofcontents

\part{One}
\pagestyle{stylenor} % <================================================
\chapter{1}
\Blindtext
\chapter{2}
\part{Two}
\chapter{3}
\chapter{4}
\chapter{5}
\chapter{6}
\chapter{7}
\part{Three}
\chapter{8}
\chapter{9}
\chapter{10}
\chapter{11}
\chapter{12}
\part{Four}
\chapter{13}
\chapter{14}
\part{Five}
\chapter{15}
\chapter{16}
\chapter{17}
\chapter{18}
\chapter{19}
\chapter{20}
\part{Six}
\chapter{21}
\chapter{22}
\chapter{23}
\chapter{24}
\end{document}

您将获得以下期望结果:

在此处输入图片描述

对于第 1 章等:

在此处输入图片描述

答案2

第一种方法

我认为我确实找到了一个解决方案fancyhdr 和目录很难使用\frontmatter(和 的页面样式不同\mainmatter)。

\documentclass[10pt,openany]{book}
\usepackage{fancyhdr}
\usepackage{etoolbox}
\usepackage{blindtext}

\fancypagestyle{style_A}{
    \fancyhf{}
    \fancyhead[C]{Style A (thin line) -- TOC}
    \renewcommand{\headrulewidth}{0.2pt}
}

\fancypagestyle{style_B}{
    \fancyhf{}
    \fancyhead[C]{Style B (thick line) -- Not TOC}
    \renewcommand{\headrulewidth}{2.0pt}
}

% https://tex.stackexchange.com/questions/167828
\appto\frontmatter{\pagestyle{style_A}}
\appto\mainmatter{\pagestyle{style_B}}

\begin{document}

\frontmatter
\tableofcontents

\mainmatter

\blinddocument
\blinddocument
\blinddocument
\blinddocument
\blinddocument
\blinddocument
\blinddocument
\blinddocument
\blinddocument

\end{document}

在此处输入图片描述

第二种方法

这个输出有什么问题?

\documentclass{book}
\usepackage{fancyhdr}
\usepackage{blindtext}
\pagestyle{fancy}

\begin{document}

\tableofcontents

\blinddocument
\blinddocument
\blinddocument
\blinddocument
\blinddocument
\blinddocument
\blinddocument
\blinddocument
\blinddocument

\end{document}

在此处输入图片描述

相关内容