歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
Linux教程網 >> Linux綜合 >> Linux桌面 >> Linux桌面系統字體配置詳解(一)

Linux桌面系統字體配置詳解(一)

日期:2017/3/3 15:49:06   编辑:Linux桌面

字體顯示效果測試

這一段是為了測試宋體字的顯示效果,包括宋體裡面自帶的英文字體,“This is english,how does it look like?”。這一行是小字。後面幾個字是加粗的宋體。標點符號“,。:;!”
  這一段是為了測試黑體字的顯示效果,包括黑體裡面自帶的英文字體,“This is english,how does it look like?”。這一行是小字。標點符號“,。:;!”。微軟雅黑是什麼樣子的呢“,。:!”?
   This paragraph shows how does serif english fonts look like,包括英文裡面夾雜中文的顯示效果。Is serif same as Times New roman?
   This paragraph shows how does sans-serif english fonts look like,包括英文裡面夾雜中文的顯示效果。Is sans-serif same as Arial?
   This paragraph shows how does ui fonts look like,還有專門的界面字體,比如Windows中的Tahoma字體:File->New->New Project。
    #include <stdio.h>
    int main(){
      return 0;//很顯然這是為了測試等寬字體
    }

#include <stdio.h>  //觀察下面的代碼了解monospace是否等於Courier New
    int main(){
      return 0;
    }

字體的分類及其用途

在文章最開始的一個部分(也就是這部分之前的內容),我特意寫了一些文字用來測試各種字體的顯示效果。這些測試文本我在HTML源代碼模式下經過仔細修改。第1段的字體都是設置為宋體,包括其中的英文、小字及加粗的字。第2段除了最後一句外,其余的字體都設置為黑體,包括英文及小字;最後一句字體設置為微軟雅黑,是為了對比微軟雅黑和普通黑體的效果。第3段除了最後一句外,其余的字體都設置為Serif,包括其中的中文;最後一句字體設置為Times New Roman。第4段除了最後一句外,其余的是Sans-Serif,最後一句是Arial。第5段的字體都是設置為Tahoma。最後的兩塊代碼,第1塊代碼的字體設置為monospace,第2塊代碼的字體設置為Courier New。為什麼這樣設置,我後面會配合圖片逐一講解。下面,需要先了解字體的分類及其用途。

1、英文字體分為三類,分別是有襯線字體(serif)、無襯線字體(sans-serif)和等寬字體(monospace)。Serif是有襯線字體,意思是在字的筆畫開始、結束的地方有額外的裝飾,而且筆畫的粗細會有所不同。Sans-serif就沒有這些額外的裝飾,而且筆畫的粗細差不多。在傳統的正文印刷中,普遍認為襯線體能帶來更佳的可讀性(相比無襯線體),尤其是在大段落的文章中,襯線增加了閱讀時對字母的視覺參照。而無襯線體往往被用在標題、較短的文字段落或者一些通俗讀物中。相比嚴肅正經的襯線體,無襯線體給人一種休閒輕松的感覺。同時,由於無襯線字體筆畫比較飽滿,所以比較適合電腦屏幕顯示,在印刷和打印中,可以用無襯線字體做標題、加粗字體等表示強調。等寬字體就不用多說啦,主要用於終端字體或編程。

2、中文字體可以參照英文字體進行分類,由於中文都是等寬的,所以就只需要區分有襯線(serif)和無襯線(sans-serif)。中文的宋體、仿宋就相當於英文的serif,所以用於傳統印刷和打印效果比較好。而中文的黑體、楷體、圓體等字體相當於英文的sans-serif,用於電腦屏幕的顯示效果比較好,也可以用在印刷和打印中做標題和粗體字。

3、Serif字體的經典代表有Georgia和Times New Roman,sans-serif字體的經典代表有Arial和Verdana,monospace字體的經典代表有Courier New和DejaVu Sans Mono。

電腦中的字體顯示技術

電腦中的字體既是一門藝術,也是一門技術。要將屏幕上的字體顯示得好看難度可不小。字體可以表示為點陣(bitmap),也可以表示為輪廓(outline)。點陣字體不能縮放,輪廓字體可以隨意縮放。

