看板: 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 "楷体_GB2312"="C:\\CHINASEA\\cswkai.tte"
  7

  跟佛光山经过精简後的 reg档相比,多出三行,但少了下面这一行:

  "SystemDefaultEUDCFont"="C:\\WINDOWS\\EUDC.TTE"

  中国海这个 reg档的作用,它不管使用者原先在"SystemDefaultEUDCFont"
  的设定为何,都予以保留,但加入了4、5、6三行,使得当系统欲显示"细
  明体"、"新细明体"、"楷体_GB2312"时,会采用它的中国海造字。

  假设我先安装好了佛光山造字,然後再安装中国海造字,那麽我这部份的
  系统登录会变成如下:

  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 "楷体_GB2312"="C:\\CHINASEA\\cswkai.tte"
  8

  这会造成什麽结果呢?系统同时采用了四个造字档,当遇到"细明体"造字
  跟"新细明体"造字时即使用 cswsmin.tte,当遇到"楷体_GB2312"造字时即使用
  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 "楷体_GB2312"=""
  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 "楷体_GB2312"=""
  8

庚、一个比较可行的做法

  如果觉得以上做法有所困难或略嫌麻烦,而我们也排除中国海字集那种轻
  松做法,倒是可以试试以下这个设计流程:

  一、先执行以下的1st.reg:

    1 REGEDIT4
    2
    3 [HKEY_CURRENT_USER\EUDC\950]
    4 "SystemDefaultEUDCFont"="C:\\WINDOWS\\EUDC.TTE"
    5 "细明体"=""
    6 "新细明体"=""
    7 "楷体_GB2312"=""
    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