Go 部落格

Go 字型

奈吉爾·陶、查克·比格羅和羅伯·派克
16 November 2016

公告

golang.org/x/exp/shiny 建置的實驗性使用者介面工具包包括多個文字元素,但測試這些元素時有一個問題:應該使用什麼字型?這個問題的答案帶我們來到了今天的公告,我們釋出了一個由 Bigelow & Holmes 字型鑄造廠特別為 Go 專案所製作、高品質的 WGL4 TrueType 字型系列。

字型系列稱為 Go(很自然吧),包括正常、粗體和斜體顯示的比例寬度和固定寬度字體。這些字型已針對技術用途進行測試,尤其是程式設計。如其名稱所示,在 Go 字體顯示時,Go 原始程式碼看起來特別棒,像是容易區分的標點符號和一致對齊且擺放的運算子

Go 字體最顯著的功能也許是其授權:採用與 Go 專案其他軟體相同的開源授權,這對高品質字體來說是種不尋常的免費安排。

以下是比例間距的範例...

以及等寬字體

如何使用這兩種字體

如果你只要 TTF 檔案,請執行

git clone https://go.googlesource.com/image

並從後續的 image/font/gofont/ttfs 目錄複製。如果你想將 Go(字體)與 Go(軟體)一起使用,每個字體都由不同的套件提供。若要在程式中使用 Go Regular 字體,請匯入 golang.org/x/image/font/gofont/goregular,然後撰寫

font, err := truetype.Parse(goregular.TTF)

github.com/golang/freetype/truetype 套件提供 truetype.Parse 函式。此外還有工作在進行中,要再次在 golang.org/x 下新增一個 TrueType 套件,並採用與 Go 專案其他軟體相同的開源授權。

我們這部分留給您來找出這些字體其他不尋常的特性,但為了概述字體的設計,我們請 Chuck Bigelow 提供一些背景資訊。這篇網誌文章的其餘內容是他的回覆。

Chuck Bigelow 關於字體的記事

Go 字體分為兩組,Go proportional 無襯線字體,以及 Go Mono 板襯線字體。

Go proportional 字體

無襯線

Go proportional 字體為無襯線,就像螢幕顯示器中數種廣泛使用的字體一樣。有些證據顯示,在螢幕上使用小字號和低解析度的無襯線字體,比起有襯線字體,稍稍容易閱讀;而在大字號的情況下,無襯線字體和有襯線字體在可讀性上沒有顯著差異,至少在一對受測字體中並沒有。(括號數字指本文末所列的參考文件)

樣式

Go 無襯線字體在樣式上屬於「人文主義」而不是「怪誕」。這是一個歷史區別,而非審美判斷。像 Helvetica 和 Arial 等廣泛使用的無襯線字體之所以稱為怪誕字體,是因為 19 世紀早期的一種無襯線字體名為「怪誕」,因此這個名稱就變成了普通名詞了。

像 Helvetica 這些現代怪誕字體的形狀是經過雕刻,擁有順滑且同化的形式。

人文主義無襯線字體源自於人文主義手寫字及義大利文藝復興早期字體,至今仍表現出手寫書法的微妙痕跡。有些證據顯示,人文主義字體比怪誕字體好讀。[2]

斜體

比例斜體字具有與羅馬字體相同的寬度度量。斜體字是羅馬字的斜體版本,有一個明顯的例外:斜體小寫「a」被重新設計為草書單層形式,與 b d g p q 組合的圓碗形狀協調一致。而直立的形態也能適當地傾斜,加入草書「a」使斜體字看起來比簡單傾斜的羅馬字更生動。部份字體設計者認為傾斜的羅馬非襯線斜體字優於真正的「草書」非襯線斜體字,部分原因是歷史與設計。[3]

x 高度

字體的 x 高度是小寫「x」相對於字體大小的高度。Go 字型的 x 高度是字體大小的 53.0%,比 Helvetica (52.3%) 或 Arial (51.9%) 的 x 高度稍大,但在正常的閱讀尺寸下通常無法察覺差異。字體設計者認為較大的 x 高度有助於在小尺寸和螢幕上提高可讀性。針對「列印尺寸」(特別是 x 高度)和閱讀的研究指出,用於螢幕閱讀和小型尺寸的字體往往具有較大的 x 高度。[4]

DIN 可讀性標準

