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

标签 r fonts

我正在尝试使用 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 安装的。可能还有其他来源。

最佳答案

我认为另一张海报表明您没有在 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 - R 中的额外字体问题 - afm 错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21568818/

相关文章:

java - 如何从java中的系统字体获取ttf字体数据

r - 为什么 "<integer>"== <integer> 在 R 中为真

r - knitr 缓存 : update if data file changes but not other options (e. g., `fig.xyz` )

regex - 如何在 R 中使用正则表达式查找文本中最长的字符串

R ggplot2字体问题

emacs - 在 Emacs ansiterm 模式下更改字体颜色

R optimParallel - 找不到函数

r - 如何在 Shiny 中使用自己的一组小部件创建多个页面

php - TCPDF,带有 OpenType 字体的 "Could not include font definition file"

css - 我如何在 CSS 中使用自定义字体