教程 特性變化
No.05 Feature Variations

使用特性變化 切換字形

本教程演示如何根據可變字體的變化實例(這裏是 Weight 字重軸),將單豎線的美元符號切換為帶斷條的備選設計。

教程式號: 05
官方原文: high-logic.com
內容狀態: ✅ 基於完整內容創建

簡介

可變字體允許您使用軸滑塊插值字形層輪廓。這是可能的,因為所有層都具有兼容的輪廓,這意味着它們具有相同數量的輪廓和匹配的點,僅在點座標上有所不同。然而,如果您需要在設計空間內的特定範圍內切換到不兼容的輪廓怎麼辦?例如,您可能希望為更窄或更粗的字形使用不同的字形設計。

問題

想象一個場景,您希望帶有單豎線的美元符號切換到帶有斷槓的替代設計,適用於更粗的字重(例如,當字重軸為 650 或更高時)。這就是 OpenType 的特性變化發揮作用的地方。

美元符號變化

解決方案:OpenType 特性變化

OpenType 規範通過特性變化表提供了一個優雅的解決方案,允許您將包含預設查找集的特性替換為包含需要在特定條件下應用的查找的替代特性。

有一個專門用於此的功能稱為必需變化替代(rvrn)。根據規範,rvrn 功能中的所有查找必須是單一替換(GSUB 類型 1),這意味着不允許使用連字、上下文或 GPOS 查找。然而,某些應用程式並未完全按照 OpenType 規範的意圖支援 rvrn,這可能會導致問題。

如果您使用 rvrn 的特性變化不起作用,您可以自由使用其他功能。我們建議嘗試必需連字(rlig)作為替代。此功能沒有與 rvrn 相同的限制,允許使用連字查找。

在 FontCreator 中添加特性變化的分步指南

1. OpenType 設計器

  • 啓動 FontCreator。
  • 確保您的字體具有美元字形以及替代的 dollar.rvrn 字形。
  • 打開 OpenType 設計器。

2. 創建新查找

  • 在左側的功能樹視圖中選擇名為"查找"的根項。
  • 單擊添加按鈕(頂部的綠色十字)。
  • 從右側的 GSUB 列表中選擇"單一替換"。
  • 將此查找命名為"SingleSubstitution1"並將其配置為用替代字形替換常規美元符號。

3. 向 OpenType 佈局添加功能

  • 如果您的字體沒有腳本,則首先選擇"腳本"並單擊添加按鈕以添加"預設" -> "預設",否則您可以跳過此步驟。
  • 選擇名為"功能"的根項以添加名為"RequiredVariationAlternates1"的 `rvrn` 功能(將其留空,不添加查找)。
  • 現在將該功能添加到所有可用的腳本-語言組合。
  • 我們向"功能"添加第二個 `rvrn` 功能並將其命名為"RequiredVariationAlternates2"。
  • 將查找"SingleSubstitution1"添加到"RequiredVariationAlternates2"。
OpenType 設計器

4. 將功能與變化條件連接

  • 在功能樹視圖中,選擇"變化"(最後一個根項)並單擊添加按鈕(頂部的綠色十字)。
  • 在變化條件部分,單擊添加按鈕並將軸設置為"字重",最小值設置為 650,最大值設置為 950。
  • 添加變化功能替換,將"RequiredVariationAlternates1"設置為功能來源,將"RequiredVariationAlternates2"設置為目標功能。
變化條件

這是完整的功能代碼:

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;

測試特性變化:

  • 通過在預覽區域中輸入美元符號來測試設置。
  • (可選)打開校對對話框(左上角的第二個圖標)以查看形狀引擎處理的內容。
  • 使用字重滑塊查看當字重為 650 或更高時美元符號是否被替換。
  • 通過勾選 _shaper 複選框確保形狀引擎處於活動狀態。
測試特性變化

結論

通過此設置,您可以有效地管理字形在可變字體中不同軸位置的變化,確保您的設計在各種樣式和字重下保持最佳狀態。

致謝:本教程中使用的字體是 Elron Bucai 設計的 FtMonopol