Fancyhdr 宏包之使用指南

前言

在用 LaTeX 排版文章、书籍时,缺省定义了四种页眉页脚的格式:

参数 说明
empty 没有页眉和页脚
plain 没有页眉,页脚中部放置页码。
headings 没有页脚,页眉包含章节的标题和页码。
myheadings 没有页脚,页眉页码和使用者所定义的信息。

article 缺省使用 plain 格式,而 book 则使用 headings 格式。 也可用 \pagestyle 命令在你的文档中设定所用的格式,例如在文档中使用 \pagestyle{empty} 则使得此后的页面没有页眉和页脚。 一般情况下,这四种格式基本可满足排版的要求。但在某些情况下,特别是使用者想定义自己的页眉和页脚格式时,就会遇到很多限制和麻烦。这时, 使用 fancyhdr 宏包可以很容易地达到目的。

利用 fancyhdr 宏包提供的命令,可以方便的作到:

  • 自定义页眉和页脚。
  • 为页眉和页脚加上装饰性的横线。
  • 页眉和页脚的宽度可以超过正文文本的宽度。
  • 多行的页眉和页脚。
  • 奇偶页使用不同格式的页眉和页脚。
  • 每章的首页使用不同格式的页眉和页脚。
  • 浮动对象页使用不同格式的页眉和页脚。
  • 控制页眉和页脚的字体,包括字形,字族,大小写等。

基本用法

单面排版

由 fancyhdr 所定义的页眉和页脚的形式与位置如图所示:

06-奇数页样式.png

上述六个区域的内容和两条装饰线可由用户自己定义。

1
2
3
4
5
6
7
8
\lhead{left head}
\chead{center head}
\rhead{right head}
\lfoot{left foot}
\cfoot{center foot}
\rfoot{right foot}
\renewcommand{\headrulewidth}{0pt} %设置页眉横线宽度为0
\renewcommand{\footrulewidth}{0pt} %设置页脚横线宽度为0

如果想在文档中改用其它形式,比如在第一页不要页眉和页脚,则可在 \begin{document} 和 \maketitle 后使用命令

1
\thispagestyle{empty}

缺省情况下,\maketitle 命令会自动设置其所在页的格式为 plain 。因此,如果你想在该页使用 fancy 格式的话,应该在 \maketile 后面使用命令 \thispagestyle{fancy}

双面排版

下面是一个双面页版式下的例子(book、ctexbook 等文档类默认为双面排版):

1
2
3
4
5
6
7
8
9
10
11
12
13
14
\documentclass{ctexbook}  
\usepackage{zhlipsum} %用于生成假文
\usepackage{fancyhdr}
\fancyhead{} %清空所有页眉页脚设置
\fancyhead[RO,LE]{\bfseries 作者:原装咖啡}
\fancyfoot[LE,RO]{\thepage}
\fancyfoot[LO,CE]{From: Coffeelize.top}
\fancyfoot[CO,RE]{To: Latex User}
\renewcommand{\headrulewidth}{0.4pt} \renewcommand{\footrulewidth}{0.4pt}
\begin{document}
\pagestyle{fancy} %非常关键的一句命令
\section{第一章}
\zhlipsum[1-3]
\end{document}

对于奇数页
06-奇数页样式.png
对于偶数页
07-偶数页样式.png

这里方括号中字母代表的意义为:

符号 说明
E 偶数页
O 奇数页
L 页眉或页脚的左边部分
C 页眉或页脚的中间部分
R 页眉或页脚的右边部分
H 页眉
F 页脚

设置页眉页脚横线的宽度

1
2
\renewcommand{\headrulewidth}{0.4pt} % 设置页眉横线宽度为0.4
\renewcommand{\footrulewidth}{0.4pt} % 设置页脚横线宽度为0.4

拓展应用

修改页码的颜色

还记得以上案例中的这句代码吗

1
\pagestyle{fancy} %非常关键的一句命令

这句代码的意思是使用 fancy 这个样式(我们并没有对其进行定义,可能是文档类已经对其进行了预定义)
实际上我们也是可以自定义这个 pagestyle 的,如下代码中定义了一个新的 pagestyle:fancy-note

1
2
3
4
5
6
7
8
9
10
11
12
%语法\fancypagestyle{style name}{definitions} 
\fancypagestyle{fancy-note}{
\fancyhf{} %同时清空页眉页脚
%语法\fancyfoot[places]{footer}
\fancyfoot[c]{\footnotesize\textcolor{mycolor}{\thepage}}
}
% 正文开始
\begin{document}
%...
\pagestyle{fancy-note} %调用自定义的pagestyle
%...
\end{document}

最终输出为

092-调整页脚字体颜色.png

以上代码中
\textcolor 需要使用 xcolor 宏包(用于自定义颜色名称,可以参考博客之前的文章:Latex 之字体颜色篇
\footnotesize 则是已经预定于好的页脚字体的字号

09-预定于的字号.png

标准文档类中的字号大小

091-标准文档类中的字号大小.png

字号 10pt 选项(默认) 11pt 选项 12pt 选项
\tiny 5pt 6pt 6pt
\scriptsize 7pt 8pt 8pt
\footnotesize 8pt 9pt 10pt
\small 9pt 10pt 10.95pt
\normalsize 10pt 10.95pt 12pt
\large 12pt 12pt 14.4pt
\Large 14.4pt 14.4pt 17.28pt
\LARGE 17.28pt 17.28pt 20.74pt
\huge 20.74pt 20.74pt 24.88pt
\Huge 24.88pt 24.88pt 24.88pt

参考资料