歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
Linux教程網 >> Linux綜合 >> Linux資訊 >> 更多Linux >> 跟我一步一步學漢化

跟我一步一步學漢化

日期:2017/2/27 14:29:44   编辑:更多Linux
  如何使Linux桌面正確顯示和輸入中文, 一直是令Linux初學者頭痛的事情. 目前有很多漢化的文章, 但大多只講步驟而不談道理, 讓初學者雲裡來霧裡去. 這篇文章將從X的字體原理入手,幫助大家理解X的字體機制,在漢化中學習. 首先, 我們要理解X的字體引擎. X中支持Truetype字體(一種可放縮字體) 的主要有四種引擎. freetype, xtt, xfs和Xft. 其中freetype 和 xtt 是 X 的內部模塊. 使用的都是freetype1渲染引擎. Xfs 和xft 是外部服務程序. xfs 是系統級的字體服務程序, 也可以作為X的內部模塊, 使用的是X 內部的freetype2. Xft 和其他類庫一樣, 只有被調用的時候才被加載. 其中只有xft才有antialias 支持. 這裡有必要講講freetype. Freetype 是開源字體渲染引擎, 並不只為X設計. 它的功能就是讀取Truetype字體信息, 如大小, 分辨率, 編碼等, 然後渲染成所需的位圖數據輸出. Freetype 現在的版本是 2.x, 與1.0 相比, 最大的差別就是加入了抗鋸齒功能. 有這麼多引擎,到底要用哪個好? 其實我們目前為止, 支持中文最好的還是xtt. 因為小字體的時候, 用函數描述法算出來的中文字體效果不能讓人滿意, 所以很多中文字體公司就在Truetype字體裡嵌入了位圖字體. 這些位圖字體需要用特殊的方式讀出來, 所有的引擎中就只有xtt能做到這一點. 我們下一步就是將字體添加到X中, 使xtt可以正確讀取, 這樣就可以了. 首先, 由於要配置Linux系統文件, 我們需要用root帳號進入, 相當於windows下的administrator. X的配置文件是/etc/XF86Config-4 (比較新的顯卡) 或者是 XF86Config (比較老的顯卡). 用你喜歡的文本編輯器打開, 如 kedit或gedit. 打開後我們發現配置文件分成很多個Section, 我們首先要配置的就是 Section "Files" , 這個部分描述了X所要調用的文件信息. 要加入一個字體目錄, 只需在裡面插入一行 FontPath "目錄名" 就可以了, 如: Section "Files" # Multiple FontPath entries are allowed (they are concatenated together) # By default, Mandrake 6.0 and later now use a font server independent of # the X server to render fonts. FontPath "unix/:-1" FontPath "/truetype" # 插入一個字體目錄 EndSection 然後, 我們讓X加載xtt字體引擎: 找到Section "Module", 像這樣修改: Section "Module" # Load "dbe" # Double-Buffering Extension # Load "v4l" # Video for Linux Load "extmod" Load "glx # Load "type1" # type1 模組是渲染type1字體的, 和xtt沖突, 必需屏蔽 # Load "freetype" # freetype 模組是渲染Truetype字體的, 和xtt沖突, 必需屏蔽 Load "xtt" # 加入xtt模組引擎 EndSection 好了, 現在xtt會自動去 /truetype 裡找字體. 現在開始拷貝字體到 /truetype裡去, 先要在根目錄建一個truetype目錄, 打 mkdir /truetype 就可以了. 從windows分區拷貝要先mount, 就是作一個聯接, 將Linux目錄連到windows分區. 在根目錄下建一個"c"目錄. mkdir /c 然後 mount /dev/hda1 /c 這樣就將windows下的C盤 聯接到我們Linux下的/c目錄了, 進入/c, 應該可以看到你C盤的文件. 然後, 進入/c 中的字體文件目錄, 一般在window下面的Fonts裡, 注意目錄名大小寫在Linux下面是有區別的. 拷貝字體文件到 /truetype裡, 打 cp simsun.ttc /truetype/simsun.ttf cp tahoma* /truetype/ 這樣就將我們所需要的字體文件拷貝到truetype 裡了. 下一步我們要設置字體文件, Linux中X的字體設置很煩鎖, 不像windows一拷貝就完事, 初級階段嘛, 大家還是忍忍吧, 呵呵. 1. 建立字體信息文件fonts.dir 如下 24 simsun.ttf -misc-SimSun-medium-r-normal--0-0-0-0-c-0-gb2312.1980-0 ai=0.3:simsun.ttf -misc-SimSun-medium-i-normal--0-0-0-0-c-0-gb2312.1980-0


