We read every piece of feedback, and take your input very seriously.
To see all available qualifiers, see our documentation.
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
(以下为聊天摘录) 不错的字体,很实用。以下为另外一种方式的理论。
在单纯简转繁时,没有必要使用伪字图。两岸翻译差异有必要使用伪字图,但是如果是一个字在不同语境下,使用context可能会比较好点。建立一些Group,通过上下文检测来sub字,能够节省很多字形位置。上下文检测其实很常用,比如谚文拼接跟蒙文都是使用上下文检测替换。
例字:“发”的码位是“發”字,Group 1放[头 白 黑],Group 2是[发],当Group 2 前面是Group 1时,将“發”替换成“髮”。不同context可以在同一个sub table里面,优先级一样,如果不一样就可以拆分优先级。比如遇上“上头发的指令”,可能可以在sub group context前面加上ignore [上][头]之类的跳换。
[头 白 黑]
[发]
ignore [上][头]
The text was updated successfully, but these errors were encountered:
谢谢!我还是不太清楚怎样实现,特别是对应关系比较复杂的情况。另外,这种方法与「正向最长匹配」算法是不是等价的呢?
Sorry, something went wrong.
OpenType 替换功能可参考 http://opentypecookbook.com/;本计划可用请见:http://opentypecookbook.com/rules/#substitutions-and-positioning-based-on-context。
OpenType 替换功能的做法为从头开始往下进行,遇到可替换字后自动替换跳出循环。理论上只要你根据长度排序即可与正向最长匹配等价。 如:
feature ccmp{ //全替换 sub f f i by f_f_i sub f i by f_i } ccmp;
输入 office 会替换成 o(f_f_i)ce 而非 of(f_i)ce 同理,
office
o(f_f_i)ce
of(f_i)ce
feature ccmp{ sub [头 白 黑] 发' by 髮 //[头 白 黑]指任意一个字,仅替换带 ' 的字母 sub 发 by 發 } ccmp;
遇上 头发 会替换成 头髮,发财 则变成 發财。
头发
头髮
发财
發财
以上功能英文查询为 contextual substitution。
当然,这样的简繁替换还是会有一定难度,但是因为仅仅是在glyph层进行,因此可以不用使用这么多伪字图。(当然,中台用词不同的词还是需要伪字图,这个逃不了)
No branches or pull requests
(以下为聊天摘录)
不错的字体,很实用。以下为另外一种方式的理论。
在单纯简转繁时,没有必要使用伪字图。两岸翻译差异有必要使用伪字图,但是如果是一个字在不同语境下,使用context可能会比较好点。建立一些Group,通过上下文检测来sub字,能够节省很多字形位置。上下文检测其实很常用,比如谚文拼接跟蒙文都是使用上下文检测替换。
例字:“发”的码位是“發”字,Group 1放
[头 白 黑]
,Group 2是[发]
,当Group 2 前面是Group 1时,将“發”替换成“髮”。不同context可以在同一个sub table里面,优先级一样,如果不一样就可以拆分优先级。比如遇上“上头发的指令”,可能可以在sub group context前面加上ignore [上][头]
之类的跳换。The text was updated successfully, but these errors were encountered: