【问题标题】:How can I resolve the "No Font Name" issue when importing fonts into R using extrafont?使用 extrafont 将字体导入 R 时,如何解决“无字体名称”问题?
【发布时间】:2021-12-21 13:06:03
【问题描述】:

我的 Windows 桌面 (C:\Users\me\Desktop\Fonts) 上有一个文件夹,其中包含我想使用 extrafont 导入 R 的字体。

当我尝试使用导入字体时

library(extrafont)
font_import(paths = "C:/Users/me/Desktop/Fonts", prompt=FALSE)

我收到错误消息

Scanning ttf files in C:/Users/me/Desktop/Fonts ...
Extracting .afm files from .ttf files...
C:\Users\me\Desktop\Fonts\arista-light.ttf : No FontName. Skipping.
C:\Users\me\Desktop\Fonts\facebook-letter-faces.ttf : No FontName. Skipping.
C:\Users\me\Desktop\Fonts\Guardian-EgypTT-Text-Regular.ttf : No FontName. Skipping.
C:\Users\me\Desktop\Fonts\pico-black.ttf : No FontName. Skipping.
C:\Users\me\Desktop\Fonts\product-sans.ttf : No FontName. Skipping.
Found FontName for 0 fonts.
Scanning afm files in C:/Users/me/Documents/R/R-3.6.3/library/extrafontdb/metrics
Warning messages:
1: In system2(ttf2pt1, c(args, shQuote(ttfiles[i]), shQuote(tmpfiles[i])),  :
  running command '"C:/Users/me/Documents/R/R-3.6.3/library/Rttf2pt1/exec/ttf2pt1.exe" -a -G fAe "C:\Users\me\Desktop\Fonts\arista-light.ttf" "C:\Users\me\AppData\Local\Temp\RtmpOgbdTh/fonts/arista-light"' had status 1
2: In system2(ttf2pt1, c(args, shQuote(ttfiles[i]), shQuote(tmpfiles[i])),  :
  running command '"C:/Users/me/Documents/R/R-3.6.3/library/Rttf2pt1/exec/ttf2pt1.exe" -a -G fAe "C:\Users\me\Desktop\Fonts\facebook-letter-faces.ttf" "C:\Users\me\AppData\Local\Temp\RtmpOgbdTh/fonts/facebook-letter-faces"' had status 1
3: In system2(ttf2pt1, c(args, shQuote(ttfiles[i]), shQuote(tmpfiles[i])),  :
  running command '"C:/Users/me/Documents/R/R-3.6.3/library/Rttf2pt1/exec/ttf2pt1.exe" -a -G fAe "C:\Users\me\Desktop\Fonts\Guardian-EgypTT-Text-Regular.ttf" "C:\Users\me\AppData\Local\Temp\RtmpOgbdTh/fonts/Guardian-EgypTT-Text-Regular"' had status 1
4: In system2(ttf2pt1, c(args, shQuote(ttfiles[i]), shQuote(tmpfiles[i])),  :
  running command '"C:/Users/me/Documents/R/R-3.6.3/library/Rttf2pt1/exec/ttf2pt1.exe" -a -G fAe "C:\Users\me\Desktop\Fonts\pico-black.ttf" "C:\Users\me\AppData\Local\Temp\RtmpOgbdTh/fonts/pico-black"' had status 1
5: In system2(ttf2pt1, c(args, shQuote(ttfiles[i]), shQuote(tmpfiles[i])),  :
  running command '"C:/Users/me/Documents/R/R-3.6.3/library/Rttf2pt1/exec/ttf2pt1.exe" -a -G fAe "C:\Users\me\Desktop\Fonts\product-sans.ttf" "C:\Users\me\AppData\Local\Temp\RtmpOgbdTh/fonts/product-sans"' had status 1

基于此我有两个问题:

  1. 如何解决No FontName. Skipping. 问题?
  2. 试图告诉我的警告消息是什么?我需要对此感到担忧吗?

我将不胜感激任何帮助,非常感谢提前!

【问题讨论】:

  • this 能解决您的问题吗?不确定,因为似乎适用于 Mac。
  • @caldwellst 感谢您指出这一点。我遇到了那个线程,但考虑到它是针对 Mac 的,除了 Rttf2pt1 包的链接之外,我没有发现任何有用的东西。那个帖子也有 7 年的历史了,所以我认为从那时起可能发生了一些事情。

标签: r extrafont


【解决方案1】:

正如@Moritz Schwarz 提到的,问题是traced to Rttf2pt1

根据here 提出的解决方案,将其降级到 1.3.8 将解决问题:

library(extrafont)
library(remotes)
remotes::install_version("Rttf2pt1", version = "1.3.8")
extrafont::font_import()

【讨论】:

  • 太棒了!!这解决了问题!太感谢了!我真的很生气他们发布了如此该死的测试版。该死的新版本!而且我的 GIS 脚本在 R 4.x.x 下也完全失败了...
  • 导入比收到“无字体名称”消息要快得多!
【解决方案2】:

我的一个字体文件遇到了完全相同的问题 - 错误总是出现在 Rttf2pt1 可执行文件中。

我创建了一个issue on the GitHub page for the package - 让我们看看他们是否能解决这个问题。

与此同时,您可以解决此问题:

在我看来,错误的根源来自.ttf 文件中的故障。导航到FontForge 并下载开源软件。安装后,打开您的.ttf 文件并使用文件 菜单中的Generate Fonts... 选项将其重新保存为.ttf。您可能会收到一条消息,警告您字体有一些小问题 - 如果您愿意,您可以查看它,但我还是继续点击了 Generate

然后您将新的.ttf 文件用于您的ttf_import(),您就可以开始了!! :)

【讨论】:

  • 感谢您的回答,莫里茨!我不再需要在 R 中使用自定义字体,但我相信其他用户会发现它很有用。希望他们能找到解决办法!
猜你喜欢
  • 2022-12-30
  • 1970-01-01
  • 1970-01-01
  • 2020-12-27
  • 1970-01-01
  • 2015-04-02
  • 2017-05-15
  • 2019-08-24
相关资源
最近更新 更多