Ubuntu 安装 TrueType 字体(支持多语言字体)
安装字体
ttf-mscorefonts-installer 包
如果只需要英文字体,可以安装ttf-mscorefonts-installer
包,该包提供了微软(Windows)核心字体:如 Arial、Comic Sans MS、Courier New、Times New Roman、Verdana、Webdings等。
sudo apt-get install ttf-mscorefonts-installer
安装时需要用户同意 EULA 协议,直接回车 OK 即可。完成后需要重新生成 fontconfig 缓存:
sudo apt-get install fontconfig # 需要先安装 fontconfig
fc-cache -fv
能看到输出如下信息(msttcorefonts 目录加载了60个字体),即说明安装成功。
...
/usr/share/fonts/truetype/msttcorefonts: caching, new cache contents: 60 fonts, 0 dirs
...
fc-cache: succeeded
任意 TrueType 字体(中文字体)
- 在
/usr/share/fonts
目录下建立一个新文件夹,推荐在子目录truetype
下建立与该字体同名的目录。以HarmonyOS Sans(可免费商用)为例:cd /usr/share/fonts/truetype # 进入字体索引目录 sudo mkdir HarmonyOS_Sans_SC # 也可以随意命名
- 将下载的 TrueType 字体(.ttf/.ttc)复制到刚创建的目录。如果你自己的Windows系统已有该字体,可以去
C:\Windows\Fonts
复制。 - 修改字体文件的权限,使所有用户可访问(默认上传的文件权限为
000
,可以加载到缓存但无法使用):sudo chmod 644 * # 或者 chmod 644 *.ttf *.ttc
- 建立字体配置(可跳过):
sudo mkfontscale && sudo mkfontdir
- 更新字体缓存:
fc-cache -fv
- 如果
.ttc
字体无法识别,可以将文件拓展名改为.ttf
,重新更新字体缓存。
/usr/share/fonts 目录
在执行 fc-cache
命令时会打印出它检索了哪些字体目录,其中最主要的目录就是 /usr/share/fonts
,其它还包括用户自己的字体目录等等。实际上,许多 Linux 发行版都是在 /usr/share/fonts
目录下存放系统公共字体,比如 Alpine Linux 等,因此这些发行版安装任意字体的步骤和上一节中的介绍是一样的:上传字体、设置文件权限、更新缓存。
查看已安装的字体
可以使用fc-list
命令查看所有可用字体。以下是一些用法的实例:
fc-list # 打印所有字体信息
fc-list : family # 打印所有字体(:)的名称(family), 冒号表示匹配规则, 前后要空格
fc-list :lang=zh # 打印所有中文(:lang=zh)字体信息
fc-list :lang=zh file # 打印所有中文(:lang=zh)字体的文件名(file)
fc-list >fonts.txt # 导出信息至 font.txt
Python 环境下(使用 conda 时可用的字体可能不同)可以使用matplotlib
的font_manager库查看:参考
from matplotlib.font_manager import FontManager
fonts = set(f.name for f in FontManager().ttflist)
print('Fonts from matplotlib:')
for f in sorted(fonts): print('\t' + f)
Python 环境下字体仍然不可用
运行 Python 时无法渲染中文字体一般会有如下报错:
UserWarning: Glyph 21629 (\N{CJK UNIFIED IDEOGRAPH-547D}) missing from current font.
如果已经安装字体并且更新缓存之后还是无法渲染中文字体,可能是因为 matplotlib
的字体缓存未刷新。在自己的用户目录下删除缓存文件~/.cache/matplotlib/fontlist-***.json
即可:
rm ~/.cache/matplotlib/*.json
最后更新于:2023年4月23日。
文章目录
关闭
共有 0 条评论