This is the file Xfonts.HOWTO of the xcin package ver. 2.3.01
----------------------------------------------------------------

中文字型是 xcin 很重要的一個部分，在過去的版本中， xcin 使用了
轉換程式將 DOS 下的倚天中文字型轉換成 .pcf 的 X-window  字型以
供 xcin 使用，現在由於網路的發達與熱心人士的幫忙，我們已能自網
路上下載中文 .pcf 字型來使用了。本文的目的就是要詳細討論中文字
型的安裝方式，並介紹 et2bdf 這個倚天字型轉換程式，希望使用者能
在沒有自動安裝程式的協助下，也能快速地完成安裝工作。


<<如何產生 .pcf 字型檔? >>

如果您喜歡自網路上下載這些字型檔，則您便可略過這一節了 :-)))
目前 X11R6 的 X-win 系統下所使用的字型，主要是以 .pcf 的格式為
主。大部分的 X-win 系統都會附一個 bdftopcf 的程式，它可以將
.bdf 字型格式轉換成 .pcf 格式。什麼是 .bdf 字型? 就是用 ASCII
碼將每個字「畫」出來的格式，點型的 .bdf 檔長得像這樣:

STARTCHAR Ca141
ENCODING 41281
SWIDTH 666 0
DWIDTH 16 0
BBX 16 15 0 -2
BITMAP
0000
0000
0000
0000
0000
0000
0000
0c00
1e00
1e00
0c00
0400
0800
0000
0000
ENDCHAR

這就是一個字。各位可以看出來，如此的儲存字型方式很佔空間，而且不
易使用，但卻有個好處，就是我們人可以處理，我們可以用簡單的文字編
輯器來對它動手腳，同時這樣的格式也是可攜的，因為在大部分的 X  系
統上，都會有一個程式可以將 .bdf 字型轉成適合該系統下的字型格式，
像是之前提到過的 bdftopcf 程式就是一例。使用方式可能因系統不同而
有差異，詳細用法可能要讀者自行參考 manual page。以下以 Linux  為
例:

	bdftopcf -o taipei15.pcf taipei15.bdf
    或
	cat taipei15.bdf | bdftopcf -o taipei15.pcf

上面這兩個命令都是將 taipei15.bdf 轉成 taipei15.pcf 。注意到
bdftopcf 也可以接受 stdin 的輸入。

再舉一個例子，在我們研究室中有一部老舊的 IBM-AIX 的機器，其 X 系
統為 X11R5 ，奇怪的是它用的是 .snf 字型，並非一般的 .pcf  字型，
所幸該系統也提供了 bdftosnf 轉換程式，用法與上述差不多，可以讓我
們產生 .snf 字型，供 X-win 使用。


如果，您想要使用倚天字型的話，第一步您必須要將倚天字型轉成 .bdf
字型的格式，然後再將 .bdf 轉成 .pcf 。在 xcin-2.1d 套件中，提供
了一個 et2bdf 程式，顧名思義，它就是可以將倚天字型轉成 .bdf 字
型的程式。若直接執行 et2bdf 而不加任何參數，則 et2bdf 會列出一
張簡表如下:

et2bdf of xcin ver 0.2

Usage: et2bdf [-d] <ETPATH> <FONTSTL>
  -d        == Debug option (keep the tmpfile).
  <ETPATH>  == Path of Eten system.
  <FONTSTL> == Style of Eten font.

Curent supported <FONTSTL>:
  et15 et24m et24k et24b et24r et24s et24l vga8x15 vga12x24

由上可知 et2bdf 除了可以轉換各種倚天中文字型之外，它還可以轉換
兩種 vga 英文字型。事實上， et2bdf 是由 xcin-2.1b 中原有的字型
轉換程式移植過來的，在以往很多人都抱怨說 xcin-2.1b 在轉換字型時
失敗，原因是字數不合，而現在 et2bdf 已解決了這個問題，使用該程
式，您應該可以正確無誤地產生所需的 .bdf 字型。

