Go 部落格
Go 字型
公告
在 golang.org/x/exp/shiny
上構建的實驗性使用者介面工具包包含多個文字元素,但測試它們時存在一個問題:應該使用什麼字型?回答這個問題促成了我們今天的公告,釋出了一系列高質量的 WGL4 TrueType 字型,由 Bigelow & Holmes 型別鑄造廠專門為 Go 專案建立。
該字型家族名為 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
函式。目前也在 github.com/golang/freetype/truetype
下新增一個 TrueType 包的工作正在進行中,該包也根據與 Go 專案其餘軟體相同的開源許可證授權。
我們希望您能發現這些字型的一些其他不同尋常的特性,但關於字型設計的概述,我們請 Chuck Bigelow 提供一些背景。這篇博文的其餘部分是他的回覆。
Chuck Bigelow 撰寫的字型筆記
Go 字型分為兩組:Go 比例字型(無襯線)和 Go Mono 字型(粗襯線)。
Go 比例字型
無襯線
Go 比例字型是無襯線的,與一些流行的螢幕顯示字型類似。有證據表明,在螢幕上小尺寸和低解析度下,某些無襯線字型比有襯線的字型略微易讀,而在大尺寸下,無襯線和有襯線字型之間的易讀性差異並不顯著,至少在測試的成對字型中如此。[1](括號中的數字指的是本文末尾列出的參考文獻。)
風格
Go 無襯線字型的風格是“人文主義”而非“怪誕”。這是一個歷史區分,而不是審美判斷。像 Helvetica 和 Arial 這樣廣泛使用的無襯線字型被稱為怪誕字型,因為 19 世紀早期的一種無襯線字型名為“Grotesque”(怪誕),這個名字後來變得通用。
像 Helvetica 這樣的現代怪誕字型的形狀是經過雕琢的,具有光滑、融合的形態。
人文主義無襯線字型源自人文主義手寫體和義大利文藝復興時期的早期字型,至今仍帶有筆寫書法細微的痕跡。有證據表明,人文主義字型比怪誕字型更易讀。[2]
斜體
Go 比例斜體與羅馬體具有相同的寬度度量。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(眼)及小寫字母 l(埃爾);數字 5 和大寫字母 S;以及數字 8 和大寫字母 B,從而符合 1450 標準。b d p q 的碗狀形狀遵循可讀的文藝復興時期手寫體的自然不對稱性,有助於區分以減少混淆。[5]
字重
Go 比例字型有三種字重:Normal(正常)、Medium(中等)和 Bold(粗體)。正常字重足夠清晰,即使在背光螢幕上也能保持清晰度,因為背光螢幕會侵蝕字母特徵和粗細。中等字重的筆畫粗細是正常字重的 1.25 倍,在明亮螢幕上或對於喜歡粗體字型的使用者來說更顯穩固。粗體字重的筆畫粗細是正常字重的 1.5 倍,足夠粗以與正常字重區分開。這些 Go 字型的 CSS 數值字重為 400、500 和 600。儘管 CSS 將“Bold”(粗體)指定為 700 字重,將 600 指定為 Semibold(半粗)或 Demibold(半粗),但 Go 的數值字重與實際筆畫粗細比率的遞進相符:Normal:Medium = 400:500;Normal:Bold = 400:600。粗體字重名稱與“Bold”作為正常字型通常對應的粗體字重的使用相符。更多關於筆畫粗細、字重名稱和 CSS 編號之間關係的資訊請參見 [6]。
WGL4 字元集
WGL4 字元集最初由微軟開發,常被用作非正式的標準字元集。WGL4 包括西歐和東歐的拉丁字元,加上現代希臘語和西里爾語,以及額外的符號、標誌和圖形字元,總計超過 650 個字元。Go WGL4 字型可用於構成多種語言。[7]
與 Arial 和 Helvetica 的度量相容性
Go 無襯線字型與標準的 Helvetica 或 Arial 字元在度量上幾乎相容。以 Go 字型排版的文字(在相同大小下)佔據的空間與 Helvetica 或 Arial 文字幾乎相同,但由於其人文主義風格,Go 字型具有不同的外觀和質感。一些具有 DIN 易讀性特徵的 Go 字母比 Helvetica 或 Arial 中的相應字母更寬,因此一些以 Go 字型排版的文字可能佔據稍多空間。
Go Mono 字型
等寬
Go Mono 字型是等寬的——每個字母的寬度與其他字母相同。自計算機誕生以來,等寬字型就一直被用於程式設計,並且仍然被廣泛使用,因為它們的打字機式的規律性間距使文字在列和行中對齊,這種風格也出現在公元前 5 世紀的希臘銘文中。(古希臘人沒有打字機或電腦鍵盤,但他們有偉大的數學家和塑造了他們字母的偉大的對稱性和模式感。)
粗襯線
Go Mono 字型具有粗襯線,賦予它們穩固的外觀。
風格
與 Go 無襯線字型一樣,Go Mono 的底層字母形狀也源自人文主義手寫體,但等寬和粗襯線往往會模糊其歷史和風格聯絡。
斜體
Go Mono 斜體是羅馬體的傾斜版本,例外的是,斜體小寫字母 'a' 被重新設計成草書單層形式,以與 b d g p q 的碗狀結構協調一致。草書 'a' 使斜體比單純傾斜的羅馬體更顯活潑。與許多無襯線字型一樣,人們認為傾斜的羅馬粗襯線字型可能比真正的“草書”斜體更易讀。

