需求描述
毕业论文格式要求大标题采用“第一章”的汉字多级标题格式,而对于公式,图,表等标号需要按章节编号,如1.1 2.3.3等。如果直接使用题注进行标注会产生“一.1”的效果。对此要使用自动标号必须的用到word里域代码的相关知识。
此外域代码还能在表格中像excel中用引用相对位置进行计算,使表格填写更加高效。
然而网上相关资料着实是少,官方文档缺少实例,故写本文做一个域代码的学习记录。
系统环境
win10, word2016
语法说明
域代码出现在大括号 ( { } ) 内。其中{ }不是用键盘上的{ }输入的,而是按Ctrl+F9。形式如
{ 域名称 指令 可选开关 }。不同的命令可以在参考资料3中找到。
域代码决定域中显示的内容。计算域代码后文档中显示的为域结果。要在查看域代码和域代码结果之间切换,请按 Alt+F9。
注意:
- 每次输入完一条命令后切记要Ctrl+A, F9来更新全文域,不然很容易出现显示为空或着错误的情况。
- 在输入命令时要注意符号是否是英文,中文字符可能造成语法错误。
要实现自动标号和表格相对位置主要是利用 Seq域。
Seq域实现公式标号
语法:
标识符可以理解为自定义的变量名。默认从1开始计数,随后每使用一次值自增1.
比如在第一张的标题后面输入{ SEQ chap}。此时即创造了值为1的变量chap。在第二章标题后面同样输入{ SEQ chap},此时chap自增为2。
然而我们在标题出不需要阿拉伯标号,故使用开关\h将其隐藏。最终在标题后输入:{ SEQ chap \h}
在需要用到的章节标号处使用\c,表示重复前边最近的序列号。而对于公式或图标的(章节-公式号)的标记形式,只需要对公式、图、表分别创建新的seq变量来计数即可。
比如最终公式标号的域代码可以写为:
然而对于新的章节公式要重新标号,此时就要用\r n 将变量重置为n这个指定的数字,缺省n时默认为1。 例如,{ SEQ figure \r 3 } 从 3 开始图表编号。故只需要在新的章节任意一个早于标号的地方,比如标题处,输入域代码重置即可。以上述公式标号变量的equ为例,在标题处输入{ SEQ equ \r \h}即可。
还没有弄图床,全是文字略显抽象,具体表现效果可以参照参考资料2
表格实现相对位置计算
word中的表格不能象Excel一样实现相对引用。对于大量的表格计算,常规的做法是先写一个公式,然后复制到其他单元格,最后再逐个修改。而seq域可以实现自增,实现一个公式完成同一种运算。
思路
假设有表格:(切记空一行否者无法正确渲染出表格)
特征 | d1 | d2 | d3 | sum |
---|---|---|---|---|
a | 1 | 2 | 3 | x |
b | 1 | 2 | 3 | |
c | 1 | 2 | 3 | |
avg | y |
求x:
一般公式写成 {:= sum(B2:D2)}
不同行之间的区别在于序号,故可以用seq变量来实现自增。由于加入了域代码,要用quote来实现。且从2开始计算,一种方法时对变量加1:
求y:
一般公式写成 {:= average(B2:B4)}
不同列之间字母不同,可以用seq的*alphabetic开关,把数字转化为字母。此时无法通过先加1在转为字母实现从B开始计算,只能通过表头先写变量{ seq Row_A \r 1 }解决。