Python sphinx 我怎样才能让斯芬克斯表适合宽度?

Python sphinx 我怎样才能让斯芬克斯表适合宽度?,python-sphinx,Python Sphinx,考虑此表,其中pyeval是一个宏,用于计算表达式并用其值替换它(因此我可以避免在文档中硬编码值): 这将使用以下HTML呈现: <table border="1" class="docutils"> <colgroup> <col width="40%"> <col width="60%"> </colgroup> <thead valign="bottom"> <tr class

考虑此表,其中
pyeval
是一个宏,用于计算表达式并用其值替换它(因此我可以避免在文档中硬编码值):

这将使用以下HTML呈现:

<table border="1" class="docutils">
  <colgroup>
    <col width="40%">
    <col width="60%">
  </colgroup>
  <thead valign="bottom">
    <tr class="row-odd">
      <th class="head">Subsystem</th>
      <th class="head">Default storage path</th>
    </tr>
  </thead>
  <tbody valign="top">
    <tr class="row-even">
      <td><tt class="docutils literal"><span class="pre">foo</span></tt></td>
      <td><tt class="docutils literal"><span class="pre">/srv/badp/foo-path/</span></tt></td>
    </tr>
    <tr class="row-odd">
      <td><tt class="docutils literal"><span class="pre">bar</span></tt></td>
      <td><tt class="docutils literal"><span class="pre">/srv/badp/bar-path/</span></tt></td>
    </tr>
    <tr class="row-even"><td><tt class="docutils literal">
      <span class="pre">baz</span></tt></td>
      <td><tt class="docutils literal"><span class="pre">/var/run/badp/baz-path/</span></tt></td>
    </tr>
  </tbody>
</table>

子系统
默认存储路径
福
/srv/badp/foo路径/
酒吧
/srv/badp/bar路径/
巴兹
/var/run/badp/baz路径/
由于宏的原因,我必须给
子系统
列提供的宽度仅略小于
默认路径
得到的列,但其列的内容要短得多。由于Sphinx试图提供“帮助”,因此它试图将源文件中的宽度比率传输到HTML页面(请注意
colgroup
标记),结果非常不均匀:

请注意,Chrome(就像Firefox一样)“有益地”在断字点断开,而且,由于这是一条路径,我不能将断字改为非断字;人们很可能会复制粘贴这些值

但是,如果删除
colgroup
元素,则会得到所需的表


我怎样才能告诉斯芬克斯,请不要那么聪明地使用我的桌子呢?

我也遇到了这个问题。读取docutils源代码时,colgroup宽度似乎是使用网格表分隔线中列的破折号数和此处使用的简单表中列的最长列条目中的字符数来计算的

试图编写一个自定义指令来生成一个没有colgroup的表时,在docutils中遇到了一个bug,在以后处理生成的元素时,需要一个colgroup

我使用的一种技术是使用别名创建长度更接近真实文本的数据项。例如:

.. |FOO| replace:: :pyeval:`constants.FOO`
这很有帮助,但并不完美

使用以下css禁用colgroup元素的实验

colgroup { display: none; }
在FireFox上工作得很好,但在IE9中隐藏了enter表,显然这也不是一个可接受的解决方案。

似乎有效的方法(至少在FireFox中)是重置
列的宽度:

table.docutils col {
    width: auto;
}
相关错误报告(状态设置为“无法修复”):。
table.docutils col {
    width: auto;
}