为 Arch Linux 创建字体软件包
Windows 中文版默认拥有非常多的中文字体。但是 Arch Linux 的中文字体则需要自己手动安装。目前有文泉驿微米黑、文泉驿正黑、Google Noto Font 和思源黑体等字体可以选择。
以上字体的 Arch Linux 包名称分别为 wqy-microhei
、wqy-zenhei
、noto-fonts-cjk
、adobe-source-han-sans-cn-fonts
、adobe-source-han-serif-cn-fonts
。通过 pacman
命令即可安装。这些开源字体只提供黑体和宋体,而我们中文办公有时还需要仿宋和楷体,前端开发和设计工作更是对字体有着更大的需求。此时需要额外安装字体。
将你需要使用的字体文件,一般后缀名为 otf、ttf 或 ttc 拷贝到/usr/share/fonts/
(全局安装)或~/.local/share/fonts
(为当前用户安装)文件夹中,最后在字体文件夹执行:
1 | fc-cache && mkfontscale && mkfontdir |
即可安装成功。
不过在 Arch Linux 下推荐你创建字体包来安装字体。这样使得 pacman 在以后能够更新或者移除这些字体。我上一篇文章介绍了如何创建软件包。我们以安装方正黑体、方正书宋、方正楷体、方正仿宋为例来介绍如何创建字体包。这四款方正字体都是免费商用的。但是需要去方正字体官网获得授权并下载。
准备字体文件和许可证
在上文所说的方正官网获得授权并下载这四款免费字体。
登录并获得字体就可以下载了,会出现“方正字库家庭用户许可协议”和“方正字库字体软件评估协议”,同意就好了。可以选择下载TTF版和OTF版,我选择的是OTF版。
将字体放在你准备打包的文件夹里面。然后创建 PKGBUILD 文件。进入下一步。
编辑 PKGBUILD 文件
以下是我编辑的 PKGBUILD 文件。
1 | pkgname=otf-FangZheng-fonts |
pkgname=''
一般字体包命名原则为:
- TTF字体:ttf-FontName
- OTF字体:otf-FontName
如果字体是可变字体,则添加后缀 -variable。
pkgver
为版本号;
pkgrel
为编译次数;
url
软件包官网,我这里写得方正字库官网;
pkgdesc=''
包描述应至少包含单词字体以及它是什么类型的字体:Sans-Serif,Serif 或 Monospace。
arch = ()
字体是架构无关的。使用 arch = (any)
。
license=()
这里写 OFL,GPL 等许可协议。方正字体有他自己的协议,所以我没有写这个。
depends=()
字体不依赖于任何东西。但是,包库中的许多包写着依赖 fontconfig
和 xorg-mkfontscale
。当使用安装脚本更新字体缓存时,确实需要这两个依赖。但是,其实如果您安装了 fontconfig
或 Xorg-mkfontscale
,则所有/usr/share/fonts/
中的字体都将被创建缓存。
source=()
一般我们把字体压缩打包为 tar.bz2 格式,然后把这个压缩包设置为 source 。
但是如果你要安装的字体不多时,你可以把每个字体文件挨个写入 source。我这里是每个文件分别写入的。
大多数情况下字体包只需要一个 package 函数就够用了。
我写的package 函数的意义是。
创建文件夹 /usr/share/fonts/$pkgname
将字体文件安装到 /usr/share/fonts/$pkgname
注意,该函数内
$pkgdir/
为虚拟根目录(fakeroot),$srcdir/
为源文件目录。
最后在文件下进入终端,用 makepkg -g >> PKGBUILD
命令生成 md5sums
就完成了 PKGBUILD 文件的编写。
生成字体软件包
确保已经安装 base-devel 包组。
在文件夹下运行
1 | makepkg |
就自动构建出了 otf-FangZheng-fonts-2.1-6-any.pkg.tar.zst
软件包。
安装字体包
使用命令:
1 | sudo pacman -U otf-FangZheng-fonts-2.1-6-any.pkg.tar.zst |
即可安装该字体包。
打开 WPS 或者 liberoffice 就可以愉快的使用这几个字体了。
进阶
高端玩家还可以对字体配置 fontconfig。对你的字体包所包含的字体进一步优化调整。
配置文件一般安装在
/usr/share/fontconfig/conf.avail/
和
/usr/share/fontconfig/conf.default/
文件夹中。default 中放置配置,软链接到 avail 中启用配置。
具体玩法参见 fontconfig 用户文档
你可以对你的字体进行微调,也可以设置你的字体属于哪个家族。也可以设置一些映射替代方案。