Adobe Illustrator中的ggplot2 pdf导入缺少字体AdobePiStd
Posted
技术标签:
【中文标题】Adobe Illustrator中的ggplot2 pdf导入缺少字体AdobePiStd【英文标题】:ggplot2 pdf import in Adobe Illustrator missing font AdobePiStd 【发布时间】:2012-04-17 01:10:10 【问题描述】:我创建了几个简单的 ggplot2 图并使用以下命令将它们保存到 PDF 文件中:
p <- ggplot(plotobject, aes(x=Pos, y=Pval),res=300)
ggsave(plot=p,height=6,width=6,dpi=200, filename="~/example.pdf")
如果我现在在 Adobe Illustrator 中打开这个 example.pdf,我会收到以下错误:
字体 AdobePiStd 丢失。受影响的文本将使用 替代字体。
在 ggplot2 中有没有办法指定 Adobe 可以理解的字体(我认为这是用于点/点),或者有没有办法让这种字体在 Adobe 中工作?
/edit 只是为了澄清一下,文本/标签/标题都很好,它的字体缺少的点 /edit2 我通过在 ggsave 中使用 EPS 输出得到了一个可行的解决方案,但仍然很想找到一种方法,可以直接在 AI 中打开/导入 PDF 格式的 ggplot2 图
【问题讨论】:
我也有同样的问题。通过在文本编辑器中打开 ggplot pdf 文件,我可以看到 ggplot2 指定 Zapf Dingbats 作为符号字体。那么,为什么 AI 会尝试使用 AdobePiStd(缺失)而不是 Zapf Dingbats(存在)?我不知道,但我怀疑更改 ggplot2 指定的字体不会解决问题。我通过将字体文件/Library/Application Support/Adobe/PDFL/8.0/Fonts/AdobePiStd.otf
从我的mac复制到我同事的Win7机器来解决这个问题(拖到字体控制面板上安装)。
@bdemarest 所以如果我这样做,我实际上可以直接打开 PDF 而不会有任何投诉?
是的。 pdf 中的绘图符号现在可以正确显示,无需进一步操作。 @Jim M. 的解决方案更通用(但必须为每个文件完成)。
@bdemarest:这实际上是解决这个问题的最好和最方便的方法,非常感谢!我在 C:\Program Files (x86)\Adobe\Acrobat 10.0\Resource\Font
的机器上找到了该字体,因为我购买了包含 Acrobat X Pro 的 Adobe Creative Suite 学生版。我刚刚将字体复制到 windows 字体目录,现在我可以毫无怨言地加载绘图了!
【参考方案1】:
我可以通过添加 alpha 规范来解决问题。如果您不需要任何透明度,您可以选择 0.9 的 alpha 值 ...
示例:
ggplot() + geom_point(aes(x=..,y=.., color=...), alpha=0.8)
【讨论】:
【参考方案2】:EDIT 2018 下面的问题是针对最初的混乱面孔。这个问题的答案是pdf(useDingbats = FALSE)
,正如上面许多答案中所述。我不会删除这个答案,以防你想了解字体(这也可能成为一个问题)。
旧答案 AI 无法识别 Helvetica 字体。在我的电脑中,这并不重要,因为它会自动用合适的字体替换字体。当然,在某些情况下您会想要更改字体。我经常在 AI 中手动完成(只需选择所有文本并更改字体类型)。这是一个关于如何在 ggplot2 中更改字体的线程:Modifying fonts in ggplot2
附言。还有另一个线程可能会有所帮助:Fonts in R plots
【讨论】:
感谢您的建议,更新了问题。标签和标题的文本不是问题,而是数据点本身缺少字体。【参考方案3】:我在 Mac OS X 10.8.2 上也遇到了这个问题。
这为我解决了问题:
font='/Library/Application Support/Adobe/PDFL/10.9/Fonts/AdobePiStd.otf'
cp $font /Library/Fonts/
在您的系统上,找到带有find
的文件:
find / -name AdobePiStd.otf 2>/dev/null
/Applications/Adobe Photoshop CC 2018/Adobe Photoshop CC 2018.app/Contents/Required/PDFL/Resource/Fonts/AdobePiStd.otf
/Applications/Adobe Illustrator CC 2018/Adobe Illustrator.app/Contents/Required/PDFL Resource/Resource/Fonts/AdobePiStd.otf
/Applications/Adobe Acrobat DC/Adobe Acrobat.app/Contents/Resources/Resource/Font/AdobePiStd.otf
【讨论】:
在这个问题的 5 个(当前)答案中,这是我能够成功实施的唯一一个。 刚刚对此进行了测试并且工作完美。尽管其他答案有效,但这显然是最好的答案。 在 Windows 7 上找到 C:\Program Files (x86)\Adobe\Reader 10.0\Resource\Font\ 中的 otf 文件并使用右键单击 > 安装。 (阅读器的版本当然可能会有所不同...)【参考方案4】:在简单情况下可能解决问题的另一个选项是在 illustrator 中选择未正确显示的文本对象并更改字体。 Helvetica Neue 适合我。
【讨论】:
【参考方案5】:使用useDingbats=FALSE
输出pdf,Illustrator 不会抱怨。
pdf("example.pdf", useDingbats=FALSE)
ggplot(plotobject, aes(x=Pos, y=Pval),res=300)
dev.off()
【讨论】:
我认为这是最明智的建议,因为这将确保相同的 R 脚本在不同的机器上工作(无论是否存在正确路径中的 PiStd)。【参考方案6】:虽然更改 AI 使用的字体效果很好,但另一种方法是首先通过在 ggsave 命令中添加参数“useDingbats”来限制 ggplot2 使用 Dingbats,例如:
ggsave(plot=p,height=6,width=6,dpi=200, filename="~/example.pdf", useDingbats=FALSE)
【讨论】:
这太棒了!非常感谢,我一直在寻找这个多年。 因为第二个最受好评的答案可能表明这在现代 Mac 上不起作用,我评论说使用useDingbats=FALSE
对我使用 Mac OS X 10.13.5 和 Adobe Illustrator 22.0 有效.0.
useDingbats=FALSE
也适用于 AI 将您的 geom_point
点显示为正方形。
想补充一点,这也适用于映射包tmap
中的tmap_save()
我的生活因此而显着改善【参考方案7】:
您可以下载字体 AdobePiStd - 只需 Google 一下,下载并安装。重新启动后,字体应正确显示。然后,您可以根据需要使用 Illustrator 中的“查找字体...”实用程序进行更改。
【讨论】:
【参考方案8】:这似乎是一个反常的问题,Adobe Illustrator 找不到随 Adobe Reader 分发的字体 (AdobePiStd),因此很可能存在。
如果您搜索您的计算机,您很可能会找到它。在我的 WindowsXP 系统上,它位于: C:\Program Files\Adobe\Reader 10.0\Resource\Font
找到它后,您可以在该文件夹中安装它和其他字体,这应该使 Illustrator 能够找到它们。
对于 R 中的其他字体/pdf 问题,grDevices 包中的embedFonts 函数很有用。
【讨论】:
除了 embedFonts 之外,现在还有一个额外的字体包,可以更轻松地在 ggplot 中嵌入字体【参考方案9】:对于在 pdf 中无法正确显示的点或点,我只需用 Zapf Dingbats 替换 Adobe Illustrator 中缺少的字体。对于简单的绘图标记,这在大多数情况下都可以完成。
【讨论】:
我还是个 AI 新手,我该怎么做呢? AI 只是在我导入 PDF 时引发此错误,然后用正方形自动替换它们。执行此操作后,数据点是否仍位于完全相同的位置?我在 R 邮件列表的某个地方(找不到线程 123)读到人们抱怨这使他们的数据点略微移动位置,这让我不太满意。 @Sander 在 AI 中(我在 Mac 上使用 CS4),在 Type 菜单下,应该有一个 Find Font 菜单项。在对话框中,突出显示上方框中的 AdobePiStd,并在下拉“系统”中的替换字体以显示可用字体后选择下方框中的 Zapf Dingbats。可能会有一些微小的偏移,但这可能可以忽略不计,具体取决于您的轴刻度。以上是关于Adobe Illustrator中的ggplot2 pdf导入缺少字体AdobePiStd的主要内容,如果未能解决你的问题,请参考以下文章
使用Adobe Illustrator + ArcGIS绘制地图 | Map Design Using ArcGIS + Adobe Illustrator
Inkscape和Adobe Illustrator哪个好?
javascript Adobe Illustrator icns导出