本文引用自《LATEX入门》刘海洋编著,电子工业出版社。
概述
处理页眉需要使用宏包fancyhdr,latex提供了多种预设的页面风格:
| pagestyle | 效果 |
|---|---|
| empty | 没有页眉页脚 |
| plain | 没有页眉,页脚是居中 |
| headings | 没有页脚,页眉是章节名称和页码 |
| myheadings | 没有页脚,页眉是页码和用户自定义的内容 |
| fancy | 需要使用fancyhdr包,扩展了myheadings,并提供了奇偶页不同的风格 |
不同的文档类中默认的pagestyle是不一样的,book类默认使用headings风格,report和article默认使用plain风格;中文的几个ctex文档类则默认使用headings风格,如果使用了fancyhdr宏包则默认为fancy风格。
LATEX已经对一些必要的地方自动设置了页眉风格。例如在标题页(包括手工或自动由\maketitle生成的titlepage环境),会使用empty风格禁用所有页眉页脚;而在不单独成页的\maketitle,单独成页的\part,以及\chapter命令所在的一页,则使用plain风格只显示页码;这些都是排版中的一些定式。
headings和myheadings风格的区别?
headings风格的页眉内容不能改变,它是由\chapter,\section等命令自动生成的,而myheadings风格的页眉可以由用户自己使用\markright和\markboth命令设置:
| 单面文档(oneside) | \markright{<页眉文字>} |
| 双面文档(twoside) | \markboth{<左面页眉>}{<右面页眉>} |
注意:oneside和twoside需要在\documentclass[twoside]{article}中开启
\markright和\markboth命令实际会修改\leftmark和\rightmark两个宏的内容,并在页眉处输出。

fancy风格的特点?
fancyhdr的fancy页眉风格把页眉和页脚都分为了左,中,右三个部分,因而一个页眉就有6个部分。对于双面文档,则还分奇数页和偶数页,既有12个部分。


这里H,F分别表示页眉和页脚;E,O分别表示双面文档的偶数页和奇数页,单面文档仅奇数页有效; L,C,R分别表示左,中,右。位置参数可以任意组合,多个参数用逗号分隔。如果省略位置参数,则表示所有的页眉、页脚。例如

在fancy页面风格的设置中,可以在页眉页脚的内容中使用\leftmark和\rightmark命令,它们的意义与headings风格中的页眉相同,即为文档的章节标题内容;article只有\rightmark是节标题;report和book的\leftmark是章标题,\rightmark是节标题。事实上,fancy风格的默认设置是:

在ctex宏包提供的文档类中,可以使用fancyhdr选项,表示使用fancyhdr宏包及fancy页面风格,例如:


除了页眉页脚内容,fancy页面风格还会给页眉和页脚加一条横线。可以重定义宏\headrulewidth和\footrulewidth来修改页眉线和页脚线的宽度,如果宽度为零就是没有页眉页脚线,注意它们只是文本宏而不是长度度量,如:

使用fancyhdr还可以使用==\fancypagestyle==命令重定义原有的页面风格,通常可以用它来重定义plain风格,这样在每章的第1页等位置也可以使用特殊的页面风格,如:

如何实现页眉内容的换行?
可以使用\parbox{宽度}{XXXXXXX}来实现,例如:
\documentclass[12pt]{
article} %*** \begin{
document} \pagestyle{
myheadings} \markright{
\parbox{
10cm}{
dafas\\ dfaadafdsafdsa}} main body \end{
document}
讯享网

如何实现奇偶页页眉不同的效果?
讯享网\documentclass[12pt,twoside]{
article} %*** \begin{
document} \pagestyle{
myheadings} \markboth{
left header\hspace{
\fill}}{
\hspace{
\fill} right header} main body \newpage main body2 \end{
document}


如何中途改变页眉内容?
\documentclass[12pt,twoside]{
article} %*** \begin{
document} \pagestyle{
myheadings} \markboth{
left1}{
right1} main body \newpage main body2 \newpage mainbody3 \markboth{
left2}{
right2} \newpage mainbody4 \newpage \pagestyle{
plain} no header \end{
document}
效果如下:





版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容,请联系我们,一经查实,本站将立刻删除。
如需转载请保留出处:https://51itzy.com/kjqy/52791.html