ARTICLE · INTELLIGENCE

战地情报 · 详情页

来自尧图项目组的一线实战观察与深度解析

Edu NSW ACT Cursive 字体全解析:面向澳大利亚新州与首都领地的连笔手写可变字体与 Fontsource 集成指南

Edu NSW ACT Cursive 字体全解析:面向澳大利亚新州与首都领地的连笔手写可变字体与 Fontsource 集成指南
  • 前端
  • CLI
  • 开发工具

【免费下载链接】fontsource

Self-host Open Source fonts in neatly bundled NPM packages.

项目地址:https://gitcode.com/gh_mirrors/fo/fontsource
点击查看免费下载

Edu NSW ACT Cursive 是 Fontsource 仓库中收录的澳洲学校手写字体(AU School Handwriting Fonts)系列成员之一,专为满足澳大利亚教育标准而设计,对应新南威尔士州(NSW)与首都领地(ACT)的连笔书写规范。本文以其官方描述文档 description.en-US.md 为骨架,结合同目录的 family.json、distribution.json 与 license.txt 元数据,以及 Fontsource 的安装与可变字体文档,系统讲解该字体的设计背景、技术规格、许可合规,以及在项目中使用(含自托管与 CDN)的完整实操方案。

字体是什么:澳洲学校手写字体系列的一员

为澳大利亚课堂而生的手写字体家族

根据官方描述文档,AU School Handwriting Fonts(澳洲学校手写字体)是一套英语语言(English language)、基于 OpenType 技术的可变字体家族(variable typeface family),其设计目标非常明确——专门满足澳大利亚教育标准(Australian Education standards)。

描述文档特别强调了两个设计取向:

  • 课堂导向:字重(weights)、字宽(widths)和光学尺寸(optical sizes)都经过精心设计,确保在澳大利亚教室环境中书写与阅读体验良好;
  • 家庭通用:该字体并不仅限于课堂,在家居环境中同样舒适、易于阅读和使用。

这意味着它不是一款"装饰性"字体,而是一款以可读性、规范性、教学适用性为核心的手写字体。

NSW 与 ACT 的书写规范

描述文档明确指出:

This font represents the forms used in New South Wales an the Australian Capital Territory.

即该字体表现的是**新南威尔士州(New South Wales)与澳大利亚首都领地(Australian Capital Territory)**使用的书写形式。澳大利亚各州/领地的基础教育阶段教授不同的手写风格,因此 Fontsource 仓库中收录了多个面向不同地区/阶段的"Edu"系列成员,例如:

  • edu-nsw-act-foundation(NSW/ACT 基础书写)
  • edu-qld-beginner(昆士兰州基础阶段)
  • edu-sa-hand(南澳州连笔手写)
  • edu-vic-wa-nt-hand(维多利亚州、西澳与北领地连笔手写)

从这些同系列目录可见,澳大利亚学校手写字体按州/领地划分字形规范,Edu NSW ACT Cursive 正是其中面向 NSW/ACT 连笔(cursive)阶段的实现。描述文档还提到该字体的贡献入口位于上游项目仓库(文档中标注为SorkinType/VICWANTSchoolHandAustralia,而 family.json 的project.repository记录的上游仓库为SorkinType/NSWACTSchoolHandAustralia,两个字段对上游仓库的指向存在差异,读者如需参与贡献请以上游最新信息为准)。

核心技术规格:从 family.json 与 distribution.json 拆解字体实现

描述文档只给出了字体的定位与用途,而 Fontsource 仓库在同目录的 family.json 中记录了极其详尽的机器可读元数据,可以作为对该字体技术实现的权威佐证。

基础元数据总览

字段值说明
familyEdu NSW ACT Cursive字体家族名
displayNameEdu NSW ACT Hand Cursive展示用名称
designerTina Anderson, Corey Anderson设计师
classificationshandwriting字体分类:手写体
dateAdded2024-03-19收录日期
sourceModified2024-03-20上游源文件修改时间
license.idOFL-1.1采用 SIL Open Font License 1.1
statusdeprecated状态标记(详见下文)

标签体系:字体的语义定位

