首先,确保fc-list
、fc-cache
命令可用,如果该命令不存在,需要安装该命令:https://command-not-found.com/fc-list
sh
fc-list
输出:
/usr/share/fonts/truetype/dejavu/DejaVuSerif-Bold.ttf: DejaVu Serif:style=Bold
/usr/share/fonts/truetype/dejavu/DejaVuSansMono.ttf: DejaVu Sans Mono:style=Book
/usr/share/fonts/truetype/dejavu/DejaVuSans.ttf: DejaVu Sans:style=Book
/usr/share/fonts/truetype/dejavu/DejaVuSans-Bold.ttf: DejaVu Sans:style=Bold
/usr/share/fonts/truetype/dejavu/DejaVuSansMono-Bold.ttf: DejaVu Sans Mono:style=Bold
/usr/share/fonts/truetype/dejavu/DejaVuSerif.ttf: DejaVu Serif:style=Book
fc-list :lang=zh
输出为空,代表系统里不存在中文字体,需要安装你想要的中文字体
下载中文字体
通过sudo apt-get install直接下载
一些中文字体是可以直接apt-get install来下载的:
sh
sudo apt-get install fonts-noto-cjk fonts-arphic-uming ttf-wqy-zenhei
通过复制字体ttf文件到特定目录安装字体
通过各种方法获得字体的ttf文件后,可以将它们放在用户目录下:
sh
~/.fonts
~/.local/share/fonts
如果希望为服务器上的所有用户安装字体,可以将它们放在系统目录下:
sh
/usr/share/fonts
/usr/local/share/fonts
将文件放好之后,需要刷新字体缓存:
sh
fc-cache -fv
此时terminal内也会输出会从哪些目录读取字体ttf文件
matplotlib
在使用python的matplotlib库时,为了画中文图表,我们需要用任意一种中文字体,这里以Noto Sans CJK JP
为例
py
matplotlib.rcParams['font.family'] = 'Noto Sans CJK JP'
但此时系统里并不存在该字体,运行会失败,所以需要先下载中文字体:
sh
sudo apt-get install fonts-noto-cjk
并清除matplotlib缓存:
sh
rm -rf ~/.cache/matplotlib
完成后即可成功运行