11

是否可以使用重组文本将图像放置在标题内?

就像是:

Introduction .. image:: path/to/img.png
---------------------------------------

这呈现为文本,即不解析图像语法。我没有看到任何这样的例子让我相信这可能是不可能的,但也许有人有解决方法。

我打算输出到 HTML(因此可以修改派生的 CSS,尽管我更愿意更改 RST 源。这是因为我还打算输出到 pdf(乳胶)。

4

3 回答 3

13

我认为使用别名(即替代)可以获得更好的结果。

这是文档中的摘录,可能会有所帮助:

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

.. |biohazard| image:: biohazard.png

我希望这有帮助

于 2013-10-04T19:44:12.360 回答
7

这可以通过在标头中使用替换来实现:

Header Text |foo|
=================

.. |foo| image:: path/to/img.png

foo只是一个示例替换文本。它可以是任何东西,但不应以空格开头或结尾。

抽象替换语法如下:

+-------+-----------------------------------------------------+
| ".. " | "|" substitution text "| " directive type "::" data |
+-------+ directive block                                     |
        |                                                     |
        +-----------------------------------------------------+

由于我们想插入一个内联图像,我们应该image选择directive type.

于 2017-04-18T03:04:48.187 回答
2

使用 HTML 和 CSS 有多种方法可以将图像添加到产生不同结果的元素中。我能想到的一对是:

  1. 使用图像代替任何文本。在这里,我们保留文本,但将其发送到屏幕外,因此仍然可以访问。

    h1 {
        background: url(images/image.jpg) no-repeat top center;
        display: block;
        text-indent: 100%;
        white-space: nowrap;
        overflow: hidden;
        width: XXpx;
        height: XXpx;
    }
    
  2. 将图像放在文本的左侧(或者可以很容易地放在右侧)

    h1 {
        background: url(images/image.jpg) no-repeat top left;
        padding-left: XXpx;
    }
    
  3. 在任何文本后面使用背景图像

    h1 {
        background:url(images/image.jpg) no-repeat top center;
    }
    

更具体的 CSS 选择器可用于仅针对某些标头。

raw您可以使用指令在 reStructuredText 文档中轻松包含自定义 CSS ,如下所示:

.. raw:: html

    <style>
        <!-- One of the CSS styles above. -->
    </style>

--stylesheet或者,您可以使用选项从命令行包含自定义 CSS 样式表rst2html.py

在实现与 PDF 输出相同的方面,我将窃取我的另一个答案的一部分:

显然,上面的目标是 HTML 输出。但是,我没有使用 rst2pdf,因此无法评论如何修改上述内容以使用该程序。希望其他人会对此提供答案。据我所知,rst2pdf 确实支持级联样式表机制,因此(对于了解 rst2pdf 样式表语法的人来说)添加一个额外的.. raw:: pdf角色并修改上述列表样式应该很简单。

于 2013-07-18T19:35:52.020 回答