10

我正在使用 Sphinx 从 rst 文件生成 pdf 文件。Sphinx 自动生成高达 3 级标题的章节编号,以及高达该级别的目录。但是,我希望所有级别的标题都被编号并在目录中。为了做到这一点,我正在尝试使用.. sectnum::http://docutils.sourceforge.net/docs/ref/rst/directives.html#table-of-contents)。结果并不完全符合我的预期:

  1. 在目录和正文的所有节号前面都加了一个数字 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 级之前的标题中有重复的部分。

4

2 回答 2

3

Sphinx 似乎认为整个项目是一个文档,每个.rst文件都是其中的一章;您可以在 main 中指明文件的顺序.. toctree::。我想这就是你得到数字的原因。我猜这是一个非常常见的用例,不希望.rst文件编号,所以也许有人应该提出这个建议。

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

于 2014-08-13T13:05:21.303 回答
1

我尝试将您的代码呈现为 HTML,它工作正常。

也许你可以考虑 HTML 格式。

在此处输入图像描述


此外,

.. sectnum::

.. toctree::
   :numbered:

我认为它们没有什么不同,取决于您选择的设计。

  • 只想对小节进行编号:sectnum
  • 整个项目的带有编号的标题(它将自动包含 sub toctree)选择:toctree:: :number:

了解更多 >目录树编号

于 2019-09-06T07:11:53.970 回答