systemfonts
systemfonts 1.1.0
SystemFonts是找到已安装字体的软件包。它使用Mac(CoreText)和Linux(FontConfig)上的系统本地库,并使用Freetype在Windows上的注册表中解析字体。
SystemFonts可从Cran使用install.packages('systemfonts')获得。但是,它仍在开发中,您可以使用DevTools安装开发版本。
# install.packages('devtools')
devtools :: install_github( ' r-lib/systemfonts ' )此软件包的主要用途是根据家庭和样式找到字体文件:
library( systemfonts )
match_fonts( ' Avenir ' , italic = TRUE )
# > path index features
# > 1 /System/Library/Fonts/Avenir.ttc 1此函数返回存放字体的路径,以及文件中字体的0基索引。
也可以获取数据。所有可用字体的框架:
system_fonts()
# > # A tibble: 843 × 9
# > path index name family style weight width italic monospace
# > <chr> <int> <chr> <chr> <chr> <ord> <ord> <lgl> <lgl>
# > 1 /System/Library/Fonts… 2 Rock… Rockw… Bold bold norm… FALSE FALSE
# > 2 /Users/thomas/Library… 0 Open… Open … Ligh… normal norm… TRUE FALSE
# > 3 /Users/thomas/Library… 0 Open… Open … Semi… semib… semi… TRUE FALSE
# > 4 /System/Library/Fonts… 0 Note… Notew… Light normal norm… FALSE FALSE
# > 5 /System/Library/Fonts… 1 Deva… Devan… Bold bold norm… FALSE FALSE
# > 6 /System/Library/Fonts… 0 Kann… Kanna… Regu… normal norm… FALSE FALSE
# > 7 /System/Library/Fonts… 0 Verd… Verda… Bold bold norm… FALSE FALSE
# > 8 /System/Library/Fonts… 8 Aria… Arial… Light light norm… FALSE FALSE
# > 9 /Users/thomas/Library… 0 Open… Open … Medi… medium norm… TRUE FALSE
# > 10 /System/Library/Fonts… 10 Appl… Apple… Thin thin norm… FALSE FALSE
# > # ℹ 833 more rows此外,如果使用font_info()和glyph_info()功能,您可以查询有关字体和特定字形的其他信息。
虽然在R中获取此信息很不错,但预期的使用主要是通过编译的代码,因此图形设备可以轻松找到相关的字体文件等。
为了使用C(++)代码中的SystemFonts的函数,您的软件包应列出DESCRIPTION文件中的LinkingTo字段中的SystemFonts。完成此操作后,您现在可以在代码中#include <systemfonts.h>使用提供的功能。查看inst/include/systemfonts.h文件,以熟悉C API。
SystemFonts将始终尝试为您找到字体,即使给定的姓氏或样式不存在。它如何解决此问题是特定于系统的,不应依赖于系统,但是无论输入如何,都可以预期始终返回有效的字体文件。
存在一些特殊的别名,行为可以预见,但系统依赖于系统:
""和"sans"在Mac上返回Helvetica ,Windows上的Arial和Linux上的默认sans-serif字体(ubuntu上的dejavu sans )"serif"在Mac上的返回时间,Windows上的新罗马人以及Linux上的默认serif字体(Ubuntu上的Dejavu Serif )"mono"返回快递,Windows上的Courier New和Linux上的默认单字体(Ubuntu上的Dejavu Mono )"emoji"在Mac上返回Apple Color Emoji ,Windows上的Segoe UI表情符号和Linux上的默认表情符号(Ubuntu上的Noto Color ) 请注意,“ SystemFonts”项目通过贡献者的行为准则发布。通过为该项目做出贡献,您同意遵守其条款。