其實,從Windows Vista和Office 2007開始,Microsoft就開始在新產品裡面加入新的字型。除了一般人常用的中、英文字型以外,Windows 7也加入了一些比較罕見的像是泰文、阿拉伯文字型。當然,這些文字對我們而言是「罕見」,但Windows 7可是要行銷全世界的,所以國際化也是必要的。不過我的語言程度有限,所以對於那些特殊的外國字型就不去說明了。本期我想要介紹的,就僅限於Windows 7新增的,一般人比較常用的中、英文字型。

所謂的「Code Page」
在談Windows 7新增的字型以前,我想先簡單說明一個東西,稱為「Code Page」(碼頁?)。一般而言,用字型時很難不碰到Code Page的問題。

以前,電腦能處理的語言以英文為主,所以早期電腦就只能處理有限的文字,每一個字母或是符號(被稱為一個字元)都有編號,是為ASCII碼,一共有128個字元。後來ASCII碼擴充到256個字元,但這數量其實還是相當有限,無法符合後來電腦「國際化」的需要。

那麼,我把中間的細節都跳過,有興趣的讀者,不妨到Wikipedia網站搜尋「Code Page」這個辭條,會有更詳細、專業的解說。而被我簡化的說法就是:在還沒有「Unicode」(萬國碼?)以前,不同的Code Page可以在256個字碼的空間裡面,利用某些技術以顯示各國的語言文字。比方說,正體中文的Code Page號碼是950,而簡體中文的Code Page號碼是936。

但是,這種Code Page的技術僅解決了單一地區顯示的問題,這方案還是不夠完善。比方說,如果你在中國大陸使用電腦,Code Page設為936(簡體中文),那你打算開啟Code Page為950(正體中文)的純文字檔──那就會是一堆亂碼。雖然亂碼的成因很多,但是「Code Page不對」鐵定是一個常見的因素。如果要讓文字顯示正確,使用者常得指定某一個文字檔案的Code Page。如果要讓應用程式的介面文字顯示正確,也得切換整個Windows系統的Code Page。切過來切過去,實在是非常麻煩,一般使用者也根本沒有處理這類問題的能力(怎麼切換?哪裡切換?怎麼會知道切到哪個才對?)。所以,亂碼事件就時常發生了。

Unicode比較完善
由於Code Page僅能解決單一地區的文字應用,但是現代電腦卻常需要同時瀏覽多國語言──請注意是「同時」,不能用切換法。電腦和Internet應用促成了國際化的加速發展,但是電腦本身卻沒有國際化(至少,支援的程度不是很好)。Code Page這概念只是解決了「燃眉之急」,但並沒有辦法解決「同時瀏覽多國文字」的問題。
所以,Unicode就被發明出來了。

Unicode的發明是一種「妥協下的產品」。什麼意思?從文化的角度來看,文字是活的,中文尤其是活跳跳的,所以如果用一個標準去限制文字的數量,似乎不是個好主意。又或者說,如果沒被列入Unicode標準的語言文字,是不是就被忽略了?是的,這類問題是無解的,所以我說,Unicode是妥協下的產物。如果讓中文「自己」去發展,我可以保證中文這東西是有自由意識的,每天都有新字被生出來,一定可以把你搞死。(辜仲瑩的瑩字你以為是正確寫法嗎?「聽說」不是,正確的寫法上面兩個火應該是王才對……這字根本無法輸入……不過,這只是題外話。)

那Unicode的好處是什麼?

很簡單,Unicode可以讓你「同時」看到多國語言文字,不再需要切換──愚蠢的切換可以完全忘記了。

不過,之前也提過……即使有了Unicode,但最大的問題還是在於:用傳統方式撰寫的應用程式可能還是只支援Code Page的編碼,連使用者介面也只是Code Page的編碼。要讓這些東西改支援Unicode,程式得修正,介面撰寫得要注意合乎規範……這些都要花人力、時間等資源,廠商不一定有急迫的需求去做。所以,簡體中文介面的軟體,到了正體中文的環境下就會有亂碼(看撰寫者是否注意介面有合乎Unicode的編碼)。

但是,至少,Windows 7確實是個完整支援Unicode的環境,所以在Windows環境下內建的字型,大多是以Unicode編碼原則設計的。

所以,這樣給個結論:一般的「中文Windows」,是設成Code Page 935,且完整支援Unicode,所以執行「支援Code Page 935的應用軟體和英文軟體」(大多軟體皆是如此)沒有問題,執行「支援Unicode的應用軟體」(較少見)也沒問題,但是如果你執行支援其他Code Page的軟體,大多會出現亂碼。

Windows 7新增中文字體點評
有了以上的概念之後,我們來看看Windows 7的字型吧!

在Unicode編碼下,要把一個字集整個字碼完整的全部造滿,可能得造上六萬多字。

請問,如果你是字型廠商,為了讓產品可以在Unicode環境下使用,你會把六萬多個字全都造滿嗎?

當然不會!

所以,就Windows系統而言,系統內建的字型可粗略畫分為「系統字」和「應用字」。

系統字會把Unicode的字碼造得比較完整,所以這個字體可以應付「同時顯示各種語言」的狀況,系統內建的中文字型,像是細明體、新細明體、標楷體和正黑體,大多屬於這種字型。但是,最完整的Unicode,其實是Arial Unicode,它幾乎把所有Code Page和整個Unicode字碼都造滿了。如果要顯示Unicode的外國文字,用Arial Unicode這字型準沒錯。


Arial Unicode MS可說是系統內建的字體中,提供Unicode和Code Page支援最完整的字體了,只要設定正確,這字體可以幫你顯示各國的語言文字是沒有問題的。

事實上,從Vista開始,Microsoft就把中文Windows的系統預設字型從細明體改成微軟正黑體了,如果問我「原因」,我想是希望能提高整個系統的「文字明視度」。黑體字未必更美觀,但是字體筆畫粗細一致,在小筆電上觀看頗為清晰,而清晰有時才是王道,我想這應該是更換系統字型的主要原因吧!Windows新增英文字型點評
在英文字體方面,Windows 7提供了很多「現代化的選擇」,我個人特別注意到的字體有Calibri、Cambria、Consolas和Cambria Math(字體名稱全都是C開頭)。

這些字體其實在Vista和Office 2007發行時就已經問世,但在Windows 7底下還做了小改版。以Office 2007而言,預設就會使用Calibri和Cambria作為內文及標題字,理論上各位應該不陌生才對。至於為何要加入這幾個新字體(其實還有一些其他不錯的字體,Candara、Constantia、Corbel、Gabriola……),感覺上是用來替代已經用得太久的Arial。Times New Roman,讓新的Microsoft軟體多一些「現代感」──畢竟,Arial等等字體也用得太久了吧!

平心而論,Microsoft的字體的技術能力和設計能力都非早年Windows 3.1的「吳下阿蒙」了,所以最近新增的字型幾乎都是由Microsoft自行發表(至少在版權宣告上是如此),而非授權自其他公司。整體看來,這些字確實很具現代感,冷冽不帶感情的風格,適用於各種標題和內文字。而且很妙的是,在Word 2007的預設裡面,無襯線的Calibri是預設內文字,有襯線的Cambria則是預設為標題字──和傳統的概念相反──但確實是現代排版的一種新流行趨勢。


Calibri,似乎是Microsoft原創的無襯線字體,冷冽不帶感情的字體特色,被設定為Word 2007預設內文字體。

至於Consolas字體,我個人認為這是用來取代Courier New的嶄新等寬字體,適合於程式師使用(一般是程式師用在程式碼顯示時才用等寬英文字體),看名字(console上一般都只能顯示等寬字)也知道這是個等寬字體。Microsoft還針對數學應用,特別提供了Cambria Math這個字體,感覺上這字體可以和Euler字體別苗頭,用在數學公式的顯示上確實是非常美觀。


Cambria字體是新的襯線字體,但卻被設定為預設的標題字體,十分特別。值得一提的是:Cambria Math可說是相當適合數學公式顯示的字體,品質可和Euler一拼之。

本期結論:Microsoft Typography網站不錯參考
關於Windows 7新增字體的諸多「細節」,我個人推薦一個網站,就是Microsoft Typography(http://www.microsoft.com/typography)。一般而言,你從Windows的字型資訊裡面,是可以看到一些資料,但很不完整。但是到Microsoft Typography網站裡面,就可以詳細看到這字型支援的Code Page,Unicode支援的程度,這個字型的版本源流,最早在哪一套Microsoft的產品上出現,或是可以知道這套字體的作者是誰,版權所屬是哪一家公司……相當方便。只是,一般人可能沒興趣研究這麼多就是。

就Windows 7提供的新字型而言,中文字型提供的數量不多(就三套),正黑體雖然適合系統應用,但如果要更多中文字體,就只能另外購買了。反之,Windows 7倒是提供了完整英文字體──除了原先的Arial、Times New Roman、Courier和Symbol,整個提供了一整套全新的Calibri、Cambria、Consolas和Cambria Math……,堪稱是現代化的全新英文字體系統,美觀程度也相當高。我想,放眼各家OS,大概也只有Microsoft可以在一個作業系統裡面,一次給你這麼完整的字型選擇吧!

馬上按讚加入iThome FB粉絲團

Advertisement

更多 iThome相關內容