ฉันมีปัญหากับ fontconfig ในการจดจำไฟล์ ui-monospace
ฟอนต์ที่หลายเว็บไซต์ (รวมถึงไซต์ Github และ Stack Exchange) เพิ่งเริ่มใช้ Firefox ยังไม่มีการอ้างอิง CSS พิเศษสำหรับแบบอักษรของระบบ (ดู ข้อผิดพลาด FF 1226042, ร่างข้อมูลจำเพาะ, และมัน ฉันสามารถใช้รายการ) และ FF ยังถูกหลอกโดย fontconfig ซึ่งจะตอบสนองฟอนต์ใด ๆ ด้วยการกำหนดค่าเริ่มต้นสำหรับ sans-serif
เพื่อเป็นการแก้ปัญหา ฉันต้องการใช้นามแฝงนี้แทนชื่อฟอนต์นี้อย่างชัดเจนกับฟอนต์ monospace ที่ฉันต้องการ (ซึ่งก็คือ แพนิคแซนส์ซึ่งเป็นตัวแปร DejaVu Sans Mono ที่ปรับแต่งแล้วซึ่งดันเครื่องหมายขีดล่างขึ้นเล็กน้อย) แต่เนื่องจากคำถามนี้คลุมเครือมากคำถามนี้จึงใช้ เดจาวู ซันส์ โมโน.
ความพยายามครั้งแรกของฉันในการแก้ปัญหานี้ไม่ได้ผล:
<alias>
<family>ui-monospace</family>
<prefer><family>DejaVu Sans Mono</family></prefer>
</alias>
ความพยายามอีกครั้งที่ประสบความสำเร็จมากกว่าสำหรับฟอนต์อื่นๆ:
<match>
<test name="family"><string>ui-monospace</string></test>
<edit name="family" mode="assign" binding="strong">
<string>DejaVu Sans Mono</string>
</edit>
</match>
เมื่อฉันบันทึกและล้างแคช มันไม่ทำงาน:
$ grep ui.monospace ~/.config/fontconfig/fonts.conf
<test name="family"><string>ui-monospace</string></test>
$fc-แคช-ฉ
$ fc-match 'ui-โมโนสเปซ'
Carlito-Regular.ttf: "Carlito" "ปกติ"
$ fc-match sans-serif
Carlito-Regular.ttf: "Carlito" "ปกติ"
นั่นไม่ได้ผล นี่คือส่วนที่อยากรู้อยากเห็น: มันใช้งานได้เมื่อฉันใช้ช่องว่างแทนยัติภังค์:
$ sed -i 's/ui-monospace/ui monospace/' ~/.config/fontconfig/fonts.conf
$ grep ui.monospace ~/.config/fontconfig/fonts.conf
<test name="family"><string>ui โมโนสเปซ</string></test>
$fc-แคช-ฉ
$ fc-match 'ui โมโนสเปซ'
DejaVuSansMono.ttf: "DejaVu Sans Mono" "หนังสือ"
ดูเหมือนว่าปัญหาคือยัติภังค์ ฉันไม่เห็นเอกสารใด ๆ (หรือรายงานข้อผิดพลาด) ที่แนะนำปัญหานี้ เดอะ เอกสาร fontconfig สำหรับ <string>
อย่าจดบันทึกตัวละครที่ผิดกฎหมายหรือวิธีหลบหนี ฉันได้ลองกำหนดเป็น <string>ui\-monospace</string>
และ <string>ui-monospace</string>
(และ -
) แต่ไม่มีสิ่งใดทำงาน
ฉันจะกำหนดค่า fontconfig เพื่อจับคู่ชื่อแบบอักษรกับยัติภังค์ได้อย่างไร