我正在尝试使用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安装。可能还有其他来源。
答案 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文件添加一个关键字。我向开发者提交了一个解决方案,所以希望这个特别的警告在未来不会成为问题。你遇到的其他问题(缺少字形)可能是一个更难解决的问题。