内存不足,无法存储大文件

内存不足,无法存储大文件

我有一份大型 LaTeX 文档(约 1000 页,使用了数十个软件包、数学、数百个参考文献 \bibitem + \cite、交叉引用 \label + \ref、索引 \index、表格和 TikZ 图表)。该文档由数百个 LaTeX 文件构建而成(使用独立文件和 \input)。TikZ 图表也位于带有 \tikzexternalenable 的单独文件中(只要可能),其中一些图表有超过 1000 行。当使用 PdfLaTeX 编译时,TikZ 图表不会被重新编译(相应的文件 *.dpth、*.log、*.md5 和 *.pdf 与旧日期保持不变)。

该文档达到了一些限制,因为在添加新的 TikZ 图形后,编译 PdfLaTeX 在第二次运行后完成并出现错误:

  • PdfLaTeX 第一次处理结束,显示“进程正常退出”

  • PdfLaTeX 的第二次处理以错误“TeX 容量超出,抱歉 [主内存大小=123000000]”结束——每次都出现在一些 TikZ 文件中(该文件未重新编译,所以我不明白为什么问题出在里面)

在LOG文件中错误发生的位置描述如下(例如):


!TeX 容量超出,抱歉 [主内存大小=123000000]。...755) (1.6,0.149253036) (1.64,0. 14630663108) (1.68,0.14334... l.1661 \end{tikzpicture}


LOG 文件中的摘要(问题出在“记忆单词”记录中):

以下是您使用的 TeX 内存量:

  • 493340 个字符串中有 65319 个
  • 3139331 个字符串字符中有 1540999 个
  • 内存中有 123000001 个字,共 123000000 个字
  • 15000+200000 个多字母控制序列中有 60823 个
  • 190 种字体的字体信息有 63320 个字,共 3000000 个字,其中 9000 个
  • 8191 项连字例外中有 1166 项
  • 114i、44n、128p、25560b、8155s 堆栈位置,位于 5000i、500n、10000p、200000b、50000s 之外
  • !==> 发生致命错误,未生成输出 PDF 文件!

没有语法错误,因为当我删除一些 TikZ 图形时,编译就成功了(我尝试删除各种图形,而不是删除某个图形)。

有人能帮我找到处理这么大文档的方法吗?

环境:

  • Windows 10
  • TexStudio 2.12.6
  • MiKTeX 2.9
  • PdfLaTeX 命令:pdflatex -synctex=1 -interaction=nonstopmode --shell-escape --enable-write18 --extra-mem-bot=120000000 ?me

未附加最小工作示例,因为仅最大工作示例才会出现问题......

添加于 2018.1.23:该问题被标记为与现有问题完全重复 - 我的问题是在 pdflatex 中使用 TikZ 外部化编译大文档时,如果所有(对我而言)已知内存设置都为最大值 - 而不是“如何扩展 TeX 的“主内存大小”?”

就我而言:

  • externalize:它被使用 = 没有成功(而且我仍然不明白为什么 PDFLaTeX 处理那些消耗大量内存的 TikZ 文件,而它却不为图形创建任何新的 PDF 外部文件...)
  • 更改“extra_mem_bot”:它被设置为最大值(在我的电脑上是可能的)130000000 = 没有成功
  • 添加“extra_mem_top”:我尝试使用值 10000000 = 没有成功
  • 在 texmf.cnf 中添加一些设置:它在 TeXLive 中,而不是在 TexStudio 中 = 因此无法成功添加“save_size”或“main_memory”
  • 在 pdftex.ini 中添加一些设置:这种解决方法非常可疑,我没有足够的勇气去尝试它(特别是在警告“请勿直接编辑此文件”之后)
  • 使用 luatex:也许,我会尝试,但它运行的距离更长,
    • 我已将所有文件从 Win1250 转换为 UTF8
    • 我已经更改了几个包(用于 Unicode)
    • 我仍然无法编译原始文档(例如 luaLaTeX 在出现 100 个错误后停止编译 = 在我的情况下,这些错误是通常在第二次/第三次运行中定义的未定义的引用)

相关内容