在Sphinx LaTeXBuilder构建PDF时忽略LaTeX嵌套过深错误(Read the Docs)
解决Read the Docs上Sphinx LaTeXBuilder列表嵌套过深导致构建失败的问题
方案1:从根源修复LaTeX列表嵌套限制(推荐)
LaTeX默认仅支持4层列表嵌套,超过就会触发"Too deeply nested"错误。可以在Sphinx的conf.py中配置LaTeX预导言,引入enumitem包扩展嵌套深度:
# conf.py 配置内容 latex_elements = { 'preamble': r''' \usepackage{enumitem} \setlistdepth{10} % 按需设置更大的嵌套深度,比如10层 ''', }
修改后LaTeX可支持更深的列表嵌套,latexmk编译时不会再抛出错误,自然返回成功码,Read the Docs的构建流程就能正常通过。
方案2:强制让latexmk返回成功码
如果不想调整LaTeX的嵌套配置,可以修改Sphinx的LaTeX编译命令,让shell强制返回成功码(即使latexmk本身报错)。在conf.py中添加如下配置:
# conf.py 配置内容 LATEX_COMPILER = 'latexmk -r latexmkrc -pdf -f -dvi- -ps- -jobname=myproject -interaction=nonstopmode || true'
这里的|| true会让整个命令的返回码变为0,Read the Docs会判定构建成功,从而接受已生成的PDF文件。
方案3:调整文档内容避免深层嵌套
如果文档中的深层嵌套列表不是必须的,可以手动将超过4层的列表转换为其他格式(比如用编号段落、层级标题替代深层列表),从内容层面避免触发LaTeX的嵌套限制。
内容的提问来源于stack exchange,提问作者agriyakhetarpal
相关产品推荐
相关产品推荐

