现在Arch Wiki上修正简体中文显示为异体字形的方法好像行不通了

我是照着Arch Wiki上操作的,但是 但是输入 fc-match -s | grep 'Noto Sans CJK' 出来的还是 NotoSansCJK-Regular.ttc: "Noto Sans CJK JP" "Regular"

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

<?xml version="1.0"?>
<!DOCTYPE fontconfig SYSTEM "fonts.dtd">
<fontconfig>
    <alias>
        <family>sans-serif</family>
        <prefer>
            <family>Noto Sans CJK SC</family>
            <family>Noto Sans CJK TC</family>
            <family>Noto Sans CJK HK</family>
            <family>Noto Sans CJK JP</family>
            <family>Noto Sans CJK KR</family>
        </prefer>
    </alias>
    <alias>
        <family>serif</family>
        <prefer>
            <family>Noto Serif CJK SC</family>
            <family>Noto Serif CJK TC</family>
            <family>Noto Serif CJK HK</family>
            <family>Noto Serif CJK JP</family>
            <family>Noto Serif CJK KR</family>
        </prefer>
    </alias>
    <alias>
        <family>monospace</family>
        <prefer>
            <family>Noto Sans Mono CJK SC</family>
            <family>Noto Sans Mono CJK TC</family>
            <family>Noto Sans Mono CJK HK</family>
            <family>Noto Sans Mono CJK JP</family>
            <family>Noto Sans Mono CJK KR</family>
        </prefer>
    </alias>
</fontconfig>

而且我也执行了fc-cache -fv

其他部分中文正常,但是中间那里就字体爆炸……

而且为什么中文字体和日文字体大小会不一样呢

我记得我也是按照wiki的这个方法做的,现在只有浏览器的字体有问题,我也懒得折腾了…

真的,對中文字體要求太完美在這兒是件痛苦的事 :sweat_smile:

这好像是ff某次更新后产生的一个问题,感觉是ff无法正确的识别unicode的所在分区,我是把about:config中font设置中所有和sans-serif和monospace以及中文相关的设置都手动改成了一种字体,似乎会好一些

But my font.cjk_pref_fallback_order is zh-cn,zh-hk,zh-tw,ja,ko

I think Manjaro should do it at the start. When I choose installing as zh_CN, please put CJK to zh_CN, so as zh_TW and ja_JP, etc.

今天刚刚安装的系统,是可用的……

[onetoken@Laptop ~]$ fc-match -s | grep 'Noto Sans CJK' 
NotoSansCJK-Regular.ttc: "Noto Sans CJK SC" "Regular"

I have deleted the old Manjaro and installed 20.2. Solved!

1 Like

这个是因为安装了微软字体导致的:

我是这么装的

# mkdir /usr/share/fonts/WindowsFonts
# cp /windows/Windows/Fonts/* /usr/share/fonts/WindowsFonts
# chmod 755 /usr/share/fonts/WindowsFonts/*
# fc-cache -fv

连、设备等字体较大的字是微软雅黑,其它不知道是什么字体……不是Noto Sans,因为它的“的”字的白字旁右边一竖不出头。

注意,其他加粗的字是日文的汉字:

解决方法是:删掉所有带Gothic的字体(可以在字体设置里面更改显示文本为“请输入邮件地址”等,如果只能显示入等几个字而且是日文字形,删除即可)

solution: delete all the Gothic fonts like Microsoft Gothic and Yu Gothic.

关于中文字体,我的方法是编辑

$cat /etc/fonts/local.conf

<?xml version="1.0"?>
<!DOCTYPE fontconfig SYSTEM "fonts.dtd">
<fontconfig>
    <alias>
        <family>serif</family>
        <prefer>
            <family>New York</family>
            <family>PingFang SC</family>
            <family>Noto Color Emoji</family>
        </prefer>
    </alias>
    <alias>
        <family>sans-serif</family>
        <prefer>
            <family>SF Pro</family>
            <family>PingFang SC</family>
            <family>Noto Color Emoji</family>
        </prefer>
    </alias>
    <alias>
        <family>monospace</family>
        <prefer>
            <family>SFMono Nerd Font Mono</family>
            <family>PingFang SC</family>
            <family>Noto Color Emoji</family>
        </prefer>
    </alias>
</fontconfig>

发现了这个解决方案后,我再也没有碰到过 Linux 下中文字体的相关问题。

PingFang SC,SFMono 等字体是从 Mac OS 的虚拟机拷贝过来的。如果把 Windows 和 Mac OS 的字体都拷贝过来,可以在浏览器上获得很好的效果,特别是高分屏:)

希望能有所帮助。

1 Like

我这里的确有类似的文件(见第一条),但是微软自带的一些字体有……缺陷

刚才试验了一下,不止微软的某些字体,还有 Apple 的某些字体以及其他一些字体(基本上是非中文字体)也会受到影响。只不过我几乎没见过这些字体,所以没发现这个问题。

可能比较好的方法就是不用或者删除这些字体了吧。。。

没错,可以在“系统设置”里面选择“字体管理”,更改示例文字,输入一段中文比如“连接其他设备”,如果只能显示部分字样(而不是全显示/全不显示),说明这个字体有问题。

这又是怎么回事……我电脑里没装PingFang SC啊,QQ两个字应该是苹方的,但是大部分被换成了宋体,这是QQ那边自己的问题吧

用你的配置试了一下,Firefox 的渲染效果如图(在右下角的“字体”选项卡可以查看)

被蓝色选中的字体是网络字体 PingFang,其他的是本地的 Noto Serif CJK SC,很奇怪。

在 Chromium 上渲染正常 :rofl:

1 Like

我发现了,的确是这样:


这是同一台电脑的Firefox和Chrome……

甚至在windows10上面,Edge vs Firefox也会出现类似的事情,只不过firefox是用微软雅黑替代罢了

之前我发的那张图里面,用网页查看器就能发现它只用了PingFang一种字体而没有替代,我发给firefox吧

1 Like

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