国产成人精品久久免费动漫-国产成人精品天堂-国产成人精品区在线观看-国产成人精品日本-a级毛片无码免费真人-a级毛片毛片免费观看久潮喷

您的位置:首頁技術文章
文章詳情頁

X Window 系統使用指南--使用X的字型和色彩

瀏覽:2日期:2024-02-02 13:40:49

X支援多種的字型及幾乎無限多種變化的色彩,大多數的應用程式允許你指 定應用視窗中各個不同部份的顏色,而幾乎所有的X程式均允許你指定你想要使 用的字型。

在X中的字型(fonts):

.有固定的寬度(像啞終端機的字元)或成比例的間隙。

.由本文字元(text characters) 或符號組成,或以上兩者均有。

.具有多種的點尺寸(point size)。

.可以修改以適應特定的螢幕解析度(例如對於同一點尺寸的某一種字型, 你可能對75 dpi (dots-per-inch 每寸若干點) 的螢幕有一種版本,對 100 dpi 的螢幕有另一種版本)。

.有一種標準命名的傳統。

.可以以全名存取,也可以用通用字元(wildcard)。

.儲存在特定建構的目錄樹中,只要server在執行時,字型便可以加入或 移出。

在系統間進行字型的交換有一套標準的格式,并且有工具程式可以將這個 格式轉換成你的server能了解的格式,工具程式也包含了列出可用字型的目錄 、觀察某一特定字型內容等功能。

本章先對字型作一簡短的介紹,讓你能盡快的使用它們,然後才轉而詳細 地解釋字型的結構、格式、工具程式等,最後一節討論色彩:如何設定和使用 它們。

13.1 字型初步

本節的目的是讓你盡快地能使用字型,我們將告訴你如何找出有哪些字型 可用、指定你欲使用的字型名稱、看字型的外觀、如何在X應用程式中使用字型。

13.1.1 列出可用的字型

xlsfonts程式一行行的列出server上可用的字型,圖13-1顯示部份的 xlsfonts的輸出,內容為MIT 版標準的字型。

┌——————————————————┐ │ p146 fig 13.1 │ │ │ │ 圖13-1 典型的字型目錄列表 │ └——————————————————┘

13.1.2 字型命名

有些字型的名稱太長以致使用不便,但很幸運的,它們也不常被使用,并 且,X支援字型名稱可使用通字元(wildcard):

? 對應任何一個字元 * 對應從(字元)長度為零至長度若干的字串

這和Unix shell傳統的通用字元檔案名稱相同,使用通用字元可使你更容 易指定字型名稱。

注意:如果你在shell 的命令列指定一個通用字元的字型名稱,需要在名稱前 後加上雙引號 。

13.1.3 觀察一個特定的字型

xfd (X font displayer 的縮寫) 程式由引數(argument)得到字型的名 稱之後,建立一個視窗并且在視窗中顯示此名稱之字元字型,例如:

xfd -fn '*symbol*-180-*'

將顯示如圖13-2的視窗。

┌——————————————————┐ │ p147 fig 13.2 │ │ │ │ 圖13-2 字型的展示 │ └——————————————————┘

13.1.4 以X程式使用字型

大多數的X程式使用文字,并且允許你指定使用的字型,如何使用的詳細 細節可能因不同的程式而異,如果有問題的話可以看指南頁。但是幾乎都是以 命令列中選項 -fn fontname 或 -font fontname 來指定字型名稱,bitmap、 xclock、xterm、xload、xmb 和 xedit都是這樣操作的。例如假設你是為了展 示的緣故,以很大的字型執行xterm ,你可以用下列命令列:

xterm -fn '*courIEr-bold-r-*-240-*'

注意:如果你給程式的指定對應到一種以上的字型,則server會隨便在其中選 取一個,例如:如果你省略了上例中的 -r 的指定,則你會使用到意大 利斜體(italic)字型或反斜體(reverse oblique) 字型,和原來所指定 的羅馬(roman) 字型的機會是一樣的。

現在你應該有一些概念了,我們將從不同的觀點詳細地討論。

13.2 字型如何命名

在X中,字型可以取成任何名稱,但幾乎所有的字型均依照它們的本質來 命名,這樣的命名方式,名字是由幾個不相關的部份組合而成,而我們在使用 應用程式時,光憑著字型名稱便可以大略了解字型的內涵。

