R 中的额外字体问题 - afm 错误

Posted

技术标签:

【中文标题】R 中的额外字体问题 - afm 错误【英文标题】:Problems with extrafonts in R - afm errors 【发布时间】:2014-02-05 04:45:20 【问题描述】:

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

我的 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】:

我认为另一张海报暗示您没有在 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 输出中验证。

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

编辑:我查看了代码,Rttf2pt1 向 AFM 文件添加了 R 的 postscript 实用程序不接受的关键字。我向开发人员提交了一个解决方案,因此希望这个特定的警告将来不会成为问题。您遇到的其他问题(缺少字形)可能更难解决。

【讨论】:

以上是关于R 中的额外字体问题 - afm 错误的主要内容,如果未能解决你的问题,请参考以下文章

R 的 plot() 中的默认字体是啥?

如何在 R 中增加绘图中的字体大小?

如何在 R 中增加绘图中的字体大小?

更改 R DataTables (DT) 中的字体大小

R语言可视化绘制及PDF使用字体参数列表:查看字体列表可视化绘制图像中的字体参数列表字体示例并写入pdf

Swift 2中的“调用中的额外参数'错误'”错误[重复]