XFree86中的兩種字型

2021-03-31 18:51:18 字數 1928 閱讀 2732

xfree86是x系統在x86架構中的免費實現,也是現在linux系統預設的x系統。為了設定好字型,我們需了解xfree86系統中的字型系統的原理和實現技術。

xfree86 系統有兩套的字型系統,這也是為什麼x window中字型設定較複雜的原因之一。這兩套的字型系統分別是:

核心x11字型系統:是應用最廣泛的一套字體系 統,所有的x系統都支援。   

xft字型系統是:乙個新的字型技術,只能用在基於xfree86系統的x系統上,但該套字型系統配置簡單,容易使用,將是未來發 展的方向。

xft 是乙個library,它沒有自已的配置機制,它依靠fontconfig庫來配置和定製字型,xft負責字型的顯示。也就是說,fontconfig是 一種讓x系統可以找到某種字型的庫,而xft是負責在x系統中把fontconfig庫找到的字型如何顯示出來的庫。所以討論xft字型配置其實就是討論 fontconfig。fontconfig包含在xfree86發布版中。

fontconfig的作用:

fontconfig 的配置檔案有三個,乙個是系統級的配置檔案/etc/fonts/fonts.conf,該目錄下還有乙個local.conf,一般我們只修改 local.conf檔案(但好象新版的xft的配置檔案不使用local.conf檔案了),fonts.conf一般不建議去修改。第三個配置檔案是使用者主目錄下的~/.fonts.conf,它是使用者級的字型配置文 件,只對當前使用者有效。這三個檔案的格式是一樣的,都是乙個xml格式的檔案。該xml檔案的語法規則在fonts.dtd裡定義。詳細的配置介紹請參考中國linux公社中的「linux高質量字型研究」論壇。

在xft字型系統中安裝新的字型是很簡單的,只需把字型檔案拷貝到fonts.conf中指定的字型檔案目錄即可,fontconfig會自動感知新字型。預設的字型目錄有四個,分別是:

/usr/share/fonts

/usr/x11r6/lib/x11/fonts/type1

/usr/local/share/fonts

~/.fonts

把 新字型檔案拷貝到字型目錄後,我們就可用fc-list命令列出新安裝的字型,如果沒有,可用fc-cache命令手動更新系統字型配置。這樣,再執行 fc-list就應該可以看到新安裝的字型了。使用xft字型系統是不用配置/etc/x11/xf86config-4的,也不用重啟x伺服器使配置生 效。xft字型系統比起傳統的x11核心字型系統來說真的是方便很多。所以它是未來的發展方向。目前,並不是所有的應用程式都支援xft字型系統。下面是 各類程式對xft字型系統的支援情況介紹:

配置x11核心字型有兩步,

第一步是建立字型目錄,在該目錄中包含字型檔案。

第二步是配置x伺服器,使它能使用這些字型。

我以配置simsun.ttc字型為例說明:

重啟x伺服器後就可使用simsun中文字型了。xlsfonts命令可列出系統中已安裝的x11核心字型。

如果你是使用debian系統,則可使用defoma(debian font manager)工具來幫你完成以上設定。該工具的使用請參考本文「debian的安裝和配置」一章的內容。

gtk+1.x程式使用x11核心字型系統。要在gtk+1.x程式中使用simsun字型,需配置/etc/gtk/gtkrc.zh_**檔案,內容如下:

# this file defines the fontsets for chinese language (zh) using

# the simplified chinese standard guobiao as in mainland china (**)

## 1999, pablo saratxaga

#style "gtk-default-zh-**"

class "gtkwidget" style "gtk-default-zh-**"

這樣gtk+1.x程式可顯示中文了,中文使用simsun字型,英文使用bitstream vera sans字型。

公升級Debian中的XFree86

前幾天拿出朋友給的debian盤,滿懷好奇心地裝入我的電腦。沒想到八張光碟,只用了第一張就裝好了。今天轉到debian,想看看究竟如何。沒想到打startx,提示錯誤 no screen found 也難怪,02年的光碟,到現在肯定不支援我的geforce fx顯示卡。於是跑到 執行xinstall...

Unity中的兩種static

unity3d中的每乙個物體在inspector中的static的作用 當選中時,這個object是在程式執行時是靜止不變的,確保不被改變,一般多用於場景中靜止的物體。在unity內部會有不少操作來檢測該object是否為static的,對於static的物體進行一些特殊處理,在rendering優...

pytorch中attention的兩種實現方式

採用seq to seq模型,修改注意力權重的計算方式 def init self,hidden size,output size,dropout p 0.1 super attentiondecoderv2,self init self.hidden size hidden size self.o...