我們以一個字型名稱為□例,逐一解釋它的組件,組件之間是由短橫線(-) 所分開的,而且可以包含空白,字型名稱對字元大小寫并不會區別,□例如下:

-adobe-times-bold-normal--12-120-75-75-p-67-iso8859-1

adobe :字型的制造廠商。

times :型態家族(type family) ,其它尚包含courier ,helvetica 和 new century schoolbook。

bold :粗體字,其它包含light (細)和medium(中等)。

r :字體傾斜的型態,r 是roman (羅馬體),其它是 i(italic意 大利體),o (oblique 傾斜體)。

12 :字元的高度,單位為像素。

120 :字型的點尺寸(point-size),為點的10倍(120 意為12點,一點 約為1/72英□寬)。

75-75 :字型被設計在顯示裝置上的水平和垂直的解析度(每□若干點)。

p :字和字之間的間隙,p 是proportional(成比例的),相對的是 m (monospaced固定寬度)。

如果你對某一欄有特別的興趣,在本版的說明文件檔

$TOP/doc/fontnames/fname.txt

中,有對每一個組件完整的說明。

你通常比較有興趣的項目為家族型態、字體粗細、何種斜體字以及字型大 小,除了指定這幾項的值外,其它的項目不妨藉著通用字元的方式去指定。

13.2.1 通用字元和字型名稱

在第13.1節中,我們曾經解釋過通用字元的規則:星號(*)表示對應到 零或多個字元,問號(?)對應到一個任意的單一字元。

你可以隨意的使用通用字元,當你的設定對應到一種以上的可用字型時, server會隨便挑一種字型來用,如果你的設定什麼字型也沒對應到,通常你會 獲得一行訊息,而server將會使用預設字型。

你可以對字型的點尺寸使用通用字元,而不是像素尺寸,因為在顯示器上 一個給定點尺寸的字型對不同的解析度有不同的像素尺寸,所以用通用字元指 定點尺寸可以造成與裝備無關的效果,上述的□例你可以如此設定:

*-times-bold-r-*-120-*

也就是說以-120-取代-12-

13.2.2 列出可用的字型 -- xlsfonts

xlsfonts列出在你server上可用的字型(如果你使用用命令列中-display 選項,便可列出其它server上可用的字型)。預設是列出所有的字型,但是就 如同Unix的ls命令一樣,如果你加上限制,便只會列出合乎限制的項目,例如:

xlsfonts '*-times-*-180-*'

列出所有18點Times的字型。

原則上,xlsfonts試圖在每行列印出盡量多的字型名稱,但實際上,大部 份的字型名稱都很長以致一次只能印一個名稱,但是要小心,當字型名稱含有 空白時,一行有數個字型名稱常常容易混淆。

注意:許多的字型名稱開頭為一短橫線(-) ,所以xlsfonts會誤把此種狀況當 成命令列的選項來解釋以致發生錯誤,例如:

xlsfonts '-adobe-*'

會失敗,你可以用選項-fn 加以區分,或者只要在設定之前加一個星號(*) 即可:

xlsfonts '*-adobe-*' xlsfonts -fn '-adobe-*'

13.3 觀察特定字型的內容 -- xfd

xfd 是一個”字型顯示”的程式,它建立一個視窗,而後在視窗中將字型 的元素顯示在長方格子中。視窗可能沒有大到一次將字型中所有的字元顯示出 來(尤其是你可能對它重定過大小),但你仍然可以存取它們:

向前移動:在xfd 視窗中碰觸滑鼠右按鈕,視窗的下一頁將會出現。

向後移動:碰觸滑鼠左按鈕。

獲取字元的資訊:在字元上碰觸滑鼠中按鈕,xfd 會給你字元號碼,如果 你在程式一開始設定命令列選項-verbose,你將獲得一些更多的資訊,例 如字元的大小以及它在字元”cell”中的位置。

13.4 如何儲存字型及存在何處

在本節中,我們描述字型不同的格式,以及轉換兩種不同格式的工具,然 後討論server是如何存取字型和你如何更改對字型的選擇。最後,我們會給一 個完整的□例來說明如何加入一種新的字型到你的系統。

13.4.1 字型的格式 -- Server Natural Format (SNF)

字型在server上是以Server Natural Format (SNF) 方式儲存,這種格式 并不是一種標準,而且為server所專用,所以你不能將字型移到不同型態的 server。

showsnf 程式印出儲存在SNF 檔中字型的資訊,對字型本身執行xprop 可 獲得更多類似的資訊。(showsnf的引數為檔案名稱,xprop 則為字型的名稱, 字型名稱和檔案名稱并不相關。)

Bitmap Distribution Format(位元映像分布格式)-- BDF

為了克服字型流傳的問題,X協會對字型交換指定了一種格式,就是Bitmap Distribution Format (BDF) ,BDF 以ASCII 的方式表示字元的位元映像,并 且只包含可印出的字元,所以它具有完整的可攜性(portable)。

在”Bitmap Distribution Format”文件中包含了對BDF 完整的描述。

從BDF 轉換成SNF - bdftosnf

為了讓BDF 能夠有用,你必需能將BDF 字型檔轉換成SNF 檔,目前X協會 放棄讓這個需求成為X的成品。

在MIT 版,你可以用bdftosnf來完成轉換。

由其它的格式轉換

許多的繪圖機器擁有它們制造商自己發展的字型,通常特別適合它們的顯 示器。如果這些字型能在X使用那是再好也不過了,但是因為格式的問題,你 不能使用它們。

MIT core版并不管這個問題,但是core版則有許多的工具程式將制造商特 制的字型轉換成BDF 格式,從BDF 你又可以用bdftosnf轉換成你自己的SNF , 本章稍後我們會有一個這樣的□例。

13.4.2 字型儲存在何處 -- 字型目錄

字型被儲存在server上某一個或多個字型目錄(font Directory)中,字型 目錄由三個部份組成:

1. 一個普通的目錄,為包含著字型的SNF 檔案之所在。

2. 一個被X使用,將SNF 檔案名稱對應到字型名稱的資料庫。

3. 一個可選擇性的別名檔(aliase file) ,可以讓你用一個以上的名稱 參考到同一字型(不論你使用了多少個目錄,你只需要一個別名檔)。

維護字型目錄 -- mkfontdir

mkfontdir 設定新的字型目錄并且可以修改它:

1. 在檔案目錄中搜集了所有你要使用字型的檔案,檔案可以是BDF 檔(通 常檔名結尾為.bdf),SNF 檔案(.snf)或被壓縮的SNF 檔(.snf.Z),mkfontdir 會自動將非SNF 檔案轉換為SNF 檔案。(被壓縮的檔案是被BSD 壓縮程式執行 過用以節省檔案空間。)

2. 如果你要使用別名,需要在字型目錄中建立(或編輯)一個名為 fonts.aliase的檔案。有關此檔案格式的細節部份在指南頁中有說明,簡單地 說,它的格式為每行以空白間隔出兩個欄位,第一欄是別名的名稱,第二欄則 是字型的名稱(可包含通用字元),例如:

tbi12 *-times-bold-i*-120*

注意:你對字型定義的第一個別名將造成該字型真正的名稱無法使用,以上例 而言,你只能以tbi12 來存取字型,這種情形也許下一版會改進,但目 前你可以在第二行將第一行反過來即可(但不可使用通用字元)。

tbi12 *-times-bold-i*-120* -adobe-times-bold-i-normal--12-120-75-755-p-68-iso8859-1 tbi12

3. 執行mkfontdir ,需把檔案名稱當成引數輸入,以你使用預設的X建構 為例 :

mkfontdir /usr/lib/x11/fonts/misc /usr/lib/x11/fonts/75dpi /usr/lib/x11/fonts/100dpi

(如果檔案目錄中沒有包含字型資料庫,mkfontdir 會忽略它。)

注意:建立一個字型目錄并不會導致server”注意”它,你必需重新啟動server 或重設字型搜尋路徑(search path) (下面描述):

字型搜尋路徑 -- xset

你可以使用任何數目的字型目錄,但如果它們有任何和預設建構不同的地 方,你需明確的告訴server,這些字型目錄的列表稱之為字型搜尋路徑(font search path)或字型路徑(font path) ,你可以設定這個一連串以逗點為區隔 的檔案目錄。

查看你目前的字型路徑:使用命令xset q,如此會印出一大堆資訊,其中有 一行包含著你的字型路徑類似下面:

Font Path : /usr/lib/x11/fonts/misc/,(cond.) /usr/lib/x11/fonts/75dpi/,/usr/lib/x11/fonts/100dpi/

設定不同的字型路徑:使用命令xset fp new-path,例如,如果你有大量 的本地字型且不欲使用多數的標準字型:

xset fp /usr/local/xfonts, /usr/lib/x11/fonts/75dpi

