TeX 容量超出,抱歉 [主内存大小=5000000] 与 matlab2tikz 和 reduce_plot

TeX 容量超出,抱歉 [主内存大小=5000000] 与 matlab2tikz 和 reduce_plot

又一个 Tex 容量超出错误。

我正在生成一个 matlab 散点图,未经修改就生成了一个 64.5 MB 的打印 eps 文件。在 matlab2tikz 中直接使用该图会生成一个很大的 tikz 文件 (34.5 MB),这会导致 Tex 容量错误。

我已经研究并找到了许多可能的解决方案:

  1. 将 tikz 图形外部化。

    • 描述于外部化-tikz这确保每个 tikz 图形都有自己的 tex 作业。我应用了这个,但它仍然给我容量错误
    • Lualatex 代替 pdflatex,它不会因动态内存分配而产生 tex 容量错误。
    • 增加 tex 的主内存增加 TeX 的主内存

我认为最后两种解决方案不是最好的,因为它们会产生很大的 pdf。要绘制的图表不应该需要那么多内存。此外,luatex 不适用于我大学提供的 tex 样式。

  1. 减少 matlab 中的 tikz 大小

    • 绘图绘图不适用于标准颜色、线宽和其他图形控件。
    • 减少图减少图LinePlotReducer 的包装器 -> 管理标准 MATLAB 图中的信息,以便仅显示必要数量的数据点。例如,如果图中轴的宽度只有 500 像素,则没有理由在宽度上有超过 1000 个数据点。此工具选择要显示的数据点,以便对于每个像素,映射到该像素的所有数据都被压缩为两个点,一个最小值和一个最大值。由于所有数据都在最小值和最大值之间,因此用户将不会看到缩小图与完整图之间的任何差异。

    • cleanfigure('最小点距离',X)清洁图从 MATLAB 图中删除不必要的对象

在最后三种方法中,我使用了 clean_figure,通过调整其值 XI 可以大幅减少导出的 tikz 文件的大小。但是,即使 tikz 文件大小为 500kB,也会出现 tex 容量错误。如果我使用非常大的 minimumPointsDistance 并将图形缩小到 30kB,它不会出现错误,但我的图形也会有很大不同。

Reduceplot 也运行良好,将 tikz 文件缩小到 700 kB。但再次出现 tex 容量错误。

因此,我的问题是,如何避免此容量错误,同时仍确保良好的质量数据。 500kb 或 700kb 的 tikz 文件不应该在外部编译吗?或者这些大小仍然很大?

另外,我想知道内存大小=5000000 到底是什么意思。那是 5M 字节吗?这是否意味着我应该能够编译 5M 字节 = 4.76 Mb 的 tikz 文件?

相关内容