family.json 中tags字段给出了四个语义标签,精确刻画了字体的用途:

  • expressive/childlike——表现力/童趣风格;
  • purpose/learn-to-write——学习书写(learn to write)用途;
  • script/handwritten——手写脚本风格;
  • script/informal——非正式/日常书写风格。

purpose/learn-to-write与script/handwritten两个标签直接呼应了描述文档中"面向澳大利亚教育标准、用于课堂书写教学"的定位。

可变字体能力:wght 轴 400–700

描述文档提到这是"OpenType variable typeface family",而 family.json 的sources[0].inspection.axes给出了具体实现:

{ "axes": [ { "default": 400, "max": 700, "min": 400, "tag": "wght" } ] }

即该字体是一个单轴可变字体,仅包含wght(字重)轴,取值范围 400 到 700,默认值 400。源文件为ofl/edunswactcursive/EduNSWACTCursive[wght].ttf(TTF 格式、glyf 轮廓),字体版本Version 2.000,源文件 SHA-256 为5e736ce2f15651c07f4f1670b2e91f69c72bc73b5c4f3ab60b283eabad5c89c5,大小约 664,512 字节。

对应的 distribution.json 表明,Fontsource 在发布时同时提供了:

  • 可变包:variable数组声明了axisKey: "wght"、style: "normal"的可变字体;
  • 静态字重:static数组声明了normal样式下的400 / 500 / 600 / 700四个静态字重,方便不支持可变字体的场景按需加载。

字形规模与 OpenType 特性

family.json 的sources[0].inspection记录了字体内部能力:

  • 字形数(glyphs):747;
  • 码点覆盖(codepoints):393;
  • 颜色表(colorTables):无;
  • 轮廓格式(outline):glyf(TrueType 轮廓);
  • Unicode 覆盖范围:U+0020-007E(基本拉丁)起,涵盖拉丁扩展、组合附加符号、标点、货币符号(含U+20AC欧元)等区间,例如U+00A0-00A3、U+0116-012B、U+1E80-1E85等。

更重要的是 OpenType 特性(features)清单,它揭示了连笔手写字体的工作机制:

"features": { "gpos": ["kern", "mark", "mkmk"], "gsub": ["aalt", "calt", "case", "ccmp", "liga", "locl", "ordn", "ss01", "ss02", "ss03", "ss04", "ss05", "ss06"] }
  • gpos(字形定位)包含kern(字距调整)、mark(附加标记定位)、mkmk(标记间定位),保证手写连笔中字母与变音符号的位置准确;
  • gsub(字形替换)包含liga(标准连字)、calt(上下文替换)、ccmp(字形组合)等通用特性,以及ss01–ss06共 6 个风格集(stylistic sets)。从该字体"连笔手写教学"的定位可以推断,这些风格集很可能用于切换不同的字母连接形态或教学演示字形,具体效果可通过实际渲染字体验证。

子集与语言覆盖

distribution.json 中characters声明了默认子集为latin,包含latin与latin-ext两个子集。这意味着该字体主要面向拉丁字母文本,中文字符不在覆盖范围内。

family.json 的languages字段则列出了数百个支持的语言标签(如en_Latn、fr_Latn、es_Latn、de_Latn等),全部为拉丁脚本变体,进一步印证了其拉丁文本覆盖能力。

许可与版权:OFL-1.1 与上游来源

开源许可

family.json 的license字段与 license.txt 一致地表明:

  • 许可类型:SIL Open Font License, Version 1.1(OFL-1.1);
  • 版权归属:Copyright 2023 The NSW ACT School Hand Australia Project Authors;
  • 署名信息:同样指向The NSW ACT School Hand Australia Project。

从 license.txt 的 OFL 1.1 全文可以归纳出对使用者的关键许可条款:

  • 字体软件可免费使用、研究、修改与再分发;
  • 可以与软件捆绑、嵌入、随软件一并出售,但字体软件本身不得单独出售;
  • 修改版(Modified Version)不得使用保留字体名,除非获得版权方书面许可;
  • 修改版必须以 OFL 许可分发,但使用该字体制作的文档不受此限制(即你用该字体排版的教材、作业纸可以按任意方式分发)。

