SystemFonts é um pacote que localiza fontes instaladas. Ele usa as bibliotecas nativas do sistema no Mac (CoreText) e Linux (FontConfig) e usa o Freetype para analisar as fontes no registro no Windows.
O SystemFonts está disponível no cran usando install.packages('systemfonts') . No entanto, ainda está em desenvolvimento e você pode instalar a versão de desenvolvimento usando o Devtools.
# install.packages('devtools')
devtools :: install_github( ' r-lib/systemfonts ' )O principal uso deste pacote é localizar arquivos de fonte com base na família e no estilo:
library( systemfonts )
match_fonts( ' Avenir ' , italic = TRUE )
# > path index features
# > 1 /System/Library/Fonts/Avenir.ttc 1Esta função retorna o caminho para o arquivo que mantém a fonte, bem como o índice baseado em 0 da fonte no arquivo.
Também é possível obter um dados.Frame de todas as fontes disponíveis:
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 Além disso, você pode consultar informações adicionais sobre fontes e glifos específicos, se isso for interessante usando as funções font_info() e glyph_info() .
Embora obter essas informações em R seja bom, o uso pretendido é principalmente através do código compilado, para que os dispositivos gráficos possam localizar facilmente arquivos de fonte relevantes etc.
Para usar as funções do SystemFonts no código C (++), seu pacote deve listar o SystemFonts no campo LinkingTo no arquivo DESCRIPTION . Quando isso for feito, você pode agora #include <systemfonts.h> no seu código e usar as funções fornecidas. Veja o arquivo inst/include/systemfonts.h para se familiarizar com a API C.
O SystemFonts sempre tentará encontrar uma fonte para você, mesmo que não exista com o nome ou estilo de família. Como resolve isso é específico do sistema e não deve ser usado, mas pode -se esperar que um arquivo de fonte válido seja sempre retornado, independentemente da entrada.
Existem alguns aliases especiais que se comporta previsivelmente, mas dependentes do sistema:
"" e "sans" retornam Helvetica no Mac, Arial on Windows e a fonte padrão sem serrif no Linux ( Dejavu Sans no Ubuntu)"serif" Times de retorno no Mac, Times New Roman no Windows e a Fonte Serif padrão no Linux ( Dejavu Serif no Ubuntu)"mono" Return Courier no Mac, Courier New on Windows e a fonte mono padrão no Linux ( Dejavu Mono no Ubuntu)"emoji" Retornar emoji de cor da maçã no Mac, emoji de ui ui no Windows e a fonte emoji padrão no Linux ( Noto Color no Ubuntu) Observe que o projeto 'SystemFonts' é lançado com um código de conduta contribuinte. Ao contribuir para este projeto, você concorda em cumprir seus termos.