如何在Linux上直接从C ++或使用system命令安装自定义字体? 我的意思是像Windows中的AddFontResource一样。
答案 0 :(得分:2)
答案取决于分发和运行程序的工作流程。如果它是由系统管理员安装的软件包,则在安装软件包时,应将字体放入系统字体目录(通常是/usr/share/fonts/
下的目录,例如/usr/share/fonts/ttf/
)。如果程序是由非特权用户安装的,那么字体文件应该进入$HOME/.fonts/
目录。
如果字体是在系统范围内安装的,那么它[自动]出现在系统中(典型的Linux发行版已经在包管理子系统中有适当的钩子来重建字体缓存)。如果字体是“手动”安装的(例如,用户只是将文件复制到她的$HOME/.fonts/
),则可能需要调用fc-cache --force
。
更详细的解释:现代Linux安装中的字体由名为fontconfig的子系统管理。此子系统具有系统范围的配置(默认驻留在/etc/fonts/fonts.conf
和/etc/fonts/conf.d/
),并且每个用户配置(various locations都已选中)。 Fontconfig维护系统中注册的所有字体的缓存。当希望注册另一种字体时,他或她将字体文件放入fontconfig
已知的目录之一,并启动重建具有fc-cache
实用程序的缓存。如果字体是在系统范围内安装的,那么打包系统通常具有适当的挂钩,当在“知名字体目录”中创建或删除文件时,它会自动调用fc-cache
。