Как создать инструмент для документации PDF-out-of-Sphinx

Следуйте этой ссылке, чтобы попытаться сгенерировать PDF из Sphinx:

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

EDIT:

После установки 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? Например, пожалуйста.

EDIT:

Теперь после make 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 на всех страницах, даже там?

Изображение pdf-страницы HTML на той же странице

Ответ 1

Мне удалось создать файл PDF для документа DevStack, следуя изменениям конфигурации по этой ссылке:

Вот шаги:

  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
    

Ответ 3

Успешно в Pdf Generation через Latex (для Windows 10)... Нет необходимости изменять существующий файл conf.py в Sphinx... Лучшее решение - установить MiKTeX.... установить Perl (ActiveState).... после при запуске sphinx type 'make HTML' type 'make latex' и затем make latexPdf... это решило мою проблему.

Ответ 4

нашел этот связанный пост, который обнаруживает, что rst2pdf разбивает математический рендеринг в Sphinx 1.4.1, потому что он импортирует фиктивный математический модуль.

В rst2pdf.pdfbuilder:setup() он вызывает mathbase.setup() внутренне, чтобы установить фиктивный математический модуль. Это вызывает конфликты и вызывает ошибки.

У меня была такая же ошибка при запуске sphinx-build -b pdf

Ошибка расширения:
Значение конфигурации 'math_number_all' уже присутствует

Теперь посмотрим опцию латекса и экспортируем в pdf как отправленный @tfv. pdflatex - это более обширная вселенная распространения TeX.

Ответ 5

Обязательно загляните на 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.

Ответ 6

Это из официальной документации Сфинкса. Если на вашем pdfTex установлен инструмент 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