python-sphinx – 超过3级标题的Sphinx部分编号:.. sectnum ::

我正在使用Sphinx从第一个文件生成pdf文件. Sphinx自动生成最多3级标题的节号,以及高达此级别的内容表.但是,我希望各个级别的标题都有编号并且在TOC中.为了做到这一点,我试图使用.. sectnum ::(
http://docutils.sourceforge.net/docs/ref/rst/directives.html#table-of-contents).结果并不完全符合我的预期:

1)在TOC和文本中的所有部分编号前面都添加了一个数字1.即,而不是1,它是1.1,而不是2,它是1.2.

2)在TOC和直到第三级标题的文本中,部分编号重复,即在错误的部分前面有一个部分编号(正确的编号)(在前面添加1.).

这是我的示例rst文件:

.. sectnum::




level 1: the first party
========================

level 1 desc: this document is about xyz

level 2
-------

level 2 desc

level 3
~~~~~~~~

level 3 content

level 4
^^^^^^^^

level 4 content

level 5
''''''''

level 5 content jflkasjfslkajf
asdfsafs

level 1: the second part
========================

fjsdafjskalfjslkafjksaljflksaj
fasdhfkjsahfjkhdsf

level 2
-------

level 2 desc

level 3
~~~~~~~~

level 3 content

level 4
^^^^^^^^

level 4 content

level 5
''''''''

level 5 content jflkasjfslkajf
asdfsafs

这是TOC的结果:

(我拍了一下我的pdf文件来显示结果,但我发现我无法发布图片,因为我需要10点声望,这是我第一次发布任何内容)

1 1.1 level 1: the first party
  1.1   1.1.1 level 2

2 1.2 level 1: the second part
  2.1   1.2.1 level 2

以下是文字的结果:

                     1.1 LEVEL 1: THE FIRST PARTY

level 1 desc: this document is about xyz

1.1 1.1.1 level 2

level 2 desc

1.1.1 1.1.1.1 level 3

level 3 content

1.1.1.1.1 level 4

level 4 content

1.1.1.1.1.1 level 5

level 5 content jflkasjfslkajf asdfsafs

正如您所看到的,在节号中添加了1,并且标题的重复部分一直到3级.

如果有人可以帮我解决这个问题,我真的很感激.

最佳答案 Sphinx似乎认为整个项目是一个文档,每个.rst文件都是它的一个章节;你可以在主要文件中指明文件的顺序.. toctree ::.我猜这就是你获得数字的原因.我猜这是一个非常常见的用例,不要想要编号的.rst文件,所以也许有人应该提出这个.

顺便说一句,请注意Sphinx明确不支持sectnum.相反,他们建议您在顶级.. toctree ::中使用:numbered:参数. (http://sphinx-doc.org/rest.html)

点赞