更改几个页面的 fancyhdr

更改几个页面的 fancyhdr

我正在写一本包含多个部分和章节的书,其中包含一个总体介绍。我为这本书的大部分内容定义了一个页眉样式,我可以轻松地使用 局部禁用几页\pagestyle{empty}。页眉在偶数页上有我的名字,在奇数页上有章节标记(第 XX 章)。

现在我想为简介添加不同类型的页眉,以避免出现丑陋的“第 0 章”页眉。我希望页眉在偶数页上显示我的名字,在奇数页上显示“简介”。

我使用 fancyhdr 定义了一种新样式。但是似乎没有什么效果。几页之后,我在简介中又看到了“第 0 章”,并且一直持续到下一章,尽管我已经清除了页面。你能告诉我我的 MWE 中有什么问题吗?

  \documentclass[12pt, A4]{book}

  \usepackage{tocbibind}
  \usepackage{blindtext}  
  \usepackage{emptypage}
  %%%%% Header
  \usepackage{fancyhdr}


  \fancypagestyle{style1}{
  \fancyhead[CO]{Introduction}
  \fancyfoot[CE]{Me}
  \fancyfoot[CE,CO]{\thepage}
  \renewcommand{\headrulewidth}{0pt}
  }

  \pagestyle{fancy}
  \fancyhf{}
  \fancyhead[CE]{Me}
  \fancyhead[CO]{\chaptername \  \thechapter}
  \fancyfoot[CE,CO]{\thepage}
  \renewcommand{\headrulewidth}{0pt}





  \begin{document}


  {\pagestyle{empty} 
  \tableofcontents
  \clearpage}


  \clearpage
  {\pagestyle{style1}
  \chapter*{Introduction}

  \Blindtext
  \Blindtext
  \Blindtext
  \Blindtext

    }
  \clearpage

  \pagestyle{fancy}

  \part{Thing}
  \Blindtext
  \Blindtext
  \Blindtext
  \Blindtext
  \Blindtext
  \chapter{Thing thing}
  \Blindtext
  \Blindtext
  \Blindtext
  \Blindtext
  \Blindtext
  \chapter{thingthingthing}

  \Blindtext
  \Blindtext
  \Blindtext
  \Blindtext
  \Blindtext


  \end{document}

答案1

在标题中使用\leftmark。还有一个\rightmark。但是,这里的book-class 中,使用默认选项,\leftmark将保存章节名称,并进行一些格式化。当然,这可以更改。

在整个文档中的几个地方,您需要更改标题中的内容,因为您尚未定义非星号\chapter。然后我们可以\rightmark用更新\markkright,但没有\markleft可用的命令。真可惜,可能会有用。\markboth{left}{right}不过可以在这里使用。

建议

  • \pagestyle当您想让单个页面有所不同时,不要发布新的。使用\thispagestyle,它只会更改该页面的样式。\pagestyle在序言中放置 first/main ,使其更整洁一些。我认为内容和设置应尽可能分开。
  • 你不需要那么多\clearpages。在book-class 中,默认选项是openright,这意味着每个章节都只从右侧开始。

代码

  \documentclass[12pt, a4paper]{book}

  \usepackage{tocbibind}
  \usepackage{lipsum}  
  \usepackage{emptypage}
  %%%%% Header
  \usepackage{fancyhdr}

  \pagestyle{fancy}
  \fancyhf{}
  \fancyhead[CE]{Me}
  \fancyhead[CO]{\leftmark}
  \fancyfoot[CE,CO]{\thepage}
  \renewcommand{\headrulewidth}{0pt}
    \pagestyle{fancy}
  \begin{document}

  \thispagestyle{empty}
  {\renewcommand\addcontentsline[3]{}
  \tableofcontents}
  \clearpage

  \chapter*{Introduction}\markboth{Introduction}{}
    \lipsum[1-9]
  \clearpage

  \part{Thing} \markboth{Part thing}{}

  \lipsum[1-10]

  \chapter{Thing thing}

  \lipsum[1-7]
  \chapter{thingthingthing}

  \lipsum[1-8]
  \end{document}

答案2

这是一个解决方案。如上面的答案所建议,\leftmark建议使用。

你可以使用一次做你想做的事\fancyhead[CO]{\ifnum\value{chapter}>0 \chaptername \ \thechapter\else\leftmark\fi}

如果你愿意你可以做\fancyhead[CO]{\ifnum\value{chapter}>0 \chaptername \ \thechapter\ \fi\leftmark}

\documentclass[12pt, a4paper]{book}

  \usepackage{tocbibind}
  \usepackage{blindtext}  
  \usepackage{emptypage}
  %%%%% Header
  \usepackage{fancyhdr}
  \pagestyle{fancy}
  \fancyhf{}
  \fancyhead[CE]{Me}
  \fancyhead[CO]{\ifnum\value{chapter}>0 \chaptername \  \thechapter\else\leftmark\fi}
  \fancyfoot[CE,CO]{\thepage}
  \renewcommand{\headrulewidth}{0pt}

  \begin{document}

  \pagestyle{empty} 

  \tableofcontents
  \chapter*{Introduction}
  \pagestyle{fancy}
  \markboth{Introduction}{Introduction}
  \Blindtext
  \Blindtext
  \Blindtext
  \Blindtext

  \part{Thing}
  \Blindtext
  \Blindtext
  \Blindtext
  \Blindtext
  \Blindtext
  \chapter{Thing thing}
  \Blindtext
  \Blindtext
  \Blindtext
  \Blindtext
  \Blindtext
  \chapter{thingthingthing}

  \Blindtext
  \Blindtext
  \Blindtext
  \Blindtext
  \Blindtext

  \end{document}

相关内容