如何创建一个PDF-out-of-Sphinx文档工具

时间:2016-09-16 15:05:39

标签: pdf python-sphinx

按照此链接尝试从Sphinx生成pdf:

https://www.quora.com/How-to-create-a-PDF-out-of-Sphinx-documentation-tool

$ sphinx-build -b pdf source build/pdf

Error: Cannot find source directory  `/Users/seb/mydocs/source'.


$ make all-pdf
make: *** No rule to make target `all-pdf'.  Stop.
$ make pdf
make: *** No rule to make target `pdf'.  Stop.

自OSX尝试以来:

$ conda install -c dfroger rst2pdf=0.93
Fetching package metadata .........
Solving package specifications: .
Error: Package missing in current osx-64 channels: 
  - rst2pdf 0.93*

您可以使用

在anaconda.org上搜索包
anaconda search -t conda rst2pdf

编辑:

pip install rst2pdf

之后
install rst2pdf
register rst2pdf in your conf.py Sphinx config
extensions = ['sphinx.ext.autodoc','rst2pdf.pdfbuilder']

但添加' rst2pdf.pdfbuilder'原因

Extension error:
Config value 'math_number_all' already present
make: *** [html] Error 1


$ sphinx-build -bpdf sourcedir outdir

但是我指定什么作为sourcedir和outdir?请举例。

编辑:

现在制作HTML

之后

然后:

 $ rst2pdf index.rst output.pdf
 index.rst:14: (ERROR/3) Unknown directive type "toctree".

 .. toctree::

 :maxdepth: 2

介绍    教程    multiple_jobs    部署    项目

index.rst:26: (ERROR/3) Unknown interpreted text role "ref".
index.rst:27: (ERROR/3) Unknown interpreted text role "ref".
index.rst:28: (ERROR/3) Unknown interpreted text role "ref".

此外:

$rst2pdf.py index.rst -o mydocument.pdf

是否会生成mydocument.pdf,但与html和toc完全不同,所有页面都不存在?

Image of pdf verse HTML same page

6 个答案:

答案 0 :(得分:5)

您可以避免使用rst2pdf并使用$ gcc 1.c -lcurses 通过latex文件构建pdf输出。

cf更多信息:

https://docs.typo3.org/typo3cms/extensions/sphinx/AdvancedUsersManual/RenderingPdf/

答案 1 :(得分:4)

我已按照配置更改in this link成功为DevStack文档生成PDF文件:

以下是步骤:

  1. 修改conf.py(编辑或追加值)

    extensions = ['rst2pdf.pdfbuilder']
    pdf_documents = [('index', u'rst2pdf', u'Sample rst2pdf doc', u'Your Name'),]
    
  2. 安装" rst2pdf"如有必要

    pip install rst2pdf
    
  3. 像这样构建PDF文件:

    sphinx-build -b pdf doc/source doc/build
    

答案 2 :(得分:1)

Found this related post发现 rst2pdf 会破坏 Sphinx 1.4.1 中的数学渲染,因为它会导入虚拟数学模块。

  

rst2pdf.pdfbuilder:setup()中,它在内部调用mathbase.setup()来安装虚拟数学模块。它会引发冲突并引发错误。

运行sphinx-build -b pdf

时出现同样的错误
  

扩展错误:
  配置值' math_number_all'已经存在

现在查看 latex 选项,并在发布@tfv时导出为pdf。 pdflatex is a larger universe of TeX distribution

答案 3 :(得分:1)

请务必查看http://rst2pdf.ralsina.me/handbook.html#sphinx

以下内容适用于Ubuntu 16。

但是,安装完整的LaTex套件可能比尝试运行此工具要容易得多。它对错误非常敏感,并且很难使用。

我在那儿看了一下(https://tex.stackexchange.com/a/95373),看起来很令人生畏...

这更令人鼓舞:https://milq.github.io/install-latex-ubuntu-debian/

我做到了:

sudo apt-get install texlive-full
make clean latexpdf

值得您耐心安装(和磁盘空间)。我摆脱了rst2pdf。

答案 4 :(得分:1)

这来自official Sphinx documentation。如果您的计算机中安装了pdfTex工具,则只需:

$ make latexpdf

然后,生成的pdf文件将位于_build/latex/<PROJECT-NAME>.pdf

因此,从头开始的完整过程如下:

$ pip install -U sphinx # install the package
$ sphinx-quickstart # create a new project (answer the questions)
$ make latexpdf # compile and generate pdf file

请注意,您还可以通过编辑文件config.py

来“可选地”安装所需的任何扩展名。

答案 5 :(得分:0)

通过Latex在Pdf生成中成功(对于Windows 10)...无需更改Sphinx中的现有conf.py文件...最好的解决方案是安装MiKTeX ....安装Perl(ActiveState)....在运行sphinx之后,键入'make HTML',然后键入'make latex',然后再进行latexPdf ...这解决了我的问题。