这使该字体完全可以合法用于学校教学材料、儿童读物、教育类应用等场景,这正是描述文档中"课堂与家庭环境"定位的许可基础。

上游来源(Provenance)

family.json 的provenance字段记录了数据溯源:

"provenance": { "directory": "ofl/edunswactcursive", "repository": "google/fonts", "revision": "a4067212727d7f5b6cef2061e56227a08756ac0c", "type": "github" }

即该字体的源文件取自google/fonts仓库(Google Fonts 上游)的ofl/edunswactcursive目录,project.repository记录的上游项目为SorkinType/NSWACTSchoolHandAustralia,revision 为f3c1ae7fae7e85319ffc2d44f4fb6715abd1e450。这印证了描述文档中"这是一款面向澳大利亚教育标准的开放字体、可参与贡献"的说法。

关于 status: deprecated 的说明

值得留意的是,family.json 中status字段当前为deprecated。在 Fontsource 的发布流程中,registry/scripts/google.ts 会为从上游移除的字体系列写入status: 'deprecated'标记(见 google.ts)。读者在选择字体时应以仓库当前状态为准,并结合 replacements.json(当前未包含该字体的替换条目)确认是否有官方推荐的替代字体。

在 Fontsource 中使用:安装、导入与样式编写

作为 Fontsource 收录的字体家族,Edu NSW ACT Cursive 可以通过标准的 Fontsource 包管理流程安装使用。以下操作方式与 安装指南、可变字体指南 保持一致。

1. 安装可变字体包

由于该字体支持wght可变轴,官方推荐优先使用可变字体包,它用一个字体文件覆盖 400–700 的连续字重范围,通常比多个静态字重文件更省体积:

npm install @fontsource-variable/edu-nsw-act-cursive # 或 pnpm add @fontsource-variable/edu-nsw-act-cursive # 或 yarn add @fontsource-variable/edu-nsw-act-cursive

如果项目需要固定字重、或运行环境对可变字体支持不佳,也可以使用静态包:

npm install @fontsource/edu-nsw-act-cursive

2. 在应用中导入

在应用入口文件(或页面组件)中导入包即可,CSS 中的unicode-range会保证浏览器只下载页面实际用到的字符子集,通常无需手动选择子集:

// 导入默认可变面,覆盖 wght 400-700 正常样式 import "@fontsource-variable/edu-nsw-act-cursive";

静态包按需导入字重(该字体提供 400 / 500 / 600 / 700):

import "@fontsource/edu-nsw-act-cursive/400.css"; import "@fontsource/edu-nsw-act-cursive/700.css";

3. 编写 CSS 样式

导入后即可像普通字体一样在 CSS 中使用:

body { font-family: "Edu NSW ACT Cursive Variable", cursive; font-weight: 500; }

可变字体还可以通过font-variation-settings精确控制轴值:

.handwriting-exercise { font-family: "Edu NSW ACT Cursive Variable", cursive; font-weight: 400; font-variation-settings: "wght" 600; }

需要注意的是,该字体目前仅提供wght一个可变轴(根据 family.json 的inspection.axes),并不存在wdth(字宽)等其他轴,因此设置其他轴不会生效。

4. 通过 CDN 快速引用

对于不需要打包器的场景,可以借助 Fontsource 与 jsDelivr 合作的 CDN 服务(参见 CDN 指南)直接引用生成的样式表。CSS 样式表地址格式为https://cdn.jsdelivr.net/fontsource/css/{id}@{version}/{file}.css,可变字体则为https://cdn.jsdelivr.net/fontsource/css/{id}:vf@{version}/{file}.css。例如在 HTML 中引用:

<link rel="stylesheet" href="https://cdn.jsdelivr.net/fontsource/css/edu-nsw-act-cursive@latest/index.css" />

生产环境建议使用精确版本号(如@5.x.x)以获得不可变、可长期缓存的资源;浮动版本(@latest、@5)自动解析到匹配的发布版本,适合需要自动升级的场景。CDN 更适合对稳定性要求不高的轻量使用,Fontsource 官方推荐优先自托管字体。

描述文档如何进入仓库:从 Google Fonts 到 Fontsource 的流水线

