文章目录(Table of Contents)
简介
LaTeX 中设置页眉和页脚,一般都要使用宏包 fancyhdr
。这篇我们会通过几个例子,来介绍如何自定义页脚和页眉。首先关于页眉和页脚,LaTeX 中预设了三种 pagestyle
, 分别是 empty
、plain
、headings
,可以使用下面的方式进行切换:
- \pagestyle{empty}
上面的三种 pagestyle
的含义分别如下:
empty
,没有页眉和页脚;plain
,没有页眉,页脚中部放置页码;headings
,没有页脚,页眉包含章节标题和页码;
如果想要进行更多的自定义,就需要使用 fancyhdr 这个包了。
参考资料
- 这一篇给的例子非常全,Latex的页脚和页眉-知乎专栏(主要根据这个进行修改)
- fancyhdr 一些参数的含义,LaTeX 之 fancy 宏包设置--页眉页脚
设置页眉和页脚-fancyhdr 包的使用
简单使用 fancyhdr 包
我们首先看一个简单的 fancyhdr 的例子,设置固定内容的页眉,和将页码设置为页脚。
- \documentclass[a4paper,twoside,12pt]{book}
- \usepackage[UTF8]{ctex} % 显示中文
- \usepackage{fancyhdr} % 导入fancyhdr包
- \pagestyle{fancy}
- % 页眉设置
- \fancyhead[L]{左页眉}
- \fancyhead[R]{右页眉}
- \fancyhead[C]{中间页眉}
- % 页脚设置
- \fancyfoot[L]{左页脚}
- \fancyfoot[C]{\thepage} % 页码
- \fancyfoot[R]{右页脚}
- \renewcommand{\headrulewidth}{4pt} % 分隔线宽度4磅
- \renewcommand{\footrulewidth}{4pt}
- \begin{document}
- \chapter{第一章}
- \section{这是第 1.1 节}
- \clearpage
- \section{这是第 1.2 节}
- \clearpage
- \section{这是第 1.3 节}
- \clearpage
- \section{这是第 1.4 节}
- \clearpage
- \section{这是第 1.5 节}
- \end{document}
上面关键代码都带有注释,最终的效果如下所示:
奇偶页排版例子
有的时候我们需要使得奇数页和偶数页显示的页眉和页脚的内容不相同,于是我们可以在命令 \fancyhead
或 \fancyfoot
的方括号内的两个参数指定了它们应用于哪些页(奇数页或是偶数页)。
关于 fancyhead
和 fancyroot
中方括号中字母,有以下的几种形式:
- 奇数页和偶数页 --
E
表示奇数页,O
表示偶数页; - 页面中的位置 --
L
表示页面左侧,C
表示居中,R
表示页面右侧;
- \documentclass[a4paper,twoside,12pt]{book}
- \usepackage[UTF8]{ctex} % 显示中文
- \usepackage{fancyhdr} % 导入fancyhdr包
- \pagestyle{fancy}
- % 页眉设置
- \fancyhf{} % 清除所有的页眉和页脚样式
- \fancyhead[CO]{\rightmark} % 奇数页页眉
- \fancyhead[CE]{\leftmark} % 偶数页页眉, O-奇数页, E-偶数页; leftmark-章名, rightmark-节名
- % 页脚设置
- \fancyfoot[C]{\thepage} % 显示页码
- \renewcommand{\headrulewidth}{0.4pt} % 页眉的下划线, 宽度 0.4 磅
- \renewcommand{\footrulewidth}{0.4pt} % 页脚的下划线
- \begin{document}
- \chapter{第一章}
- \section{这是第 1.1 节}
- \clearpage
- \section{这是第 1.2 节}
- \clearpage
- \section{这是第 1.3 节}
- \clearpage
- \section{这是第 1.4 节}
- \clearpage
- \section{这是第 1.5 节}
- \end{document}
在上面的代码中:
- 偶数页显示章节的名称;
- 奇数页显示 section 的名称;
最终的偶数页的显示结果如下所示,可以看到页眉部分是章节的标题。
奇数页的部分如下所示,页眉部分是 section 的标题。
这里奇偶页排版可能会遇到 fancyhead's E' option without twoside option is useless
的报错。这是因为我们在 documentclass
中应该设置为 twoside
,而不是 onside
,也就是不能设置为下面的:
- \documentclass[a4paper,oneside,12pt]{book}
需要是下面这样的设置(上面 onside
修改为 twoside
):
- \documentclass[a4paper,twoside,12pt]{book}
这里的 onside
或是 twoside
表示文档为双面或单面打印格式。具体的就是会在一些页面后面包含空白页,方便打印时进行装订。
自定义页眉页脚信息
在上面我们介绍了在页眉部分显示章节标题,这一部分我们更加详细的介绍以下。
\leftmark
对应Chapter
信息参数;\rightmark
对应Section
信息参数;
如果在当前页面上没有这些参数,它们将从前一个页面继承。下面来看一个例子,自定义 leftmark
和 rightmark
的内容。
- \usepackage{fancyhdr} % 导入fancyhdr包
- \pagestyle{fancy}
- \renewcommand{\sectionmark}[1]{\markright{\thesection ~-~ \ #1}}
- \renewcommand{\chaptermark}[1]{\markboth{\chaptername ~ \thechapter ~-~ #1}{}}
其他的部分与上面的例子一样,最终得到以下的效果,连接处使用了短横线,而不是之前的点:
下面是关于 section 部分的页眉:
修改页眉内容
有的时候我们希望有的章节是根据 chapter
的名字来写入页眉,有的页面则是根据指定的内容来生成页眉的内容。这个时候就需要单独使用 \markboth{}{}
命令。
- % 此命令放在导言区
- \fancyhead[C]{\leftmark} %页眉居中,显示节标题名
- % 此命令放在正文,紧跟这某个章节
- \markboth{自定义页眉}{自定义页眉}
我们下面看一个例子:
- \documentclass[a4paper,twoside,12pt]{book}
- \usepackage[UTF8]{ctex} % 显示中文
- \usepackage{fancyhdr} % 导入fancyhdr包
- \pagestyle{fancy}
- % 页眉设置
- \fancyhf{} % 清除所有的页眉和页脚样式
- \fancyhead[CO]{\rightmark} % 奇数页页眉
- \fancyhead[CE]{\leftmark} % 偶数页页眉, O-奇数页, E-偶数页; leftmark-章名, rightmark-节名
- % 页脚设置
- \fancyfoot[C]{\thepage} % 显示页码
- \renewcommand{\headrulewidth}{0.4pt} % 页眉的下划线, 宽度 0.4 磅
- \renewcommand{\footrulewidth}{0.4pt} % 页脚的下划线
- \begin{document}
- \chapter{第一章}
- \section{这是第 1.1 节}
- \clearpage
- \markboth{第 1.2, 插图目录}{第 1.2, 插图目录} % 定制页眉
- \section{这是第 1.2 节}
- \end{document}
上面的效果如下图所示,页眉的内容和 section 的标题是不一样的,是我们定义的内容:
- 微信公众号
- 关注微信公众号
- QQ群
- 我们的QQ群号
评论