Go 部落格
Go 字型
一個公告
正在 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 比例寬度字型
無襯線體
Go 比例寬度字型是無襯線體,就像許多流行的螢幕顯示字型一樣。有證據表明,一些無襯線字型在小尺寸和低解析度螢幕上比有襯線字型更易讀,而在大尺寸時,無襯線字型和有襯線字型在易讀性上沒有顯著差異,至少在測試的一對字型中是這樣。[1](方括號中的數字指本文末尾列出的參考文獻。)
風格
Go 無襯線字型在風格上是“人文主義”而非“怪誕”。這是一種歷史區分,而非審美判斷。像 Helvetica 和 Arial 這樣廣泛使用的無襯線字型被稱為怪誕體(grotesque),是因為 19 世紀早期的一種無襯線字型被命名為“Grotesque”,這個名稱後來泛化了。
像 Helvetica 這樣的現代怪誕體字型形狀是雕塑式的,形式光滑、融合。
人文主義無襯線體源自人文主義手寫體和義大利文藝復興時期的早期字型,至今仍保留著鋼筆書寫書法的微妙痕跡。有證據表明,人文主義字型比怪誕字型更易讀。[2]
斜體
Go 比例寬度斜體與正常體(roman)具有相同的寬度度量。Go 斜體是正常體的傾斜版本,但有一個明顯的例外:斜體小寫字母“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(eye)和小寫字母 l(ell);數字五(5)與大寫字母 S;以及數字八(8)與大寫字母 B 來符合 1450 標準。b d p q 的碗形遵循易讀的文藝復興手寫體的自然不對稱性,有助於區分並減少混淆。[5]
字重
Go 比例寬度字型有三種字重:Normal(常規)、Medium(中等)和 Bold(粗體)。Normal 字重足夠強壯,可以在背光螢幕上保持清晰度,背光螢幕通常容易模糊字母特徵和筆畫粗細。Medium 字重的筆畫粗細是 Normal 的 1.25 倍,以便在明亮的螢幕上或對於喜歡粗壯字型的使用者來說更堅固。Bold 字重的筆畫粗細是 Normal 的 1.5 倍,足夠粗以區別於常規字重。這些 Go 字型的 CSS 數字字重為 400、500 和 600。儘管 CSS 將“Bold”指定為 700 字重,將 600 指定為 Semibold 或 Demibold,但 Go 的數字字重與筆畫粗細的實際比例進展相匹配:Normal:Medium = 400:500;Normal:Bold = 400:600。“Bold”字重名稱與將“Bold”用作常規字型的通常對應粗體字重的用法相符。關於筆畫粗細、字重名稱和 CSS 編號之間關係的更多討論見 [6]。
WGL4 字元集
WGL4 字元集最初由微軟開發,常被用作非正式標準字元集。WGL4 包含西歐和東尤拉丁字元以及現代希臘語和西裡爾字母,並附加符號、標誌和圖形字元,總計超過 650 個字元。Go WGL4 字型可用於排版多種語言。[7]
與 Arial 和 Helvetica 的度量相容性
Go 無襯線字型與標準 Helvetica 或 Arial 字元幾乎完全度量相容。使用 Go 排版的文字與使用 Helvetica 或 Arial 排版的文字(在相同字號下)佔據的空間幾乎相同,但 Go 由於其人文主義風格而具有不同的外觀和質感。Go 中一些具有 DIN 易讀性特徵的字母比 Helvetica 或 Arial 中的對應字母更寬,因此使用 Go 排版的一些文字可能會佔用稍微更多的空間。
Go Mono 字型
等寬體
Go Mono 字型是等寬的——每個字母的寬度與其他字母相同。等寬字型自計算機誕生以來就一直用於程式設計,至今仍被廣泛使用,因為其打字機般的規則間距使得文字能夠按列和行對齊,這種風格也見於公元前 5 世紀的希臘銘文。(古希臘人沒有打字機或電腦鍵盤,但他們有偉大的數學家以及對對稱和模式的強烈感知,這些塑造了他們的字母表。)
粗襯線體
Go Mono 字型具有板狀襯線,賦予其堅固的外觀。
風格
Go Mono 的底層字母形狀與 Go 無襯線字型一樣,源自人文主義手寫體,但等寬和板狀襯線往往掩蓋了歷史和風格上的聯絡。
斜體
Go Mono 斜體是正常體的傾斜版本,但有一個例外,斜體小寫字母“a”被重新設計成草書的單層形式,以便與 b d g p q 的碗形協調。草書“a”使得斜體看起來比簡單的傾斜正常體更生動。與許多無襯線字型一樣,人們認為傾斜的正常體粗襯線字型可能比真正的“草書”斜體更易讀。

