ช่วย FontConfig เพื่อค้นหาแบบอักษรที่ซ่อนอยู่
เรียกใช้สคริปต์ help-fontconfig-discover-hidden-fonts-for.sh เพื่อรีเฟรชรายการของแบบอักษรที่มีอยู่ใน FontConfig:
$ ./help-fontconfig-discover-hidden-fonts-for.sh [name] [cache]
สคริปต์ใช้สองพารามิเตอร์:
สำหรับตัวอักษรที่ซ่อนอยู่แต่ละตัวในโฟลเดอร์แคชที่ซ่อนอยู่ของบริการสมัครสมาชิกสคริปต์จะสร้างลิงก์สัญลักษณ์ในตำแหน่งที่รู้จักกันใน FontConfig ในโฟลเดอร์ย่อยที่มีชื่อบริการที่กำหนด
ตัวอย่างเช่นหากคุณสมัครรับบริการสมัครสมาชิกแบบอักษรที่เรียกว่า Fontitious ซึ่งเก็บแบบอักษรในเครื่องเป็นไฟล์ตัวอักษรที่ซ่อนอยู่ในโฟลเดอร์ ~/Library/Application Support/Fontitious/.fonts/ คุณจะต้องโทรหาสคริปต์หลังจากการเปลี่ยนแปลงแต่ละครั้ง
$ ./help-fontconfig-discover-hidden-fonts-for.sh fontitious
~/Library/Application Support/Fontitious/.fonts
ฉันใช้สคริปต์นี้บน MacOS Catalina; แบบอักษรที่ซ่อนอยู่ได้รับการจดทะเบียนใน GIMP, Krita, Inkscape และ Scribus หลังจากเรียกใช้สคริปต์และรีสตาร์ทแต่ละแอพ
Inkscape 1.x จัดส่ง FontConfig เวอร์ชันของตัวเองด้วยการกำหนดค่าที่ จำกัด ซึ่งต้องใช้งานได้มากกว่านี้: หากโฟลเดอร์ ~/Library/Application Support/org.inkscape.Inkscape พบไฟล์การกำหนดค่าพิเศษ 00-load-xdg-fonts.conf org.inkscape.Inkscape/config/fontconfig/conf.d/ สถานที่ตั้งท้องถิ่นซึ่งแชร์นอกกรอบกับ Gimp, Krita และ Scribus
บริการสมัครสมาชิกแบบอักษรมีแนวโน้มที่จะเก็บแบบอักษรของพวกเขาไว้ในไดรฟ์ท้องถิ่นของสมาชิกเป็นไฟล์ที่ซ่อนอยู่ในโฟลเดอร์แคชที่ซ่อนอยู่
ในขณะที่สแกนโฟลเดอร์แบบอักษรซ้ำ FontConfig จะไม่สนใจไฟล์หรือโฟลเดอร์ที่ซ่อนอยู่อย่างเงียบ ๆ ยังคงเป็นไปได้ที่ FontConfig จะพิจารณาโฟลเดอร์ Font ที่ซ่อนอยู่เช่น ~/.fonts เมื่อรวมอยู่ในการกำหนดค่า FontConfig อย่างชัดเจน แต่ขณะนี้ไม่มีวิธีที่จะทำให้ FontConfig พิจารณาไฟล์ Font ที่ซ่อนอยู่
ซอร์สโค้ดกรองชื่อไฟล์ใด ๆ ที่เริ่ม . ด้วย -
while ((e = readdir (d)))
{
if (e->d_name[0] != '.' && strlen (e->d_name) < FC_MAX_FILE_LEN)
{
strcpy ((char *) base, (char *) e->d_name);
if (!FcStrSetAdd (files, file_prefix)) {
ret = FcFalse;
goto bail2;
}
}
}
- fontconfig/src/fcdir.c, บรรทัด 256–266
โครงการนี้นำเสนอวิธีแก้ปัญหาง่ายๆโดยการสร้างลิงก์สัญลักษณ์สำหรับไฟล์ Font ที่ซ่อนอยู่ในโฟลเดอร์ย่อยของหนึ่งในโฟลเดอร์ท้องถิ่นที่กำหนดค่าใน FontConfig
Eric Bréchemier
Creative Commons CC0“ ไม่มีสงวนลิขสิทธิ์”