You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在figure directive中为长caption换行?使用line blocks后caption消失如何解决

你遇到的line block写caption后内容消失的问题,是reStructuredText的figure指令解析规则导致的:
figure指令后空一行的第一个缩进块,会被解析器识别为图题(caption),而图题只能是单段落的纯文本内容,不能直接嵌套line block、列表这类多段式结构。你直接在第一个缩进块写line block,解析器会判定这段内容不属于图题,导致图题被识别为空,自然就不会显示。

解决方案

方案1:兼容HTML/PDF双输出的通用换行方法

这个方案对Sphinx的所有输出格式都生效,是最推荐的做法:

  1. 先在当前rst文档的顶部,或者项目全局的rst替换定义文件中添加如下换行标记定义:
.. |br| raw:: html

   <br />
  1. 调整你的figure写法,在需要换行的位置插入|br|即可:
.. figure:: a.png
   :width: 200

   First line |br|
   second line.

方案2:仅适配LaTeX PDF输出

如果你只用reStructuredText生成PDF,不需要兼容HTML格式,可以直接在换行位置插入\\:

.. figure:: a.png
   :width: 200

   First line \\
   second line.

注意事项

如果你需要的不是图题内的换行,而是要在图题下方添加多行补充说明,可以把line block内容放在legend块的位置,写法如下,这部分内容会显示在图题下方,样式和图题有区别:

.. figure:: a.png
   :width: 200

   这里写正常的图题内容

   | First line
   | second line.

内容的提问来源于stack exchange,提问作者Shibli

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.01 22:27:03