Edu NSW ACT Cursive 的描述文档并非手写维护的孤立文本,而是由 Fontsource 的注册表生成脚本从上游自动转换而来,理解这条流水线有助于读者评估该文档的权威性与时效性。

从 HTML 描述到 Markdown

registry/scripts/google.ts 中定义了文档映射:

const DOCUMENTS = [ ['DESCRIPTION.en_us.html', 'description.en-US.md'], ['article/ARTICLE.en_us.html', 'article.en-US.md'], ] as const;

即从google/fonts上游目录中的DESCRIPTION.en_us.html抓取描述,并通过htmlToMarkdown转换为仓库中的 description.en-US.md。转换过程做了两项安全处理(见 google.ts):

  • 移除script、style、iframe、img、video、form等可能带来注入或噪声的 HTML 元素;
  • 通过safe-links规则只保留http:/https:协议的安全链接,其余链接一律降级为纯文本。

这一安全机制也在测试中得到验证:registry/scripts/registry.test.ts 断言生成的描述文档不包含javascript:与alert(1)等危险载荷,确保最终呈现给用户的描述文本是安全的。

描述文档的最终去向

生成的描述文档在发布阶段由 registry/scripts/archive.ts 进一步并入字体详情数据:它同时读取description.en-US.md与可选的article.en-US.md,并写入families/{id}.json的content字段(见 archive.ts),供网站端展示与检索使用。也就是说,这篇描述文档最终会成为 Fontsource 网站字体详情页的核心文案,并被搜索引擎与 LLM 检索引用。

常见问题速览

Q:Edu NSW ACT Cursive 支持中文吗?不支持。根据 distribution.json,该字体只包含latin与latin-ext两个子集,面向拉丁字母文本;中文字符需要搭配中文字体使用。

Q:想要更粗的字重怎么办?可变包通过wght轴支持 400–700 的连续范围(默认 400),可用font-variation-settings: "wght" 700或直接font-weight: 700调用;静态包则提供 400 / 500 / 600 / 700 四个固定字重。

Q:这款字体适合什么场景?从标签体系(purpose/learn-to-write、script/handwritten、expressive/childlike)与描述文档看,其核心场景是澳大利亚 NSW/ACT 地区的课堂书写教学(字母连笔训练),也适合家庭场景中的儿童读物、练习材料、教育类应用排版。

Q:可以商用或修改吗?可以。该字体采用 OFL-1.1 许可(详见 license.txt),允许免费使用、修改与再分发,但字体软件本身不得单独出售,修改版须以 OFL 分发且不得使用保留字体名。

Q:文档中的贡献链接指向哪个仓库?描述文档标注的贡献入口为SorkinType/VICWANTSchoolHandAustralia,而 family.json 的project.repository记录为SorkinType/NSWACTSchoolHandAustralia,两处记录存在出入,参与贡献或查阅最新源码时请以上游项目仓库的当前信息为准。

小结

Edu NSW ACT Cursive 是一款定位清晰的区域性教学手写字体:它以澳大利亚 NSW/ACT 的连笔书写规范为基础,通过单轴(wght400–700)可变字体技术实现从基础到粗体的连续调节,配套 6 个风格集与完整的手写连字特性,并以宽松的 OFL-1.1 许可开放给课堂与家庭场景使用。在 Fontsource 中,你可以通过@fontsource-variable/edu-nsw-act-cursive包快速自托管集成,也可以借助 jsDelivr CDN 轻量引用;其背后的元数据与文档流水线(从google/fonts的DESCRIPTION.en_us.html自动转换而来)同样值得关注,它保证了描述信息的可追溯性与安全性。

  • 前端
  • CLI
  • 开发工具

【免费下载链接】fontsource

Self-host Open Source fonts in neatly bundled NPM packages.

项目地址:https://gitcode.com/gh_mirrors/fo/fontsource
点击查看免费下载
上一篇:PKHeX-Plugins自动合法性插件深度解析:技术实现与架构设计
下一篇:终极指南:如何用KK-HF Patch全面增强你的《恋活!》游戏体验

创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

RELATED READING

延伸阅读

更多一线实战笔记与深度复盘,助您持续精进