假如我想開源一款新字體
最近在 IT 之家刷到個新聞,英特爾面向開發(fā)者發(fā)布了一款新的開源等寬字體 Intel One Mono。這套字體由英特爾品牌團隊、Frere-Jones Type 和 VMLY&R 合作開發(fā),官方稱 "集清晰度、易讀性和保護開發(fā)者視力于一體"。

此外,視力較弱的開發(fā)者和盲人開發(fā)者也參與了設(shè)計工作,他們在設(shè)計的每個階段都會提供反饋。
現(xiàn)在設(shè)計一款字體都這么卷了么... 但設(shè)計字體這項工作,不論花了多少努力多么專業(yè),對自己來說唯一的評價標準就是看著舒不舒服。
------
從 intel-one-mono 官方 GitHub 倉庫把源碼下載下來,在 mac 上雙擊 .ttf 文件,就可以把字體安裝上了。

打開字體冊程序,會看到剛剛裝好的字體預覽。

打開 Idea 把默認字體配置上,我們對比一下差異。
這是我 Idea 原本的 JetBrains Mono 字體。是我覺得寫代碼時最舒服的字體,沒有什么令我覺得奇怪的地方。

這是 Intel One Mono 字體。比上面的字體更扁,更細,我看著稍稍有點刺眼。

當然,他們都是等寬字體,不過我還是覺得 JetBrains Mono 更舒服,看來經(jīng)典還是經(jīng)典呀,程序員們天天面對的字體沒必要整什么花活。
------
如果我們想自己搞出一個字體,應(yīng)該怎么辦呢?從 Intel 這個開源倉庫中看到,其實最簡單的就是把剛剛的 .ttf 格式的文件給搞出來一個就可以了。
.ttf 格式的文件是字體格式文件的一種,叫 TrueType,是微軟和蘋果共同研發(fā)的一套字體格式標準。除此之外還有 OpenType(.otf),是繼 TrueType 之后微軟又和 Adobe 公司共同研發(fā)的一套字體標準。字體標準的制定,背后也有一段精彩的故事,等我搞明白了再給大家講述。
這些字體格式都是跨平臺的,即 Windows、Mac、Linux 上都可以識別并安裝,所以我們就搞出 .ttf 文件即可。
找到一款專業(yè)的字體設(shè)計軟件 FontLab,打開它的官方網(wǎng)站。

看了價格之后,嚇得我趕緊關(guān)閉了網(wǎng)頁。又找到了一款免費的且直接可以在網(wǎng)頁端編輯的字體設(shè)計軟件,Glyphr Studio。
里面設(shè)計字體的時候需要使用平滑的貝塞爾曲線來繪制,如果熟悉 Flash 或 PS 里面的鋼筆工具的同學就沒有學習成本了。

設(shè)計好之后直接點擊導出即可,導出格式?jīng)]有 ttf 只有 otf,都一樣,正好嘗試下安裝 otf 格式的字體。

下載好之后,直接在 mac 上雙擊下載好的 .otf 文件就可以直接安裝了。

使用 Idea 打開這個丑陋的字體,就可以看到效果了。

其實還挺有特色的,工作煩躁的時候可以用自己設(shè)計的字體玩一玩,緩解一下工作壓力。
------
不過在 Linux 上,好像我們很少聽到字體這個概念,尤其是在服務(wù)器上處于字符模式而非圖形模式下的 Linux 發(fā)型版。
很簡單,因為沒有不同字體渲染的需求,即使你把微軟雅黑字體放上去也沒法在字符模式下發(fā)揮作用。
但是,卻仍然有應(yīng)用程序會用到,比如使用 Java 的 POI 工具進行導出時,如果使用的是 OpenJDK 版本,則會依賴操作系統(tǒng)中的字體相關(guān)的庫。
所謂依賴字體相關(guān)的庫,通常指的是字體管理工具 fontconfig,字體渲染庫 freetype 以及字體格式文件本身比如上面說的 .ttf 文件。
在 centos7 上通過 yum install 方式安裝 fontconfig 時會自動把 freetype 安裝好,并同時安裝一個默認的字體格式文件在 /usr/share/fonts 目錄下。如果沒有安裝,那么使用 POI 報表導出 Excel 表格時可能會報錯,你可以寫一段簡單的代碼來模擬下報錯信息。

POI 中正是因為使用了 awt 包下的這個 Font 類導致需要依賴操作系統(tǒng)的字體庫而報錯,我個人認為是個設(shè)計缺陷,導出 POI 報表并不需要真正渲染字體,但卻為了圖方便使用了 Font 類而間接依賴了字體庫。
這里給大家一個思考題,在使用 OracleJDK 的時候,即便操作系統(tǒng)里沒有字體庫,也不會報錯,只有用 OpenJDK 的時候才會報錯,這是為什么呢?
------
以上我們見到的字體,都是比較現(xiàn)代的字體格式了,叫做輪廓字體,即使用貝塞爾曲線來描述字體的樣子,可以簡單的進行縮放和傾斜等線性變換,不會模糊。
古老的計算機中使用的是點陣字體,我們找不到古老的計算機,我推薦一款非常有趣的軟件,叫 cool-retro-term,是個模擬古老計算機顯示的終端,比如我輸入 top 命令后是這樣的,很有年代感。

當年的小霸王、任天堂等都使用這樣的字體,一塊一塊的感覺。這些字體一旦放大就會變成明顯的像素風,有馬賽克一樣的鋸齒邊緣。
所以,為了解決這個問題,才有了后面的輪廓字體,也就有了后面 Adobe、微軟、蘋果三家公司的字體標準大戰(zhàn),我們找時間再講。
------
想必大家也都有著和字體這項技術(shù)發(fā)生的故事,不論是工作中碰到的棘手問題,還是小時候或者生活中的奇妙記憶。
正文沒看夠,我們評論區(qū)見~
