Sphinx PDF主题

ara*_*hev 20 pdf themes python-sphinx

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

我用谷歌搜索了这个问题,但找不到答案,这让我相信答案是'不'.不过,我以为我会问这里.

谢谢.

Kev*_*orn 23

首先,Sphinx本身不会生成PDF输出,但有两种通用方法可以从Sphinx源文件到PDF输出:

  1. 使用Latex构建器,然后使用latex2pdf之类的单独工具生成PDF输出
  2. 使用rst2pdf项目中的Sphinx插件

话虽如此,使用任何一种方法都可以自定义PDF输出的样式.

  1. 使用latex-> pdf方法时,您可以使用sphinx配置文件中的许多选项自定义乳胶输出.看到这里.尽管(IMO),这种方法不如Sphinx用于HTML生成的HTML主题方便.
  2. 使用rst2pdf时,您可以定义自己的样式表,他在手册中有更详细的描述(在"样式"标题下查看).rst2pdf包含许多样式表,可以组合各种结果.当然,您也可以修改它们或创建自己的(它们只是JSON文件).这些样式表也支持一种继承,因此更像是Sphinx HTML主题,而不是以前的方法.


Tre*_*her 6

Sphinx 的 PDF 输出没有预定义主题。但 LaTex 提供了一组丰富的选项来设置文档样式。我的问题是找到使用 sphinx 设计文档样式的正确方法。这是对我有用的方法:

首先看一下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}
''',
}
Run Code Online (Sandbox Code Playgroud)

有几点需要了解。

  • 用于r"""避免与python冲突
  • 虽然这preamble是正确的添加点,但\usepackage您可能会与 Sphinx 默认设置发生冲突。看一下fontpkg例子。这是输出文档中的第一个包含内容.tex。如果您必须设置默认包的选项,请在此处进行。
  • maketitle让您定义自己的标题页。请参阅一些乳胶文档。我\pagenumbering在那里设置了带有阿拉伯数字的目录,因此真正的内容从第“1”页开始。

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

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