簡體   English   中英

.tf字體在Qt中的優先級

[英].ttf font priority in Qt

在Linux上使用Qt Framework。 所有.ttf字體都在/ usr / lib / fonts /中。 如果我在該文件夾中同時保留日語和中文,則日語將使用中文字體; 如果刪除了中文字體,則可以正確顯示日語字體,因此我認為這是一個優先問題。

我還注意到網上有一篇文章討論如何使用fontconfig解決此問題。 但是,在apps / fontconfig-2.8.0 / src / conf.d下沒有font.conf,而是有很多.conf,例如:

10-autohint.conf
10-no-sub-pixel.conf
10-sub-pixel-bgr.conf
10-sub-pixel-rgb.conf
10-sub-pixel-vbgr.conf
10-sub-pixel-vrgb.conf
10-unhinted.conf
20-fix-globaladvance.conf
20-unhint-small-vera.conf
25-unhint-nonlatin.conf
30-metric-aliases.conf
30-urw-aliases.conf
40-nonlatin.conf
45-latin.conf
49-sansserif.conf
50-user.conf
51-local.conf
60-latin.conf
65-fonts-persian.conf
65-khmer.conf
65-nonlatin.conf
69-unifont.conf
70-no-bitmaps.conf
70-yes-bitmaps.conf
80-delicious.conf
90-synthetic.conf

那么我應該使用哪一個呢?

順便說一句,FC列表總是給我什么。

任何幫助和提示將不勝感激。

沒有要使用的特定文件,它們按命名順序進行評估,因此將先讀取10-foo.conf中的指令,再讀取90-bar.conf中的指令。 但是,配置語言允許覆蓋,因此較早的版本並不總是更強大。 在現代的fontconfig安裝中,您經常會發現諸如“如果語言環境為日語,則首選日語字體”之類的規則,它們只有在最后一次評估后才能起作用。

通常,當您的應用程序/環境未向字體系統提供目標語言環境時,您會遇到描述的問題。 給定uni han統一,如果要從代碼點獲取日語的中文字形,則無法推斷字體系統,因此需要明確告知。 因此,如果您要執行某種強制使用en_US語言環境而不是使用中文或日語語言環境的操作,則系統至少有50%的機會會出錯。

然后,即使您確實聲明了正確的語言環境,所有應用程序也不會將其正確傳播到字體堆棧,這就是所有要解決的錯誤。

沒有短暫或簡單的解決方案:確保您不對系統的語言環境撒謊,如果無法忍受,請更正語言環境,在仍不應用它的應用程序中填充錯誤。

另一種方法是通過卸載或隱藏一種字體集來強制使用一種渲染樣式,但是如果您需要顯示它,這也會破壞該語言的渲染。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM