tex中对页眉的编辑

    技术2022-07-13  71

    本文引用自《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}

    效果如下:

    Processed: 0.008, SQL: 9