注意:fp之前并無一短橫線(-) ,是fp而非 -fp(-fp 的意義不同,見下述)。

當你想重新設定server對字型路徑的預設值時,使用命令:

xset fp default

告訴server重新讀入字型的目錄,使用命令:

xset fp rehash

它告訴server你可能已經改變了字型目錄的內容而和它必須重讀字型資料 庫,現在新加入的字型可以開始存取了。

在現存的路徑加入新的字型目錄,使用命令:

xset +fp dirlist

加入一列由逗號分隔的目錄列(dirlist) 在現存路徑之左,而

xset fp+ dirlist

則將目錄列加到路徑之右。

將字型目錄自路徑移去:下兩個命令列

xset -fp dirlist xset fp- dirlist

均可將在dirlist 中的目錄自現有路徑移去。

注意:字型路徑由server所掌握,而被所有使用該server的client所應用。

字型路徑的次序是重要的,我們曾經提過字型設定可以對應至一或多個字型, server會自行選擇,但如果對應的字型是在不同的目錄中,則server會選擇在 路徑中較早出現者。

你可以利用這個原則來安排最適合你的顯示器解析度的字型。假設你的顯 示器解析度為100dpi,則將100dpi字型設在75dpi 之前,例如:

xset fp /usr/lib/x11/fonts/100dpi/, /usr/lib/x11/fonts/75dpi/

如果你指定字型為:

* -times-bold-r-*-120-*

雖然字型有75dpi 和100dpi兩種版本,但你會用到100dpi的字型,這正是你所 需要的。

13.5 □例:增加新字型至你的server

現在我們將說明如何增加一個新的字型到你的server的完整□例,為了 真實起見,我們以Sun所提供的字型為例,將它轉換至BDF ,然後裝設(install) 它,字型開始時在:

/usr/lib/fonts/fixedwidthfonts/screen.r.7

欲將Sun 的字型轉換成BDF ,我們需使用contrib 版的軟體程式vtobdf( 其它系統也有類似的工具)。vtobdf有兩個引數,分別是輸入檔檔名和欲建立 之BDF 檔檔名,我們可以事先自contrib 磁帶取得此程式,編譯它,而後加入 我們可執行的目錄中,我們就可以使用它了,我們將或多或少依據X的標準來 命名這個新的字型,我們喜歡把輸出檔的檔尾名用.bdf,但由於vtobdf會在字 型名稱後自動產生.bdf,所以可以省略它,但在稍後之重定名稱則不可省略。

venus% cd/tmp venus% vtobdf /usr/lib/fonts/fixedwidthfonts/screen.r.7 -sun-screen--r-normal---70-75-75-m---

現在重新命名檔案,并將其搬入字型目錄:

venus% mv- -sun-screen--r-normal---70-75-75-m--- /usr/lib/x11/fonts/misc/-sun-screen--r-normal---70-75-75-m---.bdf

最後,執行mkfontdir 和告訴server重新讀入字型目錄以便能使用此字型:

venus% mkfontdir venus% xset fp rehash

檢查一下此字型是否真的可用:

venus% xlsfonts '*-sun_screen*' -sun-screen--r-normal---70-75-75-m---

注意:你的字型可能可以取代其它的預設字型,但這些字型檔案可能因有保護 而無法更改,必須問一下你的系統管理者。

13.6 使用X的色彩

我們已經用過一些色彩,但并未細述它們,原因是X允許你用日常常用的 彩色名,在本節我們描述一些其它指定顏色的方法,解釋命令結構如何工作和 你如何設定一些你自己擁有的色彩名稱。

13.6.1 RGB 色彩設定

換一種指定色彩的方式,你可以用RGB (Red (紅)、Green (綠)、Blue (藍)) 三元素來指定,設定之形式為:

#<r><g><b>

必須合乎以下的原則:

