1

我正在编写一个大型乳胶文档,其中包含 R 的 tikzDevice 包生成的大量图。目前,我遇到 LaTeX 错误“超出 TeX 容量”。

我已经通过遵循 Leo Liu 的答案here(我也尝试过来自同一来源的接受的答案)暂时解决了这个问题,但正如我所说,这个解决方案是暂时的,因为最终,我会添加很多在我的文档中添加更多图,每个图至少 1 兆。有人说 LuaTex 动态分配内存,所以 LuaTex 从来都不是问题(同一来源);但是,我有一个很大的文档并且可用的时间有限,因此转换为 LuaTex 不是一种选择(除非有自动转换软件)。

在我的搜索过程中,我偶然发现这篇文章谈到了同样的问题,但使用的是 matlab 的 matlab2tikz 包。解决方案是减少图中的样本数量,从而减小结果文件的大小。我查找了 R 的 tikzDevice 文档(此处此处)以获取类似的选项,但不幸的是找不到。

所以问题是:如何控制 tikzDevice 生成的图(tikzpictures)的大小?

4

1 回答 1

0

一种解决方法是导出由tikzDevicewith option生成的文件standAlone = TRUE。编译生成的文件lualatex以避免错误消息“TeX 容量超出”。这可以直接从 R 完成,例如

tikz(figure.tex, standAlone = TRUE)
...
dev.off()
system("lualatex figure.tex; rm *.aux; rm *.log")

然后,将文件包含在 LaTeX 中作为图形使用\includegraphics.

要减小生成的 pdf 的大小,您可能希望将图像转换为有损压缩格式,例如 JPEG。转换为 postscript 并返回也可以创建更小的文件,尽管以损失分辨率为代价。

于 2017-10-03T16:34:40.730 回答