Sekilas, sepertinya bug fontconfig asli bagi saya, karena berfungsi dengan baik di sini dan saya sudah menginstal DejaVu dan Unifont:
$ fc-match Sans
DejaVuSans.ttf: "DejaVu Sans" "Book"
$ fc-match "Sans"
DejaVuSans.ttf: "DejaVu Sans" "Book"
$ fc-match "Sans "
DejaVuSans.ttf: "DejaVu Sans" "Book"
$ fc-match "Sans 9"
DejaVuSans.ttf: "DejaVu Sans" "Book"
Tapi, jika dilihat lebih dekat, kita bisa melihat lebih banyak detail. Mungkin masih ada fontconfig bug di suatu tempat, tetapi fc-match
tampaknya mengembalikan nilai default ketika tidak menemukan apa pun. Ini hanya defaultnya adalah DejaVu di sistem saya:
$ fc-match uni
DejaVuSans.ttf: "DejaVu Sans" "Book"
$ fc-match unifont
Unifont.ttf: "unifont" "Medium"
$ fc-match 4e5zedrkbxp
DejaVuSans.ttf: "DejaVu Sans" "Book"
Halaman manual fc-match(1)
mengonfirmasi bahwa perintah tidak melakukan pencocokan tepat, tetapi mengembalikan apa yang dianggapnya paling cocok. Anda dapat melihat semuanya dengan -a
atau lebih ringkas -s
:
$ fc-match -s uni # now it also finds unifont
DejaVuSans.ttf: "DejaVu Sans" "Book"
DejaVuSans-Bold.ttf: "DejaVu Sans" "Bold"
DejaVuSans-Oblique.ttf: "DejaVu Sans" "Oblique"
DejaVuSans-BoldOblique.ttf: "DejaVu Sans" "Bold Oblique"
n019003l.pfb: "Nimbus Sans L" "Regular"
helvR12-ISO8859-1.pcf.gz: "Helvetica" "Regular"
FreeSans.ttf: "FreeSans" "нормален"
KanjiStrokeOrders.ttf: "KanjiStrokeOrders" "Medium"
Eadui.ttf: "Eadui" "Medium"
Unifont.ttf: "unifont" "Medium"
FreeSerif.ttf: "FreeSerif" "нормален"
cu12.pcf.gz: "ClearlyU" "Regular"
cu-pua12.pcf.gz: "ClearlyU PUA" "Regular"
10x20.pcf.gz: "Fixed" "Regular"
Di mana Anda bisa mengatakan "sekrup Anda" dan menambahkan pencarian lain di atasnya untuk mencocokkan dengan yang Anda harapkan:
$ fc-match -s uni | grep -i uni
Unifont.ttf: "unifont" "Medium"
Tapi, pertanyaan Anda adalah tentang bagaimana tepatnya pencocokan. FcFontMatch(3)
dan selanjutnya secara kasar mengkonfirmasi bahwa ia menggunakan nilai default / terkonfigurasi dan pasti mengonfirmasikan bahwa ia terlebih dahulu memodifikasi istilah pencarian yang Anda berikan. Untuk hal yang lebih dalam, Anda harus memeriksa kode (mulai dengan fungsi yang disebutkan di atas).