1、要獲得銳利清晰的效果,小字必須顯示為點陣(bitmap),大字可以顯示為輪廓;

2、顯示輪廓字體時,為了讓字體邊緣顯得比較光滑,需要對字體邊緣進行抗鋸齒(anti-alias);

3、為了獲得更好的效果,字體設計廠家在設計字體的時候,會對字體進行微調(hinting)。字體微調是一項耗時耗力的工作,所以就產生了自動微調技術(autohint);

4、為了讓字體在液晶顯示器上獲得更好的效果(主要也是為了字體邊緣光滑),產生了次像素平滑技術(subpixle),微軟的ClearType技術也屬於次像素平滑技術的一種。所謂次像素,是指每個像素中的單獨的R、G、B分量,所以次像素平滑用好了,字體邊緣看起來會更平滑,如果用不好,字體邊緣就會顯得花花綠綠。也正是因為CRT顯示器和液晶顯示器每個像素的組成方式不一樣,所以在CRT顯示器中不能開次像素平滑。

5、增加屏幕的dpi,可以增加畫字的像素,從而獲得更平滑的顯示效果。比如在傳統的96dpi的電腦顯示器上,一個9pt的字符用12個像素繪制,一個12pt的字符用16個像素繪制,使用輪廓字體確實很難做到平滑。但是在目前的安卓手機、蘋果iPad等設備上,高分辨率的潤眼屏都在300dpi以上,畫一個12pt的字符可以用50多個像素,字體平滑自然不是問題,根本不需要使用點陣、微調、抗鋸齒、次像素等技術。我認為,隨著顯示器硬件技術的發展,以上技術都將成為浮雲。

以上圖片是字體測試段落在Win7系統中的顯示效果。除了標題和小字外,其它的字體都是12pt。可以看到,12pt的宋體字和serif的英文字體顯示為點陣,所以獲得了清晰銳利的效果。而黑體、微軟雅黑和sans-serif字體都沒有點陣,但是由於sans-serif本身筆畫飽滿,所以也獲得了不錯的顯示效果。據說微軟雅黑每個字造價100美元,專為ClearType技術而設計,但是從效果上看,並不比普通黑體強多少。

前面講過,serif和sans-serif是字體的分類名,而不是具體的字體名。Times New Roman是Windows下最經典的serif字體,但是從上圖可以看出它並不是serif字體的首選字體,設置為serif的字體和設置為Times New Roman的字體顯示不一樣,但是都是很漂亮的有襯線字體,serif的中文選擇了一種和宋體不同的點陣字體。Arial字體是最經典的無襯線字體,從圖中可以看出設置為sans-serif和設置為Arial的字體顯示效果相同。只是sans-serif的中文被宋體的點陣代替了。Tahoma字體的顯示效果和sans-serif只是寬度上略有不同,但是依然很飽滿。

使用Ctrl+鼠標滑輪可以縮放網頁。將網頁放大後顯示,可以查看輪廓字體的顯示效果,如下圖:

Linux中的字體

下面,通過大量的圖片直觀地感受不同的字體以及不同的字體顯示技術會帶來什麼樣的效果。

上圖是CentOS 5中的顯示效果,是不是覺得字體很虛?系統菜單中的字體倒是很銳利。其實在Fedora 9之前,Red Hat系列的Linux發行版中文字體顯示都很模糊。也正是因為這個原因,我曾經有一段時間偏向於使用中科紅旗的Linux。CentOS中的字體顯示發虛的原因就是因為它的小字沒有使用點陣。

小字使用輪廓字體就會發虛,大字使用輪廓字體效果就要好得多。使用Ctrl+鼠標滑輪將網頁放大,可以看到大字顯示很清晰飽滿。如下圖:

本欄目更多精彩內容:http://www.bianceng.cn/OS/Linux/

CentOS 5中的字體顯示還有一個奇怪的現象,那就是它認為serif的中文應該是楷體,而且它的sans-serif也顯示的是有襯線字體,很顯然這是不對的。而且由於歷史的原因,它沒有黑體。如下圖:

