如何将包含拉丁字符,西里尔字符和中文字符的woff2文件拆分为3个不同的文件,最好使用nodejs / grunt?
有没有办法自动确定不同集合的开始和结束点?
我已经尝试了unicode-range-splitter,但它只是将我的字体分成了相同的大块,这无助于我实现目标。
我还结合grunt-webfont-svg-extractor查看了grunt-fonts,但由于这些工具并非完全按照此要求构建,因此配置非常长且容易出错。
答案 0 :(得分:1)
没有明确的开始和结束分隔符,它标记了每组拉丁文,西里尔文和中文字符。
您可以指定unicode范围(即 from / to ),以区分每个集合的 begin 和 end 块。例如,下面是一些相关的范围:
Unicode范围
┌─────────────────────────────────────────────┐
│ Name From To │
├─────────────────────────────────────────────┤
│ Basic Latin U+0000 U+007F │
│ Cyrillic U+0400 U+04FF │
│ CJK Unified Ideographs U+4E00 U+9FFF │
│ ... │
└─────────────────────────────────────────────┘
可以在here列出完整的unicode块/范围列表。
工具强>
没有特定的grunt插件,也没有nodejs解决方案来执行我所知道的字体拆分。但是有fonttools,它是用Python编写的,包含一个名为pyftsubset
的命令。
以下是使用pyftsubset
命令(取自this blog并略微调整)的示例:
$ pyftsubset My-Awesome-Font-Regular.ttf \
--unicodes="U+0400-04FF" \
--layout-features="" \
--flavor="woff" \
--output-file="My-Awesome-Font-Cyrillic.woff"
请注意上面命令中的--unicodes
选项 - 您可以在此处指定要包含的字符范围(即子集)。
可以找到pyftsubset
命令的各种选项及其说明here。
答案 1 :(得分:1)
使用方括号:https://www.npmjs.com/package/font-ranger
使用font-ranger
,您可以: