r
  • fonts
  • embed
  • eps
  • 2016-07-26 16 views 1 likes 
    1

    我正在R中构建一个地图,希望将文本显示为Linux Libertine字体。包装extrafont已加载,字体已加载并正确设置了ghostscript的路径。R:在eps中使用libertine字体 - 错误消息

    当我使用下面的命令,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使用字体?

    +1

    我正在从包中加载字体,但是我确实发现这个[GitHub上的封装问题,它可能会覆盖您的问题](https://github.com/wch/extrafont/issues/26)。看最后的评论。 – TomNash

    回答

    2

    由用户TomNash提供确实说明问题和解决方案的link

    的问题是,某些字体(这包括Linux的浪荡子)具有不同的字型名称(Linux的浪荡子粗体,Linux的浪荡子斜体,等等),但都共享相同的姓氏(Linux Libertine)。 extrafont软件包无法区分这些字体,因为它只查看了系列名称(并且在上例中,Linux Libertine Display的作品,因为这是一个独特的系列名称)。

    解决这个问题的最简单的方法是找到字体表的目录:system.file("fontmap", "fonttable.csv", package="extrafontdb")然后打开fonttable.csv和复制所有的Linux风流才子字体(或任何字体这个问题)的字体名到字体系列电池。然后返回到R并再次执行loadfonts()以确保R重建字体表。

    +1

    Linux Libertine是正确的,家族名称的重点在于它对于整个字体家族来说是一样的。除了用于解决传统软件的旧字体或字体外,您不会找到独特的系列名称。 – nim

    相关问题