【问题标题】:Restructured Text (Sphinx) Image in Heading?标题中的重组文本(狮身人面像)图像?
【发布时间】:2013-07-14 20:57:12
【问题描述】:

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

类似:

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

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

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

【问题讨论】:

    标签: restructuredtext sections


    【解决方案1】:

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

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

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

    希望对你有帮助

    【讨论】:

      【解决方案2】:

      这可以通过在标题中使用substitution 来实现:

      Header Text |foo|
      =================
      
      .. |foo| image:: path/to/img.png
      

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

      抽象替换语法如下:

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

      由于我们要插入内联图像,我们应该选择image作为directive type

      【讨论】:

        【解决方案3】:

        使用 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 directive 在 reStructuredText 文档中轻松包含自定义 CSS,如下所示:

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

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

        在实现与PDF输出相同的方面,我将窃取another one of my answers的一部分:

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

        【讨论】:

        • 很棒的答案!很棒的代码 sn-ps。我会试一试,并用 rst2pdf 试试看它是如何处理事情的。如果可以的话,我会 +10...
        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2020-10-22
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多