有没有办法用一个数字方案创建多级列表?

有没有办法用一个数字方案创建多级列表?

我想创建一个多级列表,其中的数字总是在增加。这是一个例子:

001) Topic 1
    002) Topic 1 Sub Topic 1
    003) Topic 1 Sub Topic 2
004) Topic 2
    005) Topic 2 Sub Topic 1
        006) Topic 2 Sub Topic 1 Sub Sub Topic 1
    007) Topic 2 Sub Topic 2
008) Topic 3 

我尝试定义一个新列表,但它们不会从上一级继续编号。并且每个预定义列表都会重新开始编号。

编辑:我想要这样做的原因是因为我想将这些主题翻译成编程用的枚举列表。

答案1

我认为没有一种简单的方法可以使用 Word 的内置编号来实现这一点,而另一种主要方法(使用字段代码)通常不为用户所熟悉,并且也可能会导致某些功能无法按人们期望的那样工作(例如,大纲,而基于 Web / 设备的 Word 版本可能仍然不支持这一点)。

但如果你需要这么做,你需要做的是

  • 为每个级别定义一个段落样式,该样式不指定编号,但为数字留出空间
  • 在每个段落的开头插入合适的字段代码,以及您需要的任何其他字符(例如,在您的示例中,您可能需要“)后跟制表符,这些都会由 Word 在普通多级列表中自动处理)
  • 如果您使用 SEQ 字段,您还需要记住选择字段代码,并在修改编号(例如插入/删除编号段落)时使用 F9(Windows Word)来更新它们,因为它们不会“自动更新”

SEQ 字段只会生成您命名的序列中的下一个数字。因此,以前两段为例,您可以这样开始:

Topic 1
    Topic 1 Sub Topic 1

然后点击第一个主题 1 前面,使用 ctrl-F9 输入一对特殊字段代码括号{ },然后这样)<tab>你就有了

{  })  Topic 1
    Topic 1 Sub Topic 1

在 之间{ },输入文本,SEQ a \#000以便

{ SEQ a \#000 })  Topic 1
    Topic 1 Sub Topic 1

使用 Alt-F9 在字段代码视图和字段结果视图之间切换,然后选择该字段并按 F9 更新其结果。在结果视图中,您应该看到

001)  Topic 1
    Topic 1 Sub Topic 1

重复第二段,你应该看到

001)  Topic 1
    002)  Topic 1 Sub Topic 1

SEQ 字段中的“a”是序列的名称 - 您可以将其称为“mylist”或类似的名称。默认情况下,SEQ 会生成阿拉伯数字,并且是\#000一种“数字格式”,左侧用零填充。

如果使用此方法,您通常会创建一个自动文本或类似的东西来插入整个字段。

如果愿意,您可以在格式中放置 ),如下所示:

{ SEQ a \#"000)<tab>" }

(其中实际上是一个制表符)。

SEQ 字段是 Windows Word 早期实现多级编号的常用方法 - 它们的优点是稳定并且不依赖于结构,如果不使用 VBA,在 Word 中很难更改这些结构。

但是,微软确实引入了另一种字段类型 LISTNUM,它可以插入现有列表编号样式中的编号。原则上,其优点是 LISTNUM 编号由 Word 自动更新。我从未见过它们在实际情况下使用。要使用它们,首先必须设置一个命名的多级样式。Word 的术语和行为在这方面似乎非常混乱 - 它们在用户界面和 Word 的编程对象模型中使用不同的术语,并且很少清楚您是在创建新内容,还是在修改会导致文档布局发生变化的内容。这可能是人们避开这些东西的主要原因。但让我们尝试逐步完成。我只会在测试文档上执行此操作。我们尝试设置的内容实际上在 Word 的对象模型中称为“ListTemplate”。

  • 单击要编号的段落之一。
  • 进入首页->段落->多级列表并选择定义新的多级列表...
  • 如果显示,请单击左下角的更多 >> 按钮。
  • 该对话框可能会显示现有列表模板的设置。我们希望尽量不打扰它,因此要做的第一件事是单击右侧标有Listnum 字段列表名称并给 ListTemplate 命名,例如列表001
  • 点击下方的每个数字(1-9)点击级别进行修改(左上角)依次是将级别链接到样式下拉,选择没有风格
  • 点击第 1 级点击级别进行修改
  • 删除输入数字的格式盒子
  • 在里面此级别的数字样式下拉菜单中选择 001,002,003...
  • 在数字后输入“)”输入数字的格式盒子
  • 我认为当您使用 LISTNUM 字段插入数字时,此处的任何其他设置都不会被使用,因此请单击“确定”。

现在,{ SEQ a \#"000)<tab>" }您不需要插入一个如下所示的字段:

{ LISTNUM list001 }

与 SEQ 字段不同,您不能使用 应用数字格式开关\#,因此

  • 您无法让字段生成以下空格或制表符
  • 您只能使用在输入数字的格式框。例如,有 001 格式、0001 格式、00001 格式,但如果您确实需要 000001,那么唯一可行的方法是在数字格式框的开头插入 0(您的数字只能从 1 到 999999)

如果您在字段中指定“级别号”(在本例中为 1),则这种方法可能会更稳定,如下所示:

{ LISTNUM list001 \l 1 }

最后,如果您需要重新开始编号,对于 SEQ 字段,您可以使用\r如下开关:

{ SEQ a \r 1 } - restarts numbering at 1

并使用 LISTNUM\s开关

{ LISTNUM list001 \s 1 } 

相关内容