et2bdf 的輸出為 stdout ，所以，假設您的倚天中文路徑為 /msdos/et3，
則您可以將 et24m 做如下的轉換:

	et2bdf /msdos/et3 et24m | bdftopcf -o et24m.pcf

於是，您便可很容易地得到所需的 .pcf 字型了。



<<安裝 .pcf 字型>>

如果，您確定您的 X-win 系統可以直接使用壓縮過的 .pcf 字型檔，那
麼您可以先將這些字型檔壓縮起來，以節省空間。在大部分的系統下，是
支援以 compress 程式壓縮格式的字型檔的，但可能還不支援以 gzip 壓
縮的格式，所以請不要誤用了。要注意的是，在某些系統下，其 compress
程式仍舊使用舊式的 UNIX 檔案命名規則: 檔名上限只有 14 個字，這時
，如果檔名再加上 .Z 兩個字如果超過 14 個字， compress 可能就無法
工作了，這時候，您可以使用類似下面的命令來克服這個困難:

	cat taipei24m.pcf | compress > taipei24m.pcf.Z

然後，您必需決定要將這些 .pcf 字型裝在什麼地方，一般而言都是裝在
X-win 的標準字型目錄下 (如果您是該系統的 root 的話) 。以 Linux 為
例，其 X-win 的字型目錄為:

	/usr/X11/lib/fonts

一般而言，如果是中文字型的話，我們會在該目錄下造一個 chinese 的目
錄，將字型丟進去，若是倚天的 vga 字型，我們會將它們放在 misc 的子
目錄中。請注意，如果您在某字型目錄中增加或刪除字型檔，您都必須在該
字型目錄下跑這個程式:

	mkfontdir

這個式會在該目錄下產生一個 fonts.dir 的檔，它包函了該目錄下所有字
型的資料。以我的系統為例，我在 /usr/X11/lib/fonts/chinese 下有:

et15.pcf.Z    taipei15.pcf.Z   taipeik20.pcf.Z
et24m.pcf.Z   taipei16.pcf.Z   taipeik24.pcf.Z 

則我的 fonts.dir 的內容為:

6
taipeik20.pcf.Z taipeik20
taipeik24.pcf.Z taipeik24
et24m.pcf.Z et24m
et15.pcf.Z et15
taipei16.pcf.Z taipei16
taipei15.pcf.Z -big5-cclib-medium-r-normal-fs-15-140-75-75-c-160-big5-0

請注意，不要自行編輯 fonts.dir 的內容，一切請以 mkfontdir 所產生的
為準。該檔案的第一行那個數字，所指的就是本目錄中共有幾個字型檔。這
後的數行，每一行描述了一個字型，皆為兩欄的格式。第一欄為該字型是屬
於那個檔名，第二檔為該字型的「學名」。如 taipei20.pcf.Z 就是字型檔
名，而 taipeik20 則為該字型的「學名」。注意到字型的學名可以很長，
就像上例中最後一行 -big5-cclib-medium ...... 那樣，這樣長的學名其
實是用來完整描述該字型的所有屬性，像是編碼方式、字型點數、大小 ...
等換句話說，像 taipeik20, et24m 等那樣的學名，是沒有完整描述的學名
，若 X-win 要使用這些描述不完整的學名的字型時，它會試圖使用一些預
設值做最好的猜測。

有一點非常重要，就是 X-win 在使用字型時，都是用它的學名來認字型的。
這對於學名很長的字型使用上就非常不方便，因此，我們可以替這些字型取
個「別名」來方便使用，這時，我們便要在該目錄下編輯一個 fonts.alias 
的檔案:

taipei15 -big5-cclib-medium-r-normal-fs-15-140-75-75-c-160-big5-0
-big5-cclib-medium-r-normal--16-160-75-75-c-160-big5-0 taipei16
-big5-kaicclib-medium-r-normal--20-200-75-75-c-200-big5-0 taipeik20
-big5-kaicclib-medium-r-normal--24-240-75-75-c-240-big5-0 taipeik24
-big5-ming-medium-r-normal--15-150-72-72-c-150-big5-0 et15
-big5-ming-medium-r-normal--24-240-72-72-c-240-big5-0 et24m

