我有一个相当复杂的项目,有相当大的文档。使用Sphinx通过make latexpdf
将普通用户指南转换为PDF效果非常好。但是,如果我还想将库引用包含在所有函数、类和模块文档中,则该命令将失败:
! LaTeX Error: Too deeply nested.
手动减少嵌套不是一种选择。Sphinx内部嵌套参数描述、功能描述、模块描述等等。因此,几乎不可能在每种情况下都弄清楚如何减少嵌套。
我通过在sphinx前导中添加一些latex语句来解决这个问题。因此,我在sphinxsource文件夹中创建了一个新的latex_preamble.tex
文件。它只包含以下两个命令:
usepackage{enumitem}
setlistdepth{99}
此外,在conf.py
文件中,也在我的源文件夹中,我更改了以下内容(您可以在conf.py
文件中查找latex_elements
变量,它通常被注释掉):
fh = open('latex_preamble.tex', 'r+')
PREAMBLE = fh.read()
fh.close()
latex_elements = {
# Additional stuff for the LaTeX preamble.
'preamble': PREAMBLE,
}
因此,现在sphinx使用允许任意嵌套的enumitem
包。我想现在enumitem
应该是任何乳胶分销的一部分。我不需要安装软件包。此外,这在阅读文档时也起到了开箱即用的作用。