有没有办法在sphinx中设置单个单词(或字符)的颜色?我很确定应该有一些标记标签,比如 HTML 的font
标签。
5 回答
在我的 Sphinx网站上,我使用了以下组合:
- 包含角色定义的重组文本文件,每种颜色一个 - 请参阅.special.rst(BitBucket 链接)
- 包含每个角色的颜色规则的 CSS 文件 - 请参阅hacks.css的第一行(BitBucket 链接)
然后,在我需要颜色的每个 rST 文件中,我首先.special.rst
在顶部导入,或者手动导入:
.. include:: .special.rst
或者使用rst_epilog
Sphinxconf.py
文件中的配置变量:
rst_epilog = "\n.. include:: .special.rst\n"
然后可以在纯 rST 语法中轻松使用每个角色:
This is :red:`red !` And :blue:`this part is blue`.
此页面上提供了更多详细信息 (法语,抱歉)。
它非常适用于 html 输出(和类似 html),但不适用于 PDF。请参阅上面的第一个答案以生成带有颜色的 PDF。
如果您想在不受 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 有彩色单词:
Sphinx已经支持包含标准定义文件的颜色(但缺少 CSS 文件):s5defs.txt
在您的文件中创建/将此文本附加到
rst_epilog
sphinx 配置的值:docs/conf.py
rst_prolog = """ .. include:: <s5defs.txt> """
按照Sphinx 的说明添加带有颜色的 css(例如采用
hack.css
来自@Næreen 的答案):
将您的 css 文件放入 eg 中
_static/css/s4defs-roles.css
;将其路径附加到
shtml_css_files
sphinx 配置中:html_css_files = ['css/s4defs-roles.css']
然后你可以使用:
Some :red:`colored text` at last!
提示:如果您还希望样式出现在Latex输出中,请 阅读此 SO 。
这可行,但将 HTML 留在单独的段落中。
.. raw:: html
<font color="blue">Blue word,</font>
And a word without color
如果有人有更好的答案,我会接受。
只是一个简短的说明,因为我来到这里寻找类似的东西html
。
这适用于我的 Sphinx v2.0.1。这使用了@adam-matan 报告的概念,但不会导致任何格式问题(即段落问题)。
.. role:: raw-html(raw)
:format: html
:raw-html:`<font color="blue">Blue word,</font>` And a word without color