Боковое меню оглавления в Sphinx LaTeX PDF

Я генерирую документ LaTeX из Sphinx и конвертирую его в PDF с использованием pdflatex (из MikTeX). В документе отсутствует оглавление на боковой панели средства просмотра PDF.

Если я добавлю вручную \usepackage{hyperref} в текстовый файл, это работает. Но как я могу сказать Sphinx сделать это в файле проекта conf.py? В параметрах вывода латекса нет (очевидной) связанной опции.

Спасибо!

1 ответ

Решение

Раздел 2.5.3 Настройка рендеринга документа Sphinx упоминает:

Латексная преамбула

Дополнительные команды могут быть добавлены в виде преамбулы в сгенерированный файл LaTeX. Это легко сделать, отредактировав файл conf.py:

f = open('latex-styling.tex', 'r+');
PREAMBLE = f.read();

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

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

  # Additional stuff for the LaTeX preamble.
  'preamble': PREAMBLE
}

Это скопирует содержимое файла latex-styling.tex (в том же каталоге, что и conf.py) к созданному документу LaTeX. Например, если latex-styling.tex гласит:

% My personal "bold" command
\newcommand{\mycommand}[1]{\textbf{#1}}

сгенерированный документ LaTeX становится:

% Generated by Sphinx.
\def\sphinxdocclass{report}
\documentclass[a4paper,10pt,english]{sphinxmanual}
% snip (packages)
% My personal "bold" command
\newcommand{\mycommand}[1]{\textbf{#1}}
\title{My Extension Documentation}
\date{2013-06-30 22:25}
\release{1.0.0}
\author{Xavier Perseguers}

Другие опции

Файл конфигурации conf.py позволяет вам дополнительно настроить рендеринг с LaTeX. Пожалуйста, обратитесь к http://www.sphinx-doc.org/en/stable/config.html для получения дальнейших инструкций.

Более прямой способ добавления контента, а не вставка его в отдельный файл (скажем, latex-styling.tex), чтобы указать, если дословно. Следующий подраздел в документации упоминает это для определенного пакета typo3:

Шаблон TYPO3

Мы хотим придерживаться максимально возможного рендеринга по умолчанию, чтобы не приходилось менять генерацию кода LaTeX на Sphinx. Таким образом, мы решили включить пользовательский пакет typo3 (файл typo3.sty), что переопределит некоторые настройки пакета sphinx, Чтобы включить его автоматически, мы просто используем preamble вариант conf.py:

latex_elements = {
  # Additional stuff for the LaTeX preamble.
  'preamble': '\\usepackage{typo3}'
}

Лучше, чтобы ваши варианты стилей содержались в отдельном latex-styling.tex файл, который вы можете включить с помощью preamble ключ через f.read(), Таким образом, вам не нужно обновлять conf.py, Разделение обычно лучше.

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