如何正確為 Noto Sans CJK 配置 fontconfig 使中文不會被顯示為日文字型?

Ubuntu 16.04 LTS 使用了新的中文字體 Noto Sans CJK,該字體在默認設置下,會在一些程序(如 fcitx 的候選詞、Chromium 的某些網頁)下將中文顯示為日文字型。

如果是由於程序沒有指定語言造成的,能不能通過設置 fontconfig 使默認 Fallback 字形為中文?


自己找到解決方案了。

sudo vim /etc/fonts/conf.d/64-language-selector-prefer.conf

該文件配置了 Noto Sans CJK 的優先順序。

默認內容如下

&
&
&
&
&sans-serif&
&


&Noto Sans CJK JP&
&Noto Sans CJK SC&
&Noto Sans CJK TC&
& &
&
&monospace&
&


&Noto Sans Mono CJK JP&
&Noto Sans Mono CJK SC&
&Noto Sans Mono CJK TC&
& &
&

可以看到,JP 優先於 SC。

直接將 JP 移至最後即可。

修改後的配置文件:

&
&
&
&
&sans-serif&
&


&Noto Sans CJK SC&
&Noto Sans CJK TC&
&Noto Sans CJK JP&
& &
&
&monospace&
&


&Noto Sans Mono CJK SC&
&Noto Sans Mono CJK TC&
&Noto Sans Mono CJK JP&
& &
&


也可以通過fontconfig,修改local.conf,轉載一下ubuntu forum的羅非魚的做法。

搞了一上午,問題解決了,先卸載 apt-get remove fonts-noto-cjk .

如果不卸載,直接寫 /etc/fonts/local.conf ,不知道什麼原因,系統不調用它。

有明白原理的高手解釋一下。

這樣沒有任何漢字輸入法了。

下載noto,解壓後  cp /home/noto/* /usr/share/fonts/opentype/noto

編輯一個文件 /etc/fonts/local.conf

&

&

&

&serif&

&

&

&Noto Sans CJK SC Regular&

&Noto Sans CJK TC Regular&

&Noto Sans CJK JP Regular&

&Noto Sans CJK KR Regular&

&

&

&

&

&sans-serif&

&

&

&Noto Sans CJK SC Regular&

&Noto Sans CJK TC Regular&

&Noto Sans CJK JP Regular&

&Noto Sans CJK KR Regular&

&

&

&

&

&monospace&

&

&

&Noto Sans CJK SC Regular&

&Noto Sans CJK TC Regular&

&Noto Sans CJK JP Regular&

&Noto Sans CJK KR Regular&

&

&

&

&

&Noto Sans CJK&

&

&

&false&

&

&

&hintfull&

&

&

&

這樣調用漢字的順序,先簡體漢字 再繁體漢字  日文   韓文 。

重新測試百度百科的門口,現象消失。

原文地址:這個字體超級怪哈

補充一下debian只能識別noto CJK中的日文字形的解決方案:

方案一:直接下載以中文為默認語言的CJK OTF字體(包括簡繁日韓)。下載地址:https://noto-website-2.storage.googleapis.com/pkgs/NotoSansCJKsc-hinted.zip

方案二:也可以直接用fontforge或windows下的fontcreator把notosanscjk.ttc拆開成ttf文件,再手動安裝這些ttf文件。


推薦閱讀:

Mir 和 Wayland 等 X11 替代品,相比 X11 有哪些具體的優點?
為什麼 Linus Torvalds 不願意將 Linux 變成 GPLv3 授權?
Linux 當中選擇的軟體包 i386 和 i686 有和區別?
只使用 Linux 系統是怎樣一種體驗?
如何反駁「Powershell 比 Linux 終端好得多」這種說法?

TAG:Linux | Ubuntu | 字體渲染 |