阿里巴巴普惠体究竟是什么体?serif还是sans serif?

Noto的SC字体有serif,sans serif的正式称呼。
列出系统所有的Sans:

fc-list | grep Noto |grep  SC|grep  Sans
/usr/share/fonts/opentype/noto/NotoSansCJK-Regular.ttc: Noto Sans CJK SC:style=Regular
/usr/share/fonts/opentype/noto/NotoSansCJK-Black.ttc: Noto Sans CJK SC,Noto Sans CJK SC Black:style=Black,Regular
/usr/share/fonts/opentype/noto/NotoSansCJK-Light.ttc: Noto Sans CJK SC,Noto Sans CJK SC Light:style=Light,Regular
/usr/share/fonts/opentype/noto/NotoSansCJK-Thin.ttc: Noto Sans CJK SC,Noto Sans CJK SC Thin:style=Thin,Regular
/usr/share/fonts/opentype/noto/NotoSansCJK-DemiLight.ttc: Noto Sans CJK SC,Noto Sans CJK SC DemiLight:style=DemiLight,Regular
/usr/share/fonts/opentype/noto/NotoSansCJK-Medium.ttc: Noto Sans CJK SC,Noto Sans CJK SC Medium:style=Medium,Regular
/usr/share/fonts/opentype/noto/NotoSansCJK-Bold.ttc: Noto Sans Mono CJK SC:style=Bold
/usr/share/fonts/opentype/noto/NotoSansCJK-Regular.ttc: Noto Sans Mono CJK SC:style=Regular
/usr/share/fonts/opentype/noto/NotoSansCJK-Bold.ttc: Noto Sans CJK SC:style=Bold

列出系统所有的serif:

fc-list | grep Noto |grep  SC|grep  Serif
/usr/share/fonts/opentype/noto/NotoSerifCJK-Bold.ttc: Noto Serif CJK SC:style=Bold
/usr/share/fonts/opentype/noto/NotoSerifCJK-SemiBold.ttc: Noto Serif CJK SC,Noto Serif CJK SC SemiBold:style=SemiBold,Regular
/usr/share/fonts/opentype/noto/NotoSerifCJK-Regular.ttc: Noto Serif CJK SC:style=Regular
/usr/share/fonts/opentype/noto/NotoSerifCJK-ExtraLight.ttc: Noto Serif CJK SC,Noto Serif CJK SC ExtraLight:style=ExtraLight,Regular
/usr/share/fonts/opentype/noto/NotoSerifCJK-Light.ttc: Noto Serif CJK SC,Noto Serif CJK SC Light:style=Light,Regular
/usr/share/fonts/opentype/noto/NotoSerifCJK-Black.ttc: Noto Serif CJK SC,Noto Serif CJK SC Black:style=Black,Regular
/usr/share/fonts/opentype/noto/NotoSerifCJK-Medium.ttc: Noto Serif CJK SC,Noto Serif CJK SC Medium:style=Medium,Regular

我们看看阿里巴巴的普惠字体。

fc-list |grep  Alibaba | wc -l
80

字体很多。

fc-list |grep  Alibaba | grep  -i  Serif | wc -l
0
fc-list |grep  Alibaba | grep  -i  Sans | wc -l
0

以serif、sans serif来区分,阿里巴巴普惠体究竟是什么体?

阅读 901
1 个回答

fc-list的作用是列出所有可用字体,包括路径,fc-match才是列出匹配的字体:

fc-match -s 'serif'
fc-match -s 'sans-serif'
fc-match -s sans-serif:lang=zh
fc-match -s serif:lang=en

不加 -s 只会列出第一优先匹配的字体。想要调整字体优先级就需要修改fontconfig,详见: https://www.freedesktop.org/wiki/Software/fontconfig/

以及 Arch 的文档(新手入门更推荐这个): https://wiki.archlinux.org/title/Font_configuration

以及不求甚解式的照抄快速使用: https://wiki.archlinux.org/title/Font_configuration/Examples

比如你期望阿里巴巴普惠体为第一优先的无衬线字体,可以考虑:

~/.config/fontconfig/fonts.conf:

<?xml version="1.0"?><!DOCTYPE fontconfig SYSTEM "urn:fontconfig:fonts.dtd">
<fontconfig>
  <match>
    <test name="lang" compare="contains">
      <string>zh</string>
    </test>
    <test name="family">
      <string>sans-serif</string>
    </test>
    <edit name="family" mode="prepend">
      <string>阿里巴巴普惠体 3.0</string>
    </edit>
  </match>
</fontconfig>

字体名可以从fc-list的输出中看出来。

fontconfig并没有那么智能,能自动区分你的字体,都是通过一个个配置文件(xml格式的conf文件)配置出来的,通常发行版提供的fontconfig包都会默认自带一些配置,通常都在 /etc/fonts/fonts.conf以及附带的 /etc/fonts/conf.d/给你配置了绝大多数开箱即用的配置,涵盖了常见的字体(对于中文字体绝大多数发行版应该默认优化的是文泉驿系列或Noto CJK系列)。如果你用的字体并没有在fontconfg中进行优化,那么你就必须自己写配置文件调整了

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题
宣传栏