OpenType 佈局功能代碼編輯器

OpenType 佈局功能代碼編輯器允許您完全控制字體中所有支援的 OpenType 佈局功能。如果您想自動生成功能,請單擊OpenType 設計器對話框中左上角的工具欄圖標。

由於通過視覺添加功能可能非常耗時,編輯器允許您通過三種支援的腳本語言之一來定義和編輯字形替換(GSUB)和字形定位(GPOS)的 OpenType 佈局功能。FontCreator 支援這些基於腳本的語法:

Adobe OpenType 功能描述語言(AFDKO FEA)

這是首選的功能語法。在此處閲讀更多資訊:

https://adobe-type-tools.github.io/afdko/OpenTypeFeatureFileSpecification.html

AFDKO FEA 功能語法有幾個限制,因此您可以在 FontCreator 中執行的某些操作無法用 FEA 語法表達,即:

除了這些限制外,它還支援指定或覆蓋表值,這在導入基於 UFO 的字體時很有用。

FontCreator 完全支援官方可變值的附加功能。例如可變定位,如:

locationDef wght=16d @ThinItalic;
locationDef wght=72d @Italic; # Default
locationDef wght=170d @BoldItalic;

languagesystem latn dflt; # Latin default

lookup PairAdjTriplet { # GPOS lookup type PairAdjustment
 pos quoteright A (<120 0 100 0> @ThinItalic:<250 0 200 0> @BoldItalic:<120 0 100 0>);
} PairAdjTriplet;

feature kern { # Kerning
 lookup PairAdj { # GPOS lookup type PairAdjustment
   pos L quoteright (-260 @ThinItalic:-220);
   pos quoteright A (-90 @ThinItalic:-130 @BoldItalic:-40);
 } PairAdj;
 lookup TripletAdj { # GPOS lookup type ChainedContextPositioning
   pos L quoteright' lookup PairAdjTriplet A';
 } TripletAdj;
} kern;

它還支援非官方可變 FEA 語法的功能變體部分。例如功能變體,如:

conditionset ConditionSet1 {
   wght 500 800;
} ConditionSet1;

variation rvrn ConditionSet1 { # Required Variation Alternates
   lookup SingleSubstitution35;
} rvrn;

Microsoft Visual OpenType 佈局工具(MS VOLT)

使用 MS VOLT 的人可以導入和導出此類功能代碼,因此他們可以同時使用 FontCreator 和 MS VOLT。

VOLT 也有幾個限制。例如:

OpenType 佈局功能定義(OTLFD)

我們幾年前引入了這種語法,但由於大多數字體設計師都熟悉 AFDKO FEA 功能語法,我們決定不再維護這種語法。

代碼編輯器

預設情況下,代碼編輯器將使用 Adobe fea 語法,因為大多數字體設計師都熟悉它,但您可以從 OpenType 佈局功能代碼編輯器窗口左上角可用的組合框中選擇 OTLFD 和 VOLT。

您可以隨時更新和更改腳本。工具欄中的查找和替換功能可能對此有用。快捷鍵 Ctrl F 打開搜索文本對話框,F3 查找當前搜索文本的下一個出現位置,Shift+F3 查找上一個出現位置。

OTLF 編輯器

按 CTRL + 空格鍵顯示字形名稱和類名稱完成幫助。

要測試語法是否正確以及所有字形名稱是否有效,請單擊工具欄上的語法檢查按鈕或使用快捷鍵 F9。如果有任何語法錯誤或無法解析的字形名稱,輸出窗口將列出它們。您可以雙擊錯誤以快速跳轉到發生錯誤的行。

如果您希望編譯器忽略未知字形,並允許空類和查找,請單擊工具欄中的忽略未知字形(警告)圖標。

當您單擊確定按鈕時,代碼將被編譯,成功後將替換您所有現有的腳本、功能、查找和類,併合並錨點。

英文原文:https://www.high-logic.com/fontcreator/manual16/opentypelayoutfeatureeditor.html