最近的德國 DIN 1450 可讀性標準建議了字體可讀性的若干功能,包括區分字體形狀以減少混淆。Go 字體透過仔細區分數字 0 和大寫 O;數字 1 和大寫 I(眼睛)和小寫 l(L);數字 5 和大寫 S;以及數字 8 和大寫 B 而符合 1450 標準。b d p q 的圓碗形狀遵循易於辨識的文藝復興時期手寫字的自然不對稱性,有助於區別以減少混淆。[5]

粗細

Go 比例字體有三個粗細:普通、中等和粗體。普通粗細足夠有力,可以在背光螢幕上維持清晰度,而背光螢幕通常容易侵蝕字體的特徵和粗細。中等粗細的筆劃粗細是普通粗細的 1.25 倍,可在明亮的螢幕上提供更大的堅固性,或供偏好堅固字體的使用者使用。粗體的筆劃粗細是普通粗細的 1.5 倍,足夠粗以與普通粗細區別。這些 Go 字體的 CSS 數字粗細為 400、500 和 600。儘管 CSS 將「粗體」指定為 700 粗細,將 600 指定為半粗體或中粗體,但 Go 數字粗細與筆劃粗細比例的實際進程相匹配:普通:中等 = 400:500;普通:粗體 = 400:600。粗體名稱與將「粗體」用作普通字體的通常相應粗細相匹配。有關筆劃粗細、粗細名稱和 CSS 編號之間關係的進一步討論,請參閱 [6]。

WGL4 字元集

WGL4 字元組最初由 Microsoft 開發,時常作為非正式標準字元組使用。WGL4 包含西歐和東歐的拉丁字元,以及現代希臘文與西里爾文,加上額外的符號、標誌和圖形字元,總計超過 650 個字元。Go WGL4 字型可用於撰寫各種語言。[7]

公制相容性與 Arial 和 Helvetica

Go 無襯線字型幾乎與標準 Helvetica 或 Arial 字元公制相容。使用 Go 設定的文字所占空間幾乎與 Helvetica 或 Arial (相同大小) 中的文字相等,但由於其人文主義風格,Go 呈現不同的外觀和質感。有些具 DIN 易讀性特色的 Go 字母寬度比 Helvetica 或 Arial 中對應的字母寬,故有些使用 Go 設定的文字可能需要稍多的空間。

Go Mono 字型

等寬字體

Go Mono 字型為等寬字體,每個字母的寬度與其他字母相同。等寬字型自電腦問世以來便用於程式撰寫,且因其間距的打字機規律性使文字對齊於欄和列中,而至今仍廣泛使用,這也是公元前五世紀希臘銘文中發現的風格。(古希臘人沒有打字機或電腦鍵盤,但他們確實擁有出色的數學家和絕佳對稱感與模式感,進而形塑其字母表。)

平板襯線

Go Mono 字型具有平板形襯線,使其具備穩固的外觀。

樣式

與 Go 無襯線字型相似,Go Mono 的基礎字母形狀衍生自人文主義手寫,但在等距和平板襯線的共同作用下,歷史和風格連結不明顯。

斜體

Go Mono 斜體是標準字体的斜體版本,唯獨斜體小寫「a」重新設計為草書單層形式,與 b d g p q 的圓形形狀保持一致。草書「a」使斜體看起來比單純傾斜的標準字體更加活潑。與許多無襯線字型相同,人們認為傾斜的平板襯線字型較真正的「草書」斜體更具可讀性。

x 高度

Go Mono 字型與 Go 無襯線字型具有相同的 x 高度:主體大小的 53%。相比之下,x 高度為主體大小 45% 的 Courier 看起來幾乎比 Go Mono 大 18%。然而,Go Mono 的寬度與 Courier 相同,因此外觀較大,卻不犧牲每行字元經濟性。

DIN 可讀性標準

Go Mono 字型符合 DIN 1450 標準,其中將數字 0 與大寫 O 區分開來;將數字 1 與大寫 I (eye) 和小寫 l (ell) 區分開來;將數字 5 與大寫 S 區分開來;將數字 8 與大寫 B 區分開來。b d p q 的圓形形狀遵循易讀的義大利文手寫的自然不對稱性,有助於區分並減少混淆。

粗細

Go Mono 字型具有兩種字重:一般和粗體。一般字重的粗細與 Go Normal 相同,因此在背光螢幕上保持清晰度,而背光螢幕容易減損字母特徵和粗細。粗體字的粗細比一般字重粗 1.5 倍,因此大於 Bold Go 等比例字體的粗細。由於等寬粗體字形的寬度與等寬一般字形相同,因此 Bold Mono 比例 Go Bold 看起來稍粗,因為在相同區域中放入了更多黑色像素。

