在 Illustrator 中链接时,在 windows 下使用 ggsave 生成​​的 PDF 字体出现问题

Problems with PDF fonts generated with ggsave under windows when linking in Illustrator

我 运行 遇到了使用 ggsave 创建的 ggplots 的 PDF 中嵌入(或未嵌入?)字体的问题并 linked 到 illustrator 文件中,出于某种原因仅在 windows .

对于我的工作流程,我 link 将图表绘制到 illustrator 中,我在其中创建包含多个图表的图形。我没有嵌入绘图,因为如果 R 中发生某些变化,重新打开 Illustrator 时绘图会自动更新。 所以问题是,当尝试保存此类文件时,我总是收到一条错误消息,提示无法保存,因为无法嵌入字体“^1”。我可以在禁用 PDF 兼容性时保存 Illustrator 文件,但不能将它们保存为 PDF,这正是我需要的。

如果我使用 ggsave(plot, device=cairo_pdf),我不会遇到这个问题,但是使用 cairo_pdf 我 运行 会遇到其他问题(例如 geom_rangeframe)。 在以前的帖子中,我读到有关 dingbats 或 Adob​​ePiStd 字体的问题,但使用 ggsave(plot, useDingpats=F) 并不能解决它。有谁知道如何解决这个问题?

经过进一步研究,我可以用 embedFonts 函数解决问题。问题似乎是默认情况下未嵌入字体。我写了一个小函数来代替 ggsave 来自动将字体嵌入到同一个 PDF 文件中:

ggsave_embed<-function(fileN, ...){
ggsave(fileN, ...)
embedFonts(file=fileN, outfile = fileN)
}
# example usage:
ggsave_embed("myfile.pdf", myPlot)