2010-09-13 78 views

回答

10

如果你想這樣做,而不是綁定到HTML,嘗試應用不同於正常正文文本的風格。

在這個例子改編自rst2pdf手冊,我套用現有欄目的風格是在後端紅,我現在用:

Before red. 

.. role:: rubric 

I like color :rubric:`rubric`. 

After red. 

這個詞的實際看,將取決於如何風格你選擇是在生成文檔時使用的樣式表中定義的。 如果您想要藍色文本,請製作藍色文本樣式並從普通文本樣式中派生。 樣式表是後端特定的,您可能正在使用默認值。 要打印的rst2pdf.py默認,做到這一點(從rst2pdf手動):

rst2pdf --print-stylesheet 

持續了rst2pdf樣式表的例子,它添加到您的樣式表有一個藍色的文本樣式:

bluetext: 
    parent: bodytext 
    textColor: blue 

在文檔中,您可以引用此樣式來獲取藍色單詞。 注意這個位是通用的,如果你在html或任何後端的樣式表中定義了一個藍色樣式,它應該會變成藍色文本。

Before blue. 

.. role:: bluetext 

I like color :bluetext:`blue`. 

After blue. 

生成的PDF有彩色的話: enter image description here

6

這可以工作,但將HTML留在單獨的段落中。

.. raw:: html 

    <font color="blue">Blue word,</font> 

And a word without color 

如果有人有更好的答案,我會接受它。

8

在我的獅身人面像供電website,我用的組合:一個

  • 包含一個新結構化文件的角色定義,每個顏色 - 請參見.special.rst(BitBucket鏈接)
  • 包含每個角色顏色規則的CSS文件 - 請參閱hacks.css的第一行(到位桶鏈接)

然後,在每一個的rST文件,我需要的顏色,我第一次在頂級進口.special.rst,手動:

.. include:: .special.rst 

或者在獅身人面像的conf.py文件rst_epilog配置變量:

rst_epilog = "\n.. include:: .special.rst\n" 

然後每個角色都可以很容易地在純的rST語法中使用:

This is :red:`red !` And :blue:`this part is blue`. 

更多詳情請見this page(法語,不好意思)。

它對html輸出(和html-like)非常適用,但不適用於PDF。請參閱first answer above以生成帶有顏色的PDF。

+0

我喜歡這個解決方案! – umbe1987 2017-09-29 10:21:58

+0

感謝您的解決方案。它的工作原理,但你知道如何解決'警告:「包含」指令路徑的問題:'?我不知道如何將'.special.rst'指定爲'conf.py'中的項目根目錄。我試過'/'和'〜/',但都不起作用。 – YOUNG 2018-01-23 19:02:53

+0

我不知道,在我的情況下'conf.py'文件和所有'rst'文件在同一個文件夾中,所以不需要指定任何東西。 – 2018-01-24 15:47:25