「Font」- 设置 Fallback 字体(如果字体 A 中不存在某个字符,则从字体 B 中加载该字符) @20210212
問題描述
我們認為,標題已經(jīng)準確的描述出本筆記的內(nèi)容。我們再詳細補充說明:我們常用的字體有 Microsoft YaHei、Courier 10 Pitch、Consolas 等等,雖然這些字體可以正確顯示中文以及英文,但是卻無法顯示 Emoji 表情,因為這些字體中并沒有 Emoji 表情的字體(其實 Courier 10 Pitch 連中文字體都不支持)。當沒有特定字體時,該字符將顯示為方塊(注意“沒有字體”與“亂碼”這兩者的區(qū)別)。
此時,我們就需要設(shè)置“備用(Fallback)字體”,即:當字體 A 中沒有某個字符時,從字體 B 中加載該字符。
該筆記將記錄:在 Linux 中,如何設(shè)置備用(Fallback)字體,以及常見問題處理。
解決方案
在 Linux 中,設(shè)置字體需要通過 Fontconfig 完成。該應用無需自行安裝,因為它是在圖形界面下必須的應用,默認已經(jīng)安裝。
我們的配置,也是圍繞 fonts.conf 文件。對于入門學習,閱讀 Font configuration - ArchWiki 頁面。更多詳細內(nèi)容,參考 man 5 fonts.conf 手冊。
作為普通用戶,建議修改 $XDG_CONFIG_HOME/fontconfig/fonts.conf(通常為 ~/.config/fontconfig 目錄)配置文件。
如下配置,默認使用 Courier 10 Pitch 字體,如果某個字符不存在,則將在 Microsoft YaHei 字體中需找該字符對應的字體:
<!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>參考文獻
How to change the fallback font for missing languages? - Ask Ubuntu
總結(jié)
以上是生活随笔為你收集整理的「Font」- 设置 Fallback 字体(如果字体 A 中不存在某个字符,则从字体 B 中加载该字符) @20210212的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 前端学习(2468):echart复习电
- 下一篇: 前端学习(2236):react的列表渲