Как добавить исходный код в документ LaTeX, созданный с помощью sphinx - PullRequest
0 голосов
/ 22 февраля 2019

Я генерирую документы моей библиотеки Python с помощью Sphinx.Я использую расширение sphinx.ext.viewcode

extensions = [
    "sphinx.ext.autodoc",
    "sphinx.ext.doctest",
    "sphinx.ext.intersphinx",
    "sphinx.ext.ifconfig",
    "sphinx.ext.viewcode",  # Add links to highlighted source code
    "sphinx.ext.napoleon",  # to render Google format docstrings
]

Это создает ссылку на исходную документацию, аналогично:

class MyClass(param1, param2)[source]

, как на этом изображении:

screenshot

Если я нажму на источник, я правильно увижу исходный код на своей HTML-странице.

Я бы хотел сделать то же самое, когда генерирую LaTeXфайл.Я не могу найти в документации, как добавить исходный код, когда вы создаете PDF из LaTeX.Любой намек?

Ответы [ 2 ]

0 голосов
/ 04 марта 2019

Существует способ добавить код в python через пакет листингов .Этот пакет позволяет показывать код и даже полные файлы.

Для реализации этого в conf.py вы можете добавить:

latex_elements = {
    "papersize": "letterpaper",
    "pointsize": "10pt",
    "figure_align": "htbp",
    "preamble": r"""
        \usepackage{listings}
        \lstset{ 
            language=Python,                 % the language of the code
            title=\lstname                   % show the filename of files included with \lstinputlisting; also try caption instead of title
        }
    """,
}

есть дополнительные настройки, которые можно добавить к lstset.

Затем код можно добавить в файл .rst как:

.. raw:: latex

    \section{Code}
    \lstinputlisting{../../../path/to/my/file.py}
0 голосов
/ 23 февраля 2019

Согласно документации для sphinx.ext.viewcode:

Это расширение работает только на HTML-сборках, таких как html, applehelp, devhelp, htmlhelp, qthelp и т. Д., За исключением singlehtml.

...