gpt4 book ai didi

r - 如何创建用于 R 包的特定字体系列?

转载 作者:行者123 更新时间:2023-12-04 13:47:56 26 4
gpt4 key购买 nike

我需要运送一个带有图表的包裹,而客户坚持使用自己的许可字体。图表必须呈现为 EPS 并发送给报告的布局人员。

我有字体的 .ttf 文件,名称如下:

  • 字体名称Sans-Bold.ttf
  • FontNameSans-Medium.ttf
  • FontNameSerif-Bold.ttf
  • FontNameSerif-Regular.ttf
  • ...

  • 我也有这些文件的 .eot、.svg 和 .woff 版本。

    所以我尝试了 extrafont包裹 :
    ttf_import('Path/To/ttfFiles')
    fonts()
    [1] "FontNameSans-Bold" "FontNameSans-Light"
    [3] "FontNameSans-Medium" "FontNameSans-Regular"
    [5] "FontNameSerif-Bold" "FontNameSerif-Light"
    [7] "FontNameSerif-Medium" "FontNameSerif-Regular"

    我希望能见到两个家庭,但这显然行不通。

    最后,ttf 文件应该包含在 inst 的子文件夹中。文件夹,我应该有类似的东西:
    .onLoad({
    font_import(file.path(system.file(package = 'mypackage'),
    "fontdir")
    )
    # something else to create a family FontName for
    # use with postscript() or cairo_ps()
    loadfonts()
    })

    所以我以后可以这样做:
    setEPS()
    postscript('somefile.eps', family = 'FontName Sans')
    plot(mydata)
    dev.off()
    embed_fonts('somefile.eps', outfile = 'somefile-embedded.eps')

    问题:我必须采取哪些额外步骤才能使这些家庭像任何其他家庭一样可用?

    编辑:我知道我必须先加载字体才能使用它们。但是,如果注册错误,我将无法加载该家庭。问题是关于正确注册字体系列,以便其余部分正常工作。

    最佳答案

    这个答案有点晚了,可能你不再需要它了。但这可能对搜索中的其他用户感兴趣。

    根据您的操作系统,您需要执行不同的步骤。我有一个包,其中包含 inst/extdata/fonts/some-fonts.ttf 中的几种字体.

  • 在 Linux 系统上,可以在将 pacakge 加载到 fonts 目录时复制这些文件。
  • 在 Windows 上需要复制 .ttf文件手动到 C:/Windows/Fonts。

  • 为了在加载包时加载字体,我调整了 .onLoad功能:
    .onLoad <- function(libname, pkgname) {
    if (Sys.info()[1] == "Linux") {
    dir.create('~/.fonts')
    file.copy("inst/extdata/fonts/some-fonts.ttf", "~/.fonts")
    system('fc-cache -f ~/.fonts')
    }
    if (Sys.info()[1] == "Windows") {
    windowsFonts()
    extrafont::font_import(pattern = "some-fonts", prompt = FALSE)
    extrafont::loadfonts(device = "win")
    windowsFonts()
    }
    print(extrafont::fonts())
    }
  • 在 Linux 上,我只需要将自定义字体放在 fonts 目录中。之后,它们可供 R 使用。
  • 在 Windows 上,您需要使用 extrafont::font_import 导入它们并使用 extrafont::loadfonts(device = "win") 注册它们.

  • 希望这可以帮助您,其他人或我 future 的自己。 ;-)

    关于r - 如何创建用于 R 包的特定字体系列?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42577514/

    26 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com