R - afm错误中的外部问题

时间:2014-02-05 04:45:20

标签: r fonts

我正在尝试使用extrafonts包。当我导入字体时,我收到很多警告。当我尝试使用pdf()命令中的字体时,我收到大量关于未知AFM实体的警告。我看过一些帖子建议从AFM文件中删除版权线,但这需要修复数百个文件。我确实编辑了几个文件,但问题还在继续。关于我可以使用的唯一字体是Windows上可用的核心字体,如Arial和Courier。当我尝试Palatino Linotype时,我收到大量警告(字体宽度未知......),pdf输出(图)没有字形。此字体适用于其他程序,如Word。在其他情况下(例如,富兰克林哥特式书)我得到某种默认字体,但至少出现字形。

我的pdf命令如下所示:

pdf("plot_out2.pdf", family= "Franklin Gothic Book", width=8.5, height=11)

这会产生以下警告:

Warning messages:
1: In pdf("plot_out2.pdf", family = "Franklin Gothic Book", width = 8.5,  :
  unknown AFM entity encountered
2: In pdf("plot_out2.pdf", family = "Franklin Gothic Book", width = 8.5,  :
  unknown AFM entity encountered
3: In pdf("plot_out2.pdf", family = "Franklin Gothic Book", width = 8.5,  :
  unknown AFM entity encountered
4: In pdf("plot_out2.pdf", family = "Franklin Gothic Book", width = 8.5,  :
  unknown AFM entity encountered

我是否需要重新安装字体?如果是这样,我是否需要先删除一些内容? 是否有用于修复所有afm.gz文件的实用程序? 我是否需要嵌入字体,即使我在生成pdf的同一台计算机上阅读它们?

环境:
Windows 7,64位。 RStudio,R 2.15。 我的一些字体由CorelDraw安装,其他字体由ArcMap安装。可能还有其他来源。

1 个答案:

答案 0 :(得分:1)

我认为另一张海报暗示您没有正确地在pdf设备上注册您的字体,或者您使用了错误的字体名称。导入字体时,应使用extrafont包处理这些内容。通过查看names(pdfFonts)的输出,您可以查看可用和正确映射的字体。您在那里看到的任何名称都应该可以在您的pdf文档中使用(使用相同的拼写和大小写)。

但是,这似乎不是您的问题,因为我可以重现您的体验。例如

> library(extrafont)
Registering fonts with R
> "Tahoma" %in% names(pdfFonts())
[1] TRUE
> pdf("testfile.pdf",family="Tahoma")
Warning messages:
1: In pdf("testfile.pdf", family = "Tahoma") :
  unknown AFM entity encountered
2: In pdf("testfile.pdf", family = "Tahoma") :
  unknown AFM entity encountered
3: In pdf("testfile.pdf", family = "Tahoma") :
  unknown AFM entity encountered
4: In pdf("testfile.pdf", family = "Tahoma") :
  unknown AFM entity encountered
> plot(rnorm(100),rnorm(100))
> dev.off()
> embed_fonts("testfile.pdf")

在这种情况下,尽管我可以在我的pdf输出中验证警告,但字体确实已嵌入。

我建议与软件包开发人员讨论这个问题。它看起来像一个bug。

编辑:我看了一下代码,Rttf2pt1正在为R&#39的postscript实用程序不接受的AFM文件添加一个关键字。我向开发者提交了一个解决方案,所以希望这个特别的警告在未来不会成为问题。你遇到的其他问题(缺少字形)可能是一个更难解决的问题。