先看第一行，一樣也是兩欄，第二欄就是 taipei15.pcf.Z 這字型檔的「學
名」，而第一欄就是它的別名了。有了這樣一行，以後當我們在指定要使用
這個字型時，我們只要叫它 taipei15 這個名字， X-win 就會認得了。

很短的學名雖然不用 fonts.alias 也能容易使用，但有時也會造成困擾，
各位在使用 netscape 就會發現: 奇怪，我明明就已安裝了 et15.pcf 了
，而且 xcin & crxvt 也能使用這個字型了，為什麼我的 netscape 就是
無法使用呢? 答案就在於，該字型的學名沒有完整的描述。雖然 X-win 在
對於沒有完整描述的字型學名會做適當的猜測，但這對於一些要求嚴格的
X-win 應用程式是無法接受的，這時候，我們就必須負與該字型一個完整
的描述名，怎麼做? 還是用 fonts.alias，這就是上例中之後的那幾行了。
這一回與第一行倒過來，學名很短，但別名很長，因為它包含了完整的描
述，而且是我們自行做了適當的猜測後，用手放進去的。於是，使用
netscape 時，我們就可以多出好幾種字型可以選擇了。


當些都完成後，最後別忘了讓您的 X-win 系統知道多了一個 chinese 目
錄的字型可用，方法有二: 

假如您迫不及待，想要在不重新啟動 X-win 時就試試看這些新加入的字
型的話，您可以用

	xset fp+ <新加入的字型目錄名>

如果以上一切正確無誤，則 X-win 就認得您新加入的這些字型了。這個
指令在任何 X-win 系統下都是通用的。

然而，如果您一旦重新啟動了 X-win ，則 X-win 就忘了這個新的目錄的
存在了，除非您重新執行上述的命令。因此，最好的方法就是將該字型寫
入設定檔中，這就與您所使用的 X-win 系統有關了，以 XFree86-3.X 為
例，其設定檔為 /etc/XF86Config ，您應將您的字型目錄名加入底下這
個 section 中:

Section "Files"
   FontPath   "/usr/X11R6/lib/X11/fonts/misc/"
   FontPath   "/usr/X11R6/lib/X11/fonts/Type1/"
   ............................................
   FontPath   "新加入的字型目錄名"
EndSection

然後重新啟動 X-win 使該設定檔生效即可。


最後，我稍微提一下最近網路上看到的一個問題: 有人曾經下載 .pcf 檔
下來，然後正確無誤地照這一節的步驟安裝好了字型，卻無論如何也無法
使用，其最可能的原因可能是該 .pcf 檔的格式有問題，這時，您最好是
找到該字型的原始 .bdf 檔案，然後用 bdftopcf 程式重新轉過一次。原
始的 .bdf 檔可以在這個地方找到:

ftp://nctuccca.edu.tw/Chinese/ifcss/software/fonts/big5/bdf




==================================================================
附  錄:  倚天字型與所需檔案對照表  (轉換程式: fonts/source/et2bdf)
==================================================================

倚天字型              所需倚天檔案
-----------------------------------------------------------------------
倚天 15 中文字型      spcfont.15, stdfont.15, spcfsupp.15, usrfont.15m

倚天 24 明體字型      spcfont.24, stdfont.24, spcfsupp.24, usrfont.24m

倚天 24 楷書字型      spcfont.24, stdfont.24k, spcfsupp.24, usrfont.24k

倚天 24 黑體字型      spcfont.24, stdfont.24b, spcfsupp.24, usrfont.24b

倚天 24 圓體字型      spcfont.24, stdfont.24r, spcfsupp.24, usrfont.24r

倚天 24 行書字型      spcfont.24, stdfont.24s, spcfsupp.24, usrfont.24s

倚天 24 隸書字型      spcfont.24, stdfont.24l, spcfsupp.24, usrfont.24l

倚天 vga8x15 英文字   ascfont.15

倚天 vga12x24 英文字  ascfont.24




================
End of document.
================

Author:
-------

謝東翰  thhsieh@twcpro.phys.ntu.edu.tw