CentOS系統中對中文的支持主要依賴於2001年文鼎向開源界貢獻的兩套字體:文鼎PL中楷和文鼎PL細上海宋,如下圖:

下面來看看Ubuntu中的顯示效果。從下圖中可以看到,Ubuntu側重於sans-serif和黑體,除了明確指定serif和Times New Roman的字體外,其余全部顯示為sans-serif和黑體。而且沒有點陣。這進一步印證了我前面說的黑體適合屏幕顯示、宋體適合打印和印刷。在系統中全部顯示黑體雖然不會丟失文字的信息,但是肯定會影響美觀。Ubuntu沒有正確地為monospace選擇等寬字體,但是對Courier New倒是選擇了一個很漂亮的等寬字體進行替代。

使用Ctrl+鼠標滾輪將網頁放大,看到清晰飽滿的字體,如下圖:

對於界面字體,Windows下有Tahoma,Ubuntu下也有專用的界面字體,該字體就叫Ubuntu,是開源的。自Ubuntu 14.04開始,已經沒有采用文泉驿的黑體了,而是改用Droid Sans Fallback,沒錯,就是Google花錢為Android系統設計的字體。反正該字體也沒點陣,我覺得顯示效果也就那樣。

下面再來看看Fedora 20,該系統也是以黑體為主。從下面的圖片中可以看到,除了Times New Roman,其它的字體顯示都是一個樣。

小字是點陣,放大後,顯示為黑體,如下圖:

查看Fedora 20系統,可以看到它還是安裝了AR PL UMing,也就是宋體,但是它沒有使用,而且它沒有安裝楷體,雖然它的軟件源中有cjkuni-ukai。它使用的黑體是文泉驿系列。

之前發表的幾篇隨筆都是在Ubuntu 14.04下完成的,這次我決定換到Fedora 20系統下。曬一下我的桌面,如下圖:

從AR PL這幾個字符可以看出,AR PL UMing和文鼎貢獻的那兩套字體是一脈相承的。確實如此,只不過是經過合並、修改、增加了日語韓語及香港常用字型後,更名為CJKUniFonts,據說含有點陣。從名字可以看出,有了這套字體,中日韓都可以搞定。CentOS 6的主打字體就是它。如下圖,小字有點陣,清晰銳利:

放大後,顯示輪廓字體,不過好像缺了黑體,如下圖:

這套字體唯一的缺點就是它的標點符號,逗號和句號經常跑到一行的中間,而不是一行的底部。這都不是什麼大事兒,其實,微軟雅黑的引號也不漂亮,不是嗎?

CentOS 6中已經有了文泉驿,如下圖,之所以沒有顯示黑體不是因為沒有黑體,而是因為沒有正確配置:

通過上面一系列的截圖,可以看到各個操作系統都使用了哪些中文字體,也展現出了各個操作系統在字體配置方面的缺陷。從另一個方面,也反映出了挑選字體的趨勢。可以總結如下:

1、Linux系統中的宋體最早只有文鼎貢獻的細上海宋,而且還沒有點陣。後來發展到CJKUniFonts,宋體才有了點陣,它的字體名叫AR PL UMing,在Linux系統上想要使用宋體,就全靠它了。但是CJKUniFonts的點陣似乎不太符合我們的習慣,好在文泉驿有非常漂亮的點陣字體,雖然只覆蓋了9pt到12pt的范圍。

2、Linux系統中最開始黑體缺乏,現在大家都認識到了黑體在屏幕顯示中具有較好的效果,於是就黑體泛濫了。微軟花大價錢請人設計的微軟雅黑是黑體,開源字體文泉驿做的也是黑體,Google花錢請人做的Droid Sans Fallback還是黑體。Ubuntu用黑體,Fedora也用黑體。可以說,文泉驿選擇黑體作為切入點真的是選對了,也確實是我們廣大Linux使用者的福音。

3、即使是最新的Linux發行版,如Ubuntu 14和Fedora 20,其字體設置也不合理,對serif、sans-serif、宋體、黑體的理解都不正確。所以,對於字體,我們還是得自己配置。

Copyright © Linux教程網 All Rights Reserved