如何在 Word 文档的同一段落内插入自动编号

2019-12-26

在使用 Word 编辑文档的过程中,我们经常会遇到需要在一段话内列举带编号项目的情况,例如:

鼓励网络信息内容服务平台坚持主流价值导向,优化信息推荐机制,加强版面页面生态管理,在下列重点环节(包括服务类型、位置版块等)积极呈现本规定第五条规定的信息:(一)互联网新闻信息服务首页首屏、弹窗和重要新闻信息内容页面等;(二)互联网用户公众账号信息服务精选、热搜等;(三)博客、微博客信息服务热门推荐、榜单类、弹窗及基于地理位置的信息服务版块等;[…]

在这些场合,编号的输入和修改是比较繁琐的。如果编号项目的总数只有两三个,工作量还能忍受;但如果数量达到两位数,逐个手敲就很低效了。特别是对于中文文档,在段落中输入 (1)(a)(i) 这样的字母、数字编号,还意味着需要在中英文状态下来回切换。如果后续修改中不幸要删除列表中的某一项,也就意味着要手动修改它之后的每一个编号,更加耽误时间。

在多段落列表中,这些麻烦是不存在的——只要用现成的自动编号功能就行了。然而,自动编号并不能在同一个段落中使用。

不过,这并不意味着在段落内部就无法实现自动编号。解决方法就是使用 Word 的(field)功能。

关于「域」在 Word 中的含义和使用方法,我在 之前的文章 中已经有所介绍,这里不再重复。简言之,所谓的「域」就是一个占位符,它的作用是告诉 Word「显示的时候把我换成别的东西」。

这里,我们要使用的是 SEQ。如名称(SEQuence)所表明,它的作用就是产生一个数字「序列」。但与自动编号不同的是,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 1SEQ 域专用的一个开关(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 的某项功能,不妨看看它是否有 对应的域代码 实现方式,并熟悉一下相应的语法和可用选项。这既可以实现更高的灵活性,又有助于在出现问题时快速排查。