【问题标题】:Table of contents sidebar in Sphinx LaTeX PDFSphinx LaTeX PDF 中的目录侧边栏
【发布时间】:2015-09-01 15:05:43
【问题描述】:

我正在从 Sphinx 生成 LaTeX 文档,并使用 pdflatex(来自 MikTeX)将其转换为 PDF。该文档在 PDF 查看器的边栏中缺少目录。

如果我手动将\usepackage{hyperref} 添加到 tex 文件中,它可以工作。但是我如何在 conf.py 项目文件中告诉 Sphinx 这样做呢?乳胶输出选项中没有(明显的)相关选项。

谢谢!

【问题讨论】:

  • Options for LaTeX output 显示latex_elements 选项。您可以在preamble 下指定一个值。
  • 谢谢,我认为序言是当目标是乳胶时有条件插入的第一个代码

标签: pdf latex python-sphinx hyperref


【解决方案1】:

2.5.3 自定义 Sphinx 文档的呈现部分提到:

LaTeX 序言

可以在生成的 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#options-for-latex-output 了解更多说明。

添加内容而不是将其插入单独的文件(例如,latex-styling.tex)的一种更直接的方法是逐字指定是否。文档中的下一小节针对特定包 typo3 提到了这一点:

TYPO3 模板

我们希望尽可能坚持默认渲染,以避免不得不更改从 Sphinx 生成的 LaTeX 代码。因此,我们选择包含一个自定义包typo3(文件typo3.sty),它将覆盖包sphinx 的一些设置。要自动包含它,我们只需使用conf.pypreamble 选项:

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

最好将样式选项包含在单独的 latex-styling.tex 文件中,您可以通过 f.read() 使用 preamble 键将其包含在内。这样您就不必更新conf.py。划分通常更好。

【讨论】:

  • 从 Sphinx 项目创建 LatexPdf 时,我发现生成的 html 文档 中的超链接在 pdf 文件中丢失。我在conf.py 序言中包含了hyperref。是否可以提供一些链接来了解这一点?
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2019-05-13
  • 1970-01-01
  • 1970-01-01
  • 2013-01-06
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多