Создать роль (цвет шрифта) в sphinx, которая работает с `make latexpdf`

Я привык писать документы Rest, пока я никогда не использовал LaTex.

То, что я хотел бы сделать, это создать некоторые роли цвета шрифта, которые я могу добавить встроенный текст (например: красный:this text is red), которые работают как в html, так и в компиляции latexpdf.

Я нашел подобный вопрос здесь, но я не могу воспроизвести его.

Я думаю, что волшебство будет сделано, изменяя conf.py файл, но я не узнал как.

Более того, во время latexpdf сборник, в _build/latex каталог, есть sphinx.sty файл, который содержит много вещей для настройки окончательного PDF-файла.

Если я хочу изменить какой-либо параметр окончательного PDF-файла, должен ли я редактировать этот файл, поместить его куда-нибудь и сказать sphinx, чтобы он взял этот файл стиля?

Извините за все эти вещи, но я немного запутался..

Спасибо!

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: role в ваших первых файлах. Не забывайте обратную галочку и чистую цель после html или css выпусков:

A :red:`red`text

$> make clean html

Глобальное дерево:

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

Пример index.rst:

TS test!
========

.. role:: red

This is :red:`just` a test …

Надеюсь, это поможет,

Antoine

Ответ 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 .

Другие вопросы по тегам