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")

如果我现在在 Adob​​e Illustrator 中打开这个 example.pdf,我会收到以下错误:

字体 Adob​​ePiStd 丢失。受影响的文本将使用 替代字体。

在 ggplot2 中有没有办法指定 Adob​​e 可以理解的字体(我认为这是用于点/点),或者有没有办法让这种字体在 Adob​​e 中工作?

/edit 只是为了澄清一下,文本/标签/标题都很好,它的字体缺少的点 /edit2 我通过在 ggsave 中使用 EPS 输出得到了一个可行的解决方案,但仍然很想找到一种方法,可以直接在 AI 中打开/导入 PDF 格式的 ggplot2 图

【问题讨论】:

我也有同样的问题。通过在文本编辑器中打开 ggplot pdf 文件,我可以看到 ggplot2 指定 Zapf Dingbats 作为符号字体。那么,为什么 AI 会尝试使用 Adob​​ePiStd(缺失)而不是 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 的 Adob​​e 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 和 Adob​​e Illustrator 22.0 有效.0. useDingbats=FALSE 也适用于 AI 将您的 geom_point 点显示为正方形。 想补充一点,这也适用于映射包tmap中的tmap_save() 我的生活因此而显着改善【参考方案7】:

您可以下载字体 Adob​​ePiStd - 只需 Google 一下,下载并安装。重新启动后,字体应正确显示。然后,您可以根据需要使用 Illustrator 中的“查找字体...”实用程序进行更改。

【讨论】:

【参考方案8】:

这似乎是一个反常的问题,Adobe Illustrator 找不到随 Adob​​e Reader 分发的字体 (AdobePiStd),因此很可能存在。

如果您搜索您的计算机,您很可能会找到它。在我的 WindowsXP 系统上,它位于: C:\Program Files\Adobe\Reader 10.0\Resource\Font

找到它后,您可以在该文件夹中安装它和其他字体,这应该使 Illustrator 能够找到它们。

对于 R 中的其他字体/pdf 问题,grDevices 包中的embedFonts 函数很有用。

【讨论】:

除了 embedFonts 之外,现在还有一个额外的字体包,可以更轻松地在 ggplot 中嵌入字体【参考方案9】:

对于在 pdf 中无法正确显示的点或点,我只需用 Zapf Dingbats 替换 Adob​​e Illustrator 中缺少的字体。对于简单的绘图标记,这在大多数情况下都可以完成。

【讨论】:

我还是个 AI 新手,我该怎么做呢? AI 只是在我导入 PDF 时引发此错误,然后用正方形自动替换它们。执行此操作后,数据点是否仍位于完全相同的位置?我在 R 邮件列表的某个地方(找不到线程 123)读到人们抱怨这使他们的数据点略微移动位置,这让我不太满意。 @Sander 在 AI 中(我在 Mac 上使用 CS4),在 Type 菜单下,应该有一个 Find Font 菜单项。在对话框中,突出显示上方框中的 Adob​​ePiStd,并在下拉“系统”中的替换字体以显示可用字体后选择下方框中的 Zapf Dingbats。可能会有一些微小的偏移,但这可能可以忽略不计,具体取决于您的轴刻度。

以上是关于Adobe Illustrator中的ggplot2 pdf导入缺少字体AdobePiStd的主要内容,如果未能解决你的问题,请参考以下文章

使用Adobe Illustrator + ArcGIS绘制地图 | Map Design Using ArcGIS + Adobe Illustrator

Adobe Illustrator CS试题库带答案

Inkscape和Adobe Illustrator哪个好?

javascript Adobe Illustrator icns导出

Adobe-illustrator11.0打开文件问题(解决后给高分)

请问adobe的Illustrator 有出安卓版的可以用吗