在 sphinx 中创建一个与 `make latexpdf` 一起工作的角色(字体颜色)

问题描述 投票:0回答:2

习惯写Rest文档,没用过LaTex

我想做的是创建一些字体颜色角色,我可以添加内联文本(例如:red:

this text is red
)在html和latexpdf编译中都有效。

我发现了一个类似的问题here,但我无法重现它。

我认为 magic 将完成更改

conf.py
文件,但我没有找到如何。

另外,在

latexpdf
编译的时候,在
_build/latex
目录下,有一个
sphinx.sty
文件,里面有很多东西,可以用来定制最终的pdf文件。

如果我想更改最终 pdf 文件的某些参数,是否需要编辑此文件,将其放在某个地方并告诉 sphinx 获取此样式文件?

对不起所有这些东西,但我有点困惑..

谢谢!

latex python-sphinx restructuredtext
2个回答
2
投票

只需添加:

  1. 带有

    的'source/_templates/layout.html'文件
    {% extends "!layout.html" %}
    
    {% block extrahead %}
    <link rel="stylesheet" type="text/css" 
         href="{{ pathto('_static/custom.css', 1) }}" /> 
    
    {% endblock %}
    
  2. 带有

    的'source/_static/custom.css'文件
    @import url("default.css");
    
    .red {
      color: red;
    }
    

您现在可以在您的第一个文件中使用 :red: 角色。不要忘记 html 或 css 版本后的反勾和干净的目标:

A :red:`red`text

$> make clean html

全局树:

test-sphinx
├── Makefile
├── build
└── source
    ├── _static
    │   └── custom.css
    ├── _templates
    │   └── layout.html
    ├── conf.py
    └── index.rst

一个索引。第一个例子:

TS test!
========

.. role:: red

This is :red:`just` a test …

希望这有帮助,

安东尼


0
投票

aflp91 的答案适用于使用 css 为 html 输出设置颜色,但它不会改变乳胶输出中的颜色。

Aflp91的回答其实在tex文件中生成了一个自定义角色,可以覆盖改变颜色。所缺少的只是在 LaTex 中实际自定义自定义角色的代码。为此,在 conf.py 中添加以下内容:

latex_elements = {
    'passoptionstopackages': r'\PassOptionsToPackage{svgnames}{xcolor}',
    'preamble': r'''
\newcommand{\DUrolered}[1]{{\color{red} #1}}
''',
}

DUrole 语法在 docutils 文档中描述。

© www.soinside.com 2019 - 2024. All rights reserved.