Sphinx LaTeX PDF中的目录侧栏

时间:2015-09-01 15:05:43

标签: pdf latex python-sphinx hyperref

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

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

谢谢!

1 个答案:

答案 0 :(得分:2)

部分 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的某些设置。要自动加入,我们只需使用preamble的{​​{1}}选项:

conf.py

最好将样式选项包含在单独的latex_elements = { # Additional stuff for the LaTeX preamble. 'preamble': '\\usepackage{typo3}' } 文件中,您可以通过latex-styling.tex使用preamble键添加该文件。这样您就不必更新f.read()。区室化通常更好。