其他答案没有解决我的问题(Windows 10)。
我的系统的关键是extrafont::loadfonts(device="win")
在 library(ggplot2)
.
extrafont::loadfonts(device="win")
#extrafont::fonttable()
#extrafont::font_import("C:/Windows/Fonts/", pattern = "RobotoCondensed")
library(ggplot2)
字体位置的常见问题:
我以前从一个随机文件夹中安装了字体extrafont::font_import()
。因此extrafont::fonttable()
引用了我C:\Windows\Fonts\
文件夹中的文件。为了解决这个问题,我重置了我extrafonts::fonttable()
的 withinstall.packages("extrafontdb")
以清除对不同位置字体的引用。
关于保存的编辑:
深入兔子洞。储蓄是一个额外的挑战。为了做到extrafont::loadfonts(device="pdf")
这一点,我必须确保我的字体extrafont::fonttable()
没有相同的姓氏和粗体/斜体状态。我进行了编辑extrafont:::fonttable_file()
以解决我家中任何重复的粗体/斜体字体。使用 Roboto Condensed 我将浅色字体的字体系列重命名为“Roboto Condensed Light”。
保存ggsave(device="pdf")
然后工作。在 acrobat 中打开文件,字体显示不正确。我尝试使用 ghostscript 嵌入字体以及使用 cairo_pdf 设备。最简单和最实用的解决方案是在 Illustrator 中打开 .pdf 文件(那里的字体显示正常),然后立即将它们重新保存为 .pdf。
关于保存的编辑 2:
另存为 .eps 是在 illustrator 和 acrobat 中保存文件的唯一方法。结果是完美的。ggsave(g, file="Figure.eps", fonts=c("FONT FAMILIES USED", "Roboto Condensed", "Roboto Condensed Light"))
最终绘图代码:
这是我在绘图之前使用的最后一组调用。注释是只需要运行一次的设置命令。
# Plotting
extrafont::loadfonts(device="pdf")
extrafont::loadfonts(device="postscript")
# extrafont::font_import("C:/Windows/Fonts/", pattern = "RobotoCondensed", prompt = F)
# extrafont::fonttable()
# C:/Program Files/R/R-3.3.1/library/extrafontdb/fontmap/ - Change lights to "Roboto Condensed Light"
# After ggsave(device="pdf") or ggsave(device="eps") open and resave the file in Illustrator
library(hrbrthemes)
library(ggplot2)