如何在 reStructuredText 中创建嵌套列表?
Posted
技术标签:
【中文标题】如何在 reStructuredText 中创建嵌套列表?【英文标题】:How to create a nested list in reStructuredText? 【发布时间】:2011-07-29 20:04:22 【问题描述】:我正在尝试使用以下代码(遵循 Sphinx 和 docutils 文档)创建一个正确嵌套的列表:
1. X
a. U
b. V
c. W
2. Y
3. Z
我希望这会产生两个 OL
s,但我得到以下输出:
<ol class="arabic simple">
<li>X</li>
</ol>
<blockquote>
<div>
<ol class="loweralpha simple">
<li>U</li>
<li>V</li>
<li>W</li>
</ol>
</div>
</blockquote>
<ol class="arabic simple" start="2">
<li>Y</li>
<li>Z</li>
</ol>
我做错了什么?是不是不能得到下面的结果?
<ol class="arabic simple">
<li>X
<ol class="loweralpha simple">
<li>U</li>
<li>V</li>
<li>W</li>
</ol>
</li>
<li>Y</li>
<li>Z</li>
</ol>
【问题讨论】:
【参考方案1】:确保嵌套列表与父列表文本的缩进级别相同(或三个字符,以较大者为准),如下所示:
1. X
a. U
b. V
c. W
2. Y
3. Z
然后你会得到你期望的输出。
【讨论】:
看来这并不完全正确。在我的情况下,我使用*
作为列表指示符,当我缩进下一行时,两个字符需要与父列表的文本对齐,我的列表被视为块引用内的单独列表。我发现的经验法则是内部列表必须缩进至少三个字符。
@Akrikos 谢谢!我更新了答案以包含该警告。
在使用 *
列表时,用 3 个空格缩进内部列表对我不起作用。我认为第一次答案是正确的。【参考方案2】:
如果您希望 Sphinx 为您处理编号,请执行此操作。
#. X
#. Y
#. u
#. v
#. Z
【讨论】:
只是重新突出显示这个细节,因为它仍然适用:u 和 v 必须缩进至少 3 个空格(不是 2 个空格),以匹配父级别的文本。否则,您将得到“1.Z”而不是“3.Z”。 @S.Kirby 如果使用像iii.
这样的列表项,它使用更多的地方,似乎还必须缩进更多。似乎文本必须对齐,并且似乎没有特定的空格数可以用于所有情况。
请注意,额外的空行在这里也很重要。因此,嵌套子列表的每个元素需要 3 个空格,并且在空行的上方和下方。以上是关于如何在 reStructuredText 中创建嵌套列表?的主要内容,如果未能解决你的问题,请参考以下文章