在 Sphinx 中,如何创建对表特定行的引用?

问题描述

我想交叉引用我必须输入起始格式

:ref:`Link Text <CrossReferenceLabel>`

然后通过写作使用它

.. _CrossReferenceLabel:

像下面这样。

   +-----------+-----------------------------------+-------+
   | Number    | Animal                            |       |
   +===========+===================================+=======+
   | 1         | :ref:`Dog <DogLabel>`             |       |
   +-----------+-----------------------------------+-------+
   | 2         | Cat                               |       |
   +-----------+-----------------------------------+-------+


   +-----------+-----------------------------------+-------+
   | Dog       | Services                          |       |
   |           | .. _DogLabel:                     |       |
   +===========+===================================+=======+
   | 1         | Vet                               |       |
   +-----------+-----------------------------------+-------+
   | 2         | Toy Shop                          |       |
   +-----------+-----------------------------------+-------+

链接是为链接文本创建的,但目标似乎没有交叉引用。

解决方法

那么亲近。我会将标签放在 Dog 桌子上方,因为那是它的标签。

+-----------+-----------------------------------+-------+
| Number    | Animal                            |       |
+===========+===================================+=======+
| 1         | :ref:`Dog <DogLabel>`             |       |
+-----------+-----------------------------------+-------+
| 2         | Cat                               |       |
+-----------+-----------------------------------+-------+

.. _DogLabel:

+-----------+-----------------------------------+-------+
| Dog       | Services                          |       |
+===========+===================================+=======+
| 1         | Vet                               |       |
+-----------+-----------------------------------+-------+
| 2         | Toy Shop                          |       |
+-----------+-----------------------------------+-------+

本例中第三列不是必需的,因此您可以将其删除。

网格样式表格也是四种不同表格样式中最难编辑的语法。请参阅 Tables documentation 了解替代方案。

此外,如果您想引用表格单元格中的某些内容,您必须遵循有关标签后空格的 reStructuredText 规则。例如。

+-----------+-----------------------------------+-------+
| Number    | Animal                            |       |
+===========+===================================+=======+
| 1         | :ref:`Dog <DogLabel>`             |       |
+-----------+-----------------------------------+-------+
| 2         | Cat                               |       |
+-----------+-----------------------------------+-------+

+-----------+-----------------------------------+-------+
| Dog       | .. _DogLabel:                     |       |
|           |                                   |       |
|           | Services                          |       |
+===========+===================================+=======+
| 1         | Vet                               |       |
+-----------+-----------------------------------+-------+
| 2         | Toy Shop                          |       |
+-----------+-----------------------------------+-------+

对我来说,标记表格比表格中的单元格更有意义。