Сфинкс PDF темы - PullRequest
       11

Сфинкс PDF темы

19 голосов
/ 17 марта 2012

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

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

Спасибо.

Ответы [ 2 ]

23 голосов
/ 21 марта 2012

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

  1. Использовать конструктор Latex, а затем отдельный инструментнапример, latex2pdf для генерации вывода PDF
  2. Используйте плагин Sphinx из проекта rst2pdf

При этом существует большой потенциал для настройки стиля вашегоВывод PDF с использованием любого метода.

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

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

Сначала взгляните на 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".

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

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

...