自定义内容页中的页眉

自定义内容页中的页眉

在此处输入图片描述我的书籍类文档仅在 LE 和 RO 页面上有章节标题,我也希望在目录页中也有相同的标题。我尝试使用 完全删除标题并\makeatletter \let\@mkboth\relax \makeatother添加\fancyhead[LE,RO]{\leftmark},但这导致单词 Contents 以大写形式出现在目录标题旁边。下面给出了 MWE,并添加了我得到的图像:

\documentclass[a4paper,11pt]{book}
\usepackage[T1]{fontenc}
\usepackage[utf8]{inputenc}
\usepackage{fancyhdr}
\usepackage{lipsum}% used to get dummy text
\begin{document}
\pagestyle{fancy}
\makeatletter
\let\@mkboth\relax
\makeatother
\tableofcontents%
\fancyhead[LE,RO]{\leftmark}
\cleardoublepage
\chapter{Chapter 1}
\section{Section 1.1}
\lipsum[1]% used to get dummy text
\cleardoublepage
\chapter{Chapter 2}
\section{Section 2.1}
\lipsum[2]% used to get dummy text
\chapter{Chapter 3}
\section{Section 3.1}
\lipsum[3]% used to get dummy text
\end{document}

任何指向解决方案的指示都值得赞赏。

除第一页外,所有章节的目录页都需要以下类型的页眉,如下图所示:我需要样本目录页,第一页除外

答案1

编辑评论后:我想我终于明白你真正想要回答的问题是什么了。

我以前fancyhdr在页眉中显示章节和节标题。但是,对于目录页面,章节标题“CONTENTS”出现在页眉的两侧,即也作为节标题出现。我怎样才能将其从页眉的一侧删除?

答案很简单:用来\markright{}清除页眉的“章节标题”部分。您可以通过将其包装到\addtocontents{toc}(使其紧跟\markboth在目录第一页的章节标题调用之后)和\AtBeginDocument(使其位于目录中的第一个“条目”处)来实现此目的。

\documentclass[a4paper,11pt]{book}
\usepackage[T1]{fontenc}
\usepackage[utf8]{inputenc}
\usepackage{fancyhdr}
\usepackage{lipsum}% used to get dummy text
\AtBeginDocument{\addtocontents{toc}{\protect\markboth{\textsl{CONTENTS}}{}}} 
\begin{document}
\pagestyle{fancy}
\tableofcontents%
\cleardoublepage
\chapter{Chapter 1}
\section{Section 1.1}
\lipsum[1]% used to get dummy text
\cleardoublepage
\chapter{Chapter 2}
\section{Section 2.1}
\lipsum[2]% used to get dummy text
\chapter{Chapter 3}
\section{Section 3.1}
\lipsum[3]% used to get dummy text
\end{document}

第 2 页的标题:在此处输入图片描述


旧答案:

无需人工干预,目录后续页面的默认页眉左右两侧均有大写字母“CONTENTS”。目录第一页没有任何页眉,其他所有章节的开头页也是如此。

\documentclass[a4paper,11pt]{book}
\usepackage[T1]{fontenc}
\usepackage[utf8]{inputenc}
\usepackage{fancyhdr}
\usepackage{lipsum}% used to get dummy text
\begin{document}
\pagestyle{fancy}
\tableofcontents%
\cleardoublepage
\chapter{Chapter 1}
\section{Section 1.1}
\lipsum[1]% used to get dummy text
\cleardoublepage
\chapter{Chapter 2}
\section{Section 2.1}
\lipsum[2]% used to get dummy text
\chapter{Chapter 3}
\section{Section 3.1}
\lipsum[3]% used to get dummy text
\end{document}

第 2 页的标题:在此处输入图片描述


要修改目录页眉中的内容,您必须调用,\markboth这将覆盖目录标题中已经放入的内容。无需破解任何其他命令以不调用\markboth或相关命令,因为这些宏的目的实际上是覆盖已经存在的内容。因此,您实际上只需要调用\markboth 目录的章节标题和第一个分页符,即最好紧接在章节标题之后。

灵感来自这个答案,我会将\markboth对目录的调用添加为第一个条目(这样它会在章节标题后直接被调用)。为了确保它是第一个条目,您可以\AtBeginDocument在序言中使用。最小示例:

\documentclass[a4paper,11pt]{book}
\usepackage[T1]{fontenc}
\usepackage[utf8]{inputenc}
\usepackage{fancyhdr}
\usepackage{lipsum}% used to get dummy text
\AtBeginDocument{\addtocontents{toc}{\protect\markboth{Contents}{\textnormal{More Contents}}}} 
\begin{document}
\pagestyle{fancy}
\tableofcontents%
\cleardoublepage
\chapter{Chapter 1}
\section{Section 1.1}
\lipsum[1]% used to get dummy text
\cleardoublepage
\chapter{Chapter 2}
\section{Section 2.1}
\lipsum[2]% used to get dummy text
\chapter{Chapter 3}
\section{Section 3.1}
\lipsum[3]% used to get dummy text
\end{document}

第 2 页的标题:在此处输入图片描述

当然,您现在需要修改它,以便获得所需的确切措辞和标题的文本格式样式。请注意,默认样式(至少在这个最小示例中)是斜体文本,因此您可能需要覆盖它。

相关内容