reStructured Text 中浮动图像的工作示例

Posted

技术标签:

【中文标题】reStructured Text 中浮动图像的工作示例【英文标题】:Working example of floating image in reStructured Text 【发布时间】:2011-05-31 19:18:35 【问题描述】:

我正在寻找在 reStructured Text 中让图像旁边出现文本的最佳方式。我发现几个网站声称展示了它是如何完成的,但没有一个展示实际运行的示例。有几个显示了似乎失败的例子。我实际上正在使用 Sphinx (v0.6.6) 并希望避免过度使用它附带的“本机”CSS。

【问题讨论】:

【参考方案1】:

你可以像这样使用图形元素:

.. figure: path/to/image.png
   :figwidth: 100%
   :target: images/navegacion_d.png

而figure元素会使用100%的body而不改变原图的宽度:

+---------------------------+
|        figure             |
|                           |
|<------ figwidth --------->|
|                           |
|  +---------------------+  |
|  |     image           |  |
|  |                     |  |
|  |<--- width --------->|  |
|  +---------------------+  |
|                           |
|The figure's caption should|
|wrap at this width.        |
+---------------------------+

【讨论】:

【参考方案2】:

你可以定义一个替换:

.. |clearfloat|  raw:: html

    <div class="clearer"></div>

然后对图像使用 align 属性:

.. image:: _static/my_image.png
   :align: left

并像这样插入一个清晰的:

|clearer|

【讨论】:

1.您首先定义|clearfloat|,然后使用|clearer|。 2.你省略了.clearer的CSS【参考方案3】:

我认为使用substitutions 可以获得更好的结果。

此处摘录的文档可能会有所帮助:

The |biohazard| symbol must be used on containers used to
dispose of medical waste.

.. |biohazard| image:: biohazard.png

希望对你有帮助

【讨论】:

虽然此链接可能会回答问题,但最好在此处包含答案的基本部分并提供链接以供参考。如果链接页面发生更改,仅链接的答案可能会失效。 我编辑了答案,添加了一个使用替换的示例。感谢您指出这一点 那是完全不同的事情:您正在嵌入一个内嵌的小图像。 (我知道怎么做。)我想要一个更大的两列布局的图像。 (至少,我认为这就是我三年前想要的。) 嗯...您的问题表明“我正在寻找使图像旁边出现在重构文本中的文本的最佳方法”,并且您没有指定尺寸或布局。无论如何,如果您查看我发布的链接,您可以找到很多方法来实现您的目标。使用“image::”指令进行的替换对很多用例都非常有帮助。我想,你没有点击我提供的链接,也许假设报告的小例子是那里唯一的东西?其中一个有用的部分也是:docutils.sourceforge.net/docs/ref/rst/directives.html#image【参考方案4】:

使用 Sphinx v1.1.3,我一直在使用以下方法 - 浮动左图像和清除块。它似乎没有记录在任何地方,而且有点hacky,所以在这里分享......

首先是图像,按照 rST doc 左对齐。

.. image:: _static/my_image.png
     :align: left

然后你可以用正常的方式写你的段落,它们环绕图像。

完成后,放入一个肮脏的清洁器 - 我使用 1x1 png 作为容器的内容。

.. container:: clearer

    .. image :: _static/spacer.png

这会生成以下 HTML,它使用 Sphinx 的 div.clearer CSS。

<div class="clearer container">
    <img src="_images/spacer.png" >
</div>

然后你就可以继续写作了,你的下一段已经很清楚了。

【讨论】:

你有没有找到一种方法来处理数字? ***.com/questions/16463051/… @dmd 不,我没有使用数字 - 但也许类似的技术可能有效? 不,不走运。 :( 有一个稍微不那么老套的解决方案:将替换定义为 raw::html 。这消除了对虚拟图像的需要 “更清晰”的风格并不是每个主题的一部分。它是几个捆绑主题(nonav、agogo、epub、传统和基本)的一部分,但它不是(例如)第三方 RTD 主题的一部分。如果它丢失了,您可能需要将它添加到您的 CSS 中。【参考方案5】:

用 Emily Litella(来自 SNL)的话来说,“哦......没关系......” ;-) 用 Alex Trebek(来自 Jepordy!)的话来说, “而答案是……”

.rst 文件中

.. container:: twocol

   .. container:: leftside

      .. figure:: _static/illustrations/structure.svg

   .. container:: rightside

      Bla-bla-blah, and yada-yada.

在自定义 CSS 中(我使用了 sphinxdoc.css 的副本,并将其放入 ./source/_static/):

div.leftside 
    width: 414px;
    padding: 0px 3px 0px 0px;
    float: left;


div.rightside 
    margin-left: 425px;

每个 ..container:: 变成一个

。就我而言,我想要图像的固定宽度和其余部分的可变宽度。而且,通过对 Sphinx 生成的 LaTeX 进行了一些调整,它在为该部分生成两列输出方面也做得不错。

我希望这足以帮助其他人弄清楚一开始对我来说不明显的地方。

【讨论】:

非常感谢。我能够使用相同的技术(容器和 CSS)使文本段落像图像一样浮动在文本主体旁边。

以上是关于reStructured Text 中浮动图像的工作示例的主要内容,如果未能解决你的问题,请参考以下文章

将左浮动 div 中的图像与右浮动 div 上的文本垂直对齐

javascript Nested_Object_Restructuring

CodeForces 566D Restructuring Company (并查集+链表)

CF566#D Restructuring Company (并查集---合并区间操作)

如何在我的文本上应用 z-index 以将其浮动在我的图像上

Restructure output of R summary function