利用Word域代码实现将形如“图一-1”的题注修改为“图1-1”

利用Word域代码实现将形如“图一-1”的题注修改为“图1-1”

问题描述

在用word编写毕业论文时,遇到了这样一个问题:通过多级列表的设置将一级标题设置为汉字数字之后,若需要设置包含章节号的题注(形如“图1-1”)时,则会变成“图一-1”的形式。本篇文章解决的就是将形如“图一-1”的题注通过设置域代码,在不修改一级标题格式的情况下改为“图1-1”。

参考链接

什么是域代码

使用组合键 Alt+F9 ,可以显示或隐藏文档中所有域代码

从上图中可以看到,原本的“图 一-1”已经变成了“图 { STYLEREF 1 \s }-{SEQ 图 * ARABIC \s 1}”,如果你此时直接复制它们,会发现粘贴出来的仍然是“图 一-1”,而将光标放在花括号中,则会将花括号括住的内容选中成为一个整体。其中花括号括住的部分就是“域代码”

你使用“添加题注”的对话框为图片添加题注时,插入的实际上就是这些“域代码”,你使用 Ctrl+F9组合键(会生成域代码的花括号,手动输入花括号是不行的)插入题注效果是一样的。

在这里 {STYLEREF 1 \s} 代表了章节号,也就是汉字数字“一”和“二”, {SEQ 图 \* ARABIC \s 1}代表了图的题注编号。

其中 STYLEREFSEQ 是“域”的名字,而后面的内容则是“域”的参数与“格式开关”(即域的格式选项)。

  • {STYLEREF 1 \s} 代表“插入具有样式名为‘1’的文本,并在指定标题级别下面重新开始( \s,此处未指定标题级别)”。

  • {SEQ 图 \* ARABIC \s 1}代表“插入名为’图’的序列的下一个编号,将结果显示为阿拉伯基数( \* ARABIC),并在一级标题下面重新开始编号( \s,此处标题级别为1,即若是到了下一个一级标题下,则会重新从1开始编号)”。

得知了word题注是用“域代码”实现的事实后,现在我们要做的事情就是将{STYLEREF 1 \s}的输出结果从汉字数字转变为阿拉伯数字,尝试将\* ARABIC开关加入其中,似乎并没有效果。

我在网上搜索到了另一个解决方案,利用迂回的方式将其转化,见:[word技巧]把标题、图表题注编号由“一.1”改为”1.1”

解决方案

{STYLEREF 1 \s}修改为 { QUOTE "一九一一年一月{ STYLEREF 1 \s }日" \@"D" }就可以了,注意花括号仍然得是使用 Ctrl+F9组合键生成的花括号。

我找到的文章并未说明其原理,但了解了域代码相关知识后,也不难理解原理。

首先找到 QUOTE域的相关说明:域代码:Quote 域-微软官方

1
{ QUOTE "LiteralText" }

“LiteralText”:插入的文本,必须加引号。它可以包含除 AutoNum、AutoNumLgl、AutoNumOut 或 Symbol 以外的所有其他域。

也就是说,QUOTE "一九一一年一月{ STYLEREF 1 \s }日" 这一部分是将“一九一一年一月{ STYLEREF 1 \s }日”插入到域代码所在位置,如果是第一章,那么最终结果就是一九一一年一月一日

看到这里,也许你已经猜到后面那个\@"D"开关是在干什么了:

设置域结果格式-微软官方
日期-时间格式开关 (\ @) 指定如何显示日期或时间。

例如, switch \ @ “dddd, mmmm d, yyyy” 字段{ DATE \ @ “dddd, MMMM d, yyyy” }显示 “星期五, 2019 年11月23日”。结合以下日期和时间说明: day (d)、month (M) 和 year (y);小时 (h) 和分钟 (m)-生成日期时间格式。你还可以包含文本、标点和空格。

字母 d 显示月份中的日期或一个星期中的某一天。 字母 d 可以大写或小写。此格式项目将某个星期或月份的某一天显示为数字;对于单位数日子,数字前面不加 0(零)。 例如,某月的第 6 天显示为 6

所以该开关的意思是,将最终结果中的“天”给显示出来,而我们前面的内容得到的是一九一一年一月一日,那么输出结果就是 1,这样就通过日期转换将汉字数字转换为阿拉伯数字了。

这个日期无关紧要,只要格式是中文日期即可,例如我改为 {QUOTE “二零二一年四月{ STYLEREF 1 \s }日” \@”D”}也没有关系。

之后再使用组合键 Alt+F9 ,就可以隐藏域代码,只显示域代码的结果了。

优化

虽然问题解决了,但是每次都要输入这样的域代码非常费劲。我在B站找到了一个视频,up主的解决方案很好:word将“图一.x”修改为“图1.x”-Bilibili

他使用了word的另一个好用的功能——构建基块。

  1. 选中刚刚写好的题注

  2. 使用组合键 Alt+F3 ,会弹出一个名为“新建构建基块”的对话框,修改构建基块的名称。例如修改为“图注”。

  3. 点击“确定”保存

之后如果想要插入这样的题注,那么直接输入该构建基块的名称(此处为“图注”二字),word就会在你输入的地方显示一个提示“按Enter插入”,此时按下Enter键,就可以插入这一个构建基块了。

利用Word域代码实现将形如“图一-1”的题注修改为“图1-1”

https://yxchangingself.xyz/posts/2028856356/

作者

憧憬少

发布于

2021-06-27

更新于

2021-06-27

许可协议