In those applications shipped with manjaro, like system settings, Dolphin, konsole. I found 3 commonly used characters"一" “体” “西” are displayed in serif style while other displayed in bold style.
I cant tell whether they are different fonts or the different types of the same font.
This happens to most fonts that don’t support Chinese.(ex. Hack, Noto Sans)
Here is a quick example:
The Quick Brown Fox Jumps Over The Lazy Dog
西体一
四休二
I currently know that Source Han Sans CN works. But is there any way to solve this without changing the font? (Cause i want to use Hack font to edit code and some Chinese note.)
Maybe there is a way to set the fallback order, or force Chinese to be displayed in certain font?
Thanks a lot for reading this.
I think posting my fonts.conf
might be helpful:
<?xml version='1.0'?>
<!DOCTYPE fontconfig SYSTEM 'urn:fontconfig:fonts.dtd'>
<fontconfig>
<!--
Artificial oblique for fonts without an italic or oblique version
-->
<match target="font">
<!-- check to see if the font is roman -->
<test name="slant">
<const>roman</const>
</test>
<!-- check to see if the pattern requested non-roman -->
<test target="pattern" name="slant" compare="not_eq">
<const>roman</const>
</test>
<!-- multiply the matrix to slant the font -->
<edit mode="assign" name="matrix">
<times>
<name>matrix</name>
<matrix>
<double>1</double>
<double>0.2</double>
<double>0</double>
<double>1</double>
</matrix>
</times>
</edit>
<!-- pretend the font is oblique now -->
<edit mode="assign" name="slant">
<const>oblique</const>
</edit>
<!-- and disable embedded bitmaps for artificial oblique -->
<edit mode="assign" name="embeddedbitmap">
<bool>false</bool>
</edit>
</match>
<!--
Synthetic emboldening for fonts that do not have bold face available
-->
<match target="font">
<!-- check to see if the weight in the font is less than medium which possibly need emboldening -->
<test name="weight" compare="less_eq">
<const>medium</const>
</test>
<!-- check to see if the pattern requests bold -->
<test target="pattern" name="weight" compare="more_eq">
<const>bold</const>
</test>
<!--
set the embolden flag
needed for applications using cairo, e.g. gucharmap, gedit, ...
-->
<edit mode="assign" name="embolden">
<bool>true</bool>
</edit>
<!--
set weight to bold
needed for applications using Xft directly, e.g. Firefox, ...
-->
<edit mode="assign" name="weight">
<const>bold</const>
</edit>
</match>
<match target="font">
<edit mode="assign" name="hinting">
<bool>true</bool>
</edit>
</match>
<match target="font">
<edit mode="assign" name="hintstyle">
<const>hintslight</const>
</edit>
</match>
<dir>~/.fonts</dir>
</fontconfig>
SOLVED
I just added a line in every family in the file /etc/fonts/conf.d/65-nonlatin.con
<family>Source Han Sans CN</family> <!-- zh -->