x 高度
Go Mono 字型的 x 高度與 Go 無襯線字型相同,為字號的 53%。Go Mono 看起來比 Courier 大近 18%,而 Courier 的 x 高度是字號的 45%。然而 Go Mono 與 Courier 的寬度相同,因此在每行字元經濟性上沒有損失的情況下獲得了更大的外觀。
DIN 易讀性標準
Go Mono 字型透過區分數字零(0)與大寫字母 O;數字一(1)與大寫字母 I(eye)和小寫字母 l(ell);數字五(5)與大寫字母 S;以及數字八(8)與大寫字母 B 來符合 DIN 1450 標準。b d p q 的碗形遵循易讀的文藝復興手寫體的自然不對稱性,有助於區分並減少混淆。
字重
Go Mono 字型有兩種字重:Normal(常規)和 Bold(粗體)。常規字重的筆畫粗細與 Go Normal 相同,因此在背光螢幕上保持清晰度,背光螢幕容易模糊字母特徵和筆畫粗細。粗體字重的筆畫粗細是常規字重的 1.5 倍,因此 Bold Mono 的筆畫粗細與 Bold Go proportional 相同。由於等寬粗體的字母寬度與等寬常規體的寬度相同,Bold Mono 看起來比比例寬度 Go Bold 略粗,因為在相同區域內填充了更多的黑色畫素。
與流行的等寬字型的度量相容性
Go Mono 在度量上相容 Courier 和其他與 12 點字號下每線性英寸 10 個字元的“Pica”打字機型別寬度相匹配的等寬字型。在 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) “評估字型設計在富文字車載使用者介面中的影響”,Ergonomics, 57:11, 1643-1658。http://www.tandfonline.com/doi/abs/10.1080/00140139.2014.940000
[3] Adrian Frutiger - Typefaces: The Complete Works. H. Osterer and P. Stamm, editors. Birkhäuser, Basel, 2009, page 257.
[4] Legge, G. E., & Bigelow, C. A. (2011). 字號對閱讀重要嗎?一項來自視覺科學和排版學的研究綜述。Journal of Vision, 11(5), 8-8。http://jov.arvojournals.org/article.aspx?articleid=2191906
[5] Charles Bigelow。“Oh, oh, zero!”TUGboat, Volume 34 (2013), No. 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
WGL4 語言覆蓋範圍:南非荷蘭語, 阿爾巴尼亞語, 阿蘇語, 巴斯克語, 白俄羅斯語, 本巴語, 本納語, 波斯尼亞語, 保加利亞語, 加泰羅尼亞語, 奇加語, 科隆語, 康瓦爾語, 克羅埃西亞語, 捷克語, 丹麥語, 恩布語, 英語, 世界語, 愛沙尼亞語, 法羅語, 菲律賓語, 芬蘭語, 法語, 弗留利語, 加利西亞語, 幹達語, 德語, 希臘語, 古西語, 匈牙利語, 冰島語, 伊納裡薩米語, 印度尼西亞語, 愛爾蘭語, 義大利語, 喬拉-福尼語, 卡布韋爾迪亞努語, 卡拉利蘇特語, 卡倫金語, 卡姆巴語, 基庫尤語, 盧安達語, 拉脫維亞語, 立陶宛語, 下索布語, 盧奧語, 盧森堡語, 盧伊亞語, 馬其頓語, 馬恰梅語, 馬庫瓦-梅託語, 馬孔德語, 馬達加斯加語, 馬來語, 馬耳他語, 馬恩島語, 梅魯語, 模里西斯克里奧爾語, 北恩德貝萊語, 北薩米語, 挪威書面語, 挪威新語, 尼揚科萊語, 奧羅莫語, 波蘭語, 葡萄牙語, 羅馬尼亞語, 羅曼什語, 隆博語, 倫迪語, 俄語, 爾瓦語, 桑布魯語, 桑戈語, 桑古語, 蘇格蘭蓋爾語, 塞納語, 塞爾維亞語, 尚巴拉語, 修納語, 斯洛伐克語, 斯洛維尼亞語, 索加語, 索馬利亞語, 西班牙語, 斯瓦希里語, 瑞典語, 瑞士德語, 泰塔語, 特索語, 土耳其語, 土庫曼語, 上索布語, 武尼奧語, 瓦爾澤語, 威爾士語, 祖魯語
Go Regular 中的 Jabberwocky
來自 en.wikipedia.org/wiki/Jabberwocky

沒有列出希臘語版本。取而代之的是一個來自 clagnut.com/blog/2380/#Greek 的全字母句

下一篇文章:參與 2016 年 Go 使用者調查和公司問卷
上一篇文章:Go 七年
部落格目錄