sphinx and latex

sphinx是强大的文档工具,可以生成各种格式的文档。如果直接生成pdf,就需要用到latex。

安装latex

1
sudo apt-get install texlive-full

配置Sphinx

以Sphinx-1.3b1为例,我们需要修改一下latex生成的模板,以支持中文的pdf生成,修改sphinx/writers/latex.py如下:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
HEADER = r'''%% Generated by Sphinx.
\def\sphinxdocclass{%(docclass)s}
\documentclass[%(papersize)s,%(pointsize)s%(classoptions)s]{%(wrapperclass)s}
%(inputenc)s
%(utf8extra)s
%(cmappkg)s
%(fontenc)s
%(babel)s
%(fontpkg)s
%(fncychap)s
%(longtable)s
\usepackage{sphinx}
\usepackage{multirow}
\usepackage{hyperref}
\hypersetup{unicode}
\usepackage{CJKutf8}
\usepackage{indentfirst}
%(usepackages)s
%(preamble)s
\title{%(title)s}
\date{%(date)s}
\release{%(release)s}
\author{%(author)s}
\newcommand{\sphinxlogo}{%(logo)s}
\renewcommand{\releasename}{%(releasename)s}
%(makeindex)s
'''
BEGIN_DOC = r'''
\begin{document}
\begin{CJK*}{UTF8}{gbsn}
\CJKindent
%(shorthandoff)s
%(maketitle)s
%(tableofcontents)s
'''
FOOTER = r'''
\renewcommand{\indexname}{%(indexname)s}
%(printindex)s
\clearpage
\end{CJK*}
\end{document}
'''

主要增加了CJKutf8宏包的相关配置。 这样就可以支持带中文的sphinx文档编译了。