我正在写一本包含多个部分和章节的书,其中包含一个总体介绍。我为这本书的大部分内容定义了一个页眉样式,我可以轻松地使用 局部禁用几页\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}