Fontconfig
提供字型設定、枚舉與取代的自由軟體函式庫
Fontconfig是一种与字体相关的计算机程序库,用于配置、定制全系统的字体,或将字体提供给应用程序使用。此库最初是由基思·帕卡德(Keith Packard)开发维护的,现由贝赫达德·埃斯法赫博德(Behdad Esfahbod)维护。Fontconfig是自由软件,采用宽松开放版权许可证。[1]
开发者 | 基思·帕卡德 |
---|---|
当前版本 | 2.14.1(2022年10月21日 | )
预览版本 | 2.13.96(2022年2月4日 | )
源代码库 | |
操作系统 | Unix-like 系统 |
类型 | 字体处理库 |
许可协议 | MIT许可证 |
网站 | www |
用法
编辑应用程序可以通过两种方式从fontconfig获得字体:
- 查询
- 模式匹配。 Fontconfig 将返回和指定模式最匹配的字体。
为了进行字体匹配,fontconfig 保存所有已经安装字体的大量排版信息,例如字体名称、风格、大小、DPI、Unicode覆盖范围等。这些信息也被用来执行字体替换。
文件
编辑Fontconfig使用XML格式的配置文件。 Fontconfig的DTD文件通常位于/etc/fonts/fonts.dtd。
主配置文件是/etc/fonts/fonts.conf,引用少量的其他配置文件(有可能不存在):
- /etc/fonts/local.conf
- /etc/fonts/conf.d directory
- ~/.fonts.conf
一个简单的配置文件例子:
<?xml version="1.0"?>
<!DOCTYPE fontconfig SYSTEM "fonts.dtd">
<fontconfig>
<!-- Enable antialiasing for all fonts -->
<match target="font">
<edit mode="assign" name="antialias"><bool>true</bool></edit>
</match>
</fontconfig>
更多细节,请参见fontconfig manual(页面存档备份,存于互联网档案馆) 。
工具包
编辑fontconfig提供了8个命令行工具来管理字体配置:
- fc-list:列出fontconfig知道的所有和模式匹配的字体。
- fc-match:匹配字体模式(默认为空模式),使用正常的fontconfig匹配规则来寻找最合适的字体。
- fc-cache:创建一个所有FreeType于指定目录(或者配置文件中指定的所有目录)中可读字体的缓存。
- fc-cat:从缓存文件或者相关字体目录中读取字体信息,并且以ASCII格式输出。
- fc-query:查询字体文件并报告产生的模式。
- fc-scan:扫描字体文件和目录并报告产生的模式。
- fc-pattern:列举匹配提供模式的最佳字体。
- fc-validate:验证字体文件并报告结果。
Fontconfig建立在FreeType(一个字体渲染器)和expat(一个XML解析库)之上,这两个都是自由软件。
Fontmatrix 是一个有图形用户接口的交互工具,可以使用fontconfig列出可用的字体以及显示信息。
版本号说明
编辑当fontconfig接近发布时,最末位版本号用大于等于90的数字表示。
外部链接
编辑参见
编辑- X逻辑字体说明(XLFD)(英文)
引用
编辑- ^ fontconfig-2.6.0.tar.gz (see file "COPYING"). freedesktop.org. [2020-07-16]. (原始内容存档于2010-11-23).
Permission to use, copy, modify, distribute, and sell this software and its documentation for any purpose is hereby granted without fee, provided that the above copyright notice appear in all copies and that both that copyright notice and this permission notice appear in supporting documentation, and that the name of Keith Packard not be used in advertising or publicity pertaining to distribution of the software without specific, written prior permission...