Go Mono 與 Courier 和其他等寬字型具有度量相容性,而後者符合「Pica」打字機字型寬度,在 12 點時,每線性英寸含有 10 個字元。在 10 點時,Go Mono 字型設定為每英寸 12 個字元。當然,TrueType 字型是可調整大小的,因此 Go Mono 可以設定成任何大小。

WGL4 字元集

Go Mono 字型提供 WGL4 字元集,通常用作非正式的標準字元集。WGL4 包括西歐和東歐拉丁字元,以及現代希臘字母和西里爾字母,還有其他符號、標誌和圖示字元。Go WGL4 字型集中的 650 多個字元可供多種語言使用。

參考資料

[1] Morris, R. A., Aquilante, K., Yager, D., & Bigelow, C. (2002, May). P‐13: Serifs Slow RSVP Reading at Very Small Sizes, but Don’t Matter at Larger Sizes. In SID Symposium Digest of Technical Papers (Vol. 33, No. 1, pp. 244-247). Blackwell Publishing Ltd.

[2] Bryan Reimer 等人。(2014)「在文字豐富的車用使用者介面中評估字型設計影響」,人體工學,57:11,1643-1658。http://www.tandfonline.com/doi/abs/10.1080/00140139.2014.940000

[3] Adrian Frutiger - 字型:完整作品。H. Osterer 和 P. Stamm 編輯。Birkhäuser,巴塞爾,2009 年,第 257 頁。

[4] Legge, G. E., & Bigelow, C. A. (2011). 列印大小對閱讀有影響嗎?來自視覺科學和印刷術的發現回顧。視覺期刊,11(5),8-8。 http://jov.arvojournals.org/article.aspx?articleid=2191906

[5] Charles Bigelow。「喔,喔,零!」TUGboat,第 34 卷(2013 年),第 2 號。https://tug.org/TUGboat/tb34-2/tb107bigelow-zero.pdf https://tug.org/TUGboat/tb34-2/tb107bigelow-wang.pdf

[6]「Lucida 基本字型字重」Bigelow & Holmes。 http://lucidafonts.com/pages/facts

[7] WGL4 語言涵蓋範圍:阿非利卡語、阿爾巴尼亞語、阿蘇語、巴斯克語、白俄羅斯語、班巴拉語、貝納語、波士尼亞語、保加利亞語、加泰隆尼亞語、幾加語、科隆語、康瓦爾語、克羅埃西亞語、捷克語、丹麥語、恩布語、英語、世界語、愛沙尼亞語、法羅語、菲律賓語、芬蘭語、法語、弗留利語、加利西亞語、甘達語、德語、希臘語、古西語、匈牙利語、冰島語、伊納里薩米語、印尼語、愛爾蘭語、意大利語、約拉-福尼語、卡布威爾迪克里奧爾語、格陵蘭語、卡倫金語、康巴語、基庫尤語、盧安達語、拉脫維亞語、立陶宛語、下索布語、盧奧語、盧森堡語、盧雅語、馬其頓語、馬查美語、馬科阿-梅通語、馬孔德語、馬達加斯加語、馬來語、馬耳他語、曼島語、梅魯語、毛里裘斯克里奧爾語、北恩德貝萊語、北薩米語、挪威博克馬爾語、挪威新挪威語、尼揚科萊語、奧羅莫語、波蘭語、葡萄牙語、羅馬尼亞語、羅曼什語、龍博語、盧安達語、俄語、盧瓦語、桑布魯語、桑戈語、桑古語、蘇格蘭蓋爾語、塞納語、塞爾維亞語、沙姆巴拉語、紹納語、斯洛伐克語、斯洛維尼亞語、索加語、索馬里語、西班牙語、斯瓦希里語、瑞典語、瑞士德語、泰塔語、特索語、土耳其語、土庫曼語、上索布語、溫喬語、瓦爾瑟語、威爾士語、祖魯語

用 Go Regular 撰寫的賈伯沃基

來自 en.wikipedia.org/wiki/Jabberwocky

沒有收錄希臘版本。取而代之的是來自 clagnut.com/blog/2380/#Greek 的全文異文。

下一篇文章:參加 2016 年 Go 用戶調查和公司問卷
上一篇文章:Go 的七年
部落格索引