- 数据集
【免费下载链接】codeface
Typefaces for source code beautification
Codeface 是一个面向开发者的等宽(monospaced)编程字体画廊与字体仓库,核心使命是"Typefaces for Source Code Beautification"(源码美化字体)。它既是一份可浏览、可对比的字体索引,也是可直接下载二进制文件与许可证的字体分发中心,主画廊(README)、位图字体画廊(BITMAP.md)与中日韩字体画廊(CJK.md)中的字体都通过该仓库分发。读完本文,你将掌握 Codeface 的完整目录结构、字体归档的下载与校验方法、主画廊的全部字体清单与连字能力标注,以及如何借助仓库内置的vertical_metrics.txt参考表与font-line工具,把任意一款字体调整到自己习惯的行距。
项目定位与仓库结构
Codeface 仓库以"字体系列 → 字体二进制 + 许可证 + 垂直度量表"为基本单元组织内容,核心目录如下:
fonts/:主画廊(Main Gallery)字体,按字体系列分目录存放,每个目录包含.ttf/.otf字体文件、license.txt与vertical_metrics.txt;cjk-fonts/:中日韩字体画廊(CJK.md)字体,覆盖简繁中文、日文与韩文字符集;images/gallery/:各类体的展示 specimen 图片(含-STP、-STPC、-dark、-light四种形态);samplecode/:用于渲染 specimen 的示例代码与样本文本(见 samplecode.c);scripts/:自动生成 specimen 图片的渲染脚本(见 render.py)。
仓库在 About 页面(ABOUT.md)明确说明:字体名链接会打开对应字体目录,你可以在其中下载字体文件,目录中还附带该字体的许可证文本。三个画廊的归档各自独立打包,并随画廊内字体更新同步刷新。
快速下载:字体归档、SHA1 校验与 curl 命令
README 提供了"一键下载全部字体"的归档方案。点击归档链接即可下载 Codeface 主画廊与位图画廊集合中的全部字体二进制,归档信息如下:
| 归档文件 | SHA1 | 大小 |
|---|---|---|
codeface-fonts.zip | 4709e7b6f63d1e2c31f7af0d56b7e1f75a846476 | 31.4 MB |
codeface-fonts.tar.xz | e4416c72e331d71e55fd56f2fba38cfda7672f85 | 16.5 MB |
也可以直接用curl命令行拉取归档:
$ curl -OL https://github.com/chrissimpkins/codeface/releases/download/font-collection/codeface-fonts.zip$ curl -OL https://github.com/chrissimpkins/codeface/releases/download/font-collection/codeface-fonts.tar.xz建议下载后立即校验完整性,例如 Linux/macOS 下使用sha1sum:
$ sha1sum codeface-fonts.zip 4709e7b6f63d1e2c31f7af0d56b7e1f75a846476 codeface-fonts.zip与表内 SHA1 一致即可确认归档未被破坏。若仅需要中日韩字体的归档(体积明显更大,见 CJK.md 的下载章节),应前往 CJK 画廊单独获取codeface-cjk-fonts.zip/codeface-cjk-fonts.tar.xz,避免下载与所需字符集无关的字体。
主画廊字体全览
主画廊(The Gallery)是 README 的主体,收录了数十款开源等宽字体。每种字体均附带许可证链接,以及 4 张 specimen 展示图。以下按 README 原始顺序完整列出(带连字能力标注的为 Fira Code、Hasklig、Monoid 三款):
| 字体 | 目录 | 特点 |
|---|---|---|
| agave | 许可证 | |
| Anonymous Pro | 许可证 | |
| Aurulent Sans Mono | 许可证 | |
| AverageMono | 许可证 | |
| Bitstream Vera Sans Mono | 许可证 | |
| BPmono | 许可证 | |
| Bront | 许可证 | |
| CamingoCode | 许可证 | |
| CMU Typewriter Text | 许可证 | |
| Courier Prime Code | 许可证 | |
| Cousine | 许可证 | |
| CPMono_v07 | 许可证 | |
| Cutive Mono | 许可证 | |
| Droid Sans Mono | 许可证 | |
| Edlo | 许可证 | |
| Fantasque Sans Mono | 许可证 | |
| Fira Code | 许可证 | 支持连字(Ligatures) |
| Fira Mono | 许可证 | |
| FreeMono | 许可证 | |
| Generic Mono II | 许可证 | |
| Hack | 许可证 | |
| Hasklig | 许可证 | 支持连字(Ligatures) |
| Hermit | 许可证 | |
| Inconsolata | 许可证 | |
| Iosevka | 许可证 | |
| Iosevka Slab | 许可证 | |
| Kawkab Mono | 许可证 | |
| Lekton | 许可证 | |
| Liberation Mono | 许可证 | |
| Linux Libertine Mono | 许可证 | |
| Luculent | 许可证 | |
| Luxi Mono | 许可证 | |
| Mensch | 许可证 | |
| Meslo LG M DZ | 许可证 | |
| Metrickal | 许可证 | |
| monoOne | 许可证 | |
| MonoSpatial | 许可证 | |
| monofur | 许可证 | |
| Monoid | 许可证 | 支持连字(Ligatures) |
| Monospace | 许可证 | |
| MonospaceTypewriter | 许可证 | |
| M+ 1m | 许可证 | |
| M+ 1mn | 许可证 | |
| M+ 2m | 许可证 | |
| Nimbus Mono | 许可证 | |
| NotCourierSans | 许可证 | |
| Office Code Pro | 许可证 | |
| Oxygen Mono | 许可证 | |
| Panic Sans | 许可证 | |
| Pointfree | 许可证 | |
| ProFontWindows | 许可证 | |
| PT Mono | 许可证 | |
| Roboto Mono | 许可证 | |
| saxMono | 许可证 | |
| Share-TechMonoTrue | 许可证 | |
| SmallTypeWriting | 许可证 | |
| Source Code Pro | 许可证 | |
| Sudo | 许可证 | |
| Terminus | 许可证 | |
| TeX Gyre Cursor | 许可证 | |
| Ubuntu Mono | 许可证 | |
| Verily Serif Mono | 许可证 | |
| Whois | 许可证 |
每种字体的 4 张 specimen 图片采用统一命名约定,分别展示不同渲染形态:
-STP:带语法高亮的纯文本(Syntax-highlighted Text Plain)示例;-STPC:带语法高亮的紧凑纯文本(compact)示例;-dark:深色语法主题下的代码渲染效果;-light:浅色语法主题下的代码渲染效果。
以 Hack 为例,其四张图分别为 hack-STP.png、hack-STPC.png、hack-dark.png、hack-light.png。这种"同一样本、四种视图"的呈现方式,让你能直观对比同一字体在不同主题与紧凑度下的可读性表现。
新增特性:vertical_metrics.txt 与行距定制工作流
README 的 "New!" 栏目介绍了仓库的一项重要新增:每个字体系列目录都附带一份垂直度量参考表vertical_metrics.txt。将表内数据与font-line工具配合使用,即可把任意一款字体修改为你习惯的行距——既可以收紧行距让一屏看到更多代码,也可以放宽行距提升长时间阅读的舒适度。
垂直度量表记录的是字体在head、OS/2、hhea三张 OpenType 表内的关键值,以及由此推导出的高度计算与比例关系。以 Hack 的度量表 为例,核心字段如下:
| 字段 | 数值 | 含义 |
|---|---|---|
| Units per Em | 2048 | 字体设计单位(UPM),Hack 为 2048 级网格 |
| [OS/2] TypoAscender | 1556 | 排版上升部 |
| [OS/2] TypoDescender | -492 | 排版下降部 |
| [OS/2] TypoLineGap | 410 | 排版行间隙 |
| [OS/2] WinAscent | 1901 | Windows 平台上升部 |
| [OS/2] WinDescent | 483 | Windows 平台下降部 |
| [hhea] Ascent / Descent | 1901 / -483 | hhea 表上升/下降部 |
| [hhea] LineGap | 0 | hhea 行间隙 |
| (Typo Asc + Desc + Linegap) / UPM | 1.2 | 基于 Typo 表的总行高比值 |
| (winAsc + winDesc) / UPM | 1.16 | 基于 Windows 表的总行高比值 |
不同字体因设计目标不同,度量差异明显。例如 Iosevka 的度量表 采用 1000 UPM,TypoAscender为 977、TypoDescender为 -272,(Typo Asc + Desc + Linegap) / UPM达到 1.25,行高明显比 Hack 更宽松。这正是"收紧或放宽行距"的决策依据:比值越大,默认行距越松。调整时,只需将font-line工具读取对应vertical_metrics.txt中的度量值,按目标比值重写字体表数据即可,实现真正贴合个人偏好的行距定制。
specimen 图片的生成管线(从源码看实现)
主画廊与不可再分发画廊(NONDISTRIB.md)的 specimen 图片均由仓库内的脚本自动生成。ABOUT.md 说明:生成流程基于Pygments 词法分析器 + Pango/Cairo 渲染,字体按 14px 渲染,并采用定制开发的深色与浅色语法高亮主题。
render.py 是渲染管线的核心,其注释示例与参数定义共同勾勒出完整用法:
# 纯文本 specimen:指定样本、输出图片、字体与背景 $ python render.py -t specimens/test-pattern.txt -l text -x 2175 -b "#fcfdffff" -i ../images/hack-STP.png -f "Hack 14" -p 20 # 紧凑纯文本 specimen $ python render.py -t specimens/test-pattern-compact.txt -l text -x 2175 -b "#fcfdffff" -i ../images/hack-STPC.png -f "Hack 14" -p 20 # CJK 样例渲染(配合 CJK 画廊使用) $ python render.py -t specimens/cjk-specimen.txt -l text -x 2175 -b "#fcfdffff" -i cjktest.png -f "Source Han Code JP 14" -p 20脚本的关键参数(源码可见于 render.py):
| 参数 | 默认值 | 说明 |
|---|---|---|
-t / --text | sample.txt | 要渲染的样本文本文件 |
-l / --lang | text | Pygments 语言,决定高亮规则 |
-s / --style | borland | Pygments 配色样式 |
-r / --regular | False | 仅用常规字重,忽略样式中的粗体/斜体 |
-i / --image | sample.png | 输出图片文件名 |
-f / --font | monospace 15 | Pango 字体规格(如"Hack 14") |
-m / --mode | subpixel | 抗锯齿模式,可选grey/bilevel/subpixel |
-b / --background | #ffffffff | 背景颜色与透明度 |
-p / --pad | 4 | 图片四周内边距(像素) |
-x / --width、-y / --height | 0 | 图片最小宽/高 |
样本文本取自真实开源代码——samplecode/samplecode.c 使用的是 Git 仓库commit.c中的函数实现,这保证了所有字体 specimen 展示的是真实编程场景而非装饰性文本,具备较强的可读性对比价值。此外,仓库还提供了针对性的样本:samplecode/test-pattern.txt(测试图形样本)以及samplecode/fontnames.txt等,供不同渲染场景选用。
许可证与分发合规
仓库对字体许可证的处理非常严谨(ABOUT.md):每个分发字体的目录中都包含license.txt,画廊页面在字体名下方直接给出许可证链接。部分字体(如 Inziu Iosevka J)涉及多重许可证,会在目录中并列放置多份许可文件(如M+ Fonts License.txt与 OFL 许可)。项目维护者会直接联系字体开发者澄清可能阻碍再分发的许可问题,因此仓库内字体均可合法下载使用。
需要特别注意的是 NONDISTRIB.md 列出的不可再分发画廊(如 Envy Code R、Input Mono、Klartext Mono Light 等):这些字体可免费用于桌面环境,但许可证不允许通过 Codeface 仓库再分发,因此仓库中不提供其二进制文件,只能通过字体名链接跳转到原站点下载。在主画廊、位图画廊与 CJK 画廊之外,这是第四类需要区分的字体来源。
进一步探索:位图、CJK 与其他文档入口
- BITMAP.md:位图字体画廊,收录 Coding Font Tobi、Crisp、Dina、Fixedsys Excelsior、Gohufont、Monte Carlo、Proggy Clean/Small/Square/Tiny 等位图字体,图片由 Sublime Text 截图手工制备;
- CJK.md:中日韩字体画廊,收录 D2 Coding、Inziu Iosevka CL/J/SC/TC、migmix、migu、M+、Nanum Gothic Coding、Ricty Diminished、Source Han Code JP 等,覆盖
ja-JP、ko-KR、zh-CN、zh-TW四类字符集; - NONDISTRIB.md:不可再分发字体列表;
- CONTRIBUTING.md:贡献指南;
- CONTRIBUTORS.md:贡献者名单;
- LICENSE.md:项目整体许可说明。
结语
Codeface 的价值在于"一处索引、全部可用":主画廊把数十款开源等宽字体及其许可证、渲染样例集中呈现,归档下载与 SHA1 校验保证获取安全可靠,而vertical_metrics.txt+font-line的组合则把"行距定制"从凭感觉调字号升级为基于字体真实度量数据的精确工程。无论你是在为编辑器、终端挑选下一款编程字体,还是想系统比较 Fira Code、Hasklig 等连字字体与经典 Inconsolata、Source Code Pro 的差异,这个仓库都能提供一手、可验证的资料。
- 数据集
【免费下载链接】codeface
Typefaces for source code beautification
相关推荐
Codeface 开源等宽字体画廊:仓库结构与样张渲染管线全解析
Codeface 开源等宽字体画廊:仓库结构与样张渲染管线全解析 Codeface 是一个面向开发者的等宽字体(monospaced fonts)画廊与发行仓库
数据集QMK BMEK 默认键位详解:三层 HHKB 风格 Keymap 的构建与实现
QMK BMEK 默认键位详解:三层 HHKB 风格 Keymap 的构建与实现 BMEK 是一款融合了 HHKB 与 Alice 类键盘优点的紧凑键盘,其默认
数据集Codeface 贡献指南:为开源等宽编程字体仓库提交新字体与完整许可证
Codeface 贡献指南:为开源等宽编程字体仓库提交新字体与完整许可证 Codeface 是一个面向开发者、汇集开源等宽编程字体(monospaced typ
数据集
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考