我正在编写一个大型乳胶文档,其中包含由R&n tikzDevice软件包生成的大量图表。目前,我遇到了LaTeX错误" TeX容量超过"。
我已经设法通过遵循刘若英回答here的补救措施暂时解决了这个问题(我也尝试过来自同一来源的答案),但是这个正如我所说,解决方案是暂时的,因为最终,我将在我的文档中添加更多的图表,每个图块至少1兆。有人说LuaTex会动态分配内存,所以它从来不是LuaTex的问题(同源);但是,我有一个大文档和有限的时间可用,因此转换为LuaTex不是一个选项(除非有自动转换软件)。
在我搜索过程中,我发现this post偶然发现了同样的问题,但是使用了matlab的matlab2tikz软件包。解决方案是减少绘图中的样本数量,从而减小结果文件的大小。我查找了R&t的tikzDevice文档(here和here)以获得类似的选项,但遗憾的是无法找到。
所以问题是:如何控制tikzDevice生成的图块(tikzpictures)的大小?
答案 0 :(得分:0)
一种解决方法是使用选项tikzDevice
导出standAlone = TRUE
生成的文件。使用lualatex
编译生成的文件,以避免出现错误消息"超出TeX容量"。这可以直接从R完成,使用例如
tikz(figure.tex, standAlone = TRUE)
...
dev.off()
system("lualatex figure.tex; rm *.aux; rm *.log")
然后,使用\includegraphics
将文件作为图形包含在LaTeX中。
要缩小生成的pdf的大小,您可能希望将图像转换为有损压缩格式,例如JPEG。转换为postscript和back还可以创建更小的文件,尽管代价是丢失了分辨率。