相同的字型,相同的名稱,兩種不同的文件格式。Fontconfig 使用哪一個?
原始問題
我下載了Cozette 字型,其中包括
CozetteVector.ttf
和CozetteVector.otf
。我將這兩個文件都複製到~/.local/share/fonts
並執行了fc-cache -v ~/.local/share/fonts
. 現在,當我執行時fc-list | grep -i cozette
,我可以看到列出了 TTF 和 OTF 版本,名稱相同CozetteVector:style=Regular
。當我
CozetteVector
在圖形程序中選擇字型時,將使用哪種字型?Fontconfig 如何處理這種情況?
擁有兩個版本會導致問題或產生衝突嗎?
關於為什麼會發生這種情況以及為什麼有人會關心的其他背景資訊
在 Fedora 35 上,字型包通常包含相同字型的 OTF 和 TTF 格式。例如,
redhat-text-fonts
包同時包含/usr/share/fonts/redhat/RedHatText-LightItalic.otf
和/usr/share/fonts/redhat/RedHatText-LightItalic.ttf
。我還遇到過一種情況,我通過將字型複製到
~/.local/share/fonts
並執行來手動“安裝”字型fc-cache -f
,但後來我使用系統提供的軟體包安裝了相同的字型。現在我在兩個完全不同的目錄中擁有相同的字型檔,定義了相同的字型系列。文件名可能完全相同,也可能存在一些變化。通常重複項實際上是重複項,差異並不重要。但有時這些衝突並非微不足道,例如,一個版本是可變字型而另一個版本不是,或者一個版本包含多個樣式集而另一個版本不包含。
我在今年年初的郵件列表執行緒中找到了答案:https ://lists.freedesktop.org/archives/fontconfig/2022-January/006860.html
最新的有優先權。它由 測量
FC_FONTVERSION
。如果兩者相同,則取決於元素的順序。第一個有優先權。似乎順序是由使用者配置文件中的目錄順序定義的。除此之外,它完全是任意的,並且可能取決於使用者的文件系統。我查看了原始碼,但無法弄清楚字型檔列表的確切生成位置。