ds=y:simsun.ttf -misc-SimSun-bold-r-normal--0-0-0-0-c-0-gb2312.1980-0 ds=y:ai=0.3:simsun.ttf -misc-SimSun-bold-i-normal--0-0-0-0-c-0-gb2312.1980-0 tahoma.ttf -misc-SimSun-medium-r-normal--0-0-0-0-p-0-iso8859-1 ai=0.3:tahoma.ttf -misc-SimSun-medium-i-normal--0-0-0-0-p-0-iso8859-1 tahomabd.ttf -misc-SimSun-bold-r-normal--0-0-0-0-p-0-iso8859-1 ai=0.3:tahomabd.ttf -misc-SimSun-bold-i-normal--0-0-0-0-p-0-iso8859-1 simsun.ttf -misc-SimSun-medium-r-normal--0-0-0-0-p-0-gbk-0 ai=0.3:simsun.ttf -misc-SimSun-medium-i-normal--0-0-0-0-p-0-gbk-0 ds=y:simsun.ttf -misc-SimSun-bold-r-normal--0-0-0-0-p-0-gbk-0 ds=y:ai=0.3:simsun.ttf -misc-SimSun-bold-i-normal--0-0-0-0-p-0-gbk-0 simsun.ttf -misc-SimSun-medium-r-normal--0-0-0-0-p-0-fcd8859-15 ai=0.3:simsun.ttf -misc-SimSun-medium-i-normal--0-0-0-0-p-0-fcd8859-15 ds=y:simsun.ttf -misc-SimSun-bold-r-normal--0-0-0-0-p-0-fcd8859-15 ds=y:ai=0.3:simsun.ttf -misc-SimSun-bold-i-normal--0-0-0-0-p-0-fcd8859-15 simsun.ttf -misc-SimSun-medium-r-normal--0-0-0-0-p-0-iso8859-15 ai=0.3:simsun.ttf -misc-SimSun-medium-i-normal--0-0-0-0-p-0-iso8859-15 ds=y:simsun.ttf -misc-SimSun-bold-r-normal--0-0-0-0-p-0-iso8859-15 ds=y:ai=0.3:simsun.ttf -misc-SimSun-bold-i-normal--0-0-0-0-p-0-iso8859-15 simsun.ttf -misc-SimSun-medium-r-normal--0-0-0-0-c-0-iso10646-1 ai=0.3:simsun.ttf -misc-SimSun-medium-i-normal--0-0-0-0-c-0-iso10646-1 ds=y:simsun.ttf -misc-SimSun-bold-r-normal--0-0-0-0-c-0-iso10646-1 ds=y:ai=0.3:simsun.ttf -misc-SimSun-bold-i-normal--0-0-0-0-c-0-iso10646-1 第一行的24表示下面一共有24行設置 (好像有點傻) , 其他的格式都差不多: ds=y:ai=0.3:simsun.ttf -misc-SimSun-bold-i-normal--0-0-0-0-p-0-gbk-0 說明: simsun.ttf: 字體文件名 ds=[yn]: ds是xtt的功能, 設成"y" 表示粗體, "n" 表示正常. ai=Real_number: 表示傾斜度. 不設表示自動. misc : 表示字體的類別 SimSun : 是字體的名稱 bold : bold 表示粗體, 其他如medium表示正常, i : 表示斜體, r 是正常 p: 可變長度, c 是正方形, m是固定寬度 gbk: 字體編碼 這裡大家發現我們還使用了tahoma英文字體, 這樣替換, 系統讀取Simsun英文字體的時候, 就會用pp的tahoma替代. 好了, 現在存盤. 然後拷貝一個到fonts.scale cp fonts.dir fonts.scale 然後拷貝編碼文件 encodings.dir 到目錄裡來. cp /usr/X11R6/lib/X11/fonts/encodings/encodings.dir /truetype 好, 重起, 把KDE, mozilla, galeon 等等所有默認字體都改成simsun, 哈哈, 是不是比從前漂亮了很多? 大家還是把這幾個配置文件備份起來, 以後安裝的時候就不用再設置了. 這裡順帶說一下其他幾個字體引擎的配置: xfs : 配置文件是 /etc/X11/fs/config xft : 配置文件是 /etc/X11/Xftconfig xft 的配置相對來說比較容易, 只要將字體拷到配置文件中dir 指定的任何一個目錄就可以了. 如果要小字體不顯示AA, 可以在末尾加入: match any size > 8 any size < 17 edit antialias = false; match any pixelsize > 8 any pixelsize < 17 edit antialias = false; 這樣 8~17號的字體就不會用抗鋸齒功能了.



Copyright © Linux教程網 All Rights Reserved