强制Sphinx使用longtable指令,以在长表中正确添加分页符

问题描述 投票:0回答:1

我正在一个项目中,我们在其中生成HTML和PDF的文档。

当表的行数超过30行时,sp​​hinx会正确使用Latex longtable包。但是,对于较小的表,它改用tabulary包。

我的问题是我有一些表的行数少于30,但是由于行数很大,我需要分页符。

从我的所有阅读(特别是在这里:https://github.com/sphinx-doc/sphinx/issues/1898),似乎我应该通过指定“:class:longtable”来强制sphinx使用longtable。

很遗憾,我没有成功添加此规范,因为没有使用单独的指令指定我的表。

这是我的表的定义方式:

.. tabularcolumns:: |p{1cm}|p{4cm}|p{10cm}|

+--------+-----------------+--------------------------+
| Step # | Process Step(s) | Detail                   |
+========+=================+==========================+
| 1      | Testing         | Testing  Testing Testing |
+--------+-----------------+--------------------------+

我正在使用的所有在线示例都使用list-tables或csv-tables,然后将longtable命令添加为相关指令的一部分。例如:

.. tabularcolumns:: |p{1cm}|p{7cm}|

.. csv-table:: Lorem Ipsum
   :file: _files/lorem-tab.csv
   :header-rows: 1
   :class: longtable

我已经尝试过了,但是不幸的是它没有用:

.. tabularcolumns:: |p{1cm}|p{4cm}|p{10cm}|
   :class: longtable

+--------+-----------------+--------------------------+
| Step # | Process Step(s) | Detail                   |
+========+=================+==========================+
| 1      | Testing         | Testing  Testing Testing |
+--------+-----------------+--------------------------+

[在尝试制作pdf时出现以下异常:

! Package array Error:  Illegal pream-token (:): `c' used.

See the array package documentation for explanation.
Type  H <return>  for immediate help.
 ...                                              

l.663 :class: longtable}
latex python-sphinx
1个回答
0
投票

[与同事进行一些橡皮鸭式调试之后,我们确定我需要添加..table指令。然后,这包装了我的简单表,并为:class:定义提供了一个位置。

所以我的表现在定义如下:

.. tabularcolumns:: |p{1cm}|p{4cm}|p{10cm}|

.. table:: My Table
   :widths: auto
   :class: longtable

   +--------+-----------------+--------------------------+
   | Step # | Process Step(s) | Detail                   |
   +========+=================+==========================+
   | 1      | Testing         | Testing  Testing Testing |
   +--------+-----------------+--------------------------+

这解决了我们的问题,它仍然从tabularcolumns指令读取列规范。

© www.soinside.com 2019 - 2024. All rights reserved.