看板: BudaTech ◎ 佛典電子化討論 板主: HeavenChow |
閱讀文章: 第 725/2032 篇 | 上篇 | 下篇 | 回覆 | 轉寄 | 轉貼 | m H d | 返回 |
發信人: maha <maha@tpts1.seed.net.tw>, 信區: BudaTech 標 題: 關於中文造字檔在WIN95上的安裝 發信站: 國立中山大學網路組 Mailing List (Mon Jul 7 12:00:10 1997) 轉信站: Lion!ccnews.nsysu!news.nsysu!buda-tech@sccid.nsysu 來 源: sccid.nsysu.edu.tw 甲、前言 近來把玩了兩片製作極佳的中文電子佛典產品,一片是佛光山所出品的《 佛光大辭典》,一片是資功會所出品的《金剛經專集》,只是兩者都給中 文造字檔的安裝程序打敗了。「運氣好」的人不會感覺到有何失敗,但我 相信不少人的電腦狀況不會這麼幸運,尤其是一些常玩電腦的人。如果嘗 到失敗了,可能是看不到造字(佛光大辭典),或者無法進行安裝(金剛 經專集)。 對於一個不是專業的程式設計師,我以幾近「土法煉鋼」的方式,提出這 個問題的可能解決方式,希望對專精程式設計者能有一些參考價值。 我所用的方法,主要是在 reg檔上面下功夫。WIN95 上面的 reg,是個純 文字檔,可以直接執行,但要非常小心,因為它會去修改系統的登錄資料 (存在於system.dat、user.dat的設定值)。 乙、佛光大辭典 以下是《佛光大辭典》的eudc.reg(不包含每行前面的3個bytes,這些編 號是方便討論用的): 1 REGEDIT4 2 3 [HKEY_CURRENT_USER\EUDC] 4 5 [HKEY_CURRENT_USER\EUDC\950] 6 "SystemDefaultEUDCFont"="C:\\WINDOWS\\EUDC.TTE" 7 8 [HKEY_USERS\.Default\EUDC] 9 10 [HKEY_USERS\.Default\EUDC\950] 11 "SystemDefaultEUDCFont"="C:\\WINDOWS\\EUDC.TTE" 12 這個 reg檔,其實只要保留1、2、5、6、12五行就可以了,或是保留1、2 、10、11、12五行也可以,其它的都可以刪掉。因為3、8兩行在這裡沒作 用;而只要5、6行產生作用,系統會馬上自動更新10、11(反之亦然)。 所以5、6或10、11這兩組保留一組就可以了。也就是說,可以精簡為如下: 1 REGEDIT4 2 3 [HKEY_CURRENT_USER\EUDC\950] 4 "SystemDefaultEUDCFont"="C:\\WINDOWS\\EUDC.TTE" 5 以上這五行的作用,1、2、5是格式上必須如此。3、4是去設定系統所使 用的中文造字檔,這裡是想把造字檔設定為"C:\\WINDOWS\\EUDC.TTE"。 位於WINDOWS目錄下的 EUDC.TTE,是系統內定的造字檔名稱。當我們剛安 裝好 WIN95,在還沒有安裝任何中文造字檔,以及還沒去造字程式執行 [檔案]/[關聯]/[不指定對應字體]/[確定]前,系統登錄資訊是這樣的: [HKEY_CURRENT_USER\EUDC\950] "SystemDefaultEUDCFont"="" 也就是系統尚未指定任何造字檔。如果使用者的 WIN95系統屬於這一類, 那麼佛光大辭典的造字檔可以順利安裝,而且安裝後馬上可以看到造字。 但是,當我們不符合以上條件,已經安裝過其它中文造字檔,或是已經在 造字程式上執行過所說的步驟,那麼在要安裝佛光大辭典前,這時系統登 錄資訊可能是這樣: [HKEY_CURRENT_USER\EUDC\950] "SystemDefaultEUDCFont"="C:\\WINDOWS\\EUDC.TTE" 系統已經有所指定。佛光大辭典在安裝時,試圖將原造字檔易名,然後再 把自己的EUDC.TTE造字檔覆蓋上去。當要易名時卻遭系統拒絕,因為這個 檔案正在使用中,根本無法被易名或搬移或刪除,可是安裝程式並沒有報 告出這項訊息,而繼續它下面該完成的程序。但是,當您以後再以這片光 碟的 AUTORUN功能執行時,它每次都會問使用者要不要安裝造字檔(如果 已經安裝好,是不會這樣的)。若是把整片光碟內容複製到硬碟,執行 fkdict.exe卻不會有詢問安裝造字檔畫面,大概是以 AUTORUN方式會進行 一些必要的檢查吧! 丙、金剛經專集 資功會這片光碟是在WIN3.1環境上發展的,在光碟上找不到相關的 reg檔 。但是,如前所述,若使用者的電腦環境夠「幸運」,它會透過其它的方 式去修改系統登錄檔,在一次重開機後,即可順利把造字檔安裝成功。 那麼,如果「不幸」呢?它會出現一個警告視窗──「EUDC.TTE檔案無法 安裝」,然後讓使用者選擇[異常終止]或[重試]或[略過];可是任你選擇 哪一個,結果都是會再告訴你──「原造字檔使用中,請重新開機後再行 安裝」。待你重新開機,問題還是一樣卡在那裡,所以你根本無法玩這片 光碟。 丁、中國海字集 剛好我手上有一片輕鬆輸入法 for windows95光碟,當中有個中國海字集 ,也是個中文造字檔。這片光碟裡面有個Chinatte.reg,當中相關的段落 有以下七行: 1 REGEDIT4 2 3 [HKEY_CURRENT_USER\EUDC\950] 4 "細明體"="C:\\CHINASEA\\cswsmin.tte" 5 "新細明體"="C:\\CHINASEA\\cswsmin.tte" 6 "標楷體"="C:\\CHINASEA\\cswkai.tte" 7 跟佛光山經過精簡後的 reg檔相比,多出三行,但少了下面這一行: "SystemDefaultEUDCFont"="C:\\WINDOWS\\EUDC.TTE" 中國海這個 reg檔的作用,它不管使用者原先在"SystemDefaultEUDCFont" 的設定為何,都予以保留,但加入了4、5、6三行,使得當系統欲顯示"細 明體"、"新細明體"、"標楷體"時,會採用它的中國海造字。 假設我先安裝好了佛光山造字,然後再安裝中國海造字,那麼我這部份的 系統登錄會變成如下: 1 REGEDIT4 2 3 [HKEY_CURRENT_USER\EUDC\950] 4 "SystemDefaultEUDCFont"="C:\\WINDOWS\\EUDC.TTE" 5 "細明體"="C:\\CHINASEA\\cswsmin.tte" 6 "新細明體"="C:\\CHINASEA\\cswsmin.tte" 7 "標楷體"="C:\\CHINASEA\\cswkai.tte" 8 這會造成什麼結果呢?系統同時採用了四個造字檔,當遇到"細明體"造字 跟"新細明體"造字時即使用 cswsmin.tte,當遇到"標楷體"造字時即使用 cswkai.tte,當遇到不是以上三種字體時即使用EUDC.TTE(原佛光山造字 )。這種結果對佛光造字是不利的,因為一般使用者在執行《佛光大辭典 》時,會運用到字體大概都逃脫不了以上三種系統字型,所以使用者會發 覺大辭典應有的造字都被中國海造字取代了。 中國海字集這個方法值得學習,它不會有eudc.tte檔案正在使用中而動彈 不得的情況。但是它有一個很大的缺點,當使用者不是使用以上三種字體 時,比如一般的排版作業,他所看到的造字可能就有問題了。 戊、另一種安裝法 網友ChrisTorng曾提供一個cswsmin.reg供我參考: 1 REGEDIT4 2 3 [HKEY_CURRENT_USER\EUDC\950] 4 "SystemDefaultEUDCFont"="c:\\winfont\\cswsmin.TTE" 5 針對系統內定造字檔,如果能像這樣由使用者任意指定,那我們的問題就 簡單多了。可是,經我的實驗,做了以上設定後,只要使用者再去操作造 字程式後,馬上就自動改回成: 1 REGEDIT4 2 3 [HKEY_CURRENT_USER\EUDC\950] 4 "SystemDefaultEUDCFont"="C:\\WINDOWS\\EUDC.TTE" 5 這樣,原來所設定的造字檔就用不到了。 己、一些可能的做法 綜合以上討論,可以了解,一個比較徹底的安裝方法是:當欲對EUDC.TTE 進行汰舊換新時,安裝程式要有辦法解除舊EUDC.TTE正為系統使用中而不 可異動的限制。然後執行底下這樣的一個 reg檔: 1 REGEDIT4 2 3 [HKEY_CURRENT_USER\EUDC\950] 4 "SystemDefaultEUDCFont"="C:\\WINDOWS\\EUDC.TTE" 5 "細明體"="" 6 "新細明體"="" 7 "標楷體"="" 8 第 5、6、7行是為了解除類似上述中國海字集的設定,以免有裝等於沒裝。 這樣設定,如果是在一次開機內設定完成,而使用者的系統原有內定造字 檔,那麼新的EUDC.TTE無法馬上發生作用,也就是使用者在螢幕上看到的 是舊造字檔。這可能是舊造字檔在本次開機時已被系統所載入,使用者必 須等下一次重開機後才能達到預期目標。 如果在程式設計上無法控制系統對使用中檔案的保護,也就是說無法在一 次開機中解決EUDC.TTE汰舊換新的問題,那麼倒是可以分兩次來做。也就 是先執行類似以下的 reg: 1 REGEDIT4 2 3 [HKEY_CURRENT_USER\EUDC\950] 4 "SystemDefaultEUDCFont"="c:\\winfont\\cswsmin.TTE" 5 然後在重新開機後,這時候位於 WINDOWS目錄下的原造字檔EUDC.TTE就可 以順利異動了,在處理玩舊檔備份及新檔覆蓋後,即可以執行以下 reg: 1 REGEDIT4 2 3 [HKEY_CURRENT_USER\EUDC\950] 4 "SystemDefaultEUDCFont"="C:\\WINDOWS\\EUDC.TTE" 5 "細明體"="" 6 "新細明體"="" 7 "標楷體"="" 8 庚、一個比較可行的做法 如果覺得以上做法有所困難或略嫌麻煩,而我們也排除中國海字集那種輕 鬆做法,倒是可以試試以下這個設計流程: 一、先執行以下的1st.reg: 1 REGEDIT4 2 3 [HKEY_CURRENT_USER\EUDC\950] 4 "SystemDefaultEUDCFont"="C:\\WINDOWS\\EUDC.TTE" 5 "細明體"="" 6 "新細明體"="" 7 "標楷體"="" 8 針對原先系統並沒有指定造字檔的使用者而言,這樣就有效了,且系 統馬上就可以使用這個新造字檔。 二、如果上述步驟執行時產生錯誤,則安裝程式自動改成執行類似以下的 2nd.reg: 1 REGEDIT4 2 3 [HKEY_CURRENT_USER\EUDC\950] 4 "SystemDefaultEUDCFont"="c:\\winfont\\cswsmin.TTE" 5 如果因為系統對使用者造字檔已先有所指定,那麼 1st.reg執行時會 產生錯誤。這時候我們改採這個 2nd.reg,目的在於暫時轉移系統對 造字檔的設定,以便在下次重開機時再執行 1st.reg。 當執行完 2nd.reg後,安裝程式應出現一個警告視窗,請使用者關機 後再重新安裝一次。當使用者聽從指示,重新關機再安裝,這時候 1st.reg 就可以執行無誤了。 辛、結語 安裝各種不同的中文造字檔,是個不得已的手段。站在中文電子佛典的立 場,很希望有一共同造字檔可以供大家採用。不然,像目前這樣,當我把 《佛光大辭典》上面的資訊拷貝下來,這份資訊可以跟別人交換流通嗎? 如果對方是採用《金剛經專集》或是其它的造字檔,這份資訊是相當不可 靠的;因為同樣的造字內碼,卻極可能對應出相異的造字字形。 本文主要是提供給程式設計者參考,一般使用者若有類似造字檔無法安裝 的困擾,底下這個方法應該也可以得到某種程度的解決:「請在 WIN95關 機時選擇[重新啟動在MS-DOS模式](不是一般在 WIN95裡面的那個MS-DOS 視窗或全螢幕模式),然後備份舊造字檔、複製新造字檔,再執行EXIT指 令回到 WIN95即可。」 至於造字檔的各個輸入法要如何安裝,請參考<關於中文造字檔輸入法在 WIN95 上的安裝與解除>一文。 maha 7/7/97 |
閱讀文章: 第 725/2032 篇 | 上篇 | 下篇 | 回覆 | 轉寄 | 轉貼 | m H d | 返回 |
卍 台大獅子吼佛學專站 http://buddhaspace.org |