SystemFonts est un package qui localise les polices installées. Il utilise les bibliothèques du système natif sur Mac (CoreText) et Linux (FontConfig) et utilise Freetype pour analyser les polices dans le registre de Windows.
SystemFonts est disponible auprès de CRAN à l'aide install.packages('systemfonts') . Il est cependant toujours en cours de développement et vous pouvez installer la version de développement à l'aide de Devtools.
# install.packages('devtools')
devtools :: install_github( ' r-lib/systemfonts ' )L'utilisation principale de ce package est de localiser des fichiers de police en fonction de la famille et du style:
library( systemfonts )
match_fonts( ' Avenir ' , italic = TRUE )
# > path index features
# > 1 /System/Library/Fonts/Avenir.ttc 1Cette fonction renvoie le chemin d'accès au fichier tenant la police, ainsi que l'index basé sur 0 de la police dans le fichier.
Il est également possible d'obtenir une données. Frame de toutes les polices disponibles:
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 De plus, vous pouvez interroger des informations supplémentaires sur les polices et les glyphes spécifiques, si cela est intéressant à l'aide des fonctions font_info() et glyph_info() .
Bien que l'obtention de ces informations dans R soit agréable, l'utilisation prévue se fait principalement via du code compilé afin que les périphériques graphiques puissent facilement localiser les fichiers de police pertinents, etc.
Afin d'utiliser des fonctions à partir de SystemFonts en C (++) Code, votre package devrait répertorier SystemFonts dans le champ LinkingTo DESCRIPTION . Une fois cela fait, vous pouvez maintenant #include <systemfonts.h> dans votre code et utiliser les fonctions fournies. Examinez le fichier inst/include/systemfonts.h pour vous familiariser avec l'API C.
SystemFonts essaiera toujours de trouver une police pour vous, même si aucune n'existe avec le nom de famille ou le style donné. Comment il résout ceci est spécifique au système et ne doit pas être invoqué, mais on peut s'attendre à ce qu'un fichier de police valide soit toujours renvoyé quelle que soit l'entrée.
Il existe quelques alias spéciaux qui se comportent prévisibles mais dépendants du système:
"" Et "sans" Renvoie Helvetica sur Mac, Arial sur Windows, et la police Sans-Serif par défaut sur Linux ( Dejavu Sans sur Ubuntu)"serif" sur Mac, Times New Roman sur Windows et la police Serif par défaut sur Linux ( Dejavu Serif sur Ubuntu)"mono" Return Courier sur Mac, Courier New sur Windows et la police mono par défaut sur Linux ( Dejavu Mono sur Ubuntu)"emoji" Renvoie des emoji de couleur Apple sur Mac, Segoe UI Emoji sur Windows, et la police emoji par défaut sur Linux ( Color Noto sur Ubuntu) Veuillez noter que le projet «Systemfonts» est publié avec un code de conduite de contributeur. En contribuant à ce projet, vous acceptez de respecter ses conditions.