x 字高
Go Mono 字型的 x 字高與 Go 無襯線字型相同,為字號的 53%。Go Mono 的外觀幾乎比 Courier(x 字高為字號的 45%)大 18%。然而,Go Mono 的寬度與 Courier 相同,因此在每行字元數量不變的情況下獲得了更大的視覺效果。
DIN 易讀性標準
Go Mono 字型符合 DIN 1450 標準,方法是區分數字 0 和大寫字母 O;數字 1 和大寫字母 I(眼)及小寫字母 l(埃爾);數字 5 和大寫字母 S;以及數字 8 和大寫字母 B。b d p q 的碗狀形狀遵循可讀的文藝復興時期手寫體的自然不對稱性,有助於區分和減少混淆。
字重
Go Mono 字型有兩種字重:Normal(正常)和 Bold(粗體)。正常字重的筆畫與 Go Normal 相同,因此在背光螢幕上也能保持清晰度,而背光螢幕往往會侵蝕字母特徵和筆畫粗細。粗體筆畫的粗細是正常字重的 1.5 倍,因此 Bold Mono 的筆畫粗細與 Bold Go proportional 相同。由於等寬粗體的字母寬度與等寬正常體相同,Bold Mono 的外觀比 proportional Go Bold 稍微更粗一些,因為在相同區域內放置了更多的黑色畫素。
與流行的等寬字型的度量相容性
Go Mono 與 Courier 和其他等寬字型在度量上相容,這些字型與“Pica”打字機型別寬度相匹配,即 10 個字元/線性英寸(12 點)。在 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 et al. (2014) “Assessing the impact of typeface design in a text-rich automotive user interface”, 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). Does print size matter for reading? A review of findings from vision science and typography. 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 Basic Font Weights” Bigelow & Holmes. http://lucidafonts.com/pages/facts
[7] WGL4 語言覆蓋:南非荷蘭語、阿爾巴尼亞語、阿蘇語、巴斯克語、白俄羅斯語、姆貝馬語、貝納語、波斯尼亞語、保加利亞語、加泰羅尼亞語、奇加語、科隆語、康沃爾語、克羅埃西亞語、捷克語、丹麥語、恩布語、英語、世界語、愛沙尼亞語、法羅語、菲律賓語、芬蘭語、法語、弗留利語、加利西亞語、甘達語、德語、希臘語、古西語、匈牙利語、冰島語、因加里薩米語、印度尼西亞語、愛爾蘭語、義大利語、約拉-福尼語、卡布韋迪亞努語、格陵蘭語、卡倫金語、坎巴語、基庫尤語、基尼亞爾旺達語、拉脫維亞語、立陶宛語、下索布語、盧奧語、盧森堡語、盧伊亞語、馬其頓語、馬查梅語、馬庫瓦-梅託語、馬孔德語、馬達加斯加語、馬來語、馬耳他語、馬恩語、梅魯語、模里西斯語、北部恩德貝萊語、北部薩米語、挪威語(博克馬爾語)、挪威語(尼諾斯克語)、尼亞科爾語、奧羅莫語、波蘭語、葡萄牙語、羅馬尼亞語、羅曼什語、隆博語、倫迪語、俄語、瓦語、桑布魯語、桑戈語、桑古語、蘇格蘭蓋爾語、塞納語、塞爾維亞語、尚巴拉語、紹納語、斯洛伐克語、斯洛維尼亞語、索加語、索馬利亞語、西班牙語、斯瓦希里語、瑞典語、瑞士德語、泰塔語、特索語、土耳其語、土庫曼語、上索布語、武尼奧語、瓦爾瑟語、威爾士語、祖魯語
Go Regular 字型下的《 Jabberwocky 》
來自 en.wikipedia.org/wiki/Jabberwocky

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

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