.ld .ffTimes .df ps P% .fs-2 OST% .fs+2 S% .fs-2 CRIPT .fs+2 .ed .df tex T^LE^LX% .ed .df lrarrow .sb ^#253 .rf .ed % end define .df header .ni ^u .fs+2 亲爱 .fs-2 的^u .fs+2 ^u用户^u .fs-2 : .ed .fs20 .cs0.6 .ce .bf 引言 .cs1 .fs12 .rt .cn2 .pf .rh 引言 .lh Ch-series Foreword .ex header 你们好!本人是匹兹堡大学机械工程系的博士毕业生, 叫王景白。 我虽专修的是机械,但 一贯酷爱计算机软件开发,曾编辑过许多实用软件。在匹兹堡大学的 VAX/VMS 主机网络上 运行着由我编写的 Scribe 科技编辑库(包括两册说明书);在世界各地的 许多主机上能找到我为 .ex tex /LA% .ex tex 撰写的使用说明及 P% .fs-2 OST% .fs+2 S% .fs-2 CRIPT .fs+2 打印驱动器(由 UNIX .ex tex 发行处发行)。顺便指出: Scribe 和 .ex tex /LA% .ex tex 皆为目前功能最强的电脑排版 器 (text formatter),其排版功能是现 存的任何文字处理器 (word processors),如 WordPerfect, MiscroSoft Word 和 WordStar 所不能比拟的。一般来说书刊、科技文章和报告的编辑者 所用的是 Scribe 和 LA% .ex tex 类的电脑排版器 (目前各大学和 科技单位大都用 LA% .ex tex ,因其功能之强而且是免费供用的 )。 然而,作为一个炎黄子孙 ,我觉得也有义务来 关心一下中文的 电脑文字处理问题。当然中文文字 处理的关键环节也无非是输入与 输出。 但是因为中文 不是拼音文字,输入方面就有许多 拼音文字所没有的 技术问题;在输出方面因为中文 每个字是一个独立单元(而非字母), 技术上也有许多比英文文字处理 更复杂的情况。经长期的酝酿(至 少有三年吧),我终于在最近理 出了一套方案并编成了软件来 较圆满地解决这两个问题。 下面我就对市面上现存 的软件的特点 及其设计思想与我本人的构想和软件 设计作一些简要的对比说明。 .ce .fs+2 中文输入 .fs-2 .tx 因为中文有几千个不同的常用字, 我们显然不可能用标准国际键盘 象输入英文那样地来打中文; 另 一方面我们也不可能设计一个有几千 个键的键盘来联在电脑上。这个 难题吸引了中国大陆、台湾、香港 、新加坡以及海外成千上万个 学术单位、盈利公司和 众多 学者 来攻关。 据统计现今共有 500 多种中文输入法如拼音输入法、 五笔型输入法、五笔划输入法、天马 、飞马、国标输入法、苍杰码输入 法、词组输入法、电报 号码输入法、区位输入法,等等。 因此市面上不乏有各种各样的中文 软件,典型的有: .sv .in0 .pm30pt .in-15pt ^#267^\CCDOS (中文 IBM 兼容个人微机 的操作系统),不同单位出的 CCDOS 往往配有不同的输入方法,但拼音 输入法似乎是个个皆备的; ^#267^\CCDOS 用的 WordStar 是一中文文字 编辑器,能做些简单排版,但必 须在 CCDOS 状态下工作; ^#267^\^u天马^u是一种特殊的 DOS 中文 操作系统, 它以 加调拼音输入 法为主,并有些人工智能词组的 判断功能,但使 用时需要往微机里加一 插件; ^#267^\^u飞马^u是一 MacWrite 类型的 中文编辑器和简易 排版器,在 Macintosh 与 DOS 微机上用 特殊操作系统启动后即能用。输入 方法包括拼音、BoPoMoFo、苍杰和 五笔字形,兼 有一定的词组判断功能; ^#267^\Byx 是一个简易中文编辑器,用 在有 VGA/EGA/Hercules 图像卡的 IBM 微机 上,只有加调 拼音和国标中文输入方法; ^#267^\国乔是台湾出的一中文操作 系统,用于有 Hercules 卡的 IBM 微机 上,可用多种的常见输入法, 如加调 拼音、BoPoMoFo、苍杰和 注音符号; ^#267^\新加坡出的大学士和小学士,可用多种输入方法; ^#267^\中国大陆出的 VAX/HZ-VMS 用于 VAX 主机的中文操作系统,但编辑时 必须在特殊的汉字终端上进行。 .rs 总之,几乎所有 现有 的中文输入和编辑 软件,毋论用的是何输入方式 都不过于 WYSIWYG (What you see is what you get) 类型 ,都要用特殊的中文操作系统 启动机器后才能在有图像功能的 个人微机、工作站或终端上使用。 这些软件有它们好的一面, 即 直观性强。这一特点对于低级 (或初级)用户来说似乎是十分可取的。 然而,它们的弱点却是致命 的、 不可弥补的, 即输入速度太慢而更重要的是太费脑力和眼 力。 其原因主要是由于这些传统软件的 设计指导思想没有顺从人的思维 方式。人的思维是一句一句、 一段一段 或一章一章来的;而非一字一字 、一词一词 来的。 但是用上述 中文软件时,用者的 头脑和眼睛却要以 每打一个字或一个词为一个周期地 繁忙地碾转在打字 、选字、和文章内容之间 。众多的输入方法中虽然也有 专业打字员免强可 用的快速输入法 (如 五笔字形), 但任何人,尤其 是 不起草直接打文章 的人,如果 连续 两小时使用这些中文输入器 都会觉得腰酸 眼痛、脑力竭尽,毫无乐趣可言。下回一提起打 中文便有一种恐惧感。本人三年 以来使用中文软件的结论便是如此。 另外现有的这些方法在 分时 (Time-Share) 的、 和无图像功能终端的主机 上是行不通的,也是公认尚 无解的问题。 那末我又有什么高招来解决此问题 呢?我目前设计了一个叫 ChText 的拼音 .ex lrarrow 汉字互译器。用适合人类思维 方式的 整句、整段或整章而 非一字一词的输入方式; 这大大降低了输入 员的脑力和眼力的消耗。 其没有用到在中文文字 处理方面华而不实的人工智能 (AI) 而用了动态统计方式因人而异地 自动建立一个字典和一个词典。 何谓统计?又如何用于中文文字处理 ?笼统地说统计便是抽样试验。 根据历史上最有 权威的康熙字典, 中文至少有十二万字; 但是为何现代字典和词典中才列出 六、七千字呢?人们就是用了统计 原理才做到这一点的。有书为证: 十几万中文字里有八万是死字 (即人们不再用这些 字了),常用字才不到四千,次常用 字也才三千来个。为此中国邮电 部编的^u国家标准通讯用汉字 字符集基本集^u (GB2312 - 80) 中就只收有 3755 个常用字作为一级字库用拼音 排列;次常用字有 3008 个用笔 划和偏旁 排列。那么这与 ChText 的动态 统计又有何瓜葛?请注意:中文有 4000 来个常用字却才有 400 多种 发音,加上声调后也才有不到 1500 种发音 。这就给中文 拼音输入带来许多不 便,也就导致了诸如五笔型之类 各种各样 的输入方法 的产生。但是搞来搞去 人们还是发现只有拼音输入法才是 最轻松、最 自然和最 广为人接 受的方法。这是 显然的,语言在头脑里的第一个反应 就是音!英文和其他拼音文字之所以 能方便的输入就是因为每个字的拼写 都是唯一的, 而且是与发音一致的。 想想看,当键盘 输入英文时 你只需机械地挥动手指,眼睛和头脑可以 全力贯注在屏幕上出现的文章, 十分轻松、愉快,同时也能保证出好 文章。 回到统计和中文一音多字的论题上来 , 统计规律发现 每个人的词汇都有一定局限, 对每个字和词的使用频率是一定的。 ChText 在使用过程中不断动态地 调整字典和词典,打完几十个字后 使用频率高的字一定是在同音字的 前列。词组则不断累积起来。因此保证每个用者的输入速度都能不断提高。 应加以说明, 所谓词组在此是不严格的: 由两个字以上 组成的有意义的字团我们皆称词组。 要细分则可分成词、词组、熟语、 术语和 成语。中国商务印书馆 1979 年出版的 《现代汉语词典》 (中国社会科学 院编) 可以说是收了再少不过的词组 了,那也有五万条。可想而知所谓的 人工智能若能每次准确地为你根据 上下文从此庞大的词典中 挑出个词组,既便 超级计算机 也能 叫你不耐心地守机待词。 又有统计资料证明:每个人或每组 人使用的词组量和组词能力都是极为 有限的。你用了 ChText 几个月后就 会发现 ChText 为你累积和整理 的词典含词量不会多于几千条。 硬件方面 ChText 目前能在毫无图像 功能的 VAX/VMS 和 UNIX 主机上使用 。有行/段输入和章输入两种方法 。 章输入时 用者 可用任何编辑器 (如 EMACS) 来输入 拼音文件,然后再用 ChText 来一 次性将所有拼音翻译成汉字 (当然,因为中文一音多字的现象 是无法克服的,翻译时还是要为 每个拼音挑选出合适的汉字)。 拼音输入中文时 可用任何拼音长度,加音调或不加 音调、组词或不组词;但加上 声调至少可将速度提高四倍。要 进一步提高选字速度,便 应尽可能地 将拼音组合成词组(如 wo3-men2 = 我们) 和将拼音后加 上偏旁音缩写 (如 suo1js= 缩 xie3tb = 写)。 除了中文拼音外, ChText 原文件中允许 有英文和其他内容,如日文、俄文、 希腊文、中文状态下的英文字母。 这些靠 ChText 的一些指令来控制。 ChText 尚非一个完美的软件,但是 本作者旨在不久的将来使其在 无图像功能的终端上能达到现有 较好的中文编辑器的速度, 而在有 图像功能的个人微机和工作站上则 求达到现有速度的三至四倍。 .ce .fs+2 排版与输出 .fs-2 .tx 市面现有的中文排版器大多是 前所说的 WYSIWYG 类型的 (如 WordStar 和 MacWrite) 简易文字处理器 (Word Processors)。这些软件用来编辑不太复杂的、 不含数学公式的 和只有很少量图表的信件 和文章还免强能胜任。在主机上 这类文 字处理器是行不通的,既便在 主机 英文处理器里也极少见到此类型的。 尽管现有趋势表明 WYSIWYG 类型的 文字处理器 (Word Processors) 日趋加入越来越多的指令 (commands) 而步步向 指令型 (command driven) 的电脑排版 器 (text-formatter 如 .ex tex ) 靠拢 (的确最新版的 WordPerfect, WordStar 和 Microsoft Word 里的隐形和显形指令 已多得惊人),它们的功能 (powerfulness) 、可靠性 (reliability) 、稳定性 (stability) 和灵活性 (flexibility) 还远不能与 指令型的电脑排版 器 (text formatters) 相抗衡。 此外,随着人们对文字处理的要求 的不断提高,好的 WYSIWYG 类型的 软件 (如 WordPerfect 5.1) 要在性能极佳 (从而也极贵昂) 的微机或终端上 才能取得 WYSIWYG (what you see is what you get) 的效果。 因此在一个 满意的折衷的混合型 (compromised hybriaed) 文字处理+排版器出现之前, 指令型的电脑排版器大有成为 工业标准 (industry standard) 的可能。 从打印机的支持来看,目前所有的 中文软件一般只支持 DOS 机上 用的 Epson 九针或二十四针或 Macintoch 的 ImageWriter 点阵打印机。 少数也有 HP LaserJet 激光打印的支持。 因此若要有较高的打印质量微机 中要备有硬盘来存十几兆的中文 字库 (据说 Mac-China 占机容量为 15 Mega-Bytes!) 。从目前的趋势来看, 打印输出 标准是 .ex ps ,文字和图像处理器的输出标准也是 .ex ps 。无疑,现存中文软件的打印机 支持也是过时了。 那么我在中文排版和输出的渠道又 何在呢?三年前,我曾想大力改进 中文 WordStar 类的软件来提高输入 速度和打印效果。很快我发现那 是徒劳,是重履他人旧步, 因而停了 工。今年八月底,我博士修完了,工作 还没着落。故又搞起了中文软件 的开发 。有了近年英文编辑器 Scribe 和 .ex tex /LA% .ex tex 的开发经验,这回我的目标很明确 :避开 WYSIWYG 类型的低档软件, 开发人们尚未涉足的指令驱动型 (command-driven) 中文输入器和排版器。 当然中文输入器只好从头开始 (其实 也不完全这样,拼音字典的构想 和输入是三年前搞的),排版器则打算 从英文的 Scribe 和 .ex tex /LA% .ex tex 下手。打印机则选定了 .ex ps (Epson 和 HP LaserJet 打印机可用 GoScript 软件来模拟成 .ex ps 打印机)。 尽管 Scribe 和 .ex tex /LA% .ex tex 在编辑英文时是那么法大无边,文字 、数学、插图、插表、目录自动排版 、自动索引 (cross referencing) 、索引 (indecies) 自动产生,无所不能。他们 却只能用于英文,西欧文字 (如法文) 的排版。 虽然也有人搞了日文版本 的 .ex tex (J% .ex tex ) ,中文的 Ch% .ex tex 尚是一个空白。有人告诉我 中文的文字 处理只是日文文字处理的一小部分; 其实日文和朝鲜文早已成 了拼音文字,许多日文和朝鲜文的 文字处理器中不用一个方块字。 不可否认下一番工夫后有可能 将 J% .ex tex 改造成 Ch% .ex tex ,但是当时 J% .ex tex 要从日本购得。 今年九月我编成了 Scribe 和 .ex tex 的中文前置处理器;ChScribe 和 Ch% .ex tex 从此诞生。这两个软件合为一 体,加上字库才占 2 MB 的磁盘 容量。其排版功能和排版英文 时一样强大;是任何现存的中文 文字处理器所望尘莫及的。十月份 我又加进了一个独立的中英文排版器 ,叫 WStroff 用的是 UNIX 系统 troff 标准排版器类型的指令, 以供没有 Scribe 和 .ex tex 的人使用。本文便是用 WStroff 排版的。 目前 WStroff 只配有最最基本的排版 功能,其能量却已超过任何现存 的 WYSIWYG (如飞马),但还远不及 ChScribe 和 Ch% .ex tex 。下面我就其一些基本功能作 点进一步的示范。 作为一个多语言排版器, WStroff 具有拼音文字 (如英文、 法文和俄文) 及非拼音文字 (如中文) 排版所必备的基本功能,如, .sv .in0 .in-15pt .pm30pt ^#267^\自动分行、分段、分页和编页号; ^#267^\强制分行、分列和分页 (forced line break, column break, or page break); ^#267^\齐头段落 (justified paragraph) 和自然段落 (verbatim paragraph) 的自动排版; ^#267^\行对中 (centered) 、行靠右 (flush right) 和行靠左 (flush left); ^#267^\自动列条款 (itemize or outline); ^#267^\多列排版 (multi-column text); ^#267^\下划线 (under line); ^#267^\指令和字串的定义 (definition of macros and strings); ^#267^\页头和页脚标注 (page heading and page footing); ^#267^\上标和下标 (superscript and subscript); ^#267^\合并排版 (inclusion of another manuscript file) 。 .rs 这些功能都在本文里体现出来了。 其实许多 一般的文字处理器 (word processors) 和简单的指令型排版器 (text formatter ,如 Runoff) 还不见得都 具有这些功能。但是, 今天的文字处理已经不再象七十年 代或八十年代初那么单纯了, 没人愿意再搞剪贴。故图表要能 直接产生或 结合到文字中。 下图是直接插入 的 (imported) .ex ps 作者的照片。 ^* .vs 1.55in .sf jbwang.lps 对 字体的大小和样式, 大家也有很高的要求, 因此 WStroff 理所当然 地尽量提供所有这些功能,如, .sv .vs4pt .in0 .in-15pt .pm30pt ^#267^\中文字体可 .fs+2 以 .fs+2 大 .fs+2 也 .fs-2 可 .fs-2 以 .fs-2 小,而且变化尺寸是任意的; .vs4pt ^#267^\中文字体 .cs1.5 可以是长体、 .cs0.6 可以是扁体、 .cs1 .it 斜体或 .rt .bf 黑体 ; .ls1.5 .rt ^#267^\English fonts can be any of the .ex ps Adobe fonts, and there are regular Roman typeface, .it italic typeface, .bf bold face, .ph physical typeface, .tt typewriter typeface, .sb symbol set, .ol .fs+2 and outline font style。 .fs-2 .rt .ls1 .rs .ce .fs+3 小结 .fs-3 .tx 以全面革新电脑中文文字处理 和填补主机中文文字处理的空白 为出发点,我推出了 Ch-系列配套 中文输入和排版软件;以上所述 只是 Ch-系列最基本的原理和功能 ,更具体的指南可在使用说明文件 中找到。下面我将概述 Ch-系列的 目前的功能 (chtext 与 chtex 皆为多功能综合软件,用 UNIX 惯用的 flag 方式来选择某一功能): .ni ^b1. chtext^b .sv .in0 .in-65pt .pm80pt .vs6pt chtext -e^\中、英、日、俄、希腊文 行/段输入器; chtext ^\拼音/国标 .sb ^#256 .rf 中、英、日、俄、希腊文 翻译器; chtext -d^\中文拼音字典; chtext -p^\中、英、日、俄、希腊文 .sb ^#256 .rf 拼音/国标翻译器; chtext -v^\无图像终端 中、英、日、俄、希腊文 文件阅读器。 .rs .ni .vs6pt ^b2. chtex^b .sv .in0 .in-65pt .pm80pt .vs6pt chtex -s^\中、英、日、俄、希腊文 Scribe 前置处理器; chtex -t^\中、英、日、俄、希腊文 .ex tex 前置处理器; chtex -l^\中、英、日、俄、希腊文 LA% .ex tex 前置处理器; chtex -w^\中、英、日、俄、希腊文 WStroff 排版器; chtex -e^\ 中、英、日、俄、希腊文文件 .sb ^#256 .rf ASCII 文件翻译器 (以便网 络传递用) ; chtex -d^\ASCII 文件 .sb ^#256 .rf 中文文件翻译器 (接受 网络传递的中文文件)。 .rs 最后指出本系列的使用对象为 大学和研究机构的较高层科技人员, 但是初级人员 (如毫无程序编写 知识的秘书) 经几小时开导后也能 很快适应。 .vs0.5in .fr J. B. Wang (王景白) Pittsburgh, Pa, USA October, 1989