FontCreator14 中文使用手册

  1. 首页
  2. FontCreator14 中文使用手册
  3. OpenType布局功能
  4. Script Editor代码编辑
  5. OTLFD脚本语法
  6. Sub关键字

Sub关键字

关键字 sub 用于声明替换(substitute)字形。正如所支持的替换类型章节所述,有几种不同的字形替换类型。替换字形只能在查询(lookup)中声明,不能在特征(feature)中直接声明替换。每个查询只能有一种类型的替换,这意味着如果您想在单个特征中使用几种替换类型,必须声明多个查询。

声明单个(类型 1)替换

lookup MyLookupTable {

 sub A -> a.smcp;

}

声明多个(类型 2)替换

lookup MyLookupTable {

 sub ffi -> f f i;

}

声明替代式(类型 3)替换

lookup MyLookupTable {

 sub asterisk -> [asterisk asteriskmath uni2051 uni2042 uni203B uni273B];

}

声明连字(类型 4)替换

lookup MyLookupTable {

 sub f f i -> ffi;

}

声明链式上下文(类型 6)替换

lookup MyLookupTable {

 context (@<backtrackclasses>) @<inputclasses (@<lookaheadclasses);

 sub 0 <substitution table>;

}

替换声明出现的顺序,也是支持 OpenType 布局特征的应用程序对其进行处理的顺序。这意味着在连字替换情况下:

lookup MyLookupTable {

 sub f i -> fi;

 sub f f i -> ffi;

}

上面语法与下面语法的效果不一样:

lookup MyLookupTable {

 sub f f i -> ffi;

 sub f i -> fi;

}

并且,后者的声明将得到正确的结果。为什么呢?在前者示例中,当遇到“f i”序列时,就先行以“fi”字符进行了替换,不再匹配“f f i”序列。在后者的示例中,“f f i”在“f i”之前进行匹配,结果与预期相一致。FontCreator 会自动处理正确的顺序,因此也无需担心。

Was this article helpful to you? Yes No

How can we help?