Sphinx 和 RST:如何将标题移动到 table 下方,就像在数字和其他聪明的东西中一样?

Sphinx and RST: How to move caption BELOW table, just like in figures and other clever things?

我创建了一个网格 table,其中包含以下指令:

..table:: *Table 1: Power Connector* 
  :align: center

这是结果:

最大的问题是如何将标题 Table 1:电源连接器 移动到 table 下方,有什么技巧吗?我确定有,只是请不要深入研究 Sphinx 的源代码,给我一些简单的角色或其他可以做到的角色(CSS 或其他),理想情况下,built-in 角色:align:

作为一款流行的文档软件,Sphinx确实缺少很多进阶的讲解。在对 Sphinx 本身的 python 源代码进行一系列 hack 之前,我几乎没有找到 :align: 指令。拜托,Sphinx只是学习的借口吗python?

table指令是由docutils定义的,所以即使你需要查看源代码,也应该去docutils,而不是sphinx。

这样的片段
.. table:: *Table 1: Power Connector*
   :align: left

   +-----+-----+-----+
   | t   | x   | y   |
   +=====+=====+=====+
   |     |     |     |
   +-----+-----+-----+
   |     |     |     |
   +-----+-----+-----+

转化为HTML5,

<table class="docutils align-left" id="id1">
<caption><span class="caption-text"><em>Table 1: Power Connector</em></span><a class="headerlink" href="#id1" title="Permalink to this table">¶</a></caption>
<colgroup>
<col style="width: 33%" />
<col style="width: 33%" />
<col style="width: 33%" />
</colgroup>
<thead>
<tr class="row-odd"><th class="head"><p>t</p></th>
<th class="head"><p>x</p></th>
<th class="head"><p>y</p></th>
</tr>
</thead>
<tbody>
<tr class="row-even"><td></td>
<td></td>
<td></td>
</tr>
<tr class="row-odd"><td></td>
<td></td>
<td></td>
</tr>
</tbody>
</table>

因此,由于 HTML 5 默认样式,标题显示在顶部。

要覆盖它,您需要添加一个 CSS 文件并使用 caption-side 将其移至底部,

.docutils caption {
  caption-side: bottom;
}

如果您想知道如何使用自定义 CSS 文件,可以阅读参考资料。

参考