「Font」- 设置 Fallback 字体(如果字体 A 中不存在某个字符,则从字体 B 中加载该字符) @20210212
問題描述
我們認(rèn)為,標(biāo)題已經(jīng)準(zhǔn)確的描述出本筆記的內(nèi)容。我們?cè)僭敿?xì)補(bǔ)充說明:我們常用的字體有 Microsoft YaHei、Courier 10 Pitch、Consolas 等等,雖然這些字體可以正確顯示中文以及英文,但是卻無法顯示 Emoji 表情,因?yàn)檫@些字體中并沒有 Emoji 表情的字體(其實(shí) Courier 10 Pitch 連中文字體都不支持)。當(dāng)沒有特定字體時(shí),該字符將顯示為方塊(注意“沒有字體”與“亂碼”這兩者的區(qū)別)。
此時(shí),我們就需要設(shè)置“備用(Fallback)字體”,即:當(dāng)字體 A 中沒有某個(gè)字符時(shí),從字體 B 中加載該字符。
該筆記將記錄:在 Linux 中,如何設(shè)置備用(Fallback)字體,以及常見問題處理。
解決方案
在 Linux 中,設(shè)置字體需要通過 Fontconfig 完成。該應(yīng)用無需自行安裝,因?yàn)樗窃趫D形界面下必須的應(yīng)用,默認(rèn)已經(jīng)安裝。
我們的配置,也是圍繞 fonts.conf 文件。對(duì)于入門學(xué)習(xí),閱讀 Font configuration - ArchWiki 頁面。更多詳細(xì)內(nèi)容,參考 man 5 fonts.conf 手冊(cè)。
作為普通用戶,建議修改 $XDG_CONFIG_HOME/fontconfig/fonts.conf(通常為 ~/.config/fontconfig 目錄)配置文件。
如下配置,默認(rèn)使用 Courier 10 Pitch 字體,如果某個(gè)字符不存在,則將在 Microsoft YaHei 字體中需找該字符對(duì)應(yīng)的字體:
<!DOCTYPE fontconfig SYSTEM "fonts.dtd"> <fontconfig><match target="font"><test name="lang" compare="contains"><string>ar</string></test><alias><family>Courier 10 Pitch</family><prefer><family>Microsoft YaHei</family></prefer></alias></match> </fontconfig>修改 monospace 字體
Changing monospace fonts system-wide
如下配置文件將 monospace 字體指向 Courier 10 Pitch 字體:
<match target="pattern"><test name="family" qual="any"><string>monospace</string></test><edit binding="strong" mode="prepend" name="family"><string>Font B</string></edit> </match>參考文獻(xiàn)
How to change the fallback font for missing languages? - Ask Ubuntu
總結(jié)
以上是生活随笔為你收集整理的「Font」- 设置 Fallback 字体(如果字体 A 中不存在某个字符,则从字体 B 中加载该字符) @20210212的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 前端学习(2468):echart复习电
- 下一篇: Internet网络通信协议