2012-03-16 27 views
17

Sphinx文档工具是否提供不同的PDF主题,如提供不同的HTML主题?Sphinx PDF主题

我搜索了这个问题,但找不到答案,这导致我相信答案是'不'。不过,我想我会在这里问。

谢谢。

回答

20

首先,狮身人面像不会产生本身PDF输出,但一般有两种方式可从狮身人面像的源文件为PDF格式输出:

  1. 使用乳胶制造商,然后像latex2pdf一个单独的工具生成PDF输出
  2. 使用来自rst2pdf project

狮身人面像插件话虽这么说,有很多潜在的使用这两种方法自定义PDF输出的造型。

  1. 当使用latex-> pdf方法时,您可以使用sphinx配置文件中的许多选项来自定义乳胶输出。见here。虽然(IMO),但这种方法不如Sphinx用于HTML生成的HTML主题方便。
  2. 使用rst2pdf时,您可以定义自己的样式表,他在manual(请参见“样式”标题下)中详细介绍了他的样式表。 rst2pdf包含许多样式表,可以组合各种结果。当然,您也可以修改它们或创建自己的(它们只是JSON文件)。这些样式表也支持一种继承,因此比以前的方法更像Sphinx HTML主题。
2

斯芬克斯的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"""避免与蟒蛇
  • 虽然preamble冲突是添加\usepackage你可以有狮身人面像的默认设置冲突的正确点。在示例中查看fontpkg。它是.tex输出文件中的第一个。如果您必须为默认包设置选项,请在此处执行。
  • maketitle让你定义你自己的标题页。看一些乳胶文件。我在那里设置了\pagenumbering以使内容列表具有阿拉伯数字,所以真正的内容从页面“1”开始。

有了Latex命令的正确知识,您可以通过几条命令获得良好的主题。一个很好的来源寻找帮助是https://tex.stackexchange.com/其中最常见的问题有一个解决方案。但是找到合适的Latex命令要比为HTML选择主题困难得多。

查看./_build下的Tex-Output可能会有所帮助。在那里您可以看到,文档中包含latex_elements-选项。