Темы Sphinx PDF

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

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

Спасибо.


person araichev    schedule 16.03.2012    source источник


Ответы (2)


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

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

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

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

Для Sphinx нет предопределенных тем для вывода PDF. Но 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».

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

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

person Trendfischer    schedule 12.06.2015
comment
Я пытаюсь создать PDF-файл, используя make latexpdf из моего проекта Sphinx. Однако ссылки, которые я создал в исходных .rst файлах, отсутствуют в выходном файле pdf. Хотя ссылки отлично работают в документах HTML. Я пробовал использовать 'preamble': '\\usepackage{hyperref}',, но безрезультатно. Не могли бы вы посоветовать лекарство? - person shaan; 12.08.2020
comment
Обычно ссылки рабочие. Лучший способ отладить это - заглянуть в файлы * .tex в _build / latex /, чтобы увидеть, как ссылки компилируются в latex. Это может зависеть от того, использовали ли вы синтаксис ссылок или зависите от автоматического определения ссылок. - person Trendfischer; 13.08.2020
comment
Кажется, .tex файл можно открыть только с помощью редактора Tex. Установил один и открыл (единственный) .tex файл в папке _build/latex/. Но не могу разобрать там много кодов. При запуске средства просмотра и создании файла PDF из редактора Tex создается PDF, но, как указывалось ранее, он не может видеть гиперссылку, созданную в .rst исходном файле с использованием :ref: на метку создан с использованием .. _define-quest-struct-ref-label: в целевом файле. Что должно быть в порядке? Не могли бы вы объяснить часть, касающуюся автоматического обнаружения? - person shaan; 13.08.2020
comment
Вместо ссылки :ref: Question Structure <define-quest-struct-ref-label> в .rst файле в редакторе Tex отображается \DUrole{xref,std,std-ref}{Question Structure}. - person shaan; 13.08.2020
comment
Я бы посоветовал вам создать подробный вопрос с примером первого фрагмента и соответствующей частью в файле .tex. Кроме того, файл .tex можно просмотреть в любом текстовом редакторе, это текстовый формат. - person Trendfischer; 13.08.2020
comment
Как и было предложено, я разместил этот вопрос. Пожалуйста, проверьте. Спасибо. - person shaan; 13.08.2020