我正在构建一个R的地图,我想让文本显示在Libertine字体中。已加载包extrafont,已加载字体,并正确设置了到幽灵脚本的路径。
当我使用以下命令时,R保存输出,一切都正常。
ggsave(file = foo.eps, plot = map, width = 15, height = 10, units = "cm", family='Linux Libertine Display')但是,当我使用family='Linux Libertine'时,会收到以下错误消息:
Error in grDevices::postscript(..., onefile = FALSE, horizontal = FALSE, :
unknown family 'Linux Libertine'它似乎找不到字体,这是奇怪的,因为它列在返回的fonttable()。有什么办法可以让R使用字体吗?
发布于 2016-07-26 17:52:52
用户TomNash提供的TomNash确实解释了问题和解决方案:
问题是有些字体(包括Libertine)有不同的字体名称(、Libertine斜体等等)。但所有人都有着相同的姓氏( Libertine)。extrafont包无法区分这些字体,因为它只查看姓氏(在上面的示例中,,因为这是一个唯一的姓氏)。
解决这一问题的最简单方法是定位字体表的目录:system.file("fontmap", "fonttable.csv", package="extrafontdb"),然后打开fonttable.csv并将所有Libertine字体(或任何字体相关的字体)的字体名称复制到字体家族单元格中。然后返回到R,并再次执行loadfonts(),以确保R重新构建字体表。
https://stackoverflow.com/questions/38596300
复制相似问题