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 นั้นดีการใช้งานที่ตั้งใจไว้ส่วนใหญ่ผ่านรหัสที่รวบรวมเพื่อให้อุปกรณ์กราฟิกสามารถค้นหาไฟล์ฟอนต์ที่เกี่ยวข้องได้อย่างง่ายดาย ฯลฯ
เพื่อใช้ฟังก์ชั่นจาก SystemFonts ในรหัส C (++) แพ็คเกจของคุณควรแสดงรายการ SystemFonts ในฟิลด์ LinkingTo ในไฟล์ DESCRIPTION เมื่อเสร็จสิ้นแล้วคุณสามารถ #include <systemfonts.h> ในรหัสของคุณและใช้ฟังก์ชั่นที่ให้ไว้ ดูไฟล์ inst/include/systemfonts.h เพื่อทำความคุ้นเคยกับ C API
SystemFonts จะพยายามค้นหาแบบอักษรให้คุณเสมอแม้ว่าจะไม่มีอยู่ในชื่อครอบครัวหรือสไตล์ที่กำหนด วิธีการแก้ไขปัญหานี้เป็นของระบบเฉพาะและไม่ควรพึ่งพา แต่คาดว่าจะมีการส่งคืนไฟล์ตัวอักษรที่ถูกต้องเสมอไม่ว่าจะเป็นอินพุต
มีนามแฝงพิเศษบางอย่างที่มีพฤติกรรมที่คาดการณ์ได้ แต่ขึ้นอยู่กับระบบ:
"" และ "sans" ส่งคืน helvetica บน Mac, Arial on Windows และตัวอักษร Sans-Serif เริ่มต้นบน Linux ( Dejavu Sans บน Ubuntu)"serif" ส่งคืน เวลา บน Mac, Times New Roman on Windows และตัวอักษร Serif เริ่มต้นบน Linux ( dejavu serif บน Ubuntu)"mono" ส่งคืน Courier บน Mac, Courier ใหม่ บน Windows และตัวอักษร Mono เริ่มต้นบน Linux ( Dejavu Mono บน Ubuntu)"emoji" คืน Apple Color Emoji บน Mac, Segoe Ui Emoji บน Windows และฟอนต์ Emoji เริ่มต้นบน Linux ( Noto Color on Ubuntu) โปรดทราบว่าโครงการ 'SystemFonts' ได้รับการปล่อยตัวด้วยรหัสผู้สนับสนุน โดยการมีส่วนร่วมในโครงการนี้คุณตกลงที่จะปฏิบัติตามข้อกำหนดของมัน