其他回答没有解决我的问题(Windows 10)。
对于我的系统,关键是在调用library(ggplot2)
之前先调用extrafont::loadfonts(device="win")
。
extrafont::loadfonts(device="win")
library(ggplot2)
常见的字体位置问题:
我之前使用extrafont::font_import()
从一个随机文件夹安装了字体。因此,extrafont::fonttable()
引用了我的C:\Windows\Fonts\
文件夹中的文件。为了解决这个问题,我通过install.packages("extrafontdb")
重置了我的extrafonts::fonttable()
,以清除对不同位置字体的引用。
关于保存的编辑:
更深入的问题是保存。为了使用extrafont::loadfonts(device="pdf")
,我必须确保extrafont::fonttable()
中没有相同的字体家族和粗/斜体状态。我编辑了extrafont:::fonttable_file()
以解决家族内的任何重复的粗/斜体字体。使用Roboto Condensed,我将轻体字的字体家族重命名为“Roboto Condensed Light”。
使用ggsave(device="pdf")
保存后,文件在Acrobat中打开时字体显示不正确。我尝试嵌入字体和使用cairo_pdf设备。最简单和最实用的解决方案是在Illustrator中打开.pdf文件(字体在那里显示正常),然后立即重新保存为.pdf。
有关保存的编辑2:
保存为.eps是在Illustrator和Acrobat中都能保留文件的唯一方法。结果完美无缺。ggsave(g, file="Figure.eps", fonts=c("使用的字体家族", "Roboto Condensed", "Roboto Condensed Light"))
最终绘图代码:
这是我绘图前使用的最终设置。注释是只需要运行一次的设置命令。
extrafont::loadfonts(device="pdf")
extrafont::loadfonts(device="postscript")
library(hrbrthemes)
library(ggplot2)
windowsFonts(Times=windowsFont("TT Times New Roman"))
,它能起作用吗? - user1317221_G