.設定必需以井字號(#) 開頭。

.元素需依照紅、綠、藍的次序依序設定。

.三元素均必須指定。

.每一個元素為十六進位,共占一到四個位數,因此ffff代表色彩的最大 強度,0000代表沒有該色彩,例如:

#0000ffff0000

是最亮的綠色,紅色和藍色一點都沒有,同樣的:

#000000000000 黑色(什麼色彩都沒有) #ffff0000ffff 紫色(全部的紅色加藍色) #ffffffffffff 白色(全部的色彩)

注意#rgb和#rrrgggbbb代表的色彩強度是相同的,但後者較亮一些。

.每一個元素可由一到四個位數代表,但每個元素的位數則相同(例如你 不可以用#rrbbbbgg )。

你可以在設定色彩時直接使用色彩名稱,例如:

xclock -fg #3d7585 -background pink

色彩設定的形式往往和你的顯示器非常相關,通常沒有什麼可攜性。

13.6.2 X色彩資料庫

為了克服#rgb色彩設定不可攜的缺點,而且使系統更易於使用,X使用一 個儲存色彩名稱及其相關之rgb 值的資料庫。

除非你的系統在裝設之後作了明顯地改變,應該會有一個/usr/lib/x11/rgb.txt 的文字檔說明資料庫的內容。這個檔的前數行類似於:

112 219 147 aquamarine (綠玉色、碧綠色) 50 204 153 medium aquamarine (中度碧綠色) 50 204 153 Medium Aquamarine (中度碧綠色) 0 0 0 black (黑色) 0 0 255 blue (藍色) 95 159 159 CADet blue (學生藍)

每一行前三個數字表示rgb 的元素值,但在此數值是10進位的,且只從0 到255 ,255 代表色彩最大強度,第四個部份為色彩名稱,允許名稱中間有空 格。

你可以用程式$TOP/rgb/rgb將此文字檔轉換為內部的形式,(當你的X系 統建立時,它并不會被裝設)。所以,要在你的資料庫中加入一個新的色彩, 先用文字編輯器將色彩輸入rgb.txt 檔,然後:

venus% cd usr/lib/x11 venus% $TOP/rgb/rgb < rgb.txt

事實上,rgb 并不需要每次均重建內部資料庫,只需加入新增(或修改)的項 目即可,所以你可以用標準輸入來輸入色彩:

venus% $TOP/rgb/rgb 255 50 50 mypink …

因為沒有任何標準的工具程式可以查詢內部資料庫的內容,因此上面的作法會 造成rgb.txt 和內部的資料庫不一致,所以還是以修改rgb.txt 的方式為佳。

13.7 結論

本章你已經看到如何命名和儲存字型,你如何找到可用的字型及字型的內 容,在X應用程式中如何使用字型,和如何在你的系統中加入新的字型。

最後一節則描述了X的色彩命名原則,色彩資料庫和如何加入你自己的色 彩。

這里所描述的公用程式只包含core版,contrib 版包含更多的軟體,例如 有一個叫做xcolors 的程式,它可以建立一個視窗,并在其中顯示在你系統上 已命名的色彩。

多種的字型和色彩在你的螢幕上出現是一種沖擊,接下來你會看到更多的 視窗系統的功能,并□試調整使其適合你工作的習慣及品味。

下一章我們將繼續定制這個系統,告訴你如何利用X的位元映像公用程式 來建立、編輯和使用影像。

標簽: Windows系統
主站蜘蛛池模板: 永久网站色视频在线观看免费 | 国产午夜毛片v一区二区三区 | 天堂视频免费看 | 亚洲欧美二区三区久本道 | 欧美日本俄罗斯一级毛片 | 午夜精品尤物福利视频在线 | 国产成人综合日韩精品婷婷九月 | 免费精品久久久久久中文字幕 | 97免费公开视频 | 亚洲免费视频在线观看 | aa大片成人免费网站 | 免费人成黄页在线观看视频国产 | 中文字幕在亚洲第一在线 | 久久欧美精品欧美九久欧美 | 国产日韩精品视频 | 国产精品国三级国产aⅴ | 成人免费视频软件网站 | 牛人盗摄一区二区三区视频 | 一级特级aaa毛片 | 精品一区二区三区在线观看l | 久久久久久一级毛片免费无遮挡 | 国产偷国产偷亚洲高清午夜 | 在线观看日本永久免费视频 | 午夜性爽视频男人的天堂在线 | 久久黄色网址 | 成年女人免费又黄又爽视频 | 香港三级日本三级妇人三级 | 波多野结衣中文视频 | 一级网站片 | 99re伊人| 日本一级做人免费视频 | 亚洲在成人网在线看 | 久久国产一区二区三区 | 国产精品理论片 | 高清精品女厕在线观看 | 国产麻豆福利a v在线播放 | 欧洲成人在线视频 | 男人使劲躁女人视频小v | 久久91精品国产91 | 不卡一区二区在线 | 夜色www国产精品资源站 |