【问题标题】:How to avoid the "too deeply nested" error when creating PDFs with Sphinx?使用 Sphinx 创建 PDF 时如何避免“嵌套太深”的错误?
【发布时间】:2015-04-11 19:35:15
【问题描述】:

我有一个相当复杂的项目,其中包含相当大的文档。 通过make latexpdf 使用Sphinx 将普通用户指南 转换为PDF 效果很好。但是,如果我还想在所有函数、类和模块文档中包含库引用,则命令失败并显示:

! LaTeX Error: Too deeply nested.

手动减少嵌套不是一种选择。 Sphinx 内部嵌套了参数描述、函数描述、模块描述等等。因此,在每种情况下找出如何减少嵌套几乎是不可能的。

【问题讨论】:

  • ` latex_elements = { 'maxlistdepth' : '20',` 适合我。

标签: python latex pdf-generation python-sphinx


【解决方案1】:

我通过在 sphinx 序言中添加一些乳胶语句解决了这个问题。 因此,我在我的 sphinx source 文件夹中创建了一个新的 latex_preamble.tex 文件。它只包含以下两个命令:

\usepackage{enumitem}
\setlistdepth{99}

此外,在我的 source 文件夹中的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 应该是任何乳胶发行版的一部分。我不需要安装软件包。此外,这在 read the docs 上也可以开箱即用。

【讨论】:

  • 我发现直接在conf.py文件中输入命令就可以达到同样的效果,因此:'preamble': r'\usepackage{enumitem}\setlistdepth{99}'
猜你喜欢
  • 2015-08-03
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-12-01
  • 2011-06-21
  • 1970-01-01
  • 2023-04-10
相关资源
最近更新 更多