如何将源代码添加到使用Sphinx生成的LaTeX文档中

时间:2019-02-22 09:03:20

标签: python latex python-sphinx

我正在用Sphinx生成python库的文档。我使用扩展名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文件时,我想做完全一样的事情。当您从LaTeX创建pdf时,我在文档中找不到如何添加源代码。有提示吗?

2 个答案:

答案 0 :(得分:0)

根据sphinx.ext.viewcode的文档:

  

此扩展名仅适用于HTML相关的构建器,例如html,例如applehelpdevhelphtmlhelpqthelpsinglehtml

答案 1 :(得分:0)

有一种方法可以通过名为listings的软件包向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}