第13章:页眉页脚与分节
学习目标
- 理解页眉页脚和节的关系
- 理解页眉页脚的存储方式
- 掌握奇偶页不同、首页不同的设置
- 理解分节的作用
13.1 页眉页脚存在哪里
页眉和页脚不放在主文档document.xml中,而是单独存放:
word/
├── header1.xml <!-- 第一个页眉 -->
├── header2.xml <!-- 第二个页眉 -->
├── footer1.xml <!-- 第一个页脚 -->
├── footer2.xml <!-- 第二个页脚 -->
└── ...
每个页眉或页脚一个单独的XML文件。
在主文档中,只在节属性里引用它们的关系ID。
13.2 关系引用
每个页眉页脚都需要在document.xml.rels中添加关系:
<Relationships ...>
<Relationship Id="rId1"
Type="http://schemas.openxmlformats.org/officeDocument/2006/relationships/header"
Target="header1.xml"/>
<Relationship Id="rId2"
Type="http://schemas.openxmlformats.org/officeDocument/2006/relationships/footer"
Target="footer1.xml"/>
</Relationships>
- 类型:页眉是
.../header,页脚是.../footer - Target指向对应的xml文件
然后在节属性中引用这些关系ID:
<w:sectPr>
<w:headerReference w:type="default" r:id="rId1"/>
<w:footerReference w:type="default" r:id="rId2"/>
...
</w:sectPr>
13.3 不同类型的页眉页脚
一个节可以有最多四个页眉页脚:
| 类型 | w:type值 | 说明 |
|---|---|---|
| 默认 | default | 所有页默认 |
| 首页 | first | 本第一节首页 |
| 偶数页 | even | 偶数页 |
| 奇数页 | odd | 奇数页 |
首页不同
如果要设置首页不同,在节属性中:
<w:sectPr>
<w:titlePage/> <!-- 首页不同 -->
<w:headerReference w:type="first" r:id="rId1"/> <!-- 首页页眉 -->
<w:footerReference w:type="first" r:id="rId2"/> <!-- 首页页脚 -->
<w:headerReference w:type="default" r:id="rId3"/> <!-- 其他页默认页眉 -->
<w:footerReference w:type="default" r:id="rId4"/> <!-- 其他页默认页脚 -->
</w:sectPr>
<w:titlePage/>表示开启首页不同。
奇偶页不同
如果要奇偶页不同,在文档设置中:
<w:settings>
<w:evenAndOddHeaders/> <!-- 奇偶页不同 -->
</w:settings>
然后你需要提供:
<w:headerReference w:type="even" r:id="rId1"/>
<w:headerReference w:type="odd" r:id="rId2"/>
这样奇数页用odd页眉,偶数页用even页眉。
同时首页不同和奇偶不同
可以同时开启:
- 开启
w:titlePage→ 首页单独 - 开启
w:evenAndOddHeaders→ 奇偶不同 - 所以你需要准备四个页眉:首页、奇数、偶数
13.4 页眉页脚内容结构
页眉文件header1.xml里面是什么样的?
其实和document.xml的body里面结构一样,可以放段落、表格:
<?xml version="1.0" encoding="UTF-8"?>
<w:hdr xmlns:w="http://schemas.openxmlformats.org/wordprocessingml/2006/main">
<w:p>
<w:pPr>
<w:jc w:val="right"/> <!-- 右对齐 -->
</w:pPr>
<w:r>
<w:t>文档标题</w:t>
</w:r>
</w:p>
</w:hdr>
根元素是<w:hdr>,里面和正文一样,可以放段落、表格等。页脚根元素是<w:ftr>,内容结构一样:
<w:ftr>
<w:p>
<w:r>
<w:t>第 </w:t>
</w:r>
<w:r>
<w:fldChar w:fldCharType="begin"/>
</w:r>
<w:r>
<w:instrText>PAGE</w:instrText>
</w:r>
<w:r>
<w:fldChar w:fldCharType="end"/>
</w:r>
<w:r>
<w:t> 页</w:t>
</w:r>
</w:p>
</w:ftr>
看到那个PAGE了吗?这就是页码域,Word会自动替换成当前页码。我们后面讲域的时候再说。
13.5 与节的关系
页眉页脚是按节来的,每一节可以有自己的页眉页脚。
默认情况下,新节会继承上一节的页眉页脚。如果你想不同节不同页眉,需要设置:
<w:hdr w:rsidR="00000000">
<!-- 内容 -->
</w:hdr>
然后在新节的sectPr中引用你自己的页眉,它就会用新的,不继承上一节。
为什么要分节改变页眉
常见场景:
- 封面:不需要页眉页码
- 目录:不需要页码或用罗马页码
- 正文:需要页眉页码
- 章节:每章页眉不同(比如显示章标题)
这种情况你就需要把文档分成多个节,每个节设置自己的页眉页脚。
13.6 页眉位置
页眉距离顶部多少,页脚距离底部多少,在哪里设置?
在页边距设置里面:
<w:sectPr>
<w:pgMar w:top="1440" w:header="720" ... />
</w:sectPr>
w:header就是页眉距离顶部的距离(单位缇)w:footer就是页脚距离底部的距离
默认一般是720缇(0.5英寸)。
13.7 链接到前一条页眉
Word UI中有个“链接到前一条页眉“按钮,这个在XML中怎么表示?
其实很简单:如果当前节没有定义自己的页眉引用,就用前一节的,这就是“链接到前一条“。如果定义了自己的引用,就断开链接用自己的。
所以:
- 链接到前一条 → 当前节
sectPr中不写页眉引用 - 不链接 → 当前节
sectPr中写自己的页眉引用
13.8 完整例子
我们来看一个完整例子:文档有两节,第一节是封面,第二节正文,首页不同,正文有页码。
关系 (document.xml.rels):
<Relationship Id="rId1" Type="...header" Target="header1.xml"/>
<Relationship Id="rId2" Type="...footer" Target="footer1.xml"/>
<Relationship Id="rId3" Type="...header" Target="header2.xml"/>
<Relationship Id="rId4" Type="...footer" Target="footer2.xml"/>
第一节(封面)sectPr:
<w:sectPr>
<w:titlePage/> <!-- 首页不同 -->
<!-- 首页不需要页眉页脚,所以不引用,或者引用空的 -->
<w:type w:val="nextPage"/>
</w:sectPr>
第二节(正文)sectPr:
<w:sectPr>
<w:headerReference w:type="default" r:id="rId3"/>
<w:footerReference w:type="default" r:id="rId4"/>
<w:pgSz w:w="12240" w:h="15840"/>
<w:pgMar w:top="1440" w:bottom="1440" w:left="1440" w:right="1440"
w:header="720" w:footer="720"/>
</w:sectPr>
页眉header2.xml:
<w:hdr>
<w:p>
<w:r><w:t>我的文档标题</w:t></w:r>
</w:p>
</w:hdr>
页脚footer2.xml:
<w:ftr>
<w:p>
<w:jc w:val="center"/>
<w:r>
<w:t>第</w:t>
<w:fldChar w:fldCharType="begin"/>
<w:instrText>PAGE</w:instrText>
<w:fldChar w:fldCharType="end"/>
<w:t>页</w:t>
</w:r>
</w:p>
</w:ftr>
这样就实现了:封面没有页眉页脚,正文有页眉居左,页码居中在页脚。
本章小结
- 每个页眉页脚单独XML文件存放,headerN.xml / footerN.xml
- 在document.xml.rels中注册关系,在sectPr中引用
- 可以设置首页不同(titlePage)和奇偶页不同(evenAndOddHeaders)
- 页眉内容结构和正文一样,根元素是w:hdr,页脚是w:ftr
- 每一节可以有自己的页眉页脚,不同节不同页眉需要分节
- 不定义引用就是继承前一节(链接到前一条)
下一章我们讲解分栏布局。