關於昭源黑體 Pro

昭源黑體 Pro 是甚麼?

昭源黑體 Pro 是一款在昭源黑體之上加入整套 Source Sans 3 字集的中文黑體字型。

「昭源黑體」的開發動機源於對個別中文字形選擇的偏好,對非中文字形(包括 LGC —— 指 Latin, Greek 和 Cyrillic,即拉丁、希臘、西里爾字母、數字、符號等等)字元並沒有任何更改,頂多是因應繁體中文使用而調整了個別符號的映射使他們預設輸出全形字形。

「昭源黑體 Pro」則集中在非中文字形的變更,將整套 Source Sans 3 字體納入其中。

Source Sans 3 即是 Source Sans Pro ── 思源黑體的 LGC 字元來源 ── 的第三版。由於相比第二版有較大改動,這個版本除了版本號有變之外,字體家族名稱也改成 Source Sans 3。

為甚麼需要昭源黑體 Pro?

昭源黑體以思源黑體香港版為基礎開發,而思源黑體的 LGC 字元則來自同公司的 Source Sans Pro。由於技術原因,一個字型檔可以容納的字元數是有限的,思源黑體在支援了各中日韓字集標準後,所餘空間已經不多,不足以容納全部 Source Sans Pro 字元。因此思源黑體的 LGC 字元覆蓋其實經過篩選,相比 Source Sans Pro 要少得多。於是我們會遇到明明一個字元在 Source Sans Pro 已經收錄,但使用思源黑體卻會出現缺字的情況:

Image

Image

問題是,雖然思源黑體的 LGC 來自 Source Sans Pro,但字符並非直接植入,而是經過縮放、插值生成不同粗幼等步驟,所以思源黑體的英數字形跟 Source Sans Pro 在相同大小和字重的字形並不相同。假如使用者將 Source Sans Pro 設為思源黑體的後補字型,會明顯地看到不同字型混在一起:

Image

昭源黑體 Pro 的意義就在於此:先將 Source Sans 3 的字符處理,再植入昭源黑體,使用者觀看同樣的文字不會缺字之餘也不會出現字體不諧協的突兀感。

Image

由於昭源黑體的目標是提供一款正體中文字形經過訂製的字體,因此不支援地區字形轉換,本來在思源黑體中用來放置其他地區字形的約 16,900 個字元空間便可以騰空作其他用途。昭源黑體就是利用了這些空檔放置新造字,而昭源黑體 Pro 就再用這些空間放入全套 Source Sans 3 字體。

為甚麼會稱為 “Pro”?

在歐文字體世界,“Pro” 一名通常是指該字體相比「非 Pro 版」(或有命名為 Std 者)支援更多的外文字碼,包括希臘 (Greek)、西里爾 (Cyrillic) 字母之類。不過這個命名沒有甚麼規範性,所以時至今日 Pro 這個名稱未必有特定意義(好些歐文字體甚至只有 Pro 版一種選擇,包括本文提到的 Source Sans Pro)。

選擇「昭源黑體 Pro」這個命名的原因純粹是因為需要一個區別於原來版本的後綴,又想不到其他更好的名字,所以採用了沿襲上述習慣的名稱。而事實上「昭源黑體 Pro」的確比「昭源黑體」收入更多的 LGC 字符。

既然都是免費,為甚麼不直接將 Pro 的功能整合到原來版本?

昭源黑體 Pro 的 LGC 字形來自 Source Sans 3。雖然跟昭源黑體(亦即原來思源黑體)的 Source Sans Pro 同出一系,但昭源黑體 Pro 對 Source Sans 3 使用了不同的縮放比率,其字元間距等參數跟昭源或思源黑體並不相同。一篇用「思源黑體」排版、中英夾雜的文章,改為「昭源黑體」,出現版面異動的機會頗低。但假如一篇中英夾雜的文章使用思源或昭源黑體排版,改成「昭源黑體 Pro」後,無論是字符間距還是行數出現改變的機會非常大。若直接將 Pro 的功能放到昭源黑體,使用者更新字體後,便有機會出現版面改變、整個頁面佈置跟之前大相逕庭,而須重新調整的情況。

另一方面,昭源黑體經過多年發展,現時可以説是已踏入「穩定期」。相對而言,昭源黑體 Pro 算是一個新嘗試,發展如何暫難預料。所以,分成兩個版本也是為自己留一條後路,防止出現早期昭源黑體曾經嘗試嵌入 Noto Sans 字體、但後來發現並不可行而在其後版本還原的情況。

因此,起碼在目前,昭源黑體 Pro 仍然會跟本來的昭源黑體並行發展,有獨立的更新週期。

OpenType 功能

從 Source Sans Pro 繼承的 OpenType 功能

Source Sans 3 包含大量 OpenType 字型功能,使用者可以利用這些功能調出替代字元。這些字型功能在昭源黑體 Pro 會盡量保留。以下是一些例子:

功能碼 套用前 套用後 備註
cv01/ss01 I I Latin serifed I
ss02 al al Simple a/l
cv02/ss03 a a Latin single storey a
cv03/ss04 g g Looptail g
cv04/ss05 l l Latin straight l
cv05/ss06 a a Serifed a, second alternate
cv17/ss09 0123 0123 Alternate figures
cv18/ss10 0 0 Dotted zero
cv19/zero 0 0 Slashed zero
numr 0123 0123 Numerators
dnom 0123 0123 Denominators
frac 1/4 4/6 1/4 4/6 Fractions

註: Source Sans 3 可透過 cv18/cv19/ss10 等 OpenType 功能調出數字 0 的不同款式。不過由於昭源黑體預設輸出 capped 版數字,使用這些功能調出的數字 0 變體會比本來其他數字略矮。Source Sans 3 本身沒有為 capped 版提供其他款式的 0 字字形。

昭源黑體 Pro 的新增 OpenType 功能

某些字元(主要是 ▲、♠、← 等符號)在 Source Sans 3 是以英文排版用的「調和」 (proportional) 形式呈現,但在思源黑體則是以方便跟中文配搭的「全形」形式顯示。由於歷史原因,使用者會期望大多數此類字元在中文字體是以全形描繪,所以不能貿然一刀切以 Source Sans 3 的英文版字元取而代之。不過,我認為 Source Sans 3 的英文版字元也有保留價值。最終的決定是在昭源黑體 Pro 將某些字元預設為全形、另一些預設為調和款式。

當然,這種改變肯定不能滿足所有人⸺有些人會希望某個字形預設輸出中文版,同一個字形其他人會希望預設輸出英文版。因此,昭源黑體 Pro 新增了兩個 Character Variant / Stylistic Set 功能,俾使用者在支援的應用程式中切換二者:

功能碼 套用前 套用後 備註
ss11/cv20 ←↑
‼⁉

←↑
‼⁉

預設為全形,套用後改為調和款式
ss12/cv21 ×÷
▪∑
×÷
▪∑
預設為調和款式,套用後改為全形

試驗性 OpenType 功能

最後,昭源黑體新增了一個屬試驗性質的 ss13/cv22 功能,方便調出某些平時較難直接輸入的符號:

  • 輸入 !!, !?, ?!, ?? 分別會調出全形的 U+203C Double Exclamation Mark (‼)、U+2049 Exclamation Question Mark (⁉)、U+2048 Question Exclamation Mark (⁈) 及 U+2047 Double Question Mark (⁇)。
  • 輸入兩個或三個全形連接號 — (U+2014)可以呼叫出中文版佔兩個或三個字元的 ⸺ (U+2E3A) 和 ⸻ (U+2E3B)。
  • 輸入雙數的全形波浪符號 ~ (U+FF5E) 會視乎橫排直排轉換成 U+3030 Wavy Dash (~~) 或 U+2307 Wavy Line (⌇)。
套用前 套用後
咦~~~~~~!? 咦~~~~~~!?

昭源黑體 Pro 版的技術細節

更多有關將 Source Sans 3 整合至昭源黑體 Pro 的技術詳情,包括與昭源黑體和 Source Sans 3 的不同之處,請參閲下載壓縮檔內的 README 檔案(或按此瀏覽)。

昭源黑體 Pro 與標準版的分別

除了 LGC 字元的收字外,昭源黑體 Pro 與標準版還有以下分別:

字重命名

因應 Windows 系統的字型名稱長度限制,Pro 版的 ExtraLight 字重會改為 ExtraLt

桌面裝置格式

標準版有 OTF 和 TTF 兩種格式,Pro 版只有 OTF 版。製作 TTF 版並不困難,問題是 Source Sans Pro 的 OpenType 功能能否完整保留、又會不會有其他問題出現。由於測試需時,遇有問題亦未必能完滿解決,所以暫不考慮提供 TTF 格式字型。

Webfont 網頁字型

跟標準版不同,Pro 版的網頁字型沒有提供以使用者裝置上的昭源黑體為優先的 [字重]_fb.css 的樣式表。雖然這樣做可機會減少下載量,但假如使用者手頭版本跟網頁使用的版本不同、而字形有出入,或會引起爭議。經衡量後決定不提供 [字重]_fb.css 的樣式表。其實即使是標準版也不建議選用 [字重]_fb.css 版本,不過為保持兼容性所以暫未移除。