网上看了很多帖子,这个是我个人最倾向使用得解决方案!
我们在写论文的时候经常会碰到这样的问题,我们的章节编号使用的是简体中文一、二、三进行编号,而章节里面的图或者表格要求用阿拉伯数字进行编号,并且要求带章节号。如果我们直接用插入题注进行操作的话,就会出现像这样的情况:“表一-1”“表二-1”,这样看起来很别扭。我们更习惯于“表1-1”“表2-1”这样的编号。本篇博文就讲讲怎么样来做这个更改。
我不能保证大家都知道域并且熟悉域的操作,所以还是有必要介绍一点点域的相关操作的。
什么是域?word帮助里是这样说的:“域的行为很像 Microsoft Office Excel 中的公式:域代码像公式,而域结果像公式所产生的值。”其语法如下:
{FIELD NAMEPropertiesOptional switches} //{域名 属性 选项开关}
看到这里可能有人会在word里试验着打下大括号……虽然语法里是个大括号没错,但却不能这样子键入。
那怎么插入域呢?两种方法,一是“插入|文档部件|域”,里面有各种各样的域供你选择,不细说了。二是按ctrl+F9,这样就会出来一对大括号(这个大括号才能当域的大括号用)了,你可以在里面尽情去写你的域代码了。
另外按shift+F9可以进行当前域代码和域结果的切换,alt+F9可以切换全文所有域的代码或结果显示。如果你的域里面嵌了好几层的话,用shift+F9似乎不能把所有层展开,所以我不太喜欢用这个。
下面就说一下这里用到的两个域:IF域和STYLEREF域。
IF域
语法:{ IF Expression1 Operator Expression2 TrueText FalseText }
不中文翻译了哈,想说明一点的是,可以嵌套。比如说我想弄一个如果页码大于5显示L,大于2小于等于5显示M,小于等于2的显示S。可以这样写:
{IF{PAGE}>"5" "L" {IF{PAGE}>"2" "M" "S"}}。
STYLEREF域:获取拥有某样式的文字。
语法:{SYTLEREF 样式名 选项开关}
样式名应该不用解释了,STYLEREF域的选项开关好像有不少,我只说两个。一个是\l。一般STYLEREF是从前往后再从搜索,找到第一个具有指定的“样式名”的文本,用\l选项呢,则是从页底后往前找。另一个是\s。这是获取具有该样式的段落编号。例如,我们采用标题1的样式,并加了编号“第一章”(这些个怎么操作我就不说了哈)。注意哈,我这里把“第”和“章”都放到编号里了,我可不想第次还多打两个字。我们可以利用STYLEREF这个域,具有这个样式的文字显示在页眉里。
{STYLEREF "标题 1" \s} {STYLEREF "标题 1"}
有了这两个域我们就可以来发动我们的题注了。
我们先来看一下我们插入表格时产生的题注的域:(题注中的标号带标题1章节号)
{STYLEREF 1 \s}.{SEQ 表 \* ARABIC \s 1}
SEQ域我们不管了,只看STYLEREF域。有一点我觉得很有意思。用{STYLEREF 1 \s}在我们本例中,出来的是“一”之类的编号,不带“第”和“章”字,而用{STYLEREF "标题 1" \s}出来的则是“第一章”这种样子。我没有仔细去看过STYLEREF的说明,不知道是office有意为之还是怎么的,这里的1指的就是标题1。我们也不纠结这个问题了,先解决我们的问题要紧。
用之前说到的两个域,就可以来改变我们的题注了。
{IF {STYLEREF 1 \s}="一" "1" {IF {STYLEREF 1 \s}="二" "2"}}
我就只写到“二”示意一下哈,有多个标题1的就继续写下去哈。当然了,如果你使用的是{STYLEREF "标题 1" \s},记得把"一"改成"第一章"……我试过了,这样的话生成表格的时候,也会是表1.1而不是表一.1的样子。不过比较郁闷的是每次加个表格都得这样手动改一次挺麻烦的,我还不知道怎么让word自动化来处理这个,呵呵。正在学习VBA中……
最后再强调一遍一定要用ctrl+F9或者菜单上插入域的办法来插入域代码,直接打大括号是没有用的。
原文地址:http://blog.sina.com.cn/s/blog_4c7fa77b0100lwb5.html