本教程演示如何根據可變字體的變化實例(這裏是 Weight 字重軸),將單豎線的美元符號切換為帶斷條的備選設計。
可變字體允許您使用軸滑塊插值字形層輪廓。這是可能的,因為所有層都具有兼容的輪廓,這意味着它們具有相同數量的輪廓和匹配的點,僅在點座標上有所不同。然而,如果您需要在設計空間內的特定範圍內切換到不兼容的輪廓怎麼辦?例如,您可能希望為更窄或更粗的字形使用不同的字形設計。
想象一個場景,您希望帶有單豎線的美元符號切換到帶有斷槓的替代設計,適用於更粗的字重(例如,當字重軸為 650 或更高時)。這就是 OpenType 的特性變化發揮作用的地方。
OpenType 規範通過特性變化表提供了一個優雅的解決方案,允許您將包含預設查找集的特性替換為包含需要在特定條件下應用的查找的替代特性。
有一個專門用於此的功能稱為必需變化替代(rvrn)。根據規範,rvrn 功能中的所有查找必須是單一替換(GSUB 類型 1),這意味着不允許使用連字、上下文或 GPOS 查找。然而,某些應用程式並未完全按照 OpenType 規範的意圖支援 rvrn,這可能會導致問題。
如果您使用 rvrn 的特性變化不起作用,您可以自由使用其他功能。我們建議嘗試必需連字(rlig)作為替代。此功能沒有與 rvrn 相同的限制,允許使用連字查找。
4. 將功能與變化條件連接
這是完整的功能代碼:
languagesystem DFLT dflt;
languagesystem latn dflt; # Latin default
lookup SingleSubstitution1 { # GSUB lookup type SingleSubstitution
sub dollar by dollar.rvrn;
} SingleSubstitution1;
feature rvrn { # Required Variation Alternates
} rvrn;
conditionset ConditionSet1 {
wght 650 950;
} ConditionSet1;
variation rvrn ConditionSet1 { # Required Variation Alternates
lookup SingleSubstitution1;
} rvrn;
通過此設置,您可以有效地管理字形在可變字體中不同軸位置的變化,確保您的設計在各種樣式和字重下保持最佳狀態。
致謝:本教程中使用的字體是 Elron Bucai 設計的 FtMonopol。