Подтвердить что ты не робот

Темы в формате Sphinx PDF

Предлагает ли инструмент документации Sphinx разные темы PDF, например, предлагает разные темы HTML?

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

Спасибо.

4b9b3361

Ответ 1

Во-первых, Sphinx не генерирует PDF файл сам по себе, хотя есть два общих метода, которые можно получить из исходных файлов Sphinx в файл PDF:

  • Используйте построитель Latex, а затем отдельный инструмент, например latex2pdf, для создания PDF файла.
  • Используйте плагин Sphinx из rst2pdf project

Это говорит о том, что существует много возможностей для настройки стиля вывода PDF с помощью любого метода.

  • При использовании метода latex- > pdf вы можете настроить выход латекса с помощью нескольких параметров в конфигурационном файле sphinx. См. здесь. Этот метод несколько менее удобен, чем темы HTML, которые Sphinx использует для генерации HTML, хотя (IMO).
  • При использовании rst2pdf вы можете определить свою собственную таблицу стилей, которую он более подробно описал в руководстве (посмотрите под заголовком "Стили" ). rst2pdf включает в себя ряд таблиц стилей, которые могут быть объединены для различных результатов. И, конечно же, вы можете также изменить их или создать свои собственные (это просто файлы JSON). Эти таблицы стилей также поддерживают своеобразное наследование, поэтому действуют скорее как HTML-темы Sphinx, чем предыдущий.

Ответ 2

Нет предопределенных тем для вывода PDF для Sphinx. Но LaTex предлагает богатый набор возможностей для оформления документа. Моя проблема заключалась в том, чтобы найти правильный способ сглаживания документа с помощью сфинкса. Вот путь, который работал у меня:

Сначала взгляните на conf.py. Там вы найдете опцию latex_elements. С помощью этой опции вы можете добавить свои собственные команды LaTex к выходу. Например:

latex_elements = {
# The paper size ('letterpaper' or 'a4paper').
'papersize': 'a4paper',

# The font size ('10pt', '11pt' or '12pt').
'pointsize': '12pt',

'fontpkg': r"""
\PassOptionsToPackage{bookmarksnumbered}{hyperref}

""",

# Additional stuff for the LaTeX preamble.
'preamble': r"""
\usepackage{setspace}
""",

'footer': r"""
""",

'maketitle': r'''
\pagenumbering{arabic}
''',
}

Важно знать несколько моментов.

  • Используйте r""", чтобы избежать конфликтов с python
  • Хотя preamble будет правильной точкой для добавления \usepackage, вы можете иметь конфликты с настройками по умолчанию Sphinx. Посмотрите fontpkg в примере. Это первое включение в выходной документ .tex. Если вам нужно установить параметры для пакетов по умолчанию, сделайте это здесь.
  • maketitle позволяет определить собственную титульную страницу. См. Документацию по латексу. Я установил \pagenumbering, чтобы иметь оглавление с арабскими числами, поэтому реальный контент начинается на странице "1".

При правильном знании команд Latex вы можете получить хорошую тематику с помощью нескольких команд. Хорошим источником для поиска справки является https://tex.stackexchange.com/, где наиболее распространенные проблемы имеют решение. Но найти правильные команды Latex гораздо сложнее, чем выбрать тему, сделанную для HTML.

Возможно, было бы полезно посмотреть в Tex-Output в разделе ./_build. Там вы можете видеть, как latex_elements -опции были включены в документ.