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