Adobe Font Development Kit for OpenType
项目描述
Adobe OpenType 字体开发套件 (AFDKO)
AFDKO 是一组工具,用于从 PostScript 和 TrueType 字体数据构建 OpenType 字体文件。
此存储库包含 AFDKO 组成的数据文件、Python 脚本和命令行程序的源代码。该项目使用Apache 2.0 开源许可证。请注意,AFDKO 使用了几个依赖项,列在 requirements.txt 文件中,如果您使用 pip 安装 AFDKO,它们将自动安装。其中大多数依赖项是 BSD 或 MIT 许可,但 tqdm
除外,它是MPL 2.0 许可。
有关包含在软件包中的内容的更详细描述,请参阅AFDKO 概述。
有关更多信息,例如参考材料和相关项目的链接,请参阅wiki。
📣 最新消息
psautohint 的 Python 端口已(重新)集成到 AFDKO 存储库中,称为 "otfautohint"
更多详细信息请参阅docs/otfautohint_Notes.md
安装
AFDKO 需要 Python 3.8 或更高版本。它应该与任何 Python > 3.8 兼容,但偶尔工具链组件和依赖项不会与主要的 Python 版本同步,因此可能会有一些滞后时间。
在Python 包索引 (PyPI) 上有可用版本,可以使用 pip 进行安装。
针对 macOS 用户:我们强烈建议您不要使用系统 Python。原因之一是,某些版本的 macOS 随带 Python 2,而最新的 AFDKO 仅适用于 Python 3。您可以在以下位置找到使用 Brew 在 macOS 上安装 Python 3 的说明:[在 Mac OS X 上安装 Python 3](https://docs.python-guide.org/starting/install3/osx/)。此外:[pyenv](https://github.com/pyenv/pyenv) 是在 macOS 上安装和管理多个 Python 版本的一个很好的工具。
针对所有用户:我们强烈建议使用 Python 虚拟环境 (venv
) 并使用 python -m pip install <package>
安装所有包(而不仅仅是 AFDKO)。直接调用 pip install
可能会导致调用错误的 pip
,并且包将安装在不正确的位置。使用 venv
+ python -m pip install
的组合可以帮助确保 pip 管理的包安装在不正确的位置。
针对 Linux 用户(以及其他不是 macOS 或 Windows 的平台用户):当您的平台没有预构建的 "wheel" 时,pip
将尝试从源代码构建包的 C 和 C++ 部分。此过程仅在 C 和 C++ 开发工具和 libuuid 已安装的情况下才能成功。有关从源代码构建的说明,请参阅下面的build from source。
安装
选项 1(推荐)
-
创建虚拟环境
python -m venv afdko_env
-
激活虚拟环境
-
macOS & Linux
source afdko_env/bin/activate
-
Windows
afdko_env\Scripts\activate.bat
-
-
安装 afdko
python -m pip install afdko
在虚拟环境中安装 afdko 可以防止其依赖项与全局安装的其他模块发生冲突。
选项 2(除非存在全局冲突,否则不推荐)
python -m pip install --user afdko
更新
使用 -U
(或 --upgrade
)选项更新 afdko(及其依赖项)到最新稳定版本
python -m pip install -U afdko
要获取预发布和开发版本,请使用 --pre
标志
python -m pip install -U afdko --pre
卸载
要卸载 afdko 包,请使用以下命令
python -m pip uninstall afdko
从源码构建
首先,您必须已安装您平台上的开发工具。
在 macOS 上,使用以下命令安装:
xcode-select --install
在 Linux(Ubuntu 17.10 LTS 或更高版本)上,使用以下命令安装:
apt-get -y install python3.8
apt-get -y install python-pip
apt-get -y install python-dev
apt-get -y install uuid-dev
在其他 POSIX 类操作系统中,libuuid
及其头文件可能包含在名为 libuuid-devel
或 util-linux-libs
的软件包中。 libuuid
的源代码维护在 util-linux 仓库 中。
在 Windows 上,您需要 Visual Studio 2017 或更高版本。
要从源码构建 afdko,请克隆 afdko GitHub 仓库,确保已安装 wheel
模块(python -m pip install wheel
),然后进入 afdko 的顶级目录,并运行
python -m pip install .
开发
如果您想使用 Xcode 开发和调试 AFDKO,请运行
CMake -G Xcode .
有关从源码构建的更多信息,请参阅 docs/FDK_Build_Notes.md。
注意
无法使用 python -m pip install -e .
在可编辑/开发模式下安装 afdko;这是因为工具包包含二进制 C 可执行文件,而 setup.py 尝试将其安装在 bin/(或 Scripts/)文件夹中,然而这个过程仅适用于基于文本的脚本(无论是用 Python 编写的还是 shell 脚本语言)。为了解决这个问题(这实际上仅影响少数核心 afdko 开发人员,他们需要在修改源文件时获取实时反馈),您可以使用其他方法,如导出 PYTHONPATH、使用 .pth 文件或类似的技巧。有关更多详情,请参阅 此评论。
自 2.5.x 版本以来的主要变化
-
AFDKO 已重构,使其可以作为 Python 软件包安装。它现在依赖于用户的 Python 解释器,不再包含自己的 Python 解释器。
-
由于其源代码无法开源,删除了两个程序,即 IS 和 checkoutlines。这些工具可在 发布版本 2.5.65322 及更早版本 中找到。
注意
如果您同时安装了旧版 AFDKO 和新的 PyPI afdko 软件包,则较新版本的工具将覆盖较旧的版本。这是因为 pip 将 afdko 的软件包路径添加到系统 PATH 环境变量的开头,而旧安装程序将其添加到末尾;卸载程序不会撤销对 PATH 的此修改。如果您想完全删除较新版本的路径,您必须编辑 PATH。在 Mac 上,这意味着编辑设置 PATH 变量的登录文件中的行。在 Windows 上,这意味着编辑系统控制面板中的 PATH 环境变量。
变更日志
4.0.1(发布日期:2024-01-16)
- [tx] 修复即将发布的 gcc-14 版本发现的建设失败(感谢 @trofi!)(#1730)
- [tx] 在 xmlNode 中解析多个属性(#1720)
- [makeotfexe] 在调用 otlSubtableAdd 之前添加 h->otl == NULL 的防护(#1716)
- [otfstemhist] 修复 otfstemhist 的错误(#1703)
- [sfntedit] 修复尝试添加不存在文件时的错误(#1696)
- [documentation] 更新(#1711)
- [requirements.txt] 更新依赖项,从依赖项中删除 psautohint(#1725)
- [ci] 将 Python 3.11 添加到 CI 测试矩阵中(#1718)
4.0.0(发布日期:2023-09-11)
psautohint 的 Python 端口已(重新)集成到 AFDKO 存储库中,称为 "otfautohint"
更改摘要
- [名称更改] 名称更改更好地反映了现在如何发布提示输入,并且当需要时可以与新版本共存。(#1730)
- [AFDKO 工具更新] AFDKO 中的其他工具已更新为调用 oftautohint 而不是 psautohint,并已移除对后者存储库的依赖。
- [停止 psautohint 开发] 我们预计在 v4.0.0 版本发布后将停止 psautohint 的开发。
- [改进] 新代码修复了多个错误,据我们判断,平均结果更好。它还使用 UFO glif 文件中略有不同的编码。因此,用户应预期运行新代码与 psautohint 相比会有许多差异,但这种变化应该是单次性的。
- [可变 CFF 提示] 新代码还支持基于可变 CFF 的字体提示,包括直接提示构建的 CFF2 字体。包含重叠的符号通常将像移除重叠一样进行提示。
- [提示时间] 由于 psautohint 部分是用(非常古老的)C 代码编写的,而 otfautohint 完全是用 Python 编写的,因此新代码提示单个符号所需时间明显更长。然而,我们还增强了 otfautohint,使其默认在多个 CPU 核心上提示不同的符号。因此,当在单个核心上运行时,该工具将慢 5-8 倍,但在 8 个核心上运行时通常会略快。
更多信息请参阅 docs/otfautohint_Notes.md
v4.0.0 版本中的其他更改:依赖项更新。
3.9.7(发布日期 2023-08-14)
3.9.6(发布日期 2023-06-13)
- [requirements.txt] 更新依赖项,取消锁定特定字体工具版本以允许更多版本(#1661)
- [tx] 修复由旧函数调用引起的段错误(#1649)
- [hotconv] 修复 TypoLineGap 为负数的警告(#1654)(感谢,@NSGod!)
- [hotconv] 在 hotReuse() 中重置 dsigCnt,以便后续转换添加完整的 'DSIG' 表(#1648)(感谢,@NSGod!)
- [hotconv] 'name':修复 addName() 中的内存泄漏(#1646)(感谢,@NSGod!)
- [README] 删除 LGTM 徽章(#1650)(感谢,@miguelsousa!)
3.9.5(发布日期 2023-04-24)
- [python] 删除 Python 3.7(#1638)
- [tx] tx/makeotf glyphOrder 错误修复(#1642)
- [spot] 修复 name 表 LANG_TAG_REC_SIZE 大小定义(感谢,@NSGod!)(#1640)
- [docs] CID-keyed UFO 指南(#1634)
- [requirements.txt][buildcff2vf_data] 更新到字体工具 v4.39.3(#1639)
3.9.4(发布日期 2023-04-06)
- [tx] 在 CID-keyed UFO 中支持 FDArray
- [makeotf] 修复处理多个 unicode 分配的 GOADB 顺序(#1615)
- [spot] 修复 'kern' 子表 Format3 rightClass 内存泄漏(重复分配)(感谢 @NSGod!)(#1627)
- 小修复,更新:(#1614,#1624)
3.9.3(发布日期 2023-02-02)
- GitHub CMake 工作流程更新
- 在 Windows 和 Linux 上强制链接 libxml2 (#1607)
- CMake libxml2 更新
- [文档] 格式修复 (#1605)
- [tx] 恢复 parseGLIF 转换指针的堆栈行为 (#1595)
3.9.2 (发布日期 2023-01-10)
- tx
- [依赖项] 添加 renovate.json (#1545)
- [agd.py] [comparefamily.py] 修复两个 "rU" 实例 (感谢 @colinmford !) (#1584)
- [makeinstancesufo] 向 makeinstancesufo 添加 --instance_info 选项 (#1577)
- [makeinstancesufo] 将 makeinstancesufo 的池处理器数量增加一个 (#1561)
- [otf2ttf] 确保池容量至少为 1 (感谢 @Heptazhou !) (#1530)
- [otf2ttf] 强制最大池容量至少为 1 (感谢 @Heptazhou !)(#1529)
3.9.1 (发布日期 2022-07-01)
- [CMake] 为 Linux 链接 LibXML2 以修复错误 (#1527)
- [makeotf][tx] 修复一些与 "bool" 相关的 Linux 编译问题 (#1524)
- [tx] 将 UFO lib.plist 解析替换为 libxml2 (#1523)
3.9.0 (发布日期 2022-06-23)
- [tx] 将 UFO fontinfo.plist 解析替换为 libxml2 (#1515, #1517, #1518, #1519)
- [makeotf] 为第二次使用复制 va_list (并添加 va_end 以避免泄漏) (#1512)
- [需求] 更新依赖项
3.8.3 (发布日期 2022-05-09)
- [需求] 更新依赖项
- [文档] 添加以前打开的 Windows 构建问题的链接 (#1505)
- [文档] 修复功能文件规范中的换行 (#1509)
- [ci] 启用 Codecov 信息检查 (#1501)
3.8.2 (发布日期 2022-04-11)
- [tx] 修复内存崩溃 (#1497)
- [antlr4] 升级 ANTLR v4.9.3 (#1491)
- [tx] 忽略 subr 递归限制 (#1484)
- [tx] 不要在 fontinfo.plist 中解析非 FDArray 字典数组 (#1478)
- [需求] 更新依赖项
3.8.1 (发布日期 2022-02-24)
- 在pdwNew中添加pdwCtx结构的初始化安全检查(#1474)
- [需求] 更新依赖项
3.8.0(发布日期:2022-02-03)
- [python] 弃用Python 3.6,添加Python 3.10支持(《#1456》)
- [tx] 在doFile中初始化变量(《#1466》)
- [ci] 使用universal2 wheel构建而不是arm64(感谢 @miguelsousa!)(《#1462》)
- [ci] 添加macOS arm64 wheel(感谢 @miguelsousa!)(《#1461》)
- [c] 修复C代码覆盖率报告(感谢 @miguelsousa!)(《#1460》)
- [tx] 在PFA -> UFO时保留故意重复的起始点(《#1452》)
- [tx] 修复由于浮点值坐标引起的PFA -> UFO时不小心重复的起始点(《#1448》)
- [README] 修复README中的损坏的相对链接(《#1424》)
- [ttxn] 更新ttxn以支持fontTools 4.27.0更新(《#1423 《#1418》)
- [otf2ttf] 向OTF2TTF添加节流以避免在Windows上使用大型CPU时挂起(感谢 @be5invis!)(《#1421 《#1420》)
- [需求] 更新依赖项
3.7.1(发布日期:2021-08-31)
- [makeotfexe] 将特征文件解析器移植到Antlr 4(《#548 《#1367》)
- [spec] 将OpenType特征文件规范更新到v1.26,详情请见(《此处》)
include
指令是“仅语句”- 除了
mark
之外,关键字不能用作查找名称或标签 - 更新了有效字符列表,用于标签
- 标签不能以数字或破折号开头
- [build] 转换为基于CMake的构建 -- 请参阅文档(《#1124 《#1360 《#1384 《#1372》)
- [makeinstancesufo] 为fontMath 0.8.1更新修复(《#1391》)
- [tx] ufowrite for循环声明修复(《#1373》)
- [tx] uforead 删除轮廓修复(《#1370》)
- [tx] 二进制文件中的Windows换行符修复(《#1361》)
- [makeotf] 修复makeotf堆使用后释放(《#1356》)
- [tx] uforead、ufowrite、checkoutlinesufo修复用于读取和写入CID键字体(《#1353》)
- [tx] t1read.c添加超出65000 SID限制的字体错误(《#1347》)
- [tx] cffread.c数据类型修复(《#1344》)
- [spec] Spec 6.4.iii:示例4中使用'markClass'而不是'mark'(感谢 @moyogo!)(《#1336》)
- [checkoutlinesufo] 将列表排序移出循环以节省时间排序(《#1331》)
- [makeotf] aarch64精度错误修复(《#1329》)
- [tests] 添加cpplint检查(《#1325》)
3.6.2(发布日期:2021-03-02)
- [spec] 允许通过多重替换删除符号(感谢 @simoncozens!)(《#1251 《#1234 《#1294》)
- [makeotfexe] 允许负内部字距调整(#1279,#1227)
- [docs] 清理 README.md(感谢 @vladdoster!)(#1280)
- [cff2vf] 不假设存在
STAT.AxisValueArray
(#1283,#1281) - [repo] 同步
master
-->develop
(#1285) - [tests] 跳过 makeotfexe 测试中的版本号差异(#1286)
- [spot] 重新格式化文档(#1287)
- [checkoutlinesufo] 添加
ignore-contour-order
标志(#1289) - [makeinstancesufo] 实现 multi-processing(#1293,#1161)
- [checkoutlinesufo] 修复
restore_contour_order
(#1296,#1291) - [makeotf] 在转换
'post'
表格格式 3 -> 2 时不会失败(#1303,#1301) - [makeotfexe] 增加GOADB UV/Alias名称字符串长度限制(#1311,#1310)
- [checkoutlinesufo] 修复报告重复起点逻辑(#1318,#1315)
- [tests, tx] 增加精度(
float
-->double
)以修复 i586 失败的测试(#1321,#1216,#1163)
3.6.1(发布于2021-01-13)
3.6.0(发布于2020-12-17)
- [checkoutlinesufo] 添加CID支持(#1224)
- [checkoutlinesufo] 修复嵌套循环变量(#1231)
- [tests] 更新日期正则表达式以跳过日期和时间指标(#1232)
- [docs] 修复拼写错误(感谢,@djr11!)(#1236)
- [docs] 描述GOADB的制表符分隔格式(感谢,@djr11!)(#1238)
- [docs] 修复拼写错误(感谢,@ln-north!)(#1241)
- [checkoutlinesufo] 更新进度条(#1243)
- [checkoutlinesufo] 实现
-o
(输出文件)选项(#1244) - [ci, tests] 使用GitHub Actions进行所有操作(#1254,#1265)
- [makeotfexe] 更新帮助/使用文档(#1262)
- [comparefamily, pdflib] 修复
== None
比较(#1264) - [checkoutlinesufo] 移除 UFO2-as-UFO3 漏洞(现在向上转换到 UFO3)(#1135,#1270)
3.5.1(发布于2020-09-15)
- [tx] 提高鲁棒性(#1187,#1188)
- [makeotfexe] 在功能文件中支持
OS/2.sFamilyClass
(#1191,#1192) - [docs] 更正 STAT 位置值的描述(#1190,#1193)
- 对STAT格式4轴值中的重复检查进行修复 [makeotfexe] (#1195)
- 对空psnames添加警告 [ttfcomponentizer] (#1198,#1199)
- 添加STAT验证 [buildcff2vf] (#1200)
- 允许在LookupFlags中使用匿名glyphclass [makeotf] (#1206)
- 在AGD文件中支持5位码点 [agd] (#1207,#1208)
- 将designspace属性转换为小写 [makeinstancesufo] (#1211,#1212)
- 删除STAT范围定义中的连字符 [makeotf] (#1197,#1213)
- 在README中澄清
python3
和pip3
的使用 [docs] (#1215) - 修复绘制圆形的bug [pdflib] (感谢@bcirc!) (#1218,#1219)
- 在README中澄清对字形名称范围的描述 (感谢@PeterCon!) (#1222,#1211)
- 添加对CID键字体支持 [checkoutlinesufo] (#1224)
3.5.0(发布日期:2020-07-16)
- 修复README中损坏的链接,添加新链接,修复拼写错误,添加模板 [docs] (#1140,#1151,#1176)
- 与未初始化变量、缓冲区/堆栈溢出等相关的大量修复 [tx] (感谢@antlarr-suse和内部贡献者追踪和修复这些问题!) (#1141,#1180,#1182,#1187,#1188)
- 在OpenType支持中删除Multiple Master (感谢@khaledhosny!) (#995,#1144)
- 改进重叠去除 [checkoutlinesufo] (#790,#1146,#1170)
- 修复校对问题 [fontsetplot, ttfdecomponentizer] (#1125,#1148)
- 从依赖中移除独立的cu2qu(集成到fontTools 4.7.0) [requirements] (#1150)
- 修复
use-varlib
标志,检查使用varLib时的外推/警告 [makeinstancesufo] (#1152,#1155) - 更新有关如何设置CodePageRange位的误导性注释 [makeotf] (#1156,#1157)
- 修复与长文件/路径名相关的失败 [sfntedit, sfntdiff] (#1139,#1159)
- 在CFF2 FontDict中不写入FontMatrix [tx] (cffsubr #13,#1165)
- 对STAT表进行更新和改进 [makeotf, makeotfexe] (#1164,#1166,#1174,#1177,#1178,#1179)
- [makeotf] 检查 FontMenuNameDB 中的 PostScript 名称 (#1171, #1172)
- [autohint, stemhist] 已从 AFDKO 中移除 (使用 psautohint/psstemhist) (#826, #827, #1175)
- [makeotfexe] 修复堆栈缓冲区溢出和使用后释放问题 (#1183, #1184)
- [mergefonts] 修复堆栈缓冲区溢出问题 (#1185)
- [spot] 修复堆栈缓冲区溢出问题 (#1186)
3.4.0 (发布日期 2020-05-26)
- [makeotf] 支持 STAT 表 (#176, #1127),感谢 @khaledhosny!
- [makeotf] 支持每个位置的多重链查找 (#1119, #1132),感谢 @simoncozens!
- [makeotf] 允许对名称字符串使用 UTF-8 输入 (#165, #1133),感谢 @khaledhosny!
- [spot] 防止字符串溢出 (#1136)
- [spec] 更新 STAT 示例、多重查找文档、修复损坏的链接 (#1137, #1140)
- [sfntedit] 使用便携式
rename
(#1138) - [absfont, ttread] 在使用之前初始化变量 (#1141),感谢 @antlarr-suse!
3.3.0 (发布日期 2020-05-01)
- [otf2ttf] 更新 hmtx 中的 LSB 以匹配字形 xMin (#1114)
- [dependencies] 更新到最新的 fontTools、MutatorMath、ufonormalizer (#1113, #1120)
- [c tools] 提高鲁棒性 (#1121, #1122, #1123)
- [makeinstancesufo] 添加使用 varLib 而不是 MutatorMath 的选项 (#1126)
3.2.1 (发布日期 2020-03-27)
- [sfntedit] 清理帮助字符串 (#1084)
- [docs] 更新 AFDKO 概述文档 (#1091)
- [waterfallplot] 修复崩溃 (#1094, #1092)
- [ttfdecomponentizer] 添加 ttfdecomponentizer 工具 (#1096)
- [buildcff2vf] 更新以使用新的
fontTools.varLib
异常 (#1097, #1088) - [ufotools] 清理 (删除未使用的代码) (#1098)
- [docs] 阐明在功能文件中允许使用
script
和language
关键字 (#1099, #990) - [requirements] 修复 PyUp 配置问题(重新启用自动更新)
- [requirements] 放宽对
ufoProcessor
版本的限制 (#1102) - [spec] 替换 OpenType 功能文件规范中的无效示例 (#1106, #1107)
- 修复可能导致某些字体崩溃的bug(#1108,#1109)
3.2.0(发布日期:2020-01-24)
- 对[ttfcomponentizer]进行了一些小更新和改进(#1069,#1072)
- 修复了tx测试中基于日期的bug(#1076)
- [autohint]和[stemhist]现在简单地重定向输入到psautohint/psstemhist(#1077)
- 修复了在字体生成过程中多个
languagesystem
条目时出现的bug(#1080,#1081)
3.1.0(发布日期:2019-12-16)
- 对多个CI服务进行了更新和维护
- 添加了LGTM.com(Semmle)对Pull Request的分析支持
- 移除了Codacy检查
- 设置Azure Pipeline,包含Mac、Windows和Linux测试
- 在[tests]中添加了fontTools
DeprecationWarnings
的过滤 - 在[tx]中添加了优化选项的描述(
tx -cff
帮助)(#938,#939) - 在[tx]中修复了处理混合选项的问题(#940,#941)
- 在[fdkutils]中改进了shell命令处理,增加测试覆盖率(#946)
- 对[comparefamily]中的
agd.py
进行了精简,仅保留使comparefamily
运行所需的部分(#948) - 在[tx tests]中改进了测试(#949,#951)
- 在[fdkutils]中添加了对TTC的支持(#952)
- 在[tx]中添加了对ttread的变量字体支持(#957)
- 对[tx]进行了大量改进和修复(#929,#954,#955,#956,#958,#959,#960,#961,#962,#964,#1045,#1046)
- 修复了[makeotfexe]中的内存消耗问题(#968,#965)
- 将fealib测试导入[makeotfexe](感谢@khaledhosny!)(#973)
- 修复了[makeinstancesufo]中与临时文件相关的潜在问题(#976)
- 重写了[otc2otf],修复了
-t
选项,并增加了测试覆盖率(#978) - [python][c]修复了LGTM报告的许多问题(LGTM.com/afdko)
- 修复了在Mac OS X 10.15 Catalina中[makeotf]路径问题(#991)
- 放松了对[requirements]的锁定(#997,#408)
- [fea-spec]
- 在[otf2ttf]中增强了集合处理、并行处理和文件通配符(感谢@msoxzw!)(#1000)
- 在[makeotfexe]中增加了代码覆盖率(感谢@khaledhosny!)(#1008)
- [文档] 更新 GlyphOrderAndAliasDB 的十六进制格式文档,多个 Unicode (感谢 @benkiel!) (#1028, #1024)
- [makeotfexe] 修复 OS/2.ulCodePageRange 比特的计算 (#1039, #1040)
- [依赖项] 更新
psautohint
和fontTools
到最新版 (#1043, #1057)
3.0.1 (发布日期 2019-08-22)
- [tx] 将每个 flex 提示作为一个单独的行输出 (#915)
- [tx] 修复了实例化带有打乱区域的 CFF2 字体时的
hmtx
值处理 (#913) - [tx] 修复了使用
-svg
、-cef
和-afm
选项时处理缺失的字体名称的问题 (#905, #908) - [tx] 改进了处理损坏的 CFF2 字体的方式 (#903, #906)
- [ufotools] 修正了 GLIF 文件中
<point>
元素属性顺序为 "x, y, type"(从 "type, x, y" 改变)(#900) - [makeinstancesufo] 多项修复和增强 (#899)
- [checkoutlinesufo] 修复了对非 UFO 字体格式的支持 (#898, #911)
- [tx] 添加了对 FDSelect 格式 4 的支持 (#890)
3.0.0 (发布日期 2019-08-07)
- 本版本仅支持 Python 3.6+
- 注意:由于切换到新的 XML 编写组件,UFO 相关 XML 输出的某些格式可能与之前版本的 AFDKO 有所不同(属性顺序、自闭合元素标签、缩进)。
- [python] 停止支持 Python 2.7 (#741)
- [tx] 在 svg 输出中仅使用 PUA Unicode 为未编码的字体 (#822)
- [buildcff2vf] 使用正确的默认主字体进行兼容化 (#816)
- [buildcff2vf] 在子集化时保留所有 OT 特性 (#817)
- [buildcff2vf] 修复兼容化中的错误 (#825)
- [various Python] 使用 fontTools.misc.plistlib (#711)
- [various Python] 使用 fontTools.misc.etree (#712)
- [various C/C++] 在多个工具中提高鲁棒性 (#833)
- [makeotf] 对临时文件使用绝对路径 (#828)
- [tx] 在第一次混合之前写入 vsindex(如果需要)(#845)
- [tx] 在子例程调用后递减子例程深度 (#846)
- [otf2ttf] 从 TTF 输出中删除 VORG 表 (#863)
- [makeotf] 防止代码执行 (#780, #877)
- [makeotfexe] 将 tx 子例程化 (#331)
- [tx] 添加了对阅读 FDSelect 格式 4 的支持 (#799)
- [tx] 修复了处理 IVS 区域索引的问题 (#835)
- [makeotfexe, makeotf] 限制 FontRevision 的最大值 (#876, #877)
- 在 afdko/pdflib 下整合 PDF 相关文件 ([pdflib] Consolidate PDF-related files under afdko/pdflib (#880))
- 修复了从没有 FontName 的字体生成 SVG 的错误 ([tx] Fix bug in generating SVG from font without FontName (#883))
2.9.1 (发布于 2019-06-22)
- 这是支持 Python 2.7 的最后一个版本
- [autohint/checkoutlinesufo/ufotools] 修复并增强了字形哈希计算,现在结果与 psautohint 版本 1.9.3c1 相匹配 (#806)
- [makeinstancesufo] 现在保留实例字体可能包含的
features.fea
文件(仅当设计空间文件中的所有基版都没有设置<features copy="1"/>
时) - [buildmasterotfs] 移除了稀疏基版的解决方案
- [tx] 修复了调用全局子程序时的无限递归 ([tx] Fixed infinite recursion in call to global subroutines (#775))
- [spot/makeotfexe] 更新了 OS/2 Unicode 范围以匹配当前的 OpenType 规范 (#813, #819)
- [makeotfexe] 修复了 MarkToBase 错误(注意:只有当基锚记录的坐标与第一个标记锚记录的坐标相匹配时,字体才会受到影响)(#815)
- [makeinstancesufo] 改进了 UFO 源的验证 (#778)
2.8.10 (发布于 2019-05-28)
- buildcff2vf 工具被重写以支持稀疏基版、字形子集,并更多地依赖
fontTools.varLib
。现有选项已被重命名,并添加了新选项 (#792, #800) - [mergefonts] 忽略 UFO 字形文件中的高度进阶值 (#795)
2.8.9 (发布于 2019-04-29)
- OpenType 功能文件规范已被转换为 markdown 格式,现在托管在 https://adobe-type-tools.github.io/afdko/OpenTypeFeatureFileSpecification.html (#777)
- [tx] 忽略 UFO 字形文件中的高度进阶值 (#786)
2.8.8 (发布于 2019-03-15)
- [makeotf] 撤销了在 afdko 版本 2.8.6 中对
features.fea
文件所做的优先级设置 ([makeotf] Reverted the preference forfeatures.fea
file made in afdko version 2.8.6 (#765)) - [sfntedit] 跳过缺失的表并发出警告而不是退出时显示致命错误 ([sfntedit] Skip missing tables and issue a warning instead of exiting with fatal error (#160))
- [sfntdiff] 启用不同字体格式的 diff 功能 ([sfntdiff] Enabled diff'ing different font formats (#626))
2.8.7 (发布于 2019-03-08)
- 修复了在 Cygwin OS 上的安装问题 (#748)
- [tx] 修复了混合溢出错误 ([tx] Fixed blend overflow error (#684))
- [tx] 修复了 delta 数组计算中的错误 ([tx] Fixed error in delta array calculation (#758))
- [makeotfexe] 修复了检测偏移量溢出到特征参数的错误 ([makeotfexe] Fixed detection of offset overflow to a feature parameter (#746))
- [makeotf] 修复了来自 tx 的重复警告消息 ([makeotf] Fixed duplicate warning messages coming from tx (#751))
- [makeotf] 修复了在没有参数运行工具时找不到默认命名文件时的错误消息 ([makeotf] Fixed error message when tool is ran without arguments and default named files cannot be found (#755))
- 更新了 AGD.txt (#750)
- [makeinstancesufo] 修复了当设计空间的
<instance>
元素的filename
属性没有前导文件夹路径时失败的情况。修复了复制非对齐组。([makeinstancesufo] Fixed failure whenfilename
attribute in designspace's<instance>
element has no leading folder path. Fixed copying non-kerning groups. (#753)) - [makeinstancesufo] 修复了各向异性插值 ([makeinstancesufo] Fixed anisotropic interpolation (#756))
2.8.6 (发布于 2019-03-01)
- 更新了FEA语法规范,允许在除了PairPos格式2之外的其他查找中使用
subtable
语句。 - [makeotf] 将
features.fea
添加到默认FEA文件名列表,并赋予其优先权。 - [tx] 如果源UFO中没有字体名称或版本,则不要伪造字体名称或版本(#437)
- [makeinstancesufo] 添加了
--ufo-version
选项。 - [otfpdf/ttfpdf] 四舍五入字形边界值(#128)
- [otfpdf] 向画笔提供字形集(#125)
- [tx] 从层的contents.plist中获取UFO的层文件名(#740,#703)
- [ufotools] 将
convertGlyphOutlineToBezString()
替换为来自psautohint的get_glyph_bez()
(#715) - [makeotf] 更新并重新格式化文档(#702)
- [makeotf] 使用FontTools复制字体表(#739)
- [makeotf] 在失败时删除零大小字体(#736)
2.8.5(发布日期:2019-02-09)
- [tx] 改进了子例程化。现在默认移除无用的子例程。-no_futile选项已被弃用(#704)
- [buildmasterotfs] 修复了主UFO和designspace文件在同一个目录时失败的错误
- [buildcff2vf] 修复了类型错误漏洞
- [fdkutils] 修复了py27 Windows上的UnicodeDecodeError(#719)
- [tx] 修复了处理已子例程化的CFF2字体时失败的错误(#721)
- [tx] 修复了标准苹果字形排序中的错误条目(#727)
- [makeotfexe] 添加了对上下文多替换的简写语法的支持
sub a b' c by d e;
(#725) - [makeotfexe] 修复了无限循环(#728)
- [makeotfexe] 允许在字形类中包含GID 0的字形(#726)
- [ufotools] 跳过
<dict>
元素中的<array>
(#700) - [tx] 支持UFO的lib.plist中的自闭合
<dict/>
(#701) - [makeotfexe] 修复了检测偏移量溢出错误(#731)
- [makeotfexe] 修复了将
useExtension
应用于匿名查找的应用(#321) - [tx] 支持UFO3指南(#705)
2.8.4(发布日期:2019-01-09)
- [ufotools] 修复了Python 3的问题(#676)
- [tx] 修复了
-dcf
选项未能打印CFF2全局subrs的问题(#681) - [tx] 修复了子例程化器的64K限制(#687)
- [makeinstancesufo] 从使用mutatorMath切换到ufoProcessor(#669)
- [makeinstancesufo] 从使用autohint切换到psautohint(#689)
- [makeotf] 修复了对
sfntedit
的调用(#690) - [checkoutlinesufo] 修复了无法删除重叠的问题(#239)
- [checkoutlinesufo] 修复了使用-w选项时的字形哈希值(#692)
- [spot] 更新了OpenType功能标签到v1.8.3(#693)
- [makeotfexe] 修复了“字形不在字体中”的错误(#698)
- [tx] 修复了 CFF2 混合/路径优化问题 (#697)
- [otc2otf] 修复了文件路径错误 (#708)
- [ttfcomponentizer] 修复了设置第一个组件标志的问题 (#709)
- [ttfcomponentizer] 更新
maxp
maxComponentElements 值 (#710)
2.8.3 (发布日期:2018-11-02)
- 新增
otf2ttf
工具,用于将 OpenType-CFF 字体转换为 TrueType。 (#625) - [tx] 现在更新了字体和符号边界框的值 (#618,#655)
- [makeotfexe] 现在更新了 CFF 表格的
FontBBox
值 (#617) - [makeotfexe] 移除了关于字体主要版本号的警告 (#622)
- [makeotfexe] 修复了子表溢出消息中的垃圾信息 (#313)
- [makeotfexe] 明确了
include
语句的路径解析 (#164) - [makeotfexe] 将特征文件包含递归的极限提高到 50 (#628)
- [mergefonts] 修复了警告消息 (#635)
- [autohint] 修复了路径包含空格时的失败问题 (#654)
- [proofpdf/waterfallplot] 修复了各种 PDF 相关问题 (#638)
- [beztools] 修复了在 py3 上对 hintLimit 的计算 (#629)
- [comparefamily] 更新脚本和语言列表到 OpenType 规范 v1.8.3 (#592)
- [comparefamily] 修复了各种崩溃问题 (#663,746ddeb4dc995e9975f9a8851d23ed226811fdaa)
- [makeinstancesufo] 改进了工具的选项 (#662)
- [ufotools] 将 UFO 处理层名称从
AFDKO ProcessedGlyphs
改为com.adobe.type.processedglyphs
(#662)
2.8.2 (发布日期:2018-09-18)
- 从
psautohint
(v1.8.1) 软件包切换到autohintexe
(#596,#606) - 为 Windows 添加了 64 位 (
win_amd64
) 轮 (#609) - [snftdiff/snftedit] 修复了退出代码 (#613)
- [makeotfexe] 修复了退出代码 (#607)
- [makeotfexe] 修复了设置 Unicode 值的 bug (#609)
- [makeotf] 修复了输入路径不在同一驱动器时相对路径的计算 (#605)
2.8.1 (发布日期:2018-09-07)
- 使轮 "通用" py2.py3 (#595)
2.8.0 (发布日期:2018-09-07)
- 添加了对 Python 3 的支持 (#593)
- 将 psautohint 添加到已安装包列表
- [makeotfexe] 修复了使用
LigatureCaretByPos
和LigatureCaretByIndex
关键字时GDEF
表格的内容 (#556) - [stemhist] 修复了退出代码。从输出中移除了重复的结果并修复了排序 (#552)
- [tx] 使子例程化结果确定 (#541)
- [makeotfexe] 修复了带有
useMarkFilteringSet
标志的二级查找创建问题 (#538) - [type1] 实现了
-h
选项。修复了退出代码 (#537) - [detype1] 修复了退出代码 (#536)
- [自动提示] 修复了运行并发进程时的文件冲突问题(#534)
- [创建OTF] 修复了
-cn
选项(#525) - [位置] 修复了使用
-t GPOS=7
选项时的崩溃问题(#520) - [tx] 添加了对UFO字形名称中的冒号
:
的支持(#518) - [创建OTF] 修复了
-ga
和相关选项(#514) - 将工具和脚本的名称改为全部小写(#511)
- 对目录结构和包结构进行了重大重组(#508)
- [位置] 修复了使用
-t GPOS=6
选项时的崩溃问题(#500) - [创建OTF可执行文件] 允许标记到基的语句引用不同的标记类集(#499)
- [创建OTF可执行文件] 允许在
DFLT
脚本下使用任何语言(#498) - [tx] 当发生致命错误时,优雅地退出(#495)
- 移除了脚本
BuildMMFont.py
、checkUFOProcessedLayer.py
和工具copycffcharstrings
、kerncheck
、makeinstances
(#490、#558) - [checkoutlinesufo] 支持处理UFO3字体(#482)
- [autohint/checkoutlinesufo/makeinstancesufo] 协调点进度(#478)
- [tx] 修复了将CFF2变量字体(包含非变化的字形)转换为CFF时的错误警告(#476)
- [tx] 修复了包含大量提示的CFF2变量字体无法转储的问题。修复了使用FDSelect写入CFF2字体时的错误(#467)
- [创建OTF可执行文件] 将具有负进度的源字形的进度宽度置为零(#460)
- [创建OTF] 支持包含非ASCII字符的文件路径。修复了关于特征文件不包含
vert
特征的通知。删除了非必要的Adobe Cmaps文件。修复了-shw
/-nshw
选项。修复了-cs
/-cl
选项的文档。更改了CID字体的处理方式:输出OTF现在保存在输入字体的同一目录中(这与非CID格式的处理方式一致;使用选项-o .
以获取旧行为)。支持从没有GlyphOrderAndAliasDB文件的Type 1字体构建(#458) - [tx] 修复了处理包含
<note>
元素的UFO时的崩溃问题(#455) - [tx] 修复了FontBBox值的计算。修复了处理包含
<anchor>
元素的UFO时的崩溃。添加了对UFO的空数组(以<array/>
形式表示)的支持,而不是<array></array>
(#452) - [创建OTF] 移除了对没有
postscriptFontName
的UFO的支持。启用了输出选项仅作为文件夹(#451) - [构建主OTF] 添加了对没有
<instances>
元素的designspace文件的支持(#449) - [tx] 对于超过65535字节的charstrings,发出警告而不是错误(#446、#597)
2.7.2(发布于2018-06-27)
- 实现了集成测试框架(#346)
- [ttxn] 修复了ClassRecord AttributeError(#350)
- [ttxn] 从脚本和语言标签中删除了尾随空格
- [tx] 当输出不是CFF2时获取混合的字体基线(#378)
- [spot] 修复了由于长字体名称导致的缓冲区溢出错误崩溃(#373)
- [ProofPDF] 添加了 'pageIncludeTitle' 选项(#379)
- [ProofPDF] 移除了对 'CID charsets' 文件的搜索(#368)
- 移除了 CID charsets 文件夹及其内容(#264,#368)
- [ProofPDF] 修复了 'lf' 选项(CID布局)损坏的问题(#382)
- [ProofPDF] 修复了字体没有 BlueValues 时崩溃的问题(#394)
- [makeinstancesufo] 禁用了 ufonormalizer 的 writeModTimes 选项。修复了 Windows 命令(#413)
- [ufoTools] 修复了在 Windows 上写入 UFO 文件时的换行问题(#413)
- [makeotf] 实现了正确的退出码(#417)
- [tx] 修复了 Windows 崩溃(#195)
- [tx] 修复了在 UFO 商标字符串中处理版权符号时的崩溃(#425)
- [makeotf] 忽略输入字体路径中的尾部斜杠(#280)
2.7.0(发布日期 2018-05-09)
- 新工具
ttfcomponentizer
,使用相关 UFO 字体的组件数据来组件化 TrueType 字体。(#293) - [CheckOutlinesUFO] 用 FontPens 替换了 Robofab 的画笔(#230)
- 移除了
extractSVGTableSVGDocs.py
和importSVGDocsToSVGTable.py
。这些脚本已被 https://github.com/adobe-type-tools/opentype-svg/ 中的脚本取代 - 移除了
cmap-tool.pl
、fdarray-check.pl
、fix-fontbbox.pl
、glyph-list.pl
、hintcidfont.pl
、setsnap.pl
和subr-check.pl
。这些 Perl 脚本可在 https://github.com/adobe-type-tools/perl-scripts 获取 - 移除了 CID_font_support 文件夹及其内容。
- [tx] 修复了 "在项变异存储子表中找到范围外的区域索引" 断言(#266)
- [makeotfexe] 修复了 Format 4 'cmap' 子表的不必要截断(#242)
- [buildCFF2VF] 修复了对具有多个 FontDicts 的 CFF2 字体的支持(#279)
- [ttxn] 更新到最新的 FontTools 版本(#288)
- 为所有三个环境(macOS、Windows、Linux)添加了 64 位支持(#271、#312、#344)
- [tx] 修复了
-dcf
模式无法转储提示的 CFF2 可变字体(#322) - [tx] 修复了将多 FD CFF2 字体转换为 CID 风格的 CFF 字体的转换问题(#329)
- [tx] 修复了
-cff2
无法将 CID/CFF1 转换为 CFF2 的问题(#351) - 所有三个环境(macOS、Windows、Linux)的轮子现在可在 PyPI 和 GitHub 上找到
2.6.25(发布日期 2018-01-26)
本版本修复了以下问题
- [CheckOutlinesUFO] 跳过在 UFO 的 lib 中引用但不存在名称的符号(#228)
- 在
BezTools.py
、ConvertFontToCID.py
、FDKUtils.py
、MakeOTF.py
、StemHist.py
、autohint.py
、buildMasterOTFs.py
和ufoTools.py
中实现了部分Python 3支持(问题编号#231、#232、#233) - [makeotfexe] 修复了字符变体(cvXX)特征编号的解析问题(问题编号#237)
- [pip] 修复了
pip uninstall afdko
命令(问题编号#241)
2.6.22(发布日期:2018-01-03)
afdko已经重构,现在可以作为Python包安装。它现在依赖于用户的Python解释器,不再包含自己的Python解释器。
为了实现这一点,我们放弃了两个Adobe拥有的非开源程序:IS
和checkOutlines
。如果这些程序变得非常缺失,它们将作为安装程序添加到旧的Adobe afdko网站上。当前的意图是将checkOutlines中的许多测试迁移到更新的checkOutlinesUFO
(它支持OpenType和Type 1字体,但目前只能进行重叠检测和删除,以及一些基本路径检查)。
可以从仓库的发布页面下载旧版本。
2.5.66097(发布日期:2017-12-01)
此列表仅列出了自上次发布以来的主要错误修复。对于完整列表,请参阅:https://github.com/adobe-type-tools/afdko/commits/master
- [buildCFF2VF] 添加了对fontTools模块的版本检查:只有从版本3.19.0开始,当主源字体不在轴的末端时,fontTools.cffLib才能正确构建PrivateDict BlueValues。
- [makeotfexe] 支持将字形映射到多个Unicode值。现在可以通过在GlyphOrderAndAliasDB文件的第三个字段中提供逗号分隔的UV值列表来实现,格式为'uniXXXXX'。
- [makeotfexe] 修复了一个崩溃的bug,当特性文件包含重复的类kern对时可能会发生。由Andreas Seidel通过电子邮件报告。
- [makeotfexe] 如果在字符变体(cvXX)特性之外使用特性文件'cvParameters'块,或者如果在样式集(ssXX)特性之外使用'featureNames'块,则添加致命消息。
- [makeotfexe] 放宽了名称表名称ID的限制。现在只有2和6被保留用于实现。
- [makeotfexe] 修复了一个bug,当将'size'特性与命名样式替代品一起使用时,会导致最后一个样式替代名称被大小特性菜单名称替换。顺便删除了旧专利通知。
- [makeotfexe] 恢复了对两个不同的字形映射到相同字符编码的致命错误的旧检查。
- [makeotfexe] 如果GOADB文件的最后一行不以新行结束,makeotf将退出,并称该行过长。
- [otf2otc] 现在可以接受单个字体作为输入,也可以接受OTC字体作为输入。
- [sfntdiff] 修复了旧bug:它曾经在没有文件路径或只有一个文件路径的情况下崩溃。
- [sfntdiff] 改变了行为:它现在仅在发生实际错误时才返回非零值;它曾经在没有字体之间差异的情况下返回非零值。
- [spot] 修复了旧bug:必须存在PrivateDict,但它的长度可以为0。
- [tx et al.] 添加了对从/到CFF2读取和写入混合提示的支持。
2.5.65811(发布日期:2017-04-27)
- [makeInstancesUFO] 保留public.postscriptNames lib键。
- [makeInstancesUFO] 不要使用postscriptFontName属性。
- [makeotf] 新增选项-V,用于打印MakeOTF.py脚本的版本。
- [tx] 添加了新的选项'-maxs',用于设置允许的最大子程序数。默认值现在是32K,因为一些旧系统无法支持超过这个数。
- 增加改进的CFF2支持:tx现在可以使用选项-cff2从CFF2字体(完整的OpenType字体)写入包含输出CFF2表的文件,具有完整的字符字符串优化和子例程化。最后一个选项仍在开发中:尚未广泛测试,并且尚不支持混合提示。
- 重叠删除的几个错误修复。
- 修复了子例程化中可能留下少量未使用子例程的bug。此清理是可选的,因为它需要启用该选项时比不启用该选项快3倍的处理速度,并且通常将字体大小减少不到0.5%。
- [ttxn] 选项'-nv'现在将打印名称ID 3和5,但实际版本号被替换为字符串"VERSION SUPPRESSED"。
- [ufoTools] 修复了与UFO字体相关的自动提示bug:如果编辑了一个符号并重新提示,自动提示将使用旧的处理层符号。
2.5.65781(发布于2017-04-03)
- [variable fonts] buildMasterOTFs 新脚本,从UFO源文件构建OTF字体文件,当构建可变字体时使用。
- [variable fonts] buildCFF2VF 新命令,从主OTF字体构建CFF2可变字体。
- [autohint] 修复了2015年12月1日因打字错误引入的bug。导致BlueFuzz始终设置为1。很少引起问题,但发现在将BlueFuzz设置为0的字体中;当BlueFuzz设置为1时,一些对齐区域被过滤掉,因为它们比BlueFuzz*3更接近。
- [autohint] 修复了与UFO字体相关的长期存在的bug,如果在提示后的符号上进行编辑,则运行autohint只会处理和输出处理层中的旧版本的符号。
- [CheckOutlinesUFO] 添加了"安静模式"选项。
- [CheckOutlinesUFO] 修复了一个bug,其中逻辑可能会尝试将离曲线点设置为起点。
- [CheckOutlinesUFO] 更改了分配轮廓顺序和起点的逻辑。重叠删除更改了这两个,并且checkOutlinesUFO会尝试在可能的情况下恢复原始状态。这些更改将导致与之前不同的轮廓顺序和起点,但修复了一个bug,并且通常会在从一组主设计生成的字体中生成实例时产生相同的轮廓顺序和起点。总会有一些差异。
- [MakeOTF] 用python函数替换了推导相对路径的老逻辑。
- [MakeOTF] 在makeotf将Type 1转换为CID时,mergeFonts和ConvertFontToCID.py中的逻辑要求FDArray FontDicts具有像FullName这样的键,实际上这些键并非必需,并且通常在源字体中不存在。修复了mergeFonts和ConvertFontToCID.py。
- [MakeOTF] 默认情况下,makeotf将在发布模式下添加最小的DSIG表桩。新的选项'-addDSIG'和'-omitDSIG'将强制makeotf添加或省略DSIG表桩。此功能添加是因为Adobe Type组正在停止签名字体文件。
- [makeotfexe] 修复了处理makeotf的非CID字体UVS输入文件的bug。
- [makeotfexe] 修复了makeotf在特征文件中指定nameID 25记录时拒绝该记录的bug。这个nameID值曾经是保留的,但现在用于在可变字体中使用任意实例覆盖PostScript家族名称。
- [mergeFonts] 移除了mergeFonts对每个FontDict必须有FullName、Weight和Family Name的要求。这修复了使用mergeFonts与UFO源和转换为CID键控输出字体相关的bug。开发者不需要在源字体中放置这些字段,因为它们不是必需的。
- [spot] 修复了名称表转储中的bug:Big5和PRC平台的语言标记被交换了。
- [stemHist] 移除了导致大量讨厌的输出的调试打印行,并且意外地留在了上次更新中。
- [tx] 在获取输出Unicode值时,UVS cmap的存在意味着不会从任何其他cmap子表中读取UV值。我修复了这个bug,但'tx'仍然不支持读取和显示UV值。这样做将是大量工作,因此我将将其推迟到下一轮FDK工作。
- 增加了对CFF2可变字体的支持作为源字体:当使用-t1或-cff时,这些字体将被快照到一个实例中。如果没有提供用户设计矢量(UDV)参数,则输出将是默认数据。如果通过选项-U提供了UDV参数,则实例将在指定的设计空间点构建。
- 增加了新选项+V/-V以删除输出Type 1字体(模式-t1)和CFF字体(模式-cff)中的重叠。这仍然是实验性的。
- 将子例程化速度提升了很多;CJK字体上的速度提升相当明显。(由Ariza Michiharu提供)
- 增加了新选项(+V/-V)以删除重叠。(由Ariza Michiharu提供)
- 更新到fontTools模块的GitHub master分支的3.9.1版本。
2.5.65322(发布于2016年5月27日)
- [CMAP文件] 更新UniCNS-UTF32-H到v1.14
- [构建] 进行了更改,以便在Xcode 7.x和OSX 10.11下编译。
- [文档] 在Feature File规范中修复了一堆错误。感谢Sascha Brawer,他仔细审查了这些内容。请参阅以下问题:https://github.com/adobe-type-tools/afdko/issues/created_by/brawer。
- [autohint] 修复了对历史文件的支持,该文件可以与非UFO字体一起使用。自从添加UFO支持以来,这个问题一直存在。
- [autohintexe] 修复了一个严重的错误:如果升位和降位既不在对齐区域内,又有一个重叠的较小茎部提示,则它们将被从对齐区域报告中删除。这发生在许多降位中。
- [checkOutlines] 修复了ufoTools.py中的错误,该错误导致checkOutlines(NOT checkOutlinesUFO)无法与UFO字体一起使用。
- [checkOutlines] 修复了错误,该错误错误地识别了非常细且部分凸的路径的方位。我对解决方案有点担心,因为我删除了一些用于双重检查默认规则逻辑的逻辑。然而,默认逻辑是确定方位的标准方式,应该始终正确。备用逻辑肯定不是始终正确的,因为它只应用于一个点,并且只有在与该点相关的曲线是凹的时候才是正确的。实际上,它是在路径上的几个不同点应用的,多数投票获胜。由于备用逻辑仅在路径非常细时使用,我怀疑这是一个为了解决特定情况而采取的粗略解决方案。更改已在几个大型字体上进行了测试,并且没有发现任何假阳性。
- [makeInstances] 修复了错误,该错误产生了带有Type 1 'seac'操作符(即Type 1复合字体)编写的那些符号的失真形状。
- [makeotfexe] 修复了在使用单个查找中的kern格式A和B时分配随机值的错误。
- [makeotfexe] 修复了将格式A的kern值(单个值)应用于'vkrn'特征中的X定位而不是Y定位的错误。对vpal、valt和vhal也应用了相同的逻辑。
- [makeotfexe] 最终集成了Georg Seifert的代码,以支持开发字体名称中的连字符。与Georg的分支不同,这个版本不允许最终名称(即GlyphAliasAndOrderDB的左侧名称)中包含任何特殊字符。然而,允许这种做法比以前要小得多:只需在
cb.c:gnameFinalScan()
中使用与gnameDevScan()
相同的参数即可。此更新还包括Georg为允许源字体具有'cidNNNN'形式的CID名称所做的更改。 - [ConvertToCID] 修复了脚本在多个地方期望字体信息文件至少包含一个用户定义的FontDict的错误。
- [ConvertToCID] 修复了脚本期望源字体在字体字典中具有Weight和Adobe版权字段的错误。
- [makeotf] 修复了当使用'-cn'选项时,'-nS'选项无法产生效果的错误。
- [makeotfexe] 移除了对'strsep()'的使用;该函数未在Windows C库中定义。
- 修正了删除重复和冲突条目的错误。修改逻辑,以保留一组重复或冲突条目中的第一个定义对。
- 修正了处理 GDEF 字符类语句的错误:如果使用了多个 GlyphClass 语句,额外的符号被添加到一个新的 4 个字符类集合中,而不是与允许的 4 个字符类合并。
- 修正了 GDEF 定义处理中的问题。对于符号同时指定 LigCaretByPosition 和 LigCaretByIndex 是错误的。
- 修正了错误信息:在特征定义内的命名查找中允许语言和系统语句,但在独立查找中不允许。
- 修正了 MakeOTF.py 帮助文本中关于默认源字体路径的错别字。
- 修正了 makeotf 中的一个旧错误。如果一个标记到基或标记到标记查找中的语句不都引用相同的标记类,makeotfexe 之前会为任何未由给定语句引用的标记类写入一个 'default' 锚点附件点 (0.0)。通过报告一个致命错误来修复此错误:特征文件必须重写,以便查找中的所有语句都必须引用相同的标记类集合。
- 抑制了在构建 CID 字体时未使用 GOADB 文件的警告。几周前我做出的一些更改,允许以 'cidNNNNN' 形式指定作为字形名称的 CID 构建字体,这使得此警告可以显示,但这对 CID 键字体来说并不合适。
- 修正了使用选项 -'cn' 将非 CID 源字体转换为 CID 时,maxp 表中的字形数量与输出字体中实际字形的数量不匹配的旧错误,因为转换使用了源字体数据,而不是受 GOADB 文件处理的第一次遍历名称键控 OTF。
- 修正了读取非 CID 字体的 UVS 文件中的错误。
- 修正了与开源许可证不兼容的版权声明。感谢 Dmitry Smirnov 指出这些问题。这些问题出现在一些 make 文件中,一个示例 Adobe CMAP 文件和一些技术文档中。
- 修正了 ProofPDF.py 帮助文本中的错别字。感谢 Arno Enslin。
- 修正了 ttxn.py 中的错误,该错误在使用最新字体工具库时破坏了其导出某些表的能力。
- 修正了在 CJK 字体设计中使用时,展平库元素时四舍五入分数值的错误。
- 修正了处理 FontDict FontMatrix 数组值时的错误:在某些情况下,1/2048 被错误地写成 1/2049,因为未使用足够的精度。
- 修正了读取 UFO 字体时的错误,这样没有
<outline>
元素且具有<lib>
元素的字形将被跳过。 - 对代码进行了少量修改,以允许 'tx' 作为 64 位程序编译。
- 修正了在 tx 更新为 64 位时引入的 AFM 格式数据导出错误。
- 修正了在处理 seac 时引入的错误,这是在处理四舍五入分数值时发生的。
- 修正了写入 AFM 文件时的错误:-1 值将被写入为 4294967295 而不是 -1。
- 添加了 -noOpt 选项,将混合运算符的名称从 'reserved' 更改为 'blend'。这样做是为了支持与多主字体进行的实验。
- 在读取 UFO 字体时:如果没有 PostScript 版本条目,将版本设置为 1.0。
- 在写入 UFO 字体时:如果 StemSnap[H,V] 缺失,但 Std[H,V]W 存在,则使用 Std[H,V]W 值来提供 UFO 的 PostScript StemSnap[H,V] 值。
- 修复了旧版在BlueScale中对十进制值进行四舍五入的错误,BlueScale是少数几个具有多个小数位精度的Postscript值之一。它在T1、T2和UFO文件中以ASCII文本十进制数字的形式存储,但在某些程序中作为C 'float'值内部存储。C中的实数无法精确表示所有十进制值。例如,C 'float'值最接近"0.375"的是"0.03750000149"。当写入输出字体时,tx将后者以ASCII文本的形式写入,而不是将其四舍五入到0.0375。通过在写入值时四舍五入到8位小数来修复此错误。此错误没有实际影响,因为0.0375和0.03750000149都转换为完全相同的浮点值,但很烦人,并且可能导致使用更高精度字段存储BlueScale值的任何程序的舍入差异。
2.5.65012(发布于2015-12-01)
- [makeotf] 修复了使makeotfexe无法在路径中包含空格的字体构建错误。
- [ConvertFontToCID] 修复了makeotf无法将UFO字体转换为CID的错误。
- [makeotf] 改变了对Unicode变体序列文件(选项'-ci')的支持,以便在用作名称键字体时,省略Region-Order字段,字形名称可以是最终名称或开发者字形名称。如果UVS条目中的字形在字体中找不到,则添加警告。请参阅MakeOTF用户指南。
- [makeotfexe] 现在始终为CID字体创建MS平台、Unicode、格式4的cmap表子表。这是Windows要求的。如果没有BMP Unicode值,则创建一个空子表,将GID 0映射到UVS 0。
- [tx 等] 当读取UFO源字体时,如果fontinfo.plist条目
styleName
存在但为空字符串,则不要抱怨。这是有效的,当样式是Regular时很常见。
2.5.64958(发布于2015-11-22)
-
[autohint/tx] 切换到使用新的与plist兼容的文本格式,用于UFO字体中的T1提示数据。请参阅ufoTools.py的标题以获取格式。
-
[autohint] 最终修复了过度生成弹性提示的问题。这已经是一个几十年的问题,但由于它没有在任何地方出现为问题,所以从未得到修复。makeotf的最后一个版本打开了解析警告,所以我们现在注意到了。
-
[checkOutlinesUFO] 修复了如果点的集合没有变化则不会合并相邻路径的错误。
-
[checkOutlinesUFO] 修复了如果
.glif
文件没有<outline>
元素则将其视为致命错误的错误。如果<outline>
元素缺失是有效的。 -
[checkOutlines] 改变了-I选项,使其还关闭了对微小路径的检查。添加了新的选项-5,以再次打开此检查。
-
[checkOutlinesUFO] 根据开发者的请求,将一个字形的路径数从64增加到128。
-
[CompareFamily] 修复了为CID字体应用连字符宽度测试的旧版错误,并修复了没有Mac名称表名称的字体的问题。现在,逻辑仅在实际上有一些名称时才报告缺少Mac名称表名称:如果没有,则抑制这些消息。
-
[fontplot/waterfallplot/hintplot/fontsetplot] 修复了防止这些工具与CID键字体和UFO字体一起使用的错误。由于生成PDF文件的第三方库非常有限,我通过简单地将源文件转换为名称键的Type 1临时字体文件,然后应用临时文件的工具来做到这一点。
-
[makeInstancesUFO] 为每个实例调用ufonormalizer工具。还添加了对defcon库的调用,以从lib.py和默认层中的每个字形中删除所有私有lib密钥,仅保留"public.glyphOrder"。
-
修复了Gustavo Ferreira报告的MakeOTF用户指南中的错误。
-
将搜索GOADB和FontMenuNameDB文件时向上搜索的最大目录数从2增加到3。
-
[MakeOTF/makeotfexe] 添加了三个新选项
omitMacNames
和useMacNames
仅在名称表中写入Windows平台菜单名称,除了在功能文件中指定的名称。useMacNames
同时写入Mac和Windows名称。overrideMenuNames
允许功能文件名称表条目覆盖名称ID的默认值和FontMenuNameDB中的值。名称ID 2和6不能被覆盖。请谨慎使用,并确保为所有平台提供了功能文件名称表条目。skco
/nskco
通过使用左侧行类0来抑制非零kern值,以抑制kern类优化。优化可以节省几百到几千字节,但会混淆一些程序。优化是默认行为,之前是唯一选项。
-
[MakeOTF] 允许仅从UFO字体构建OTF。如果没有在字体的父目录中找到
features
文件,将使用内部features.fea
文件。如果缺少GlyphAliasAndOrderDB文件,只会发出警告。如果缺少FontMenuNameDB,makeotf将尝试从UFO字体info文件构建字体菜单名称,使用以下键中找到的第一个:openTypeNamePreferredFamilyName
,familyName
,postScriptName
中的字体名称部分,最后是值NoFamilyName。对于样式,键是:openTypeNamePreferredSubfamilyName
,styleName
,postScriptName
中的样式名称部分,最后是值Regular。 -
[MakeOTF] 修复了允许输入和输出文件路径相同的错误。
-
[makeotfexe] 扩展了允许在字形名称中使用的字符集,包括
+ * : ~ ^ !
。 -
[makeotfexe] 允许开发者字形名称以数字开头;最终名称仍然必须遵循PS规范。
-
[makeotfexe] 修复了Gustavo Ferreira报告的具有超过32K字形的名称键字体崩溃错误。
-
[makeotfexe] 合并了Khaled Hosny的更改,取消了对'size'功能菜单名称需要Mac平台名称的要求。
-
[makeotfexe] 在生成功能文件解析器时进行代码维护。重新构建了'antler'解析器生成器以消除编译时的zzerraction警告,并更改了featgram.g,以便生成当前的featgram.c,而不是直接编辑后者。删除了'antler'解析器生成器的目标文件,并更新了解析器生成器的read-me文件。
-
[makeotfexe] 修复了非常旧的错误:自从FDK从Mac OS 9迁移到OSX以来,特征文件中的相对包含文件引用一直不起作用。现在它们相对于包含特征文件的父目录。如果没有找到,则makeotf将尝试将引用作为相对于主功能文件的相对引用应用。
-
[spot] 修复了导出风格功能名称的错误。
-
[spot] 修复了校对垂直功能的错误:需要使用vkern值。此修复由Hiroki Kanou提供。
-
[tx et all.] 修复了使用带有源UFO字体的'-gx'选项时的崩溃。
-
[tx et all.] 修复了UFO字形点具有空字符串名称属性时的崩溃。
-
[tx et all.] 修复了UFO字体没有lib.plist文件中的public.glyphOrder字典时的崩溃。
-
[tx et all.] 修复了由Belleve Invis报告的非常旧的在读取TTF字体时的错误。具有嵌套组件引用和x/y偏移或转换的TrueType字形会偏移。
-
[tx et all.] 添加了新的选项'-fdx',用于通过排除具有指定FDArray索引的所有字形来选择字形。现在此选项和'-fd'选项接受索引列表和范围,以及单个索引值。
-
添加了调用ufonormalizer工具的命令。
-
更新到最新版本的booleanOperations、defcon(ufo3分支)、fontMath(ufo3分支)、fontTools、mutatorMath和robofab(ufo3分支)。AFDKO不再包含任何第三方模块的私有分支。
-
在AFDKO中重新构建了Mac OSX、Linux和Windows Python解释器,将Python版本提升到2.7.10。Python解释器现在是为64位系统构建的,无法在32位系统上运行。
2.5.64700(发布日期2015-08-04)
- [ufoTools] 修复了无害但令人烦恼的错误。每次运行
autohint -all
时,都会在每个处理的字形上添加一个新的程序名称条目到hashmap的历史记录列表。只有当您使用文本编辑器打开hashmap文件时,您才会看到这一点,并且可能会最终在稍微慢一些的性能中看到。 - [checkOutlinesUFO] 修复了由于只有一两个点的轮廓存在而导致栈溢出的错误。
- [makeotf] 修复了Paul van der Laan报告的错误:当输出文件名包含空格时,无法构建TTF文件。
- [spot] 修复了在特征文件格式中导出GPOS 'size'特征时导致spot崩溃的新错误。
2.5.64655(发布日期2015-07-17)
- [ufoTools] 修复了将新提示块放置在flex运算符之后的错误,而它应该在之前。
- [autohint] 修复了由于在bez文件交换格式中切换到绝对坐标而引入的非UFO字体提示的新错误。
- [ufoTools] 修复了使用hashmap检测先前提示过的字形的错误。
- [ufoTools] 修复了处理checkOutlinesUFO.py(使用defcon库写入UFO glif文件)在某种情况下写入与默认字形层不同的文件名的错误。
- [makeotf] 修复了绝对路径到字体主目录中的Unicode值错误。
- [makeotf] 添加了对字符变体(cvXX)特征参数的支持。
- [makeotf] 修复了设置斜体样式强制OS/2版本为4的错误。
- [spot] 添加了对cvXX特征参数的支持。
- [spot] 修复了在导出长上下文替换字符串(如'GentiumPlus-R.TTF')时崩溃的问题。
- [tx] 修复了处理CID字形ID大于32K的错误。
- [tx] 将宽度、FontBBox写为整数值。
- [tx] 当存在小数部分时,将SVG、UFO和导出坐标写为两位小数的精度。
- [tx] 修复了处理'-gx'选项以排除字形的错误。修复了CID > 32K的问题。修复了字体有65536个字形时的问题:第一个到最后一个之后的所有字形都会被排除。
- [tx] 修复了写入cff和t1字体时十进制值的舍入错误。
- [tx] 增加了解释器堆栈深度,以允许有最多9个混合轴的CUBE运算符(库元素)。
- 修复了Windows构建:必须提供roundf()函数,并为_tmpFile函数提供更多包含文件。修复了一些编译错误。
- 修复了makeInstancesUFO文档中的错误。
- 修复了在Windows上的BezTools.py中的错误,当需要使用临时文件时。
2.5.64261(发布日期2015-05-26)
- [autohintexe] 解决了与分数坐标的大量问题。在上一个版本中,autohintexe被更改为读取和写入分数值。然而,内部值存储使用Fixed格式,只有7位精度。这意味着在小数点后两位发生下溢错误,导致坐标不正确。我能够通过将代码更改为使用8位精度来修复此问题,它支持两位小数(但不能更多!)而没有舍入错误,但这需要许多更改。当前的autohint输出将与先前版本的整数输入值的输出相匹配,但有两个例外。分数的杆值(很少)会在第二位小数上有所不同。新版本还将选择具有坐标值在-16256到+16256范围之外的图标的提示;上一个版本在计算杆的权重时有一个错误。
- 修改了写入bez文件的逻辑,改为写入绝对坐标值而不是相对坐标值。修复了小数截断导致的路径长度超过1设计单位时的累积误差。
- 修复了处理分数值的bug:对于-dump、-svg和-ufo模式,
tx
在写入接近整数值的分数值时存在bug。此外,tx
即使默认转换是单位转换,也始终应用应用用户转换矩阵的逻辑。这会产生将值舍入为整数的副作用。
2.5.64043(发布于2015年4月8日)
-
为从处理层中删除不在'glyphs'层的任何符号添加了新的逻辑。
-
在构建CID字体时,一些错误信息被打印了两次。
-
添加了新的选项
stubCmap4
。这导致makeotf只构建一个stub cmap 4子表,仅包含两个段。仅在AdobeBlank等特殊情况下需要,每个字节都是一个问题。Windows需要cmap格式4子表,但不要求它是有用的。 -
输出FontDict的大小不正确。一个函数在末尾添加了一些FontInfo键,但没有增加字典的大小。旧逻辑是将FontInfo字典的大小设置为当前键数的3倍。
-
修改了AFDKO的mutatorMath分支,使kern值、符号宽度和BlueValues全局提示值家族都四舍五入为整数,即使在使用
decimal
选项时也是如此。 -
在生成实例之前现在删除目标实例字体的默认'glyphs'层。这解决了当从主实例中删除符号时,实例字体仍然具有这些符号的问题。
-
为从处理层中删除不在'glyphs'层的任何符号添加了新的逻辑。
-
移除了
all
选项:尽管mutatorMath重写了所有符号,但哈希值对于尚未编辑的符号仍然是有效的。这意味着如果开发人员只编辑主设计中的少数符号,则只有这些符号在实例中会通过checkOutlinesUFO和autohint进行处理。 -
支持UFO工作流程中的分数坐标值
- 使用新的选项"decimal"时,checkOutlinesUFO(但不是checkOutlines)、autohint和makeInstancesUFO现在都将通过不进行舍入的十进制坐标。tx将以三位小数打印十进制值。
- tx已经报告了分数值,但需要修改以在写入UFO glif文件和PDF输出模式下仅报告3位小数。Acrobat无法读取具有9位小数的位置值的PDF文件。
- 这允许开发人员在不使用更大的em-square的情况下使用更高的点定位精度。Adobe Type小组发现,使用非1000设计单位的em-square仍然会在许多应用程序的布局和文本选择行高度中引起问题,尽管它符合Type 1和CFF规范。
- 请注意,autohint当前的设计问题限制了十进制精度和准确性为两位小数:1.01有效,但1.001将被舍入为0。
2.5.63782(发布于2015年3月3日)
- 修复了读取TTF时的bug。字体版本是从名称表中获取的,其中可以包含比仅仅字体版本多得多的内容。改为从head表中读取fontRevision。
- 改为只在操作符名称后换行,这样命令的坐标和命令名称就会保持在同一行。
- 使用零填充表数据,以便将表对齐到4的边界。由Cosimo Lupo提交。
2.5.63718(发布于2015年2月21日)
- [ufoTools] 修复了处理 flex 提示时导致的轮廓扭曲问题。
- [compareFamily] 修复了处理提示的 bug:会遗漏分数提示,从而错误地报告一个字符形没有提示。
- [compareFamily] 支持 CFF 字体没有 FullName 键的处理。
- [checkOutlinesUFO] 坐标以整数形式写入,同时也进行了四舍五入。
- [checkOutlinesUFO] 修改了保存功能,以便只保存处理过的字符形层,默认层不会被修改。
- [checkOutlinesUFO] 修改为将 XML 类型写入为 'UTF-8' 而不是 'utf-8'。这实际上是 FontTools xmlWriter.py 模块中的一个变化。
- [checkOutlinesUFO] 修复了使用说明和帮助文本中的错误。
- [checkOutlinesUFO] 修复了哈希字典处理,使其在跳过已处理的字符形时能与 autohint 一起工作。
- [checkOutlinesUFO] 修复了只更改删除平面曲线时错误地报告重叠删除的问题。
- [checkOutlinesUFO] 修复了看到的新字符形不在先前处理的字符形的哈希映射中时发生的堆栈转储。
- [checkOutlinesUFO] 添加了逻辑,以便尽力按与源字符形轮廓相同的顺序对新的字符形轮廓进行排序,这样最终的轮廓顺序将不会依赖于 (x,y) 位置。这是必要的,因为 pyClipper 库(用于删除重叠)否则会按 (x,y) 位置顺序排序轮廓,这可能导致来自同一套主字体的不同实例字体具有不同的轮廓顺序。
- [makeInstancesUFO] 修改为使选项 -i(选择要构建的实例)实际上起作用。
- [makeInstancesUFO] 移除了对 instance.txt 文件存在性的依赖。
- [makeInstancesUFO] 改为调用 checkOutlinesUFO 而不是 checkOutlines。
- [makeInstancesUFO] 移除了将所有文件路径转换为绝对文件路径的技巧:这是对 robofab-ufo3k 中的 bug 的一个工作区。
- [makeInstancesUFO] 移除了对旧的 instances.txt 元数据文件的全部引用。
- [makeInstancesUFO] 修复了当前目录不必是设计空间文件的父目录。
- 合并了 GitHub AFDKO 开源存储库中的修复。
- 更新到最新的版本 defcon、fontMath、robofab 和 mutatorMath。
- FDK/Tools/setFDKPaths 中的 Yosemite(Mac OSX 10.10)修复。当从另一个 Python 解释器(例如 RoboFont 中的解释器)运行 AFDKO 脚本时,父 Python 解释器可能会设置 Unix 环境变量 PYTHONHOME 和 PYTHONPATH。这可能会导致 AFDKO Python 解释器从其自己的库加载一些模块,而从父解释器的库加载其他模块。如果这些模块不兼容,则会导致崩溃。修复方法是,在调用 AFDKO 解释器之前取消设置变量 PYTHONHOME 和 PYTHONPATH。注意:作为一个单独的问题,在 Mac OSX 10.10 下,如果调用应用是从命令行运行的(例如:
open /Applications/RoboFont.app
),并且向 subprocess 模块调用添加了参数shell="True"
,那么对 FDK 命令的 Python 调用将仅在此调用应用从命令行运行时起作用。示例:log = subprocess.check_output( "makeotf -u", stderr=subprocess.STDOUT, shell=True)
。
2.5.63408(发布日期 2014-12-02)
- [spot] 修复了 GSUB 链上下文 3 验证文件输出中的错误消息;将其作为 shell 注释添加到验证输出中,导致转换为 PDF 失败。
- [makeotf] 将字符名称长度的限制从 31 个字符增加到 63 个字符。不建议在生产字体中使用,因为可能存在无法接受超过 31 个字符的文本引擎。这样做是为了允许构建测试字体以查找此类情况。
2.5.63209(发布日期 2014-09-18)
- [makeInstancesUFO] 添加了新的脚本,用于从UFO主设计字体中构建实例字体。此脚本使用Superpolator 3导出的设计空间XML文件来定义设计空间以及主字体和实例字体在设计空间中的位置。该文件格式的定义和使用该文件数据的相关库在GitHub上的开源mutatorMath库中,由Erik van Blokland维护。Superpolator设计空间相对于之前使用Type 1 Multiple Master字体格式来保存主设计的
makeInstances
脚本的优点有几个。新版本a) 允许每个符号有不同的主设计和位置,b) 允许主设计在设计中任意放置,因此允许中间主设计。为了使用mutatorMath库,AFDKO提供的Python现在包含robofab、fontMath、defcon库以及mutatorMath。 - [ttx] 更新到由Behdad Esfahbod在GitHub上维护的fontTools库的最新分支。为cffLib.py添加了一个补丁,以解决选择大型字形集的字符集格式时出现的小问题。
- 更新了四个Adobe-CNS1-*排序文件。
2.5.63164(发布日期2014-09-08)
- [makeotf] 在处理字体信息文件时,现在检测到
IsOS/2WidthWeightSlopeOnly
以及误拼的IsOS/2WidthWeigthSlopeOnly
。 - [makeotfexe] 改变了在除类间距外的查找中使用'子表'关键字时的行为。现在,此条件仅触发警告,而不是致命错误。这是FontForge开发者的请求。
- [makeotf] 修复了在Windows下无法制作TTF字体的错误。这是使用'ttx'程序引用路径时的问题。
- 修复了安装问题:从Windows AFDKOPython目录中删除了旧的Windows安装文件。这导致在用户的PATH环境变量包含AFDKOPython目录的路径时,在Windows下安装新的AFDKO版本失败。还修复了调用ttx.py的命令文件。
- 更新了用于构建具有Unicode IVS序列的表意文字字体的文件:
FDK/Tools/SharedData/Adobe Cmaps/Adobe-CNS1/Adobe-CNS1_sequences.txt
和Adobe-Korea1_sequences.txt
。
2.5.62754(发布日期2014-05-14)
- [IS/addGlobalColor] 使用'-bc'选项时,修复了在转储字形标题时CID值溢出的错误。修复了IS中的错误,以避免在逻辑中使用大于72点的符号时崩溃。
- [makeotfexe] 修复了将'-gs'选项作为默认行为应用的错误,将源字体子集化为GOADB中的符号列表。
2.5.62690(发布日期2014-04-30)
- [makeotf] 在从输入TTF字体构建输出TTF字体时,现在将抑制缺少提示的警告。为其他包含未提示符号的字体添加了新的选项'-shw'来抑制这些警告。这些警告仅在以发布模式构建字体时显示。
- [makeotfexe] 如果cmap格式4 UTF16子表太大而无法写入,则makeotfexe将写入一个仅包含前两个段的占位符子表。最后两个版本允许在符号名称中使用'-'。由于它会破坏在功能文件中使用符号标记范围,因此已删除此功能。
- 更新了版权信息,并删除了专利引用。对源代码树和构建过程进行了大量更改,以使构建开源AFDKO更容易。遗憾的是,IS和checkOutlines程序的源代码无法开源。
- [tx/mergeFonts/rotateFont] 删除了对'-bc'选项的支持,因为它包含不能在开源中共享的专利。
- [tx] 所有tx相关的工具现在在字体超过最大允许的子例程递归深度时报告。
- 当可能时,所有选项都添加到通用中:现在所有选项都支持UFO和SVG字体,' -gx '选项用于排除字体,' -std '选项用于cff输出,以及' -b '选项用于cff输出。
2.5.61944(发布日期:2014-04-05)
- [makeotf] 添加了新的选项'-gs'。如果使用'-ga'或'-r'选项,则'-gs'将省略GOADB文件中未命名的任何字形的字体。
- [Linux] 用32位版本替换了之前的构建(仅适用于64位系统),并重新构建了checkOutlines,关闭了调试消息。
- [ttx] 修复了FDK/Tools/win/ttx.cmd文件,使'ttx'命令再次工作。
2.5.61911(发布日期:2014-03-25)
- [makeotf] 添加了对两个新的'features'文件关键字的支持,用于OS/2表。指定'LowerOpSize'和'UpperOpSize'现在在OS/2表中设置'usLowerOpticalPointSize'和'usUpperOpticalPointSize'的值,并将表版本设置为5。
- [makeotf] 修复了'-newNameID4'选项,使其在Windows平台名称ID 4以及Mac平台版本中省略"Regular"的样式名称。请参阅构建61250中的更改。
- [tx] 当用户未指定输出目标文件路径(在这种情况下,tx会尝试写入stdout)时,tx现在如果输出是UFO字体,则报告一个致命错误,而不是崩溃。
- [tx] 修复了遇到空的
<dict/>
XML元素时崩溃的问题。 - [spot] 添加了逻辑以转储OS/2表版本5中的新字段,usLowerOpticalPointSize和usUpperOpticalPointSize。这些值的示例可以在Windows 8系统字体Sitka.TTC中看到。
- [ufo workflow] 修复了autohint和checkOutlines,使其'-o'选项工作,通过将源UFO字体复制到目标UFO字体名称,然后在该目标UFO字体上运行程序。
- [ufo workflow] 修复了不需要PostScript字体名称的工具。
- 添加了Linux构建。
2.5.61250(发布日期:2014-02-17)
- [tx] 修复了在读取字体文件时,字符字符串正好在填充缓冲区边界结束时发生的罕见崩溃错误。
- [tx] 修复了在子例程化时发生的罕见崩溃错误。
- [tx] 修复了当字体中包含超过32K个字形时,报告错误字形的值的错误。
- [tx] 修复了工具不会转储包含OpenType/CFF字体的TrueType Collection字体文件的错误。
- [tx] 修复了如果UFO字体缺少fontinfo.plist文件或psFontName条目,则无法读取UFO字体的问题。
- [IS] 修复了IS,使其在未提供请求此参数的参数的情况下,不再缩放带有缩放因子的fontDict FontMatrix。
- [makeotf] 选项'-newNameID4'现在使用OpenType规范中指定的名称ID 1和2构建Mac和Win名称ID 4。当名称ID 4为"Regular"时,省略样式名称。
- [makeotf] 更改了指定PosPair值记录的ValueFormat的逻辑。以前的逻辑始终使用最小ValueFormat。由于在PosPair值记录之间更改ValueFormat需要启动新的子表,因此使用多个位置调整的PosPair值记录的特征文件通常会有更多的子表断裂,尤其是在指定PairPos语句之后,使用值为零的Value Record的PairPos语句之后。使用新的逻辑,如果新ValueRecord的最小ValueFormat与用于上一个PairPos语句的ValueRecord的ValueFormat不同,并且上一个ValueFormat允许表达当前ValueRecord中的所有值,则使用上一个ValueFormat用于新ValueRecord。
- 添加了命令
otc2otf
和otf2otc
,用于从OpenType字体文件构建OpenType集合文件,反之亦然。 - [ttx] 将FontTools库更新到Behdad Esfahbod维护的GitHub分支上的最新构建,截至2014年1月14日。
- [ufo工作流] 在ufoTools.py中修复了错误。即使lib.py中存在public.glyphOrder键,字体列表也被按字母顺序返回。当缺少glyphOrder键时失败。
2.5.60908(发布日期:2013-10-21)
- [tx] 现在可以将UFO字体作为所有输出(除光栅化外)的源字体文件。它优先使用来自层
glyphs.com.adobe.type.processedGlyphs
的GLIF文件。您可以使用选项'-altLayer<层名称>
'选择另一个首选层。使用'None'作为层名称,以便让tx忽略首选层,并仅从默认层读取GLIF文件。 - [tx] 现在可以使用选项'-ufo'写入UFO。请注意,它不是一个完整的UFO编写器。它只写入PostScript字体数据中的信息。如果源是OTF或TTF字体,它将不会复制字体程序表之外的任何元数据。此外,如果目标是一个已存在的UFO字体,tx将用新数据覆盖它:它不会将新字体数据与旧数据合并。
- [tx] 修复了CID值>32K的错误:在将数据导出到AFM等文本格式时,曾将这些值写为负数。
- [autohint/checkOutlines] 这些程序现在可以与UFO字体一起使用。当源是UFO字体时,不允许使用写入另一个字体的选项'-o'。更改后的GLIF文件被写入层'glyphs.com.adobe.type.processedGlyphs'。每个脚本都维护一个宽度和标记路径运算符的散列,以便能够判断自脚本上次运行以来默认层中的字体数据是否已更改。这使得脚本仅处理自上次运行以来已更改的字体。autohint的第一个运行可能需要两分钟来完成2000字体的字体;第二次运行不到一秒,因为它不需要处理未更改的字体。
- [stemHist/makeotf] 现在可以接受UFO字体作为源字体。
2.5.60418(发布日期:2013-02-26)
- [autohint] 现在在字体info文件中跳过注释行。
- [makeotf] 添加了对'detype1'纯文本格式中源字体文件的支持。在字体info文件中添加了对"Language"关键字的逻辑;如果存在,将尝试将CID字体makeotf选项-cs设置为设置Mac脚本值。
- [compareFamily] 在Family Test 10中添加了检查,以确定字体是否确实是等宽或不是,当FontDict的isFixedPitch值或Panose值表示它是等宽时。
- [spot] 修复了在校对连字时无法应用'palt'/'vpal'特征的错误。
2.5.59149(发布日期:2012-10-31)
-
[makeotf] 在构建OpenType/TTF文件时,将逻辑更改为在head表yMax/yMin值与OS/2表usWinAscent/Descent值不同时,复制OS/2表的usWinAscent/Descent值。这是因为在
- 这两个值都应该表示真实字体的边界框顶部和底部,并且应该相等;
- 我们用作makeotf源的字体是由FontLab构建的;
- FontLab通过使用曲线点以及非曲线点来定义TrueType字体的字体边界框。如果一个路径在顶部和底部极端没有非曲线点,字体边界框最终会太大。然而,OS/2表的usWinAscent/Descent值是由makeotf使用转换后的T1路径设置的,并且更准确。请注意,我不尝试修复head表的xMin和xMax。这些不太重要,因为head表的yMin和yMax值被许多在Mac上用于行布局的应用程序使用,并且我知道没有应用程序使用xMin和yMin值。
-
[makeotf] 将Adobe-Japan1 CID字体的默认Unicode H CMAP文件更改为使用UniJIS2004-UTF32-H文件。
-
添加了与KozMinPr6N和KozGoPr6N一起使用的CID字体垂直布局文件:AJ16-J16.VertLayout.KozGo和AJ16-J16.VertLayout.KozMin。
-
更新了几个仅与CID字体一起使用的Unicode CMAP文件。
-
增加了新的Perl脚本,glyph-list.pl,用于构建CID字体。该脚本取代了已被从AFDKO中移除的三个脚本:extract-cids.pl、extract-gids.pl和extract-names.pl。
2.5.58807(发布于2012年9月13日)
- [makeotf] 发现当构建TTF字体时,GDEF表没有被复制到最终的TTF字体文件中。问题已修复。
2.5.58732(发布于2012年9月4日)
-
[autohint] 增加了一个新功能,以支持具有不同基线的符号集。现在您可以为几个不同的全局对齐区域和笔画宽度指定一组值,并在加提示时将它们应用于字体中特定的符号集。有关详细信息,请参阅选项'-hfd'。
-
[autohint] 允许AC处理没有BlueValues(即对齐区域)的字体。
-
[autohint] 尊重字体中的BlueFuzz值。
-
[autohint] 修复了抑制提示替换和允许更改的选项。
-
[autohint] 当对没有对齐区域或无效对齐区域的字体(带有'-nb'选项)进行加提示时,将任意对齐区域设置在FontBBox之外,而不是em-square。
-
[checkOutlines] 修复了一个错误,即当X的臂仅由两个具有相同边界框的路径形成时,它们会被错误地识别为重合的路径。
-
[checkOutlines] 修复了一个错误,即非常细小的元素会被识别为一个小子路径,并被删除。
-
[checkOutlines] 修复了确定路径方向的问题。逻辑只是跟随路径上的点,可能会被像括号这样的狭窄凹形内部路径所迷惑,内部轮廓跟随外部轮廓,如Cheltenham Std HandTooled字体。
-
[checkOutlines] 修复了确定路径方向的问题。之前的逻辑没有处理多个内部路径或多个包含的外部路径。逻辑也依赖于按路径边界框的最大Y值正确排序路径。用真实的贝塞尔数学替换了近似值,以准确确定路径边界框。
-
[checkOutlines] 更改了对可疑的大边界框的测试。之前的测试检查了超出基于1000em square的固定限制的符号边界框。新的测试只查找完全位于基于字体em square的矩形之外的路径,并且只报告它们:它永远不会删除它们。添加了新的选项'-b',用于设置用于测试的设计方块的尺寸。
-
[checkOutlines] 修复了一个错误,即当处理Type 1字体时,它会在磁盘上留下临时文件。
-
[checkOutlines] 移除了对重合控制点的测试。几十年来这并不是一个问题。它经常出现在字体中,因为设计师可能会选择不使用曲线上两个控制点中的一个。未使用的控制点与最近的端点的坐标相同,这会导致checkOutlines抱怨。
-
[compareFamily] 单个测试6。如果版权中存在专利号,则报告错误。Adobe发现,如果一家公司运输任何包含过期专利号的任何产品,它可能会被起诉。
-
[compareFamily] 单个测试22(检查连字符的RSB和LSB与左右连字符组件):现在已正确解析上下文连字符替换规则。
-
[compareFamily] 家庭测试18。在没有任何蓝色值的OTF字体中生存。
-
[compareFamily] 家庭测试2(检查兼容家族组在所有语言中的nameIDs相同):将WPF nameIDs 21和22添加到异常列表中,这些可能不在家族的所有字体中存在。
-
[fontsetplot] 修复了使其与CID字体一起工作的功能。还修复了使widow line控制正确工作的功能。为控制组标题的点大小添加了新的低级选项。
-
[fontsetplot] 修复了断言语句的语法。在第一次使用*plot命令时产生错误消息。
-
[kernCheck] 修复了使其能够处理具有上下文字距调整的字体。然而,它不会处理上下文字距调整中的字距对。
-
[makeotf] 修复了标记到连字符的bug。现在可以使用
<anchor NULL>
元素,而无需跟随它一个虚拟标记类引用。 -
【makeotf】修复了限制源CID字体FDArray元素数量的bug,将其限制为最多254个元素,而不是CFF规范中规定的255个元素限制。
-
【makeotf】修复了自动生成GDEF中的bug。当现在GDEF被定义时,所有在GlyphClass中的冲突类分配都会被过滤掉。如果一个符号被分配给make类,那么这个分配将覆盖任何其他类分配。否则,遇到的第一个分配将覆盖后面的分配。例如,由于BASE类是首先分配的,对BASE类的分配将覆盖对LIGATURE或COMPONENT类的后续分配。
-
【makeotf】修复了验证GDEF标记附件规则的bug。现在验证规则,而不是随机内存。对输出字体没有影响,但有时会产生错误信息。
-
【makeotf】修复了在尝试报告一个符号被添加到标记类中时,该符号已经存在于标记类中的崩溃bug。
-
【makeotf】如果OS/2代码页的第29位(Macintosh编码)被设置,则也将位0(拉丁(1252))设置为。在Windows XP和Windows 7中,如果只有Mac位被设置,则字体被视为没有编码,并且无法将字体应用于基本的拉丁文本。
-
【makeotf】默认情况下,将Windows名称ID 4(全名)与Mac名称ID 4相同,而不是将其设置为PostScript名称。这是为了与最新OpenType规范中名称ID 4的当前定义相匹配。新选项makeotf(‘-useOldNameID4’)和字体信息文件中的新键(“UseOldNameID4”)将导致makeotf仍然将PS名称写入Windows名称ID 4。
-
【makeotf】添加了对WPF名称,名称ID 21和22的支持。
-
【makeotf】修复了在生成标记到连字(GPOS查找类型4)时标记附件顺序的bug。组件符号可能会颠倒。
-
【makeotf】修复了在使用标记到标记(GPOS查找类型4)功能声明时自动生成GDEF表的bug。目标标记符号被注册为GDEF GlyphClass Base和标记符号,前者优先。makeotfexe现在在自动生成GDEF表的GlyphClass时,如果一个符号被分配给多个类时发出警告,并且标记到标记查找中命名的符号只分配给标记GDEF符号类。
-
【makeotf】修复了从TTF输入生成TTF字体时的bug。现在它合并了head和hhea表中的数据,并且更好地处理了'post'表。以前的逻辑在Mac Std Encoding中具有名称的符号不是连续的且不在字体开头时,会产生错误的符号名称。
-
【makeotf】为非CID源字体添加了新选项'-cn',允许从字体信息文件中读取多个全局字体对齐区域和笔画宽度,并使用这些信息构建一个具有身份CMAP的CID键控CFF表。这仅是实验性的;此类字体可能在许多应用程序中无法正常工作。
-
【makeotf】修复了在链式上下文语句的匹配字符串中的一个元素中可能有重复符号的bug。这种情况发生在类定义中对符号指定了多次。结果是格式2的覆盖表有重叠的连续范围:一个范围的末尾与下一个范围的开始具有相同的符号ID;无害,但会触发字体验证器的投诉。
-
【makeotf】更新到最新的Adobe CMAP文件,用于表意文字。在AFDKO中更改了CMAP目录的名称,并更新了查找文件的逻辑。
-
【makeotf】在提供GDEF功能文件定义时,类分配现在可以是空的
table GDEF { GlyphClassDef ,,,; } GDEF;
是一个有效的语句。您只需提供所有三个逗号和最后的冒号来定义四个类。以下语句构建了一个具有空Components类的GDEF GlyphClass。
table GDEF { GlyphClassDef [B], [L], [M], ; } GDEF;
-
【makeotf】符号别名文件现在定义了符号添加到目标字体末尾的顺序,以及定义了子集和重命名。
-
[makeotf] 将字体转换为CID格式时,现在可以使用不带字形别名文件的
-cid <cidfontinfo>
选项,前提是源字体字形具有“cidXXXX”形式的名称,这是使用mergeFonts从CID转换为基于名称时输出的。如果使用了-cid <cidfontinfo>
选项,但没有字形别名文件,那么字体中所有不符合“cidXXXX”格式的字形将被忽略。 -
[spot] 为格式2的覆盖表中的重复字形ID添加了错误信息,这是由于某些Adobe字体在makeotf中使用链式上下文替换时出现的错误引起的。注意:只有在请求级别7 GSUB/GPOS转储时才会写入错误信息。
-
[spot] 对GSUB/GPOS级别7转储进行了微小的格式更改,以便更容易将其编辑成实际的功能文件。
-
[spot] 当输出GPOS 'ignore pos'规则的功能文件语法时,现在将规则名称写为'ignore pos',而不仅仅是'ignore'。
-
[spot] 现在可以输出多达128个字符的字形名称(注意:这些不是合法的PostScript字形名称,并且仅在开发字体中遇到。)
-
[spot] 新增了'-ngid'选项,用于抑制TTF字体中尾部字形ID
@<gid>
的输出。 -
[spot] 如果没有DefaultLangSys条目,则不再转储。
-
[spot] 更改了上下文和链式上下文查找的转储逻辑,以便spot不会转储上下文查找中引用的替换或位置规则所引用的查找。之前的逻辑导致某些查找被转储多次,并且在上下文查找引用其他上下文查找的情况下,还导致无限循环。
-
[spot] 添加了对Apple核子子表格式3的支持。修复了在从Windows操作系统转储包含Apple核子表的字体时导致崩溃的旧错误。
-
[spot] 修复了在字体文件末尾存在核子表时,转储Apple核子表子表格式0时的错误。
-
[spot] 修复了在DejaVuSansMono.TTF中看到的崩溃错误:spot没有在Base Array base Record中期望锚点偏移为零。
-
[spot] 从查找flag转储中删除了逗号,以匹配功能文件规范。
-
[spot] 添加了对名称表格式1的支持逻辑,但可能不起作用,因为我无法找到具有此格式的字体进行测试。
-
[spot] 修复了OS/2代码页字段中“Canadian”的拼写错误。
-
[spot] 更改了cmap子表14的转储:十六进制值被转换为大写,而base+UVS值按顺序[base, uvs]写入。
-
[stemHist] 总是设置位于字体BBox之外的对齐区域,以避免源字体对齐区域影响茎宽的收集。
-
[stemHist] 修复了在茎和align报告中的字形名称比包含'.notdef'字形的列表中的字形ID偏移1个GID的错误。
-
[tx] 添加了支持选项'-n',用于从Type 1和CFF输出字体中删除提示。
-
[tx] 在cff输出模式中添加了新选项"+b",强制输出字体中的字形顺序与输入字体相同。
-
[tx] 修复了平展'seac'操作符中的错误。如果字形组件不在前256个字形中,则会选择错误的字形。
-
[tx] 添加了新的库,用于将svg字体作为源读取。tx现在可以读取它能够写入的所有SVG格式。处理路径操作符:M、m、L、L、C、c、Z、z以及字体和字形属性:"font-family"、"unicode"、"horiz-adv-x"、"glyph-name"、"missing-glyph"。
-
[tx] 修复了将TTF转换为OpenType/CFF时的错误。它在'posts'表中的斜体角度反转了符号,这反过来又反转了OS/2表字段ySubscriptXOffset和ySuperscriptXOffset的符号。此错误在makeotf构建的TTF字体中显示出来,因为makeotf使用'tx'从源TTF构建一个临时的Type 1字体。
-
[tx] 修复了在从CID转换为基于名称的字体时,不尊重'-usefd'选项的错误。
-
已更新内部Python解释器至版本2.7。
-
更新了Adobe Cmaps/Adobe-Japan1文件
- Adobe-Japan1_sequences.txt
- UniJIS-UTF32-H
- UniJIS2004-UTF32-H
- UniJISX0213-UTF32-H
- UniJISX02132004-UTF32-H
-
添加了与CID字体生产相关的几个脚本
- cmap-tool.pl
- extract-cids.pl
- extract-gids.pl
- extract-names.pl
- fdarray-check.pl
- fix-fontbbox.pl
- hintcidfont.pl
- subr-check.pl
2.5.25466 (发布日期 2012-03-04)
- [charplot] 从构建版本21898开始,此功能无效。现已修复。
- [checkOutlines] 更改为仅在用户指定选项'-i'或'-4'时调用垂直或水平线的测试,而不是始终如此。结果发现,当自动修复时,此测试在CJK字体中造成的问题比解决的问题更多。
- [compareFamily] 更改为默认检查假提示的基线宽度和位置。使用'tx'而不是Python代码来解析字符字符串,以提高提示检查速度。
- [compareFamily] 根据OpenType规范版本1.6更新了脚本标签和语言标签。
- [documentation] 在功能文件语法参考中修复了一些错误,并将文档版本提升至1.10。
- [documentation] 在第4.d节示例中修复了错误:lookFlag值由空格分隔,而不是逗号。
- [documentation] 在第8.c节关于样式名称的示例中修复了错误:名称字符串周围的引号需要匹配双引号。由Karsten Luecke报告。
- [documentation] 将agfln.txt版权声明更改为BSD许可证。
- [makeInstances] 修复了任何路径参数中的空格字符导致其失败的错误。
- [makeInstances] 修复了在使用ExtraGlyphs时可能使FontBBox错误的错误。
- [makeInstances] 修复了一个舍入错误,该错误可能导致makeInstances在不是缩放复合字形时错误地认为它正在缩放(该脚本不支持此操作)。
- [makeotf] 修复了从TTF输入生成TTF字体的错误。上一个版本根本不起作用。
- [spot] 添加了对“Small”字体的支持,这是Adobe内部PostScript变体,用于CJK字体。
- [spot] 添加了对大kern表的支持,例如Vista字体Cambria中的kern子表大小超过子表"length"字段可以容纳的值。在这种情况下,必须忽略"length"字段。
- [spot] 修复了默认情况下通过GID顺序显示GPOS记录的proof选项,只有在-f选项中才按查找顺序显示。从2003年以来,它总是按查找顺序验证GPOS规则。
- [spot] 修复了在转储TTC文件时的双重内存释放错误;这可能导致崩溃。
- [spot] 当将GSUB表反编译为特征文件格式(-t GSUB=7)并报告跳过的查找时,识别由链式上下文规则引用的查找。
- [sfntedit] 将最终的"完成"消息更改为发送到stdout而不是stderr。由Adam Twardoch报告。
- [stemHist] 修复了帮助文本中的错误,由Lee Digidea报告:'-all'选项不起作用。
- [tx] 添加了新的选项'-std',用于在输出CFF字体中强制使用StdEncoding。
2.5.21898 (发布日期 2009-05-01)
- [autohint/checkOutlines] 修复了当rrcurveto之前有如此长的rlineto列表,以至于超过了栈限制的罕见情况。
- [autohint/checkOutlines] 修复了将font.pfa输出文件恢复到StandardEncoding编码向量的错误。由于CFF StandardEncoding的要求与Type 1 StandardEncoding不同,因此有时在通过CFF格式(autohint在内部执行)进行往返时,Type 1字体中的StandardEncodingEncoding向量有时会被转换为自定义编码向量。
- [checkOutlines] 修复了由于缓冲区溢出而在Windows上随机崩溃的错误。
- [checkOutlines] 将默认日志模式更改为在没有错误报告的字体时,不报告字形名称。
- 为用于在单面测试23中查找(带重音的符号,基符号)对的带重音名称列表添加了"ring"。由David Agg报告。
- 将showfont重命名为fontplot2,以避免与Mac OSX的showfont工具冲突。
- 修复了显示垂直基点和进距的问题:没有正确使用VORG和vmtx表。
- 在实例生成器中添加了逻辑,以支持从实例中删除"工作"符号,为特定实例替换替代符号设计,并更新实例字体中的更多Font Dict字段。添加了帮助信息。
- 添加了命令行等价物"makeInstances",它执行相同的功能,但使用IS工具制作快照。参见"IS"条目。
- [IS] 添加了新的"智能缩放"工具。这使用MM字体的提示来在从MM字体快照时保持符号路径对齐。改进在需要保持对齐的多个元素的符号(如百分号和每千分号)中最为明显。当将字体从大em-square大小缩放到更小的大小时,这也很有用。为了有效,源MM字体必须带提示,并且必须定义全局对齐区域。新字体必须重新带提示。特别是对于来自MM字体的实例,重新做对齐区域是一个好主意,因为MM基本设计的混合通常不会产生最佳的对齐区域或实例字体的笔画宽度。makeInstances和"实例生成器"脚本允许您在重新做MM实例快照时保留这些修改。
- [makeotf] 修复了版本1.2 GDEF表的生成,以匹配最终的OpenType规范版本1.6。此版本仅在使用新的查找标志'UseMarkFilteringSet'时生成。
- [makeotf] 修复了风格交替功能名称的生成。存在一个错误,在某些情况下,风格交替功能的功能表条目会指向错误的查找表。
- [makeotf] 修复了反向替换查找类型的生成。在上一版本发布之前意外禁用了此功能。
- [makeotf] 修复了符号对象内存管理中的错误。如果构建的字体是正确的,但此错误可能导致字体无法构建。
- [spot] 修复为根据最终的OpenType规范版本1.6导出GDEF表版本1.2。
- [spot] 修复了lookupflags MarkAttachmentType和UseMarkFilteringSet的功能格式导出,以将类名作为参数,而不是类索引。
- [spot] 扩展了GDEF表的导出,以提供更易读的格式。
- [spot] 添加了htmxx和vtmxx的导出格式,以显示所有符号的进距和侧边距指标。
2.5.21340 (发布于2009-01-22)
-
[AGLFN] (新字体的Adobe符号列表) 创建了新版本1.7。
-
[AGLFN] 回退到Delta、Omega和mu的AGLFN v1.4名称和Unicode分配。v1.6版本从设计师的角度来看更好,但我们不能使用与Adobe符号列表2.0的历史用法冲突的名称到Unicode值映射。请参阅http://www.adobe.com/devnet/opentype/archives/glyph.html。
-
[AGLFN] 删除了列表中的所有"afii"名称:"uni"名称实际上更具描述性,并且在MacOSX下映射到正确的Unicode值。
-
[AGLFN] 删除了列表中的所有"commaccent"名称:"uni"名称在MacOSX 10.4.x之前映射到正确的Unicode值。
-
[autohint] 将AC.py脚本转换为调用命令行程序而不是Python扩展模块,就像makeotf一样,以避免继续出现Python版本问题。
-
[autohint] 修复为实际上发出vstem3和hstem3提示操作符(计数控制提示,这些提示工作以保持三个笔画的间隔开放且相等,就像'm'一样)——这自从第一个AFDKO以来就一直是错误的。现在它还会在源字体所在的同一目录中查找名为"fontinfo"的文件,并尝试将名为"HCounterChars"或"VCounterChars"的键中列出的名称的符号添加到笔画的提示中。
-
[自动提示] 修复了旧漏洞,该漏洞只关注在FontDict BlueValues列表中指定的顶部区域的底部四行。这导致在高的符号中产生更多的边缘提示。
-
[自动提示] 修复了在添加柔性操作符时可能导致无限循环的特殊情况。
-
[自动提示] 添加了 'logOnly' 选项,允许在不更改字体的情况下收集报告。
-
[自动提示] 添加了指定要排除在自动提示之外的符号的选项。
-
[自动提示] 除非特别请求,否则抑制生成和使用
<font-name>.plist
文件。 -
[自动提示] 修复了极复杂的符号可能会超出提示列表缓冲区的问题。
-
[检查轮廓] 改进了重叠检测和路径方向:现在它可以与由许多笔划元素重叠形成的轮廓一起工作,这在开发CJK字体时有时会这样做。
-
[检查轮廓] 添加了对几乎垂直或水平线的测试。修复了由Erik van Blokland报告的此新代码中的错误。
-
[比较家族] 将CFF表中完全家族名称与名称表中的名称不同的警告更改为“警告”而不是“错误”,并解释说这没有功能性影响。
-
[比较家族] 删除了检查Mac名称ID 16和17不存在的检查,因为makeotf现在会创建它们。请参阅MakeOTF用户指南中的相关说明。
-
[比较家族] 修复了再次使其与TTF字体兼容的问题。
-
[制作otf] 删除了在没有指定版权时向名称表添加默认Adobe版权的代码,并删除了添加默认商标的代码。
-
[制作otf] 添加了对lookupflag UseMarkFilteringSet的支持。这在OpenType规范1.6的提议更改中定义,其定义可能发生变化。
-
[制作otf] 取消了对vmtx/VORG/vhea表只写入CID键字体限制。现在,当特征文件中存在vmtx表覆盖的 'vrt2' 特征或这些表时,现在将为CID键和名称键字体都写入这些表。
-
[制作otf] 当在aalt特征定义中引用了一个特征,但该特征不存在或不对aalt特征做出任何贡献时,添加了警告。aalt特征只能接受单和替代替换规则。
-
[制作otf] 添加了对以下查找类型支持
- GSUB类型2多替换
- GSUB类型8反向链单替换
- GPOS类型3书写调整
- GPOS类型4基符到标记附加
- GPOS类型5标记到连字附加
- GPOS类型6标记到标记附加
-
[制作otf] 添加了对GDEF表显式定义的支持,并自动在忽略一个符号类或定义任何标记类时创建GDEF。
-
[制作otf] 支持使用TTF字体作为输入,以构建OpenType/TTF字体,但有一个限制,即无法更改符号顺序和符号名称。这在内部相当丑陋,但它是可行的。MakeOTF.py Python脚本使用tx工具将TTF字体转换为CFF数据,而不更改符号顺序或名称。然后构建OpenType/CFF字体。然后使用sfntedit工具将TTF符号数据复制到OpenType字体中,并删除CFF表。
-
[制作otf] 添加了对使用新的cmap子表类型14构建CID键字体Unicode变体选择器的支持。
-
[制作otf] 修复了在特征文件的特征定义中,脚本和语言继承默认规则的错误。显式定义的语言只得到在最后一个脚本语句之后定义的默认规则,并且当脚本被命名时,未被命名的脚本语言没有规则。
-
[制作otf] 修复了在当前目录不是源字体的主目录时无法运行makeotf的错误。
-
[制作otf] 当使用超出BMP的映射时,将OS/2.lastChar字段设置为U+FFFF。
-
【makeotf】按照与Windows菜单名称相同的规则创建Mac平台名称表字体菜单名称。在FontMenuNameDB文件语法中添加新关键词。如果你使用旧关键词,将得到旧格式;如果你使用新语法,将得到与Windows平台相同的名称ID 1、2、16和17。
-
【makeotf】修复了名称表字体菜单名称中的错误:如果你输入了一个非英语首选名称("f="),而不是兼容的族名称("c="),你将得到名称ID 16但没有名称ID 17。
-
【makeotf】修复了在Windows下出现的“已过时"except"语法”错误消息。
-
【makeotf】修复了错误:在没有回溯或前瞻上下文的情况下,上下文位置语句被写入为非上下文规则。由Karsten Luecke报告。
-
【makeotf】添加了当没有GSUB规则时创建空stub GSUB表的选项。
-
【makeotf】如果aalt功能定义引用了字体中不存在或对aalt功能不提供任何规则的功能标记,将添加警告。
-
【sfntdiff】修复,现在只将错误消息写入stderr;所有其他内容现在写入stdout。
-
【sfntdiff】修复了'name'表的输出错误:在处理目录而不是单个文件时,第二次目录的第一个文件之后永远不会更新名称表文本。
-
【spot】修复了选项'-F',以显示上下文规则子查找索引,并标记已由另一个查找使用的索引。
-
【spot】如果左侧类0为空,则不报告。
-
【spot】对于GSUB/GPOS=7 FEA输出,通过在每个类名称后追加查找ID,在整个字体中为每个类提供唯一名称。之前只是
[LEFTCLASS]()<class index>_<subtable index>
,但这些名称在每个查找中都会重复。现在变为LEFTCLASS_c<class index>_s<subtable index>_l<lookup index>
。 -
【spot】当位置值记录有多个值时,打印完整的4项值记录。以前,它只会打印非零值。在输出Adobe Arabic时,这可能会让人困惑,因为您会在某些pos规则末尾看到两个相同的值。实际上,每个这些pos规则确实有两个调整值,一个是x和y的推进调整,巧合的是这些数值相同。
-
【spot】修复了以正确的顺序写入回溯上下文符号。
-
【tx】添加了在快照MM字体时不要将设计坐标夹到设计空间内的选项。
-
【tx】添加了在写入CFF时将字体进行子例程化的选项。此选项源自与makeotfexe相同的代码,但内存使用量仅为10%,运行速度更快。这应该允许子例程化大型CJK字体,而makeotfexe无法处理。这是新代码,所以请仔细测试结果,即如果您使用它,请始终检查输出字体的展平字形轮廓与输入字体的展平字形轮廓是否相同。
-
【ttxn】添加了抑制字体程序中的提示选项以及版本和构建号。
2.0.27(发布日期2007-11-10)
- 【compareFamily】修复了单个测试3(由Mark Simonson和其他人报告);测试应将Mac平台名称ID 4(名称ID 1 + 空格 + 名称ID 2)与目标值进行比较,但使用的是名称ID 18(兼容完整名称)的值。
- 【compareFamily】修复了族测试2,以打印一个报告,有助于确定某些字体中存在但其他字体中不存在的一些{平台、脚本、语言、名称ID}。
- [IS] 修复了当应用基于提示的缩放可能导致偏移1个单位的错误,当closepath位置本应与原始的moveto位置重合时,导致实际上有一个单位的lineto,这可能会与初始路径重叠。在旧的MM设计世界中,我们通过设计MM,使得最终的一个curveto点与原始的moveto之间始终有一个单位的差异来解决这个问题。FontLab不支持自动执行此操作,因此在创建实例时,IS将简单地查找moveto和closepath位置相差一个单位的情况,并将moveto位置移动到与closepath位置重合。
- [makeotf] 修复了指定数千个单例字距对可能导致偏移量溢出并静默构建一个坏字体的错误。(由Adam Twardoch报告)
- [makeotf] 即使当前目录不是源字体目录,现在也可以使用相对文件路径。项目文件现在可以保存到源字体目录之外的目录。请注意,项目文件中存储的路径是相对于项目文件目录的。(由Andreas Seidel报告)
- [makeotf/spot] 添加了对Unicode变体序列(UVSes)的支持。请参阅MakeOTF用户指南和Unicode技术标准#37
- [spot] 修复了在所有转储级别打印'大小' GPOS功能内容的错误。
- [spot] 修复了处理某些Apple TT字体(如Osaka.dfont)中的'post'表格式4.0时的失败。
- 更新了Adobe-Japan-1 CMAP文件以构建CID字体。
2.0.26(发布日期2007-05-05)
- 为BBedit添加了
featurefile.plist
。将此文件安装到文件顶部显示的位置;它启用FEA语法的代码着色。文件位于FDK/Tools/SharedData。 - 将
MSFontValidatorIssues.html
添加到FDK/技术文档中。它列出了MS FontValidator工具的错误消息,对于OpenType/CFF字体可以忽略。 - [FontLab宏] 添加了InstanceGenerator。另一个从MM VFB字体制作实例的脚本。它比MakeInstances宏更简单。
- [FontLab宏] 在Set Start Points中移除了阻止处理超过50个符号的调试语句。(由George Ryan报告)
- [FontLab宏] 将CheckOutlines错误的说明添加到帮助对话框中。
- [checkOutlines] 添加了打印错误消息解释的选项'-he'。
- [compareFamily] 当字体的CFF表中包含Type 2
seac
运算符时添加了错误。CFF规范不支持此运算符。一些非常旧的工具允许这样做。 - [makeotf] 修复了在将复合符号定义为Type 1源字体中的复合符号时分解符号的错误。当复合符号的左侧边距与基本符号不同时,这会导致基本组件偏移。这可能是重要的,因为FontLab有一个选项,在生成Type 1字体时,可以不分解复合符号。
- [makeotf] 修复了在尝试从CID键字体ROS(注册顺序补充)字段中选择默认Mac cmap脚本ID时识别“Korea1”顺序的错误。
- [tx] 修复了从Type 1和CFF源字体分解几乎所有复合符号的错误。这仅在将Type 1或CFF字体子集化时发生,即转换为包含较少符号的字体。tx现在有'+Z'选项来强制执行此操作。
2.0.25(发布日期2007-03-30)
- [autohint] 添加了一个新选项,允许扩展自动hint尝试制作反提示的字形名称列表。
- [autohint] 修复了在将bez格式转换为时优化Type 2 charstrings时可能超过Type 2运算符堆栈限制的错误。
- [自动提示] 修复了设置 OtherBlues 对齐区域值的错误。
- [FontLab 宏] 当关闭 'flex' 提示时,Autohint 宏的行为有所不同;它进行了更多的提示替换,因为这些提示不允许在 'flex' 笔画的轮廓段内部。已将其打开,以便提示结果与命令行工具相同。这不会影响轮廓数据。
- [checkOutlines] 修复了防止报告具有相同坐标的两个连续点的错误。将源轮廓数据转换为 bez 格式的代码抑制了零长度线段,因此 checkOutlines 模块从未遇到过这个问题。
- [compareFamily] 添加了新的选项 '-st n1,n2..' 和 '-ft n1,n2..',允许仅执行特定测试。
- [compareFamily] 修复了测试 "如果样式链接的家族组没有 FamilyBlues 则警告"。在报告样式链接家族组中 FamilyBlues 不同(至少有一个字体具有真实的 FamilyBlues)的错误时,如果字体缺少后者属性,则使用 BlueValues 作为隐含的 FamilyBlues。同样适用于 FamilyOtherBlues。
- [compareFamily] 仅当整个区域完全位于字体 BBox 之外时才警告字体 BBox 之外的区域,而不是仅警告一个边缘,并且仅对 BlueValue 区域进行警告,而不是 FamilyBlueValue 区域。
- [compareFamily] 修复了 fsType 检查。如果 fsType 不是 8,则仅对 Adobe 字体进行抱怨,通过检查名称表商标字符串是否为空或包含 "Adobe" 来确定。
- [compareFamily] 修复了将 CFF 全名与名称表首选全名(ID 18)进行比较的 Single Face Test 3,而不是与全名(ID 4)进行比较。
- [compareFamily] 修复了在 CID 字体上失败的问题,因为它引用了字体 topDict 的 "Private" 字典属性,该属性在 CID 字体中不存在。
- [compareFamily] 修复了 'size' 测试,以支持仅表示预期设计大小的格式,其中不提供范围。
- [compareFamily] 修复了连字符宽度检查,同时也检查左右侧边距是否与左右组件的左右侧边距匹配,并使用 'liga' 功能来识别连字符及其组件,而不是基于字素名称的启发式方法。
- [makeotf] 禁止特征文件中 OS/2 表的 winAscent 和 winDescent 字段使用负值。
- [makeotf] 修复了具有
exclude_dflt
关键字的查找被排除,但如果脚本/语言使用 languagesystem 语句指定,则仍然包含在内的错误。 - [makeotf] 修复了 Windows 中的问题,当特征文件中未指定 OS/2 vendorID 并且版权字符串包含一个 8 位 ASCII 字符(如版权字符)时,用户会看到一个调试断言对话框。
- [makeotf] 修复了 Windows 中的问题,如果未提供 FontMenuNameDB,则名称 ID 17 会成为垃圾数据,并且 PostScript 名称不包含连字符。
- [makeotf] 添加了 Mac OSX 10.5 之前版本兼容性的警告:字素名称的总大小加上每个字素的 2 个字节填充必须小于 32K,否则 OSX 将崩溃。
- [makeotf] 修复了如果特征文件中没有 languagesystem 语句则发生的崩溃。
- [makeotf] 修复了子例程化程序中的错误,它允许子例程堆栈深度高达 10,但 Type 1 和 Type 2 规范仅允许 9。这导致大多数光栅化器声明字体无效。
- [makeotf] 移除了 '-cv' 选项;自 FDK 1.6 以来,CJK 垂直 CMaps 一直没有得到支持。
- [spot] 添加了对 GPOS 附件格式 3、4、5 和 6 的低级和特征文件风格文本转储的支持。
- [spot] 在特征文件风格报告中添加了对查找标志值的转储。
- [spot] 在 GDEF 表报告中添加了 MarkAndAttachmentClassDef 记录。
- [spot] 在上下文替换中添加了对 GSUB 查找类型 2(多个)的支持。
- [spot] 修复了 GSUB 查找 5 中的错误,导致在转储 trado.ttf 时崩溃。
- [spot] 修复了 GPOS 表的第 7 级(特征文件语法)转储中的错误;省略了扩展查找类型的值记录。
- [spot] 修复了在 Windows 上校对上下文替换语句时发生的崩溃。
- [spot] 修改Windows版本在校验时的行为:PostScript文件数据始终发送到标准输出,必须重新定向到文件。
- [spot] 改进了校验输出和 '-P' 选项的文档。
- [spot] 修复了带有版本2 TTC头部的TTC字体DSIG表报告,即使头部报告它是版本1,如meiryo.ttc。
- [spot] 启用了没有后表中有字形名称的校验TTC字体。
- [spot] 修复了TTF字体边界框的起始偏移量。
- [spot] 修复了在LongHorn中trado.ttf等非标记字形时校验TTF字体崩溃的问题。
2.0.24(发布日期2006-11-06)—FDK 2.0的公共发布
- [autohint/checkOutlines/ProofPDF] 修复了字形名称处理,以避免字形不在字体中时的堆栈转储。添加了对非零填充到5个十六进制数字的CID值的支持。
- [autohint] 修复了当BlueValues对数少于8对时,边缘提示会被生成而不是基线上的常规提示的bug。
- [checkOutlines] 修复了当重叠轮廓数量为偶数时,不会报告重叠的bug。
- [compareFamily] 修复了Italic角度单次测试12,在猜测字体斜体角度时,查看测试字形的中间三分之一而不是字形的边界框的顶部和底部。
- [compareFamily] 修复了单次测试15,允许字体BBox中的差异为1个单位,以允许舍入差异。
- [compareFamily] 修复了单次测试26,将uXXXX名称识别为有效的Unicode名称;正则表达式中存在bug,要求5位数字。
- [compareFamily] 修复了单次测试22,将Unicode范围u3000-u036F中的字形视为重音字形;要求它们与基字形的宽度相同。
- [compareFamily] 将报告从错误改为警告,只检查前四个Panose值是否非零。
- [compareFamily] 修复了导致单次测试16和22堆栈转储的bug。
- [compareFamily] 添加了对Mac OSX 10.4之前兼容性的测试:没有字符串小于32K,字形名称加上填充的总大小小于32K。
- [compareFamily] 添加了测试,已知发布字体没有OS/2表版本4,而新字体有。
- [compareFamily] 修复了单次测试11:在抱怨之前,允许BASE偏移量与计算偏移量相差多达10个设计单位。
- [compareFamily/makeotf] 修复了当工具路径包含空格时的失败。
- [kernCheck] 新工具;查找冲突的kern GPOS规则,并查找重叠的字形对。
- [kernCheck] 添加了选项,允许仅运行GPOS子表中的kerning规则冲突的检查。
- [makeotf] 修复了'-adds'选项。
- [makeotf] 添加了新的选项'-fi'来指定字体信息文件的路径。
- [makeotf] 添加了新的选项'-rev'来增加字体修订字段。
- [makeotf] 如果(fontinfo)文件包含FSType的关键字/值,将检查该值与最终OTF字体中OS/2 fsType字段的值是否相同。这与Adobe CJK字体开发的历史实践有关。
- [makeotf] 添加了对设置OS/2 ulUnicodeRange字段中的一些平面1+位的支持。
- [mergeFonts] 将将cidfontinfo文件中字重的值应用于输出字体。
- [spot] 添加了对显示OS/2 ulUnicodeRange字段中的一些平面1+位的支持。
- [stemHist] 当要求报告不存在时,在请求新的对齐区域报告时不要删除旧的茎报告,反之亦然。
- [setsnap.pl] 新工具,用于选择标准茎提示值。这个Perl脚本是stemHist的报告,并推荐一组用于Type 1字体标准茎数组的值。这不如你自己选择最相关值好,但比不提供任何值要好。
- 在Overview.html中,添加了关于'languagesystem Dflt dflt'和FDK 1.6功能文件的警告。
- 在《MakeOTFUserGuide.pdf》中,对fontinfo文件进行了扩展讨论,更新了OS/2 v4表格位的文档,并根据Adobe的实践,为下一次库版本更新提供了文档。
- 在《OT Feature File Syntax.html》中,修正了winAscent关键字的错误符号,扩展了对DFLT脚本标签和使用Extension关键字的讨论,并修正了少量错误。
- 新增了关于使用rotateFont和mergeFonts的两篇技术笔记。
2.0.22(发布日期:2006-09-12)
- [compareFamily] 单个测试3现在还检查Mac名称ID 4是否以首选家族名称开头,并且与CFF表的全称相同。
- [compareFamily] 在单个测试11中添加了对BASE表存在性和验证的测试。
- [compareFamily] 修复了在报告字体BBox错误时失败的bug。
- [compareFamily] 在单个测试26中添加了测试,以确认某些特定字形名称未从字体上一个版本更改。
- [compareFamily] 添加了“单个面测试27:检查删除线/下标/上标位置”。检查值是否与基于em框大小的默认计算值匹配。
- [compareFamily] 添加了“单个面测试28:检查字体OS/2代码页的常用代码页位”。检查OS/2 ulCodePageRange和ulUnicodeRange块是否与默认的makeotf启发式方法匹配。
- [compareFamily] 在单个测试12中添加了对斜体角度的粗略计算。如果与后表斜体角度值相差超过3度,则发出警告。
- [compareFamily] 在家族测试15中添加了检查,以确保首选家族中的所有字体都具有相同的hhea表下划线大小和位置值。
- [compareFamily] 添加了“家族测试16:检查首选家族组中所有面的任何字形的宽度是否不超过任何其他面中相同字形的3倍宽度”。
- [compareFamily] 优化了家族测试3的效率。
- [makeotf/makeotfexe] 添加了一个新选项'-maxs
<整数>
'来限制由子程序化生成的子程序数量。仅在构建测试字体以探索处理子程序中可能的错误时使用。 - [makeotf/makeotfexe] 允许工作名称长度超过31个字符;如果最终名称超过31个字符,则发出警告但不会退出。
2.0.21(发布日期:2006-08-31)
- [makeotf] 修复了当'size'特性是字体中唯一的GPOS特性时,构建错误的bug。
- [spot] 改进了'size'特性问题时的错误信息。
- [compareFamily] 添加了对环境变量的依赖:应将
CF_DEFAULT_URL
设置为铸造厂URL;它与名称ID 11进行比较。CF_DEFAULT_FOUNDRY_CODE
应设置为铸造厂的4个字母供应商代码;它与OS/2表achVendID字段进行比较。 - [compareFamily] 检查CFF PostScript名称是否与Mac和Windows名称表名称ID 6相同。
- [compareFamily] 检查是否存在名称ID 9和11(设计师名称和铸造厂URL)。
- [compareFamily] 扩展单个测试4以验证版本字符串是否为正确的格式'(版本|OTF)n.nnn'。
- [compareFamily] 改进了Panose测试,以检查值是否不为全部0,并且CFF字体字典的'isFixedPitch'字段与Panose等宽值匹配。
- [compareFamily] 添加了检查以确认存在Unicode cmap子表。
- [compareFamily] 添加了检查以确认如果存在GPOS或GSUB规则,则latn/dflt和DFLT/dflt脚本/languages是否存在。还检查脚本和语言标签是否在注册列表中,以及所有字体是否具有相同的一组语言和脚本标签,以及每个语言和脚本对的特性列表。
- [compareFamily] 添加了检查以确认家族中的所有字体都具有相同的OS/2表fsType嵌入权限值。
- [compareFamily] 添加了检查以确认如果字体具有粗体样式位,则CFF forceBold标志处于开启状态。反之亦然,如果字体粗细小于700。
- [compareFamily] 添加了检查以确认如果字体不是CID键入的,则它没有UniqueID或XUID。
- [compareFamily] 增加了符号名称检查:OS/2默认字符是.notdef,TrueType字体中存在NULL和CR符号,并且名称符合当前Adobe符号字典。注意,最新的做法是使用'uni'名称作为所有'afii'符号的最终名称。
- [compareFamily] 修复了家族BlueValues测试,使其在兼容家族名称组内进行比较。
- [compareFamily] 将家族测试2改为检查所有名称ID(16、17、18除外)在首选家族的所有字体中都存在且具有相同的语言/脚本值。
- [compareFamily] 修复了单次测试3,它没有完成描述的功能。
- [FontLab宏] 修复了在构建19中更改与命令行脚本共享的模块时引入的错误。
2.0.20(发布于2006-08-14)
- [ProofPDF] 修复了在瀑布图模式下Acrobat报告输出PDF文件已损坏的错误。
- [makeotf] 修复了在构建19中引入的防止以发布模式构建CID字体的错误。
2.0.19(发布于2006-08-04)
-
[compareFamily] 增加了家族测试13,如果同一首选家族中的两个字体具有相同的OS/2权重、宽度和斜体设置,且OS/2版本大于3,将报告错误。还报告了一个错误,如果同一首选家族名称组中的字体在fsSelection字段中的位8“WEIGHT_WIDTH_SLOPE_ONLY”设置不同。
-
[compareFamily] 修复了家族测试12,当字体具有没有DefaultLangSys条目的脚本/语言时不会失败。
-
[makeotf] 如果存在具有请求的输出文件名的字体文件,将在运行makeotfexe之前删除它,以便可以判断其是否失败。
-
[makeotf] 如果在'fontinfo'文件中存在以下键/值对,将设置新的'fsSlection'位。
PreferOS/2TypoMetrics 1 IsOS/2WidthWeigthSlopeOnly 1 IsOS/2OBLIQUE 1
-
[digiplot] 添加了指定字体基线的新选项,因此可以在没有BASE表的字体文件校对时设置正确的基线。
-
[digiplot] 允许在校对名称键字体时使用CID布局文件提供元信息。
-
[ProofPDF] 添加了两个函数:waterfallplot 和 fontsetplot。waterfallplot目前还不能与TrueType或CID键字体一起使用。
2.0.17(发布于2006-05-15)
-
修复了多个工具,以允许在包含空格的路径上安装FDK。
-
[autohint] 添加了抑制提示替换的选项。
-
[autohint] 修复了帮助和信息,使其引用'autohint'工具名称,而不是AC脚本文件名。
-
[autohint] 修复了处理提示掩码时的错误:没有设置位的字节被省略。
-
[autohint] 添加了允许在没有StdHW或StdVW条目的字体私有字体字典中进行提示的选项。
-
[checkOutlines] 修复了修复轮廓时写入更改。
-
[checkOutlines] 修复了当三个交替的垂直线或vh/hv/vv/hh曲线后跟时损坏轮廓的错误。
-
[checkOutlines] 将现在将报告写入日志文件以及屏幕。添加了设置日志文件路径的选项,并添加了数字后缀到名称,以避免覆盖现有的日志文件。
-
[compareFamily] 修复了在通过目录查找字体文件时遇到用户没有读权限的文件时发生的问题。
-
[compareFamily] 添加了单次测试24:检查'Design Size'特征大小是否在字体指定的设计范围内。
-
[ProofPDF] 添加了showfont命令,以显示如何自定义命令文件以生成不同的页面布局。
-
[ProofPDF] 修复了字体em-square不是1000的情况。
-
[fontplot/charplot/digiplot/hintplot/showfont] 添加了对Type 1字体文件、OTF和TTF文件的支持。
-
[makeotf] 修复了MakeOTF在给出带有空格的字体路径时能够继续运行。
-
[makeotf] 修复了'-S'和'-r'选项。
-
[makeotf] 添加了新选项'-osv
<number>
',允许设置OS/2表版本号。 -
在[makeotf]中添加了新选项'-osbOn
<数字>
',用于在OS/2表中将任意位字段'fsSelection'设置为开。可以多次使用以设置多个位。 -
在[makeotf]中添加了新选项'-osbOff
<数字>
',用于在OS/2表中将任意位字段'fsSelection'设置为关。可以多次使用以清除多个位。 -
如果未使用'-b'或'-i'选项,则在源字体文件所在的同一目录中检查是否存在文件'fontinfo',如果找到这些键/值,则设置样式位。
IsBoldStyle true IsItalicStyle true
-
在[FontLab宏]中构建了autohint和checkOutline库(PyAC和focusdll),与Python2.3链接,以便与FontLab 5一起使用。
-
在[mergeFonts]中添加了仅从第一个源字体复制字体度量选项。
-
在[mergeFonts]中允许在字形别名和在cidfontinfo文件中包含空行和"#"注释行。
-
在[rotateFont]中修复了不允许使用负数的错误。
-
在[rotateFont]中允许在旋转信息文件中包含空行和"#"注释行。
-
在[sfntedit]中进行了修复,使其不会在致命错误后留下临时文件,也不会因为已存在而退出。
-
在[spot]中修复了链式上下文sub和pos语句的回溯字形顺序。现在假设这些是按正确顺序构建的。
-
添加了两个新工具,type1和detype1,可以将Type 1字体编译/反编译为纯文本表示。
2.0.5(发布日期:2006-02-14)
- 在[compareFamily]中添加了警告,如果OS/2表sTypoLineGap、sTypoAscender和sTypoDescender的总和与usWinAscent和usWinDescent的总和不相等。
- 在[compareFamily]中更新了允许在样式链接面中使用的重量的测试,以反映Windows XP的当前行为。
- 在[compareFamily]中添加了对OpenType/CFF的检查,如果Windows名称表ID 4(Full Name)与PostScript名称相同。
- 在[compareFamily]中添加了对不同语言系统中特征集的报告,如果它们在字体的所有面中不相同,则显示错误消息。
- 在[compareFamily]中修复了有关菜单名称未正确构建时显示的错误信息的错误。
- 在[compareFamily]中修复了用于检查FontBBOX的测试,以使用em-square而不是假设1000 em。
- 在[compareFamily]中添加了警告,如果连字符的宽度不大于第一个字形的宽度。
- 在[compareFamily]中添加了警告,如果带音标的字形宽度与其基字形的宽度不同。
- 在[compareFamily]中添加了错误消息,如果同一个字族中的两个面具有相同的OS/2宽度类和重量类以及斜体样式设置,并且不是光学大小变体。光学大小检查是粗略的:Adobe标准光学大小名称(Caption、Capt、Disp、Ds、Subh、Six)从PS字体名称中删除,然后进行比较;如果PS名称相同,则假定它们是光学大小变体。
- 在[compareFamily]中添加了对CJK字体进行检查,以确保没有提示超出FontBBox。
- 在[spot/otfproof]中将“韩文”添加到OS/2代码页范围的标签列表中。
- 在[spot/otfproof]中修复了'大小'特征的转储,以支持正确和旧版本。
- 在[spot/otfproof]中添加了对上下文链式定位格式3的转储/校验。
- 在[spot/otfproof]中添加了警告,表示仅支持其他上下文查找的低级别转储。
- 在[makeotf]中,程序现在是独立的C可执行文件。
- 在[makeotf]中移除了写入旧的不正确格式的上下文定位规则的选项。
- 在[makeotf]中,MakeOTF不再为其无法识别的字形分配Unicode私有使用区域值。要使用PUAs,请明确在GlyphOrderAndAlias文件中分配它们。
- 在[makeotf]中修复了名称表名称ID "Version"中的错误:如果版本十进制值为x.000,则Version名称ID字符串中的值是x.001。
- 在[makeotf]中修复了处理DFLT语言脚本的错误:现在可以使用此标签。
- 在[makeotf]中修复了特征文件解析错误,其中一个特征中的'dflt'查找被应用于以下特征,如果以下特征以除'dflt'之外的语言语句开始。
- [makeotf] 修复了严重漏洞,该漏洞导致在字符字符串以宽度值开头的情况下计算字形宽度错误。然后是垂直提示坐标的值对,然后是提示掩码或控制掩码操作符。漏洞在于当 MakeOTF 读取字符字符串以推导 hmtx 宽度时,它会丢弃控制掩码操作符之前的数据,导致解析器使用 CFF 默认宽度进行字形。
- [makeotf] vhea.caretSlopeRise 和 vhea.caretSlopeRun 现在分别设置为 0 和 1,而不是相反。
- [makeotf] OS/2 表的 'fsType' 字段现在设置为功能文件覆盖。如果没有提供,则使用环境变量 FDK_FSTYPE 的值。如果没有设置,则默认为 4(预览和打印嵌入)。
- [makeotf] 增加了支持基字形的上下文链定位;标记和锚点尚未支持。
- [makeotf] 修复了 'size' 功能中的漏洞:现在将功能参数偏移量设置为从功能表开始的位置,而不是从 FeatureList 表开始的位置。
- [makeotf] 允许 'size' 功能点大小指定为小数点,也可以指定为整数 decipoints。
- [makeotf] OS/2 表的版本现在设置为 3。
- [makeotf] 添加了 winAscent 和 winDescent 的 OS/2 覆盖。
- [makeotf] 添加了 Ascender/Descender/LineGap 的 hhea 覆盖。
- [makeotf] 仅在字体在 Unicode 块中有合理数量的字形时设置 OS/2 Unicode 覆盖位;如果字体在该块中甚至有一个字形,就会设置这些位。
- [makeotf] OS/2 代码页范围字段中的 "Macintosh" 代码页位现在默认设置。
- [FEA规范] 修复了第 2.g.ii. 命名字形类 节中不正确的范围示例。
- [FEA规范] 更改了规则,允许在 FDK 2.0 中的功能定义之外查找定义。
- [FEA规范] 修复了对于语言标签使用 'DFLT' 而不是 'dflt' 的错误。
1.6.8139(发布于 2005-08-30)
- [OTFProof] 修复了在导出 GSUB 表中的错误:GSUB 查找 5,上下文查找假定存在向前看和回溯序列。
- 更新了 SING 元数据表标签到最新集合。
1.6.7974(发布于 2004-08-30)
- [makeotf] 修复了构建 CJK 字体的规则。在查找 Adobe CMap 文件时,将不再使用硬编码的最大补充值来尝试构建路径。
1.6.7393(发布于 2004-01-14)
- [compareFamily] 修复了当家族没有 BlueValues 时的堆栈转储(由 House Industries 报告)。
- [compareFamily] 修复了当 CFF-CID 字体具有没有
subr
调用的字形时的堆栈转储。 - [OTFProof] 修正了上次发布中的错误,其中省略了连字匹配字符串名称之间的空格。
- [FontLab宏] 添加了用于测试连接脚本字体设计中连接是否良好的脚本。
- [OTFProof] 修复了在证明或导出 GSUB 查找 5、上下文查找的功能文件语法时的崩溃。还修复了规则生成逻辑:先前证明和功能文件语法格式的结果是错误的。文本转储始终是正确的。
- [OTFProof] 修复了导出引用不在字体中的虚拟 GIDs 的 cmap 子表的崩溃。
- [OTFProof] 修复了导出 GSUB 查找类型 6 链接上下文子表格式 2 的崩溃。这之前从未工作过。
- [OTFProof] 添加了 SING 字形单元表、SING 和 META 的演示。
- [FontLab宏] 添加了用于读取和写入外部复合定义文本文件的脚本。
- [FontLab宏] 添加了用于处理 MM 字体的脚本。
1.6.6864(发布于 2003-10-08)
- [OTFProof] 修复了在导出 ttc 字体内容后的崩溃(在版本 6792 中引入的漏洞)。
- [OTFProof] 修复了 cmap 子表 4 和 2 的导出。cmap 子表 2 可能会显示单字节代码的编码值,这些实际上是双字节字符代码的第一个字节。在格式 4 中,当从字形索引数组派生字形索引时,未添加 idDelta 值。这些问题在某些 TTF CJKV 字体中会出现。
1.6.6792(发布于 2003-09-24)
- [OTFProof] 修复了在证明具有许多字形的字体时的崩溃。
- [OTFProof] 将已丢失在版本6604中的“跳过查找,因为已在脚本/语言/功能中见过”的消息恢复到校对文件。
- [OTFProof] 添加了从Mac OS X命令行校对资源分支sfnt字体功能。仍然需要使用SplitForks工具创建只包含数据分支的资源文件,但spot/otfproof现在可以导航到生成的AppleDouble格式资源文件。
- [OTFProof] 添加了对GDEF表文本转储的支持。
- [OTFProof] 将“size”功能转储中的标题从“常用字符”更改为“名称表名称ID,用于大小组的常用子族名称”。
- [AGL] 在“新字体Adobe符号列表”中修复了一些小错误。
1.6.6629
- [OTFProof] 修复了从Mac sfnt封装的资源分支Type 1 MM字体中转储KERN表的错误。
- [OTFProof] 将AFM格式的kern对转储改为为每个语言/脚本组合在单独的块中列出所有kern对,并消除所有由单例kern对屏蔽的类kern对。临时缓冲文件路径现在由系统C库函数tmpnam()获取,不一定在当前目录。
1.6.6568
- [OTFProof] 修复了命令行工具,使其在非自动分页打印时在字体相同的位置以及带有字体名称前缀处写入校对文件。
- [OTFProof] 修复了UI版本中的错误,在该版本中,校对GSUB功能和随后校对GPOS功能会导致GPOS功能校对文件为空。
- [makeotf] 修复了选择OS/2重量/宽度的启发式算法,以便包含
的字体名称只会触发设置宽度,而不会同时设置重量。 - 更新了Mac OS项目文件以使用CodeWarrior 8。
1.6.6564
- [OTFProof] 当从TTF字体转储数据时,现在为所有字形名称添加
@<gid>
。这是因为推导名称的规则可能导致两个字形被赋予相同的名称。 - [OTFProof] 修复了校对GPOS类kern对中的错误:当覆盖格式为类型2时,会生成虚假的kern对和重复的kern对。这仅影响校对文件,不影响AFM或特征格式转储。
- 修复了Goichi遇到的内存覆盖错误,并在过程中清理了各种内存泄漏。
- [compareFamily] 添加了有关面是否包含已知标准字符集的报告。存根实现 - 仍然需要标准字符集列表。
- [AFM2Feat] 开发了一个将AFM文件转换为具有kern特征
pos
规则的文件的工具。
1.6.6148
- 重建了所有库以发布v1.6版本3/10/2003。
1.6.6048
- 更新了FinishInstall.py以反映Python 2.2要求。
- 获取了最后一个MakeOTF.pdf编辑更改。
- 修复了GOADB中的错误。
- 更新了示例字体中的CID字体数据。
- 更新了FDK发布说明和安装说明。
- 更新为使用在转换Adobe字库时开发的GlyphOrderAndAliasDB文件。将所有旧字形名称映射到AGL兼容名称。
1.6.6020
- [OTFProof] 修复了处理没有条目的VORG时的崩溃。(Vantive 574752)
- [MakeOTF] 更新了文档:添加了描述如何使用GlyphOrderAndAliasDB文件的三个列;添加了一个关于字体项目文件键值对的新部分;更新了FontMenuNameDB条目描述;在全文中添加了细微的说明。
- 更新了digital_signature_guide.htm以匹配当前的Verisign网站。
- [示例字体] 将错误的语言关键字TUR更改为TRK。
- [示例字体] 删除了字体信息文件中许多MakeOTF未使用的键/值对。
- [OTFProof/spot] 修复了GOAADB的3列处理。(Vantive 569681)
1.6.5959
-
[MakeOTF] 抑制了源文件解析库中的“重复提示替换被丢弃”消息。这些消息很常见,会掩盖更有用的消息。
-
[MakeOTF] 将构建链式上下文替换规则选项设置为默认值,以使用InDesign 2.0及以前版本中使用的错误格式。
-
[生成OTF] 如果上述选项被设置,那么MakeOTF将写入一个名称ID(1,0,0,5 - "版本"),它将包含触发未来Adobe应用程序中特殊案例代码的文本字符串,以便它能够按预期处理链式上下文替换规则。如果此选项未设置,则将写入名称ID 5,以避免触发此特殊案例代码。此特殊案例会特别处理名称表名称ID(1,0,0,5)存在的任何字体,并且与以下任一匹配,
"OTF[^;]+;PS[^;]+;Core 1\.0\.[23][0-9].*"
(例如:"OTF 1.006;PS 1.004;Core 1.0.35")或者包含,
"Core[^;]*;makeotf\.lib"
(例如:"Core 1.0.38;makeotf.lib1.5.4898")或者仅,
"Core;makeotf.lib"
-
[生成OTF] 默认关闭将输出OTF字体中的.notdef字形设置为交叉矩形的选项,其进阶宽度为500。
-
[生成OTF] 添加规则以强制OS/2 WeightClass始终至少为250。如果设置或计算出的WeightClass小于此值,则显示错误消息。
-
[生成OTF] 添加测试以检查FSType在特征文件中是否与源CID字体文件中设置相同。
-
[OTFProof] CJKV字体垂直布局的页面布局:现在从右到左写入垂直列。
-
[OTFProof] 在写入垂直功能时,现在显示进阶宽度符号为负。
-
[OTFProof] 在创建PostScript校样文件时,现在以正确的页眉和页面信息写入DSC标签。
-
将Unicode和字形名称文档添加到FDK 技术文档目录中,以便在FDK许可下访问此信息。
1.6.4908
- [生成OTF/FEA语法] 添加新的vmtx表覆盖,以允许设置专门设计且不是简单旋转比例字形的预旋转比例字形的垂直度量。
- [生成OTF/FEA语法] 添加新的OS/2覆盖以设置Unicode和Windows代码页范围字段:UnicodeRange CodePageRange。
- [生成OTF/FEA语法] 更新语言关键字,使其与OpenType规范一致,即使用
dflt
而不是DFLT
。扩展了解释使用语言和脚本默认关键字的章节。旧关键字仍然有效,但会发出警告。 - [FEA语法] 扩展对字距调整类对和子表中断的解释。
- [生成OTF] 更新了CID字体CMap文件的搜索规则以支持Adobe-Japan2-0,并首先查找UTF-32 CMAP文件。
1.5.4987
- 2002年9月发布到Adobe网站。
1.5.4908
- [生成OTF] 将名称表版本字符串更改为与OT规范1.4匹配。
- [CompareFamily] 确保与Just van Rossum的FontTools库2002年9月10日发布的版本真正兼容。
1.5.4492
- [生成OTF] (hotlib 1.0.35) 修复了处理GSUB上下文链式替换格式3中的错误。这最初是根据OpenType规范1.4完成的,该规范由VOLT和Uniscribe的既定实现出现错误。添加了'-fc'选项,以使库根据OT规范v1.4使用不正确的实现。默认情况下,MakeOTF根据规范v1.5构建正确上下文格式。
- [生成OTF] (hotlib 1.0.35) 修复了Unicode cmap在分配OS/2表字段usLastCharIndex时的Unicode cmap错误。这应该是BMP-16 cmap表中的最高Unicode值。问题在于分配补充平面字形名称的替代项EUS代码的逻辑,但没有将其添加到BMP-16 Unicode cmap表中,例如u1D269.alt。当其中一个替代项被分配EUS值时,即使该字形没有添加到BMP-16 cmap表中,usLastCharIndex也会增加。通过在此情况下不增加usLastCharIndex来修复。
- [生成OTF] 修复了应用客户端提供的Unicode覆盖值时的错误。如果字形的名称与最终字形的名称不同,则会省略这些值,例如当客户端使用getFinalGlyphName回调来提供与最终字形名称不同的字形生成名称时。
- [OTFProof] 修复了在CID字体中校样liga功能时的崩溃。还修复了校样只有一个操作数的字符字符串时的崩溃,例如h/r/vmoveto。
- [CompareFamily] 更新为使用Just van Rossum的FontTools库的最新版本,添加了对TrueType字体的支持。现在需要Python 2.2。
- 在[CompareFamily]中添加了家族测试11:验证在样式链接组的基础字体中,Mac和Windows菜单名称相同,而对于样式链接组中的其他字体,Mac和Windows菜单名称不同。
1.5.4099
- 在Adobe网站上发布了FDK 1.5的外部版本。
1.5.3849
- 在[CompareFamily]中修复了表格字形和isFixedPitch测试,使它们现在很有用 - 以前使用了太多的错误。
- 在[MakeOTF]中修复了从特性文件覆盖设置Panose值时的错误。如果Panose值字符串中的任何值是0,则所有后续值也都设置为0。
- 在[MakeOTF]中修复了重命名后的字形没有受到GlyphOrderAndAliasDB文件指定的顺序的影响的错误。
- 添加了FDK.py文件,以将所有工具集成到统一的用户界面中。
- 在[OTFCompare]中添加了CFFChecker库对CFF表的使用。
- 在[CFFChecker]中添加了在OSX上处理资源分支的功能。
- 在[CompareFamily]中添加了家族测试10:如果家族中的任何面具有真实的Panose值,则报告派生的Panose值作为错误。
- 在[CompareFamily]中修复了家族测试7中比较版权声明时的错误:现在只有在除年份之外不同的情况下才会真正报告错误。
- 在[CFFChecker]中添加了对多个输入文件的支持。
- 在[CFFChecker]中添加了对MacOS 9下资源分支字体的支持。
- 将CFFChecker接口添加到makeotf中。
- 在[OTFCompare]中添加了基于提示的OSX支持。
- 修复了CMAP文件的R-O-S映射。
- 修复了getunicodeCmap(),在处理J字体时不再硬编码Adobe-Japan1-3。
- 创建了MacOS 9版本的[CFFChecker]。
- 添加了CFFChecker。
- 在[CompareFamily]中修复了非标准ASCII的字体菜单名称不会导致程序崩溃的问题。
- 在[OTFProof]中修复了垂直度量校对。
- 在[MakeOTF]中添加了当截断OS/2 TypoAscender以强制其与TypoDescender之和等于em-box时的警告。
- 在[MakeOTF]中允许分数合成重量值。这些值四舍五入到整数。
- 在[MakeOTF]中更改了XUID添加算法,不再将修订号添加到XUID数组中。
- 在发布模式下,添加当前年份到版权声明,抑制(c)字符串,并修复“版权所有”短语周围的空格。
- 在[MakeOTF]中修复了在发布模式下构建字体时没有任何唯一ID的问题。
- 在[MakeOTF]中修复了不良的cmap条目偏移量计算。
- 在[MakeOTF]中修复了不良的cmap表条目。
1.5.1023
- 在[MakeOTF]中更改了调整非斜体合成字形的advance width/lsb/rsb的算法,当添加到斜体字体时。
- 在[MakeOTF]中修复了在不强制使用标记notdef时重新排序失败的问题。
- 在[MakeOTF]中修复了'Sigma'与合成'summation'、'Pi'与'product'之间的交互。
- 在[spot]中添加了在GPOS或GSUB=7转储中选择要转储的特性的选项。
- 在[OTFProof]中添加了对复合字形中TT指令的支持。
- 在[CompareFamily]中修复了错误的T2字符串子例程展开。所有之前关于字形是否提示的报告都应怀疑。
- 在[MakeOTF]中调整了斜体字体中直立字形的水平间距。
- 在[MakeOTF]中添加了对FontMenuNameDB中的"italicangle"、"width"和"weight"关键字的支撑。
- 在[SCM/makeotf/typecomp]中修复了欧元添加错误。
- 在[OTFProof]中从校对中移除了“1000单位/em”的标题注释。
- 在[OTFProof]中添加了对cmap版本12的支持。
- 在[OTFProof]中从文本报告中移除了CID值的零填充。
- 在[OTFProof]中减少了关于缺少字符的警告数量。
- 在[OTFProof]中移除了当GPOS和GSUB表可能太大时的警告,因为目前没有工具会犯这个错误,并且在字体使用扩展查找时不适当触发。
- 在[OTFProof]中修复了报告的不同间距问题。(Vantive 420313)
- 在[OTFProof]中修复了垂直校对从右到左写入的问题。
- 在[MakeOTF]中修复了未指定CMap文件的问题。
1.5.600
-
修复了当其中一个 Blues 数组不存在时不会报错的问题。
-
修复了 CID 字体的字体名称打印正确的问题。
-
修复了在 SunOS 下编译的问题。
-
添加了 MakeOTFScript.py 作为示例文件进行编辑,以便允许在 Mac(或任何其他平台)上对 makeOTF 进行脚本化。对 MakeOTF.py 进行了细微修改以解决这个问题。
-
添加了一个选项,允许从输出字体中删除已废弃的 Type 1 操作数(例如
seac
和dotsection
)。 -
添加了一个选项,允许向字体中添加合成的字体,利用内置的无衬线体和衬线体多主字体替换字体。源字体必须包含一个 'zero' 和一个大写字母 'O'。可以合成的字体包括:
Euro Delta Omega approxequal asciicircum asciitilde at backslash bar brokenbar currency dagger daggerdbl degree divide equal estimated fraction greater greaterequal infinity integral less lessequal litre logicalnot lozenge minus multiply notequal numbersign onehalf onequarter paragraph partialdiff perthousand pi plus plusminus product quotedbl quotesingle radical section summation threequarters zero
1.4.583
- 从 Perforce 版本控制系统中开始通过 Perforce 变更列表标签跟踪文件。
- 更新了编译器到 Mac/CodeWarrior 6 Pro 和 Windows Visual C++ 6.0。
- 重新组织了构建目录,包括 mac、win 和 sun4 子目录。
- 重新组织了共享头文件,所有文件都位于 /Programs/api 下,名称不冲突。
- 更新了示例字体 MinionPro-Capt:现在具有正确的 frac 和大小功能。
- 将 KozMinPro 添加到样本中。
- 修复了在 CID 字体中忽略 fontinfo 关键字 IsStyleBold 的错误。
- 修复了 Mac 构建项目的错误,该项目以不同的名称加载调试和发布库。
- 添加了对 "languagesystem" 语句的功能文件支持。注意,这涉及到在大小功能中删除对脚本、语言和命名查找语句的支持,并在 aalt 功能中删除对脚本和语言语句的支持。有关详细信息,请参阅功能文件规范。
- 在偏移量溢出错误消息中添加了更详细的措辞。改进了功能文件错误处理:在可能的情况下,在失败之前发出多个错误消息,而不是只有一个;如果找不到字体,将报告最终字体名称以及字体别名(如果适用)。
- 将 Zapf Dingbats 的 14 个企业用途子区域 Unicode 值更改为预计将纳入 Unicode 标准的 UV 值。
- 将 FontWorks ('FWKS') 添加到供应商 ID 列表中。
- 将允许的命名查找的最大数量增加到 8192。
- 现在仅在设置 HOT_CONVERSION 位时,从客户端传入的加粗和垂直数据以及从 V CMap(分别)创建加粗和垂直功能。以前,如果这些功能在功能文件中尚未定义,则从上述来源创建这些功能。
- 修复了 OS/2.ulUnicodeRange 计算中的一个晦涩的错误:如果字体中最大的 UV 不在 hotlib 识别的任何 Unicode 范围内,则将其计为位于 UV 之后被识别的下一个 Unicode 范围内。(没有已知的字体受到影响。)
- 根据 Mac cmap 脚本将中文的 OS/2 代码页范围位强制设置为简体或繁体,如果它被定义为简体或繁体,并且如果脚本未定义,则回退到启发式方法。如果 mac.script 不是中文脚本,则不会设置中文的 OS/2 代码页范围位。
- Python sys.path 变量现在必须包含包含 OTFProof 库的目录的路径(通常为 FDK/Tools/Programs/otfproof/exe)。这取代了 OTFCompare.py 脚本中的硬编码路径引用。在所有平台上,这是通过向 Python 安装添加包含路径的文件 "otfproof.pth" 来完成的。
- 修复了导致小于 16 字节的小表被报告为不同的错误。
- 向 CFF_ 添加了新的校对模式,以每页打印一个符号。
- 向 CFF_ 添加了新的校对选项,以抑制特定文件的头信息,以便于多个校对的 diff。
- 对 AFM 风格的转储进行了字母排序。
- 修复了导致 GPOS/GSUB 功能名称中包含数字的字体不会出现在校对列表中的错误。
- 向 CFF_ 转储中添加了对 glyphsize 选项的支持。
- [OTFProof] 修复了冲突的包含文件名;现在必须在项目文件中指定包含路径。
- [OTFProof] 减少了子例程化代码中的某些递归,以减少堆栈空间需求。
- [OTFProof] 修复了在Mac上父文件夹中包含功能文件的支持。
1.3.2 (2000-10-24)
- [OTFProof] 修复了错误报告打开Mac TTF套装字体的问题,因为数据分支的大小为0。
- [OTFProof] 修复了在校对中过滤掉包含数字的特征标签的bug。
- [OTFProof] 修复了对于基线不是120的CJK字体,基线显示不正确的问题。
- [OTFProof] 修复了在垂直书写模式的校对中,y位置变化显示不正确的问题。
1.3.1 (2000-08-15)
-
[MakeOTF] 修复了OS/2代码页范围设置的自适应算法问题,针对简体中文和繁体中文。
-
[MakeOTF] 添加了宏来定义MakeOTF版本号。
-
[MakeOTF] 更新了makeotflib的帮助/使用消息:当参数格式不正确时显示。
-
[makeotf] (makeotf/exe/makeotfutils.py)
- 为“语言”添加了字体信息列表条目。
- 为相同的添加了'parameter'变量条目。
- 将num值从34增加到35。
- 更改了'parameter'的初始化,以便更容易确定哪个索引与哪个字体信息字段匹配。
-
[makeotf] (makeotf/exe/makeotf.py)
- 更新了版本号到1.3.1。
- 添加了'-cs'和'-cl'选项到帮助中。
- 添加了对语言字段的处理,以使用'-cs'和'-cl'选项设置脚本和语言ID。
-
[makeotf] (makeotf/source/main.c)
- 添加了宏来定义MakeOTF版本号,用于帮助消息和客户端名称字符串中的名称ID 5 "Version"。
- 添加了mac_script和mac_language字段到全局静态'convert'结构中。
- 添加了对'-cs'和'-cl'参数的parse_args()处理。
- 添加了mac_script和mac_language参数到cbconvert()的调用中。
- 更新了print_usage以匹配makeotf.py。
- 更新了ReadFontInfo()以处理新的语言字段。
-
[makeotf] (makeotf/source/cb.c)
- 将mac.encoding、mac.script和mac.language的初始化(未知类型)从cbconvert移动到cbnew()。
- 从参数设置mac.script和mac.language到cbconvert()。
- 添加了mac_script和mac_language参数到cbconvert()的调用中。
-
[makeotf] (source/includes/cb.h)
- 添加了mac_script和mac_language参数到cbconvert()的调用中。
-
[hotconvlib] (coretype/source/map.c)
- 更改了设置OS/2代码页范围的逻辑,根据mac.script设置将代码页设置为简体中文或繁体中文;如果mac.script未设置,则回退到自适应算法。
项目详情
下载文件
下载适用于您平台的文件。如果您不确定选择哪个,请了解更多关于安装包的信息。
源分发
构建分发
afdko-4.0.1.tar.gz的哈希值
算法 | 哈希摘要 | |
---|---|---|
SHA256 | 22dd90f0f7b4bc6eacbe8cddb0d72a484cf3f2d6cb474b0e3496de161177f019 |
|
MD5 | 2a3ba9bb2583be0d744220411a8f24f1 |
|
BLAKE2b-256 | c17e45dbb4920fe9e46b852d8f2afb22699cc0dca0f393e6ff6030ed922423ab |
afdko-4.0.1-py3-none-win_amd64.whl的哈希值
算法 | 哈希摘要 | |
---|---|---|
SHA256 | ed13b3588dfff2e2fbf09eb647434a113504cb4ebc240ed6e6cc2754e86b5d26 |
|
MD5 | b0c1798512c3022e1407a1e4442c5061 |
|
BLAKE2b-256 | 6c0ed19368770fb6fc3526bf0ddf49bb8f6ed9a2feb872c1b167ff806eb61f31 |
afdko-4.0.1-py3-none-manylinux_2_17_x86_64.manylinux2014_x86_64.whl的哈希值
算法 | 哈希摘要 | |
---|---|---|
SHA256 | 088fec999075efe0c0d4065244f2bf0adfefea20f36a9881799f8cd580e983a5 |
|
MD5 | 7edd3d80dce21d7c7c46e01d4bfbd513 |
|
BLAKE2b-256 | 2e33057f266e625d868b069f9955556734916f290bd50b89d40beb90282fc9c4 |
afdko-4.0.1-py3-none-macosx_10_9_x86_64.whl的哈希值
算法 | 哈希摘要 | |
---|---|---|
SHA256 | 5b483a4f635a5ab5ac031b48422eb451d133ba6d2edadf77cf516aa725cff3ec |
|
MD5 | 54847e5b2b4b693994eba6bfbc666be9 |
|
BLAKE2b-256 | bc6261f3befdcd308e48b7be757bc5171fe222a1d62e167bca9e79cbdfc22faf |
afdko-4.0.1-py3-none-macosx_10_9_universal2.whl的哈希值
算法 | 哈希摘要 | |
---|---|---|
SHA256 | f4c6133a2725b735ae526ff64d49a3e58ca0580e5647553d2594eaddbd4217e2 |
|
MD5 | 70871fb2e2fcabf9381783f763051bf7 |
|
BLAKE2b-256 | 7308ee4a2d31c87003dbc7dcc9616988f2f1bee3f19ee730f4c18d0619ea4ca7 |