java 自动生成word文档目录 java word 目录_自动编号


一、常规多级列表

为了给各级标题自动编号,大家可能都使用过word的多级列表功能。设置界面如下图所示,只要将各级编号链接到相应的标题样式即可实现各级标题自动编号。在网络上很容易地搜索到具体操作流程。


java 自动生成word文档目录 java word 目录_表名_02


Word常规多级列表的一个应用效果,如下图所示。这样常规的多级列表方便用户操作,但也有以下一些缺点。

1. 编号的位置只能在左侧段首。有时候可能想要一个居右的编号,使用这种方法是办不到的。

2. 会出现一些莫名其妙的问题。网上有较多应用多级列表不成功的例子。

3. 多级列表的缩进设置很可能与标题的样式发生冲突,造成应用编号后标题格式混乱。不甚了解的人不知道怎么调整。


java 自动生成word文档目录 java word 目录_表名_03


二、更加灵活的ListNum域多级列表

现在介绍一下ListNum域多级列表的使用方法。这个方法使用域代码实现多级标题的编号。在word中插入域的方法可自行到网络上搜索,在此不作介绍。

ListNum域的语法

ListNum ["name"] [switches]。

name是要指向的多级列表名称,有三个内置的列表名称LegalDefault、NumberDefault和OutlineDefault,如果不输入列表名称,则默认为NumberDefault;

switches为域开关,有两个,一个为l,指定列表层次,一个为s,指定起始编号,如果不输入开关,默认为一级编号,起始为1。

ListNum域的一个示例:

{ ListNum LegalDefault l 1}

解释:引用名称为“LegalDefault”的多级列表的一级编号,没有设置起始编号,默认从编号1开始。域结果为“1.”

内置的多级列表只有3个,很有可能不能满足我们的使用需求。

(一)可以自定义多级列表样式,并在域代码中用名称引用它。

操作步骤如下。

1. 点击“开始”选项卡,在段落功能区点击多级列表按钮,点击“定义新的列表样式”。最好不要点击“定义新的多级列表”,虽然也可以,但它后面不能修改。列表样式可以修改。如下图所示。


java 自动生成word文档目录 java word 目录_多级_04


2. 此时弹出“定义新列表样式”对话框。为样式定义一个名称,然后点击“格式”,再点击“编号”。如下图所示。


java 自动生成word文档目录 java word 目录_java 自动生成word文档目录_05


3. 此时弹出“修改多级列表”对话框。这个对话框和前面的“定义新多级列表”对话框是一样的,只是换了个标题。可以先为这个列表样式定义一个“ListNum域列表名”,如list1。这个“ListNum域列表名”设置很少有人使用,但是它是通过域代码引用列表样式的关键所在

然后定义新的编号。在这里只定义了三级编号,第一级为“第一章”,第二级为“一、”,第三级为“(一)”,后面的用不到,采用默认设置。

其他,如“编号对齐方式”、“文本缩进位置”等,可以不用理会,采用默认即可。因为通过域代码引用这个列表样式,并不能引进这些格式。这是此方法的优点,也是缺点。

操作如下图所示。


java 自动生成word文档目录 java word 目录_java的gui设置文本域大小_06


(二)接下来就是要文档中输入域代码,引用这个多级列表。

尝试在各级标题右侧使用多级列表,操作步骤如下。

1. 在文档中输入域代码{ ListNum list1 l 1 }(注意大括号是通过ctrl+F9输入的),其中list1是事先在列表样式中定义好的ListNum域列表名。然后把整个域代码剪切,此时域代码保存到剪贴板中。这样做的原因是接下来要使用查找替换功能批量为各级标题右侧加上此域代码,而在查找替换对话框中并不能直接输入域代码,只能用“^c”(剪贴板内容)来代替它。操作如下图所示。


java 自动生成word文档目录 java word 目录_多级_07


2. 调出“查找和替换”对话框,在“查找内容”下输入(*)^13,并限定样式为标题1(这个样式是准备应用一级编号的样式),在“替换为”下输入1^t^c^p,勾选“使用通配符”,然后点击“全部替换”,即可完成一级编号的快速添加。操作如下图所示。


java 自动生成word文档目录 java word 目录_java的gui设置文本域大小_08


3. 其他各级编号的添加操作类似,只是要注意域代码中的"l 1"依次修改"l 2"、"l 3"……。最终效果如下图所示。

二级和三级编号都分别能够从上一级重新开始编号,这与常规的多级列表的效果是一样的。

编号的格式都是由所在的段落样式决定,并没有受到多级列表格式的影响。

成功实现了在标题右侧应用多级列表。


java 自动生成word文档目录 java word 目录_自动编号_09


当需要修改编号的样式时,只要更改之前定义好的列表样式即可,它提供了丰富的编号样式,像英文的、中文的、韩文的、数字01、数字001等。


20200713更新

关于修改ListNum域所关联列表样式的正确操作

1.修改前需要应该选中任一个ListNum域,不能只是将光标置于该处或该段落内。

2.单击多级列表按钮,在“列表样式”库中找到自定义的列表样式,而不是其他地方,右键选“修改”,如下图所示。


java 自动生成word文档目录 java word 目录_自动编号_10

Word修改列表样式1

3.在随后出现的“修改样式”对话框中,单击左下角“格式”,然后“编号”,在弹出的“修改多级列表”对话框中,会发现右侧的“ListNum域列表名”片灰显,不可修改。注意,如果此处不灰显,可修改,那么说在第1步中没有选中ListNum域,而选中了其他地方,或者只是放置光标在该处而没有选中。此时,应该返回重新操作。操作如下图所示。

可以在“修改样式”对话框中对编号样式进行修改,也可以在“修改多级列表”对话框中对编号样式进行修改。但“修改多级列表”对话框中会有一些在“修改样式”对话框中没有的修改功能,如比如修改编号的前后缀:“第”、“章”等。


java 自动生成word文档目录 java word 目录_多级_11

word修改列表样式2

4.没有选中ListNum域,而是选中其他地方或者只是光标放置在段落中,此时对上述的自定义列表样式进行了修改,列表样式将应用到段落上,出现左侧的自动编号,导致ListNum域编号混乱。

也不要使用“定义新的多级列表”按钮进行修改,因为可能会出现 @xispine 所说域列表名发生改变的情况,或者出现ListNum域列表名被使用而无法修改的情况。“定义新的多级列表”所作的修改可能会同时影响到常规多级列表和ListNum域列表。

如果发生了上述的错误修改,请不要直接把段落左侧的自动编号删除,而应该是单击多级编号按钮,把该段落的编号设置为无。

5.总的原则是:ListNum域列表与常规多级列表尽量不要在同一个文档内混用;已经被ListNum域引用的列表样式,不要再应用于段落。

有什么关于办公图文方面的问题,可以和我说说,也许可以帮到你哦。


《word排版技术大全》“第10章自动化与域——让你的文档更智能”中详细介绍了域的各种知识和应用。

开通知乎盐选会员,以上电子书都可以免费阅读,还有更多丰富的免费内容你可能感兴趣哦。