删除 fancyhdr 第 0 章标题

删除 fancyhdr 第 0 章标题

我使用fancyhdr包,以便在标题中包含相关章节的名称和编号。这是我的代码:

\documentclass{report}

\usepackage{fancyhdr}
\pagestyle{fancy}
\renewcommand{\chaptermark}[1]{\markboth{#1}{#1}}
\fancyhead[R]{}
\fancyhead[L]{\chaptername\ \thechapter\ --\ \leftmark}

\begin{document}

\tableofcontents

\chapter*{Introduction}
\addcontentsline{toc}{chapter}{Introduction}
Text
\newpage
More text

\chapter{The first chapter}

\end{document}

正如您所看到的,介绍并未一一列举。

通过上述代码,介绍的第二页将给出一个标题,其中包含文本“第 0 章 - 内容”。

如果目录超出第一页,也会发生同样的事情。后续页面均使用相同的页眉。

我该如何调整上述代码,使得标题只在第一章中介绍,而目录和介绍没有标题?

答案1

我将使用不同的方法,即在中设置标题\chaptermark

\documentclass{report}

\usepackage{fancyhdr}

\pagestyle{fancy}
\fancyhead{} % clear the headers
\fancyhead[L]{\nouppercase{\leftmark}}
\renewcommand{\chaptermark}[1]{\markboth{\chaptername\ \thechapter\ -- #1}{}}

\newcommand{\uchapter}[1]{%
  \chapter*{#1}%
  \markboth{#1}{}%
  \addcontentsline{toc}{chapter}{#1}%
}

\begin{document}

\tableofcontents

\uchapter{Introduction}

Text
\newpage
More text

\chapter{The first chapter}

Text
\newpage
More text

% check the header of a possible second page in the TOC
\addtocontents{toc}{\protect\newpage\protect\mbox{}}

\end{document}

\nouppercase是必要的,因为它为诸如目录、图表列表和参考书目之类的特殊章节report添加了\MakeUppercase参数。\markboth

我引入了一个\uchapter命令来避免文档主体中出现大量代码。

答案2

更改\fancyhead[L]{...}

\makeatletter
\fancyhead[L]{%
  % thank egreg for his help in comment
  \ifnum\value{chapter}=0\else\chaptername\ \thechapter\ --\ \fi\leftmark
}
\makeatother

并添加

\chaptermark{Introduction}

得到幫助後\chapter*{Introduction}

随着这一变化,

  • 未编号章节“简介”的第二页左侧页眉将显示“简介”,并且
  • 目录第二页的左侧标题显示“目录”。

完整的例子

\documentclass{report}

\usepackage{fancyhdr}
\pagestyle{fancy}
\renewcommand{\chaptermark}[1]{\markboth{#1}{#1}}
\fancyhead[R]{}

\makeatletter
\fancyhead[L]{%
  % thank egreg for his help in comment
  \ifnum\value{chapter}=0\else\chaptername\ \thechapter\ --\ \fi\leftmark
}
\makeatother

\begin{document}

\tableofcontents

\chapter*{Introduction}
\chaptermark{Introduction}
\addcontentsline{toc}{chapter}{Introduction}
Text
\newpage
More text

\chapter{The first chapter}
\newpage
text

\end{document}

相关内容