我正在使用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)