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”項目通過貢獻者的行為準則發布。通過為該項目做出貢獻,您同意遵守其條款。