【问题标题】:ggplot2 pdf import in Adobe Illustrator missing font AdobePiStdAdobe Illustrator中的ggplot2 pdf导入缺少字体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 字体目录,现在我可以毫无怨言地加载绘图了!

标签: r ggplot2 adobe-illustrator


【解决方案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。可能会有一些微小的偏移,但这可能可以忽略不计,具体取决于您的轴刻度。
        猜你喜欢
        • 2013-12-28
        • 2020-04-12
        • 2012-10-27
        • 1970-01-01
        • 1970-01-01
        • 2015-09-26
        • 2015-11-07
        • 2012-10-13
        相关资源
        最近更新 更多