默认在字体中开启OpenType功能:重新分配字体的Unicode到字形映射,永久“冻结”1对1的替换功能,并创建一个新的字体。
项目描述
OpenType Feature Freezer
使用 OpenType Feature Freezer,您可以将一些OpenType功能“冻结”到字体中。
这些功能将默认开启,因此以前只能通过OpenType功能访问的字符(如小写字母、老式数字或本地化形式)现在即使在不支持OpenType功能的程序中(如LibreOffice、OpenOffice)或在不支持特定功能的应用程序中(如Microsoft Office中的小写字母)也可以访问。
注意:此工具实际上通过应用指定的 GSUB
功能重新映射字体的 cmap
表。它不适用于既没有字形也没有 cmap
条目的替换。仅支持单一代替和交替替换。
本工具提供两种版本:OTFeatureFreezer:一个简单的GUI(图形界面)应用程序,适用于macOS和Windows,您可以直接下载并运行,无需任何特殊准备;以及 pyftfeatfreeze:一个命令行应用程序,需要在您的计算机上安装Python 3.6或更高版本。
当前版本:1.32
安装
为macOS安装OTFeatureFreezer GUI应用程序
下载macOS的DMG文件
- 在 macOS 上,点击上方的 下载 链接。
- Ctrl+点击 下载的DMG文件,选择 打开,然后再次 打开。
- 将 OTFeatureFreezer.app 图标拖到您的 /Applications 文件夹中。
- 第一次运行应用程序时,Ctrl+点击 OTFeatureFreezer.app,选择 打开,然后点击 打开。
- 之后,您只需双击图标即可运行应用程序。如果应用程序没有运行,请再次双击。
- 请参阅文档以获取有关如何使用GUI应用程序的信息。GUI与命令行选项相对应。
为Windows(64位)安装OTFeatureFreezer GUI应用程序
下载Windows的ZIP文件
- 您需要Windows的 64位 版本,7或更高版本。不支持32位Windows。
- 点击上方的 下载 链接。
- 解压缩下载的ZIP文件。
- 双击 setup_featfreeze.exe 图标以安装应用程序。
- 从您的开始菜单运行 OTFeatureFreezer。
- 请参阅文档以获取有关如何使用GUI应用程序的信息。GUI与命令行选项相对应。
安装pyftfeatfreeze CLI应用程序
此工具要求首先安装Python 3.6或更高版本。您可以从https://pythonlang.cn或您的包管理器获取它。
推荐
我们推荐使用pipx来安装Python命令行工具。Pipx将它们整齐地存放在您的计算机上,并提供了一种简单的方法来添加、更新和删除所有平台上的Python工具,而不会在Python安装中留下混乱。
pipx install opentype-feature-freezer
其他方法
像其他Python包一样使用 pip
进行安装。
# This is best done inside a virtual environment, so you don't pollute
# your Python installation and need no special privileges to install anything.
pip install --upgrade opentype-feature-freezer
如果不起作用,请尝试
python3 -m pip install --user --upgrade opentype-feature-freezer
开发版本
pip install --upgrade git+https://github.com/twardoch/fonttools-opentype-feature-freezer
如果不起作用,请使用
python3 -m pip install --user --upgrade git+https://github.com/twardoch/fonttools-opentype-feature-freezer
- 在安装之前,您可能需要先执行
pip install --upgrade configparser
文档
示例
假设您有一个字体 CharisSIL-R.ttf(菜单名为“Charis SIL”),该字体包含通过OpenType布局功能 c2sc
(用于大写)和 smcp
(用于小写)访问的真小写。假设您想要创建一个第二字体,其中默认情况下可以通过 真小写。只需运行
pyftfeatfreeze -f 'c2sc,smcp' -S -U SC -R 'Charis SIL/Charix,CharisSIL/Charix' CharisSIL-R.ttf CharixSC-R.ttf
您将得到一个新字体 CharisSIL-R.ttf(菜单名为“Charix SC”)。此字体将使用小写字母而不是大写和小写字母,在所有应用程序中可用。
由于“Charis SIL”字体根据OFL许可,并使用保留字体名称“Charis”和“SIL”,因此我已指定 -R
选项,将名称字符串 Charis SIL
和 CharisSIL
替换为 Charix
。这样,修改后的字体符合OFL,我可以分发它。
以下示例重映射字体,以便在所有应用程序中默认启用 保加利亚本地化形式(菜单名称将添加后缀“BG”)
pyftfeatfreeze -f 'locl' -s 'cyrl' -l 'BGR ' -S -U BG SomeFont.ttf SomeFontBG.ttf
注意:要从多个脚本或语言系统重映射功能,请多次运行工具(将上一次运行的输出作为输入)。仅在最终运行时使用 -S
选项。
以下操作将所有内部字体名称(在 name
和 CFF
表格中)中的字符串 Lato
替换为 Otal
,而不进行任何“功能冻结”。这可以快速更改一些内部字体名称
pyftfeatfreeze -R 'Lato/Otal' Lato-Regular.ttf Otal-Regular.ttf
命令行语法
usage: pyftfeatfreeze [-h] [-f FEATURES] [-s SCRIPT] [-l LANG] [-z] [-S]
[-U USESUFFIX] [-R REPLACENAMES] [-i] [-r] [-n] [-v]
[-V]
inpath [outpath]
With pyftfeatfreeze you can "freeze" some OpenType features into a font. These
features are then "on by default", even in apps that don't support OpenType
features. Internally, the tool remaps the "cmap" table of the font by applying
the specified GSUB features. Only single and alternate substitutions are
supported.
positional arguments:
inpath input .otf or .ttf font file
outpath output .otf or .ttf font file (optional)
optional arguments:
-h, --help show this help message and exit
options to control feature freezing:
-f FEATURES, --features FEATURES
comma-separated list of OpenType feature tags, e.g.
'smcp,c2sc,onum'
-s SCRIPT, --script SCRIPT
OpenType script tag, e.g. 'cyrl' (default: 'latn')
-l LANG, --lang LANG OpenType language tag, e.g. 'SRB ' (optional)
-z, --zapnames zap glyphnames from the font ('post' table version 3,
.ttf only)
options to control font renaming:
-S, --suffix add a suffix to the font family name (by default, the
suffix will be constructed from the OpenType feature
tags)
-U USESUFFIX, --usesuffix USESUFFIX
use a custom suffix when --suffix is provided
-R REPLACENAMES, --replacenames REPLACENAMES
search for strings in the font naming tables and
replace them, format is
'search1/replace1,search2/replace2,...'
-i, --info update font version string
reporting options:
-r, --report report languages, scripts and features in font
-n, --names output names of remapped glyphs during processing
-v, --verbose print additional information during processing
-V, --version show program's version number and exit
Examples: pyftfeatfreeze -f 'c2sc,smcp' -S -U SC OpenSans.ttf OpenSansSC.ttf
pyftfeatfreeze -R 'Lato/Otal' Lato-Regular.ttf Otal-Regular.ttf
提示:-n
选项以空格分隔的列表形式输出“冻结”的符号。如果您将其重定向到文件,则可以使用此列表作为输入给 pyftsubset
,以创建仅包含“冻结”符号的小型字体。
其他
问题报告
要报告问题,请打开一个 问题。您需要一个 Github 账户。
软件许可和免责声明
此工具根据 Apache 许可证 2.0“现状”许可。使用此工具即表示您接受许可证的所有条件,包括保修放弃和责任限制。如果您使用此工具,请咨询您的字体 EULA 是否允许修改。如果字体根据 OFL 许可且使用保留字体名称,请使用 -R
选项将保留字体名称更改为其他名称。
要求
此工具是为 Python 3.6+ 编写的,并使用 fontTools/TTX。
变更日志
- 1.32:更改了
-s
(脚本)选项,使其在没有提供时,对所有脚本进行映射。 - 1.31:更改了
-S
(后缀)选项,使其在没有提供时,不添加后缀,并添加了 GUI 应用程序。 - 此前,此工具作为子工具发布在 fonttools-utils 存储库中
- 现在
fonttools-utils
存储库中的其他工具位于 fonttools-ttxjson 和 mac-os-x-system-font-replacer
构建
Python
要构建 Python 包,请安装 Poetry
pip install poetry
或
python3 -m install --user --upgrade poetry
然后在项目的根目录中运行
poetry build
DMG & EXE
要构建 DMG & EXE,您需要 macOS。在 app 子目录中,运行 ./macdeploy all
致谢
- 代码由 Adam Twardoch 和其他开发者 提供
项目详情
下载文件
下载适合您平台的应用程序。如果您不确定选择哪个,请了解有关 安装包 的更多信息。
源代码发行版
构建版本
opentype-feature-freezer-1.32.2.tar.gz 的哈希值
算法 | 哈希摘要 | |
---|---|---|
SHA256 | cdc93320bfee4e2f1455476f2b5618d82f47c0d86532f1b69673666adcc2b573 |
|
MD5 | 9c79d58e74698766d1638779eb4ab7be |
|
BLAKE2b-256 | 78c702ab8b0e62cb03c53cba7db11499893dcefa9abf693d8df977917094b51b |
opentype_feature_freezer-1.32.2-py3-none-any.whl的哈希
算法 | 哈希摘要 | |
---|---|---|
SHA256 | e49b98c7ab37c8fe75d838319cbc0f4769a06536ec039633f1cded39b813a055 |
|
MD5 | 0636126180038d8566b33c05891c9a99 |
|
BLAKE2b-256 | 665ee46320d3c2df59c98a41b3c1f2a1bf2fb1ee1b67dbed8a9201416a3b5777 |