Specific simplified Chinese characters font displayed weirdly

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 -->

If you have solved this issue, you could mark it as solution.

1 Like

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 -->

This topic was automatically closed 2 days after the last reply. New replies are no longer allowed.