-
Notifications
You must be signed in to change notification settings - Fork 49
New issue
Have a question about this project? # for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “#”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? # to your account
[feature request] quickly setting the font's information before outputting #3
Comments
Status: WIP - working in progress. 计划通过命令行参数提供自定义字体名、版本等信息的选项。
|
刚刚才发现这里有一样的需求……在 #4 里实现了个类似的,但是没有用到 name-table 这种东西,而是直接指定字体名字 🤣 |
自定义字体的名字已经通过命令行参数 字体样式(字重、宽度、倾斜)不能只在 name 表中指定,还要更新 head、OS/2 表中的相关信息。目前我只能想到这种严格限制取值的方式。 此外,字体名和字体样式也是相关联的,因此要求同时指定字体名和样式。 版本信息我还要考虑如何实现(和字体名一样,版本信息不止一处,而且格式不统一)。
-n, --name <Font Name;Weight;Width;Slope>
指定字体家族名和样式。如果不指定,则自动根据原字体名合成新的字体名。
格式:"字体名;字重;宽度;倾斜"
字重的取值范围
数字:100 至 950 之间的整数(含两端点)。
下列单词(不区分大小写,忽略连字符;括号内的单词视作左边单词的同义词):
Thin = 100(UltraLight)
ExtraLight = 200
Light = 300
SemiLight = 350(DemiLight)
Normal = 372
Regular = 400(Roman、"")
Book = 450
Medium = 500
SemiBold = 600(Demi、DemiBold)
Bold = 700
ExtraBold = 800
Black = 900(Heavy、UltraBold)
ExtraBlack = 950
宽度的取值范围
数字:1 至 9 之间的整数(含两端点)。
下列单词(不区分大小写,忽略连字符;括号内的单词视作左边单词的同义词):
UltraCondensed = 1
ExtraCondensed = 2
Condensed = 3
SemiCondensed = 4
Normal = 5("")
SemiExtended = 6(SemiExpanded)
Extended = 7(Expanded)
ExtraExtended = 8(ExtraExpanded)
UltraExtended = 9(UltraExpanded)
倾斜的取值范围
下列单词(不区分大小写;括号内的单词视作左边单词的同义词):
Upright(Normal、Roman、Unslanted、"")
Italic (Italized)
Oblique(Slant) 示例:
一些问题的进一步解释
如 #4 中所说,一些环境会显示出错;更严重的问题在于,如果字体名是 Bold、Italic 样式而相关元数据不匹配,MS Word 中没法选择该字体。
OpenType 有很多种字体名(Family)和样式 (Subfamily)模型,用来支持不同的用法。
举个例子,要让各种软件都能正常显示,像 My Font Display SemiBold Italic 就必须这样填写
我的想法是:现在 WFM 的使用已经超出了《魔兽世界》的范围,既然要实现指定字体名和样式,就应该尽量兼容各种软件。兼顾功能和实现难度,我选择了目前的方案——采用 WWS 模型,要求同时指定字体名和样式。 至于 Typographic 模型,一方面专业排版软件有 “复合字体” 等功能,一般不需要合并字体,另一方面 WFM 也达不到专业排版的要求,如果确实需要合并字体应该考虑更专业的方案。 |
能否在批处理里增加选项,在合并输出前自定义 合成字体的名字 和 版本信息?
The text was updated successfully, but these errors were encountered: