使用相同的多级列表样式的多个标题样式
Multiple heading styles using the same multilevel list style
我正在尝试为 Word 中的多个标题样式分配编号,以便获得如下内容:
6. <Heading 1>
6.1. <Heading 2>
6.1.1. <Heading 3>
6.2. <Heading 2>
6.2.1. <Heading 3>
6.3. <Heading 2>
您可以在标准 Word 中使用第二种多级编号样式(忽略 'None')非常轻松地完成此操作,该样式如下所示:
1.
1.1.
1.1.1.
但我正在尝试通过在代码中应用第二种多级编号样式来动态执行此操作,结果如下所示:
6. <Heading 1>
1.1 <Heading 2>
1.1.1 <Heading 3>
7. <Heading 1>
1.2 <Heading 2>
1.1.2 <Heading 3>
如果我在此之后手动应用第二种多级编号样式,它会更改为所需的输出。
这是我的代码(有点简化但不是很多)。
ListGallery gallery = doc.Application.ListGalleries[WdListGalleryType.wdOutlineNumberGallery];
ListTemplate numberedTemplate = gallery.ListTemplates[2];
for (int i = 1; i < 10; i++)
{
Style style = doc.Styles["Heading " + i];
style.LinkToListTemplate(numberedTemplate, i);
}
使用 ListGalleries 不是 reliable/robust。在索引的情况下(从 UI 中的列表中选择数字格式)你不能确定列表的内容总是相同的——这个缺点很明显。
内置画廊的问题,例如您正在使用的,是这个特定的画廊有一个 "bug"(就像 UI 首次发布时那样): 2 和 3 没有激活 "Restart List After" 设置,所以你会得到描述的行为。
因此,最好在创建自定义列表时录制宏,最好使用大纲编号菜单中的 "Define New List Style"。然后您可以在任何地方使用该代码。
定义一个命名的列表样式会给你一个命名的列表模板,这意味着它可以被直接重复使用和管理。 (在您的代码中,您使用索引值来引用 ListTemplate,如果您打算使用的不是集合中的第二个,则可能会出错。)
我正在尝试为 Word 中的多个标题样式分配编号,以便获得如下内容:
6. <Heading 1>
6.1. <Heading 2>
6.1.1. <Heading 3>
6.2. <Heading 2>
6.2.1. <Heading 3>
6.3. <Heading 2>
您可以在标准 Word 中使用第二种多级编号样式(忽略 'None')非常轻松地完成此操作,该样式如下所示:
1.
1.1.
1.1.1.
但我正在尝试通过在代码中应用第二种多级编号样式来动态执行此操作,结果如下所示:
6. <Heading 1>
1.1 <Heading 2>
1.1.1 <Heading 3>
7. <Heading 1>
1.2 <Heading 2>
1.1.2 <Heading 3>
如果我在此之后手动应用第二种多级编号样式,它会更改为所需的输出。
这是我的代码(有点简化但不是很多)。
ListGallery gallery = doc.Application.ListGalleries[WdListGalleryType.wdOutlineNumberGallery];
ListTemplate numberedTemplate = gallery.ListTemplates[2];
for (int i = 1; i < 10; i++)
{
Style style = doc.Styles["Heading " + i];
style.LinkToListTemplate(numberedTemplate, i);
}
使用 ListGalleries 不是 reliable/robust。在索引的情况下(从 UI 中的列表中选择数字格式)你不能确定列表的内容总是相同的——这个缺点很明显。
内置画廊的问题,例如您正在使用的,是这个特定的画廊有一个 "bug"(就像 UI 首次发布时那样): 2 和 3 没有激活 "Restart List After" 设置,所以你会得到描述的行为。
因此,最好在创建自定义列表时录制宏,最好使用大纲编号菜单中的 "Define New List Style"。然后您可以在任何地方使用该代码。
定义一个命名的列表样式会给你一个命名的列表模板,这意味着它可以被直接重复使用和管理。 (在您的代码中,您使用索引值来引用 ListTemplate,如果您打算使用的不是集合中的第二个,则可能会出错。)