如何在 Word 文档的同一段落内插入自动编号
在使用 Word 编辑文档的过程中,我们经常会遇到需要在一段话内列举带编号项目的情况,例如:
鼓励网络信息内容服务平台坚持主流价值导向,优化信息推荐机制,加强版面页面生态管理,在下列重点环节(包括服务类型、位置版块等)积极呈现本规定第五条规定的信息:(一)互联网新闻信息服务首页首屏、弹窗和重要新闻信息内容页面等;(二)互联网用户公众账号信息服务精选、热搜等;(三)博客、微博客信息服务热门推荐、榜单类、弹窗及基于地理位置的信息服务版块等;[…]
在这些场合,编号的输入和修改是比较繁琐的。如果编号项目的总数只有两三个,工作量还能忍受;但如果数量达到两位数,逐个手敲就很低效了。特别是对于中文文档,在段落中输入 (1)
、(a)
、(i)
这样的字母、数字编号,还意味着需要在中英文状态下来回切换。如果后续修改中不幸要删除列表中的某一项,也就意味着要手动修改它之后的每一个编号,更加耽误时间。
在多段落列表中,这些麻烦是不存在的——只要用现成的自动编号功能就行了。然而,自动编号并不能在同一个段落中使用。
不过,这并不意味着在段落内部就无法实现自动编号。解决方法就是使用 Word 的域(field)功能。
关于「域」在 Word 中的含义和使用方法,我在 之前的文章 中已经有所介绍,这里不再重复。简言之,所谓的「域」就是一个占位符,它的作用是告诉 Word「显示的时候把我换成别的东西」。
这里,我们要使用的是 SEQ
域。如名称(SEQ
uence)所表明,它的作用就是产生一个数字「序列」。但与自动编号不同的是,SEQ
域可以在同一段落中多次出现,且位置不限于段落开头。因此,通过在段落中插入多个 SEQ
域,就可以实现段内自动编号的效果。
通过 SEQ 域插入编号:基础操作
我们首先通过一个简单场景——插入形如「(一)、(二)、(三)」的段内序号——来熟悉 SEQ
域的使用方法。
首先,手动输入一对括号 ()
,并将光标置于括号中央。
然后,在 Ribbon 工具栏的「插入」选项卡下点击「插入域」按钮(该按钮在窗口达到一定宽度后才会显示;Mac 用户也可以直接使用「插入」>「域…」菜单项)。
在弹出窗口的「域名称」一列选择「Seq」,然后点击「选项…」按钮。
这里,我们可以看到 SEQ 域的语法:
{ SEQ 标识符 [书签 ] [开关 ] }
不过,代码中的大部分并不需要手动输入——「插入域」对话框的功能就是帮助构建满足要求的代码。目前,我们只需要输入「标识符」(identifier)这一项,即给这个有序列表任起一个名称(例如 NumList
)。
接着,我们从列表中挑选所需的编号格式(例如「一,二,三(简)」),然后点击「添加到域」按钮。可以看到,Word 自动在我们的域代码尾部追加了一段 \* CHINESENUM3
,这就是上述编号格式的代码写法。
点击「确定」,即可看到文档中插入了中文编号「(一)」。
乍看起来,这似乎与普通的文本编号没有什么区别;尝试将编号复制粘贴几次,也只是得到了几个相同的编号。
但如果选中这些编号,然后按 F9(在如今大多数键盘上实际是按 Fn-F9)更新域,就能看到它们变成了一串连续的编号。再试着删除其中某几个编号,并按 F9 更新域,可以发现剩下的编号又重新变连贯了。
这样,我们就初步实现了在同一段落内的自动编号。类似地,如果你需要形如「(i), (ii), (iii)」或「(a), (b), (c)」这样的罗马数字、英文字母等编号格式,只要在上面选择格式的步骤中作对应调整即可。
用自动更正快速输入段内序号
当然,手动插入域代码是比较繁琐的,我们期望用比手敲编号更少的时间实现自动编号。为此,可以将域代码和自动更正(AutoCorrect)功能结合起来,通过输入缩写文本来插入自动编号。
作为准备,我们需要先设计两对自动更正关系,其中:
- 第一个短语用于插入起始编号,反复输入时,插入重置为 1 的编号;
- 第二个短语用于插入后续编号,反复输入时,插入连续递增的编号。
还是以插入形如「(一)、(二)、(三)」的段内序号为例,我们可以将自动更正关系具体设计为:
- 将短语
一】
替换为起始编号「(一)」,对应的域代码为({ SEQ NumList \* CHINESENUM3 \r 1 \* MERGEFORMAT })
; - 将短语
二】
替换为后续编号「(二)」「(三)」等,对应的域代码为({ SEQ NumList \* CHINESENUM3 \* MERGEFORMAT })
。
其中,第一段域代码中加入的 \r 1
是 SEQ
域专用的一个开关(switch),其作用是将序列编号重置为 1。
思考好自动更正关系后,就可以将其添加到 Word 的自动更正列表中了。
首先,按下 ⌥-F9(Windows 下为 Alt-F9),将显示模式改为直接显示域代码。
然后,用与上一节相同的步骤,在文档中插入设计好的两个编号代码,即 ({ SEQ NumList \* CHINESENUM3 \r 1 \* MERGEFORMAT })
和 ({ SEQ NumList \* CHINESENUM3 \* MERGEFORMAT })
。
(注:作为一种快捷方法,你也可以直接在正文中输入不包含两侧大括号的代码,然后将其选中、并按下 ⌘-F9 (Mac) / Ctrl-F9 (Windows),Word 会自动在代码两侧加上大括号、并将其转换为域。)
现在,选中并复制起始编号的代码 ({ SEQ NumList \* CHINESENUM3 \r 1 \* MERGEFORMAT })
。点击「Word」>「首选项」菜单,选择「自动更正」(Windows 用户点击「文件」>「选项」,然后点击「校对」选项卡下的「自动更正选项」按钮)。
可以看到,「替换为」框已经自动填好了我们提前复制的、通过域代码生成的编号项。现在只需要在「替换」框中为其指定一个短语(如本例中的 一】
),然后点击「添加」按钮,即可完成该条自动更正的设置。
接着,用相同的方法为后续编号的代码 ({ SEQ NumList \* CHINESENUM3 \* MERGEFORMAT })
添加自动更正短语 二】
。
最后,再次按下 ⌥-F9(Windows 下为 Alt-F9),将显示模式从显示域代码改回默认。
这样,以后需要在段落内输入中文数字列表时,只需要输入 一】
即可得到起始编号「(一)」,只需反复输入 二】
即可依次得到后续编号「(二)」「(三)」等;如果后续删除了这段话中的某一项,只需选中整段,然后按 F9 键更新域,即可重新得到一串连贯的编号。
小结
以上就是通过 SEQ
域在段落内部插入自动编号、并结合自动更正功能提高操作效率的方法。
篇幅所限,本文没有介绍一些进阶用法。例如,如果在 SEQ
代码的识别符部分后再追加一个书签名称(即形如 { SEQ NumList bookmark1 }
),就可以在文档的其他位置通过交叉引用功能定位到这个编号;又如,如果你需要在同一段落内插入多级自动编号(如「1) a) i)」),可以改用 LISTNUM
域 来实现;等等。
另一点想借本文说明的是,Word 通过按钮或菜单项提供的很多功能,其本质也就是插入具有相应作用的域。例如,本文的主角 SEQ
域或许并没有你想象的那么陌生——当你用 Word 的「插入题注」功能为文章中的图片、表格加编号时,实际上就是插入了一段域代码 { SEQ caption \* ARABIC \s 1 }
。
然而,菜单和按钮往往不会提供对应域代码能实现的全部功能(可能是要照顾日常用户),而且经常产生一些奇怪 bug(自动编号按钮的效果 混乱到令人咋舌)。因此,如果你特别依赖 Word 的某项功能,不妨看看它是否有 对应的域代码 实现方式,并熟悉一下相应的语法和可用选项。这既可以实现更高的灵活性,又有助于在出现问题时快速排查。