本手册描述字符管理程序 (CMGR) 公用程序的概念、特性及命令。
机密计算机软件。必须有 HP 授予的有效许可证,方可拥有、使用或复制本软件。
根据供应商的标准商业许可证的规定,美国政府应遵守 FAR 12.211 和 12.212中有关“商业计算机软件”、“计算机软件文档”与“商业货物技术数据”条款的规定。
本文档中的信息如有更改,恕不另行通知。随 HP 产品及服务提供的明示性担保声明中列出了适用于此 HP 产品及服务的专用担保条款。本文中的任何内容均不构成额外的担保。HP 对本文中的技术或编辑错误以及缺漏不负任何责任。
Intel 和 Itanium 是 Intel Corporation 及其子公司在美国及其他国家或地区的商标或注册商标。
4.5 CMGR SHOW TABLE 和 CMGR SHOW BITMAP 命令 4-32
4.6 CMGR REMOVE 和 COPY 命令 4-36
4.7 CMGR EXTRACT CODE 和 CMGR EXTRACT REFERENCE 命令 4-38
4.8 CMGR CONVERT FONT_SIZE 4-39
4-4 按 <SELECT> + <KP3> X 6 + <KP6> X 11 选择区域 4-10
4-5 按 <REMOVE> 把选定部分剪切到 Paste 缓冲区 4-11
4-6 按 <GOLD> + <KP0> 返回到原来的位映象 4-12
4-7 按 <GOLD> + <KP7> 前去适当的位置并按 <INSERT HERE>
贴补该 Paste 缓冲区 4-13
4-8 键入关键字 "MEMORY" 使用内存记录 4-14
4-11 按 <Gold> + <KP.> 并键入 "MEMORY 10102" 以在其中一个
REFER 窗口显示内存字形 4-17
4-12 内存记录的 10102 字形显示在最左面的 REFER 窗口中 4-18
4-15 按 <Gold> + <M> 标记当前光标位置 4-21
4-16 使用 <KP6> 和 <KP8> 画三角形的两边 4-22
4-18 通过按 <Gold> + <G> 完成选择, 光标会直接跳到标记位置 4-24
4-20 用于编辑 32x32 大小字形的屏幕编排设计 4-26
4-22 把 24x24 大小的字形转换成 32x32 4-28
字符管理程序 (CMGR) 是一个软件部件, 用以管理中文字符的属性。这些中文字符主要是指 DEC 汉字字符集中的用户定义字符。用户可以操纵的属性包括字形和整理特征。
这软件取代 OpenVMS/Hanzi 5.4 及之前版本的字形系统。第 3 章会详细描述如何从旧的字形系统迁移到 CMGR 的系统属性数据库和用户属性文件。
CMGR 让用户建立用户定义字形和用户定义整理值、操纵系统属性数据库及建立用以参考的属性列表。按照默认, CMGR 命令仅在用户定义字符上操作, 但用户可以使用一些命令的 /RESERVED 限定词来操纵保留用户定义字符。
与 OpenVMS/Hanzi 的其他软件部件/公用程序一样, CMGR 能提供中英文求助文本和信息。用户可以使用 HANZIGEN 公用程序来转换中英文, 如下所示:
$ CHARACTER_MANAGER COPY 10101 10102
如有需要, 用户可随时在 CMGR 提示符处键入 HELP 以取得求助资料。
CMGR> help
Information available:
Character_attributes CONVERT COPY EDIT EXIT EXTRACT
HELP REMOVE SET SHOW System_Attribute_Database
UPDATE User_Attribute_Files
Topic?
字符代码可与几个字符属性有关联。用户可以自行定义 DEC 汉字字符集的用户定义区域和保留用户定义区域内代码的属性。CMGR 2.0 版本支持两个用户操纵属性,即位映象字形模式和整理特征。字形模式的大小可以是 24x24、32x32 或 40x40。支持的整理特征包括拼音、部首和笔画数。24x24 字形可用于在终端/行式打印机上执行按需装入和预装入。通过 DECprint Printing Services, 便可在激光打印机上打印各种可支持其大小的字形模式。如果定义了整理特征, 便可用 HSORT/HMERGE 公用程序来给包含用户定义字符的文件执行排序/合并。此后, "字符属性" 这术语即指这两个受支持的属性。
CMGR 2.0 版本中有三个系统属性数据库, 可存储用户定义字符和保留用户定义字符的系统范围字符属性。这些属性会用以执行按需装入、预装入、打印及HSORT/HMERGE。这三个数据库的名称分别为 CMGR_DEFAULT、SONG 和 HEI。每一个数据库都可以存储所有用户定义字符和保留用户定义字符的全部属性。具备三个数据库可让用户建立和使用不同字体的字形。
CMGR 命令在当前数据库上操作。除非系统经理另行设置1, 否则注册后的当前数据库应是 CMGR_DEFAULT。要存取其他数据库, 可使用 SET DATABASE 命令。
对应于每个字符属性, 有两类用户属性文件, 即预装入文件和整理数据文件。预装入文件用以存储 CMGR 操作所用的位映象字形模式, 也可用以把用户定义的字形模式预装入到终端。CMGR 给预装入文件提供一个默认扩充名 .PRE。整理数据文件是另一类的用户属性文件,用以存储用户定义字符的整理特征。这文件只用于 CMGR 操作。同样地, CMGR 也给整理数据文件提供一个默认扩充名 .CVD。
对 CMGR 来说, 用户属性文件跟任何一个系统属性数据库都没有关系。因此, 同一个用户属性文件可以用于任何一个数据库。然而, 不同的数据库通常存储不同字体的字形。所以, 具有一种字体字形的用户属性文件可能不适用于另一种字体的数据库。
DEC 汉字字符集是由遵循 GB-2312-80 标准2的汉字和非汉字字符组成的一套字符集。
DEC 汉字字符集占了 DEC 汉字字符平面的两个象限。右下面的象限包含 DEC GB-2312 字符集, 左下面的象限包含扩充 GB 字符集。图 2-1 展示 DEC 汉字字符平面。
这两个象限共提供了 7,445 个字符和 8,836 个字符位。图 2-2 展示 DEC 汉字字符集中字符和字符位的分布。
扩充 GB 字符集中的字符位划分为两个区域 -- 用户定义区域和保留用户定义区域, 用户可在其中定义他们自己的字符属性, 以便按自己的需要来扩充 GB-2312字符集。CMGR 便是 OpenVMS/Hanzi 提供用来定义和操纵这些属性的工具。按照默认,CMGR 命令仅允许用户操纵用户定义区域内的属性。然而, 用户也可以通过在CMGR 命令中指定 /RESERVED 限定词来操纵保留用户定义区域内的属性。
图 2-3 和 图 2-4 说明 DEC 汉字字符集的两个象限中的代码分布。用户必须注意, 每一个象限可再分成 94 区, 每一区对应于象限中的一行。同时, 每一区又分为 94 个位置或 "位"。有关 DEC 汉字字符集的详情, 请参阅OpenVMS/Hanzi 用户手册第 2 章。
要联机观看字符集的资料, 可使用 CMGR 命令 SHOW CHARACTER_SET。
本章适用于已在使用字形系统而现在需要迁移到 CMGR 环境的 OpenVMS/Hanzi 5.5 版本以前的所有用户。
在 OpenVMS/Hanzi 5.5 版本之前, 用以存储、操纵和使用用户定义字形模式的环境称为字形系统。用户定义的字形模式存储在字形数据库内。OpenVMS/Hanzi 提供若干公用程序以帮助用户定义他们的字形、在字形数据库中更新这些字形, 并以表的格式列出它们。在字形数据库以外, 字形模式会存储在字形文件中。例如, FDESIGN是建立字形模式的公用程序。FDESIGN 的输出便是字形文件。
字形数据库内定义的字形可在按需装入时供字形处理程序使用, 或用户可用PRELOAD 公用程序 (自 OpenVMS/Hanzi 5.0 版本以来) 来建立预装入文件并把字形预装入到他们的终端。
自 OpenVMS/Hanzi 5.5 版本推出 CMGR 后, 便正式取代字形系统。CMGR 的系统属性数据库将取代旧字形系统的字形数据库。在属性数据库以外, 字形模式会存储在预装入文件中, 而不再会有字形文件。此外, 所有随字形系统而来的公用程序都将废弃, 取而代之的是 CMGR 的扩充命令集。
要协助用户从旧字形系统迁移到 CMGR, CMGR 提供了两个命令。CONVERT DATABASE命令把旧字形数据库中的字形转换成 CMGR 使用的格式, 并把它们存储在新的系统字形数据库中。从字形系统升级到 CMGR (OpenVMS/Hanzi 升级) 以后, 系统经理应执行一次这命令。CONVERT FONT_FILE 命令把字形文件转换成预装入文件。用户应使用这命令来把他们的字形文件转换成 CMGR 可操纵的预装入文件。
在旧的字形系统中, 字形数据库在 HSY$SYSTEM 系统目录中有一个称为 FONT1.DAT的文件。该文件存储着所有用户定义的字形模式。在 CMGR 中, 字形模式都存储在系统属性数据库内, 部件 (如字形处理程序) 会使用 CMGR 数据库中的字形,而不再使用 FONT1.DAT 中的字形。
安装 OpenVMS/Hanzi 期间, 并不会删除 HSY$SYSTEM 中的 FONT1.DAT。如果用户要使用存储在字形数据库中的字形, 系统经理便必须使用 CONVERT DATABASE 命令来把那些字形转换至 CMGR 的系统字形数据库中。
CONVERT DATABASE 命令读取 FONT1.DAT 中的字形模式, 并把已转换的字形写入当前的系统字形数据库。CMGR 有三个系统字形数据库 -- CMGR_DEFAULT、SONG和 HEI。通过使用 SET DATABASE 命令, 可把当前数据库设置为上述的其中一个数据库3。由于字形处理程序会使用 CMGR_DEFAULT 数据库中的字形来执行按需装入, 大多数用户很可能想把旧字形数据库中的字形转换至 CMGR_DEFAULT 数据库。要做到这点, 可使用以下的命令:
CMGR> SET DATABASE CMGR_DEFAULT
%CMGR-I-DBSET, 当前数据库设定为 "CMGR_DEFAULT"
%CMGR-I-FDBCONVNG, 正在把旧数据库转换成 CMGR_DEFAULT 数据库 ...
%CMGR-I-READFIL, 正在读文件 HSY$SYSTEM:FONT1.DAT
%CMGR-S-FONTCONVTD, 已转换 10101 的字形数据
%CMGR-I-FDBCONVEND, 总共把 1 个模式转换至 CMGR_DEFAULT 数据库
这例子中, 旧字形数据库中只找到代码为 101014 的一个字形模式。于是, 便把该字形模式转换并存储到 CMGR_DEFAULT 数据库。
旧的字形系统只支持 24x24 大小的字形。但 CMGR 已扩充至可支持 32x32 和40x40 大小的字形。因此, 系统字形数据库可以存储所有这般大小的字形。在执行 CONVERT DATABASE 操作期间, 旧字形数据库中的 24x24 字形会给转换成各种可支持其大小的字形, 并存储到系统字形数据库中。
CMGR 也支持旧字形系统不支持的用户定义整理特征。CONVERT DATABASE 命令仅把旧数据库的字形转换至 CMGR 的数据库, 但不会变换系统整理数据库中的整理值。因此, 转换以后, 用户仍要自行定义整理特征, 否则, 便不能正确地给包含用户定义字符的文件排序。
CONVERT DATABASE 命令的默认是 /LOG/CONFIRM。这表示在转换过程中会显示通知信息, 并且, 如果系统字形数据库已定义了字形模式, 便会请求用户确认。
在旧的字形系统中, FDESIGN 公用程序建立字形文件以存储用户定义的字形模式。虽然自 OpenVMS/Hanzi 5.0 版本以来, 便有建立预装入文件的 PRELOAD 公用程序,但用户大都把他们的用户定义字形模式只存储在字形文件中。然而, CMGR 会直接操纵预装入文件, 因此不再使用字形文件。
预装入文件将会是系统属性数据库以外唯一用以存储字形模式的方法。为协助用户使用字形文件中的字形模式, CMGR 提供 CONVERT FONT_FILE 命令来把字形文件的字形转换成预装入文件中的预装入序列。
把旧的字形系统升级到 CMGR 之后, 如果用户要使用字形文件中的一些字形模式,他必须执行类似以下的 CONVERT FONT_FILE 命令:
CMGR> CONVERT FONT_FILE OLD1.FON, OLD2.FON NEW.PRE
在这例子中,字形文件 OLD1.FON 和 OLD2.FON 中的字形会转换成预装入序列,并存储到预装入文件 NEW.PRE 中。执行转换后, 用户便可使用 CMGR 的命令来操纵这包含原来存储在字形文件中的所有字形模式的预装入文件。
注意, 字形文件的文件名没有默认的扩充名, 因此, 用户必须给他的字形文件指定正确的文件扩充名。预装入文件的默认扩充名则已定义为 ".PRE"。
所有随旧字形系统而来的公用程序都会废弃, 取而代之的是 CMGR 的命令。这些公用程序包括 FDESIGN 公用程序、FUPDATE 公用程序、CTABLE 公用程序和PRELOAD 公用程序。本节将描述哪个 CMGR 命令会取代哪个废弃的公用程序, 以便熟悉旧字形系统的用户可以此作为起点, 渐渐迁移到使用 CMGR。
FDESIGN 公用程序是一个让用户建立用户定义字形模式的字形编辑程序, 现由以EDIT 命令调用的 CMGR 字形编辑程序取代。这字形编辑程序除了支持 FDESIGN的所有特性外, 还提供许多其他的特性。同时, 它也支持编辑整理特征。但用户必须注意, 他们需要在 VT382 终端上运行字形编辑程序。有关详情, 请参阅第 6 章。
FUPDATE 公用程序更新字形数据库中的字形模式, 并建立字形模式的位映象列表。在 CMGR 中, 字形模式存储在预装入文件中。用户应该使用 CMGR 的 UPDATE 命令在系统数据库中更新其字形。如果用户想用字形文件中的一些字形来更新系统字形数据库, 他可用 CONVERT FONT_FILE 命令来把字形文件转换为预装入文件,然后使用 UPDATE 命令。
要显示字形模式的位映象列表, 用户可使用 CMGR 的 SHOW BITMAP 命令。该命令显示预装入文件和系统属性数据库的位映象。
本章会示范如何选择一个数据库作为当前数据库、如何建立一些用户定义字符、如何把对应的属性文件更新到当前的系统属性数据库中, 并如何建立字符属性列表文件以供参考。然后, 会简要描述其他 CMGR 命令, 如 REMOVE、EXTRACT 和 CONVERT FONT_SIZE。本章不会谈及诸如 CONVERT DATABASE 和 CONVERT FONT_SIZE 的命令。这些命令在第 3 章中已有描述。用户应参阅第 5 章的命令参考以了解每个 CMGR 命令的详细描述。
字符代码由区位码或字符的内码指定。在 CMGR 中, 内码以十六进制代码表示,首个字符为 "H"。例如, 如果具有两个八位字节的用户定义字符的第一个字节等于 161, 而使它的第二个字节等于 33 (两者均为十进制), 它的内码便应为"HA121"。此外, 这代码是在 DEC 汉字字符平面内左下象限的第一区中。在图 2-4中, 用户可看到用户定义区域是从 "HA121" 至 "HF77E", 而保留用户定义区域是 从 "HF821" 至 "HFE7E"。
另一个普遍地用以指定字符代码的方法是使用它的 "区位"。DEC 汉字字符平面的每个象限可以再分成 94 区, 每区有 94 个位置 (位)。图 2-3 和图 2-4 所示,每一区对应于象限中的一行。因此, 第一行便是第 1 区, 而最后一行是第 94 区。要区分在两个象限的代码, 右下象限中的区位码以 "0" 开头, 左下象限中的区位码则以 "1" 开头。如果不是以 "0" 或 "1" 开头, 默认为 "0" (右下象限)。
因此, 区位码 "00101" 或 "0101" 等于内码 "HA1A1"。区位码 "10101" 等于 "HA121"。注意, 如果区号或位号是单个数字, 便会添加一个零。
如果使用区位, 用户定义区域的范围是从 10101 至 18794, 而保留用户定义区域则从 18801 至 19494。
用户必须注意, 区位码输入方法与 VT382 终端所提供的输入方法相同。
区号是以 /QUADRANT 限定词来指定的。限定词可取 LOWER_RIGHT、LR5 或 0 作为值来指定右下象限。也可取 LOWER_LEFT、LL6 或 1 作为值来指定左下象限。/QUADRANT 的默认值是
/QUADRANT=LOWER_LEFT。
CMGR 共有三个系统属性数据库, 即 CMGR_DEFAULT、SONG 和 HEI 数据库。在任何时候, 其中一个数据库会成为当前数据库, CMGR 命令便在该当前数据库上操作。除非系统经理另行设置7, 否则注册后的当前数据库应为默认数据库CMGR_DEFAULT。用户可以使用下述命令来转换到另一个数据库:
或者, 如果要知道系统中所有数据库的名称, 可使用下列命令:
CMGR> SHOW DATABASE/ALL
数据库名
-------------------------------
CMGR_DEFAULT
SONG
-> HEI
在 CMGR 中输入以下命令以调用编辑程序。由于 EDIT 命令的默认限定词是 /FULL/SIZE=ALL/LOG/LOAD_GLYPH, 因此允许您编辑用户定义字符的所有字符属性。请注意, 由于 CMGR 会自动添加 .PRE 和 .CVD 两个默认扩充名到两个输出文件, 因此不得在 /FULL 限定词中使用文件扩充名。
然而, 用这命令来调用的字形编辑程序不允许用户编辑保留用户定义区域的属性。如果需要编辑或使用保留用户定义字符, 应该发出以下命令:
这样, 便撤销所有与整理特征有关的特性, 只建立一个输出入文件 -- TEMP.PRE。
由于默认是 /SIZE=ALL, 因此用户可编辑任何一种可支持其大小的字形, 如 24x24、32x32 和 40x40。如果不需要编辑 32x32 和 40x40 大小的字形, 便应使用下列命令:
在启动编辑程序时, 编辑程序会装入一些字块模式以作显示。除非曾重置终端或关掉电源, 否则只需装入一次。为节省时间, 用户可在第二次 (或以后) 启动编辑程序时指定 /NOLOAD_GLYPH。
假定没有 TEMP.PRE 和 TEMP.CVD, 编辑程序便会在 EXIT 编辑程序时建立这两个文件。如果用户选择放弃编辑程序, 便不会建立输出文件。如果目录已包含其中一个或这两个文件, 编辑程序便把文件的内容读入内存 (称为内存记录) 以供编辑。在 EXIT 时, 便给这些文件建立新版本。
调用编辑程序以后, 便会在屏幕上显示象图 1-1 (或图 1-2, 取决于语言设置)所示的屏幕显示。用户可在任何时间按 <PF2> 以取得关于小键盘的求助资料。
<====== 编辑小键盘 ======> <=========== 应用小键盘 ===========>
+--------+--------+--------+ +--------+--------+--------+--------+
| | | | | Gold | Help | Output | Delete |
| | Paste | Cut | | |Key Help|Curs Mo.|Past Mo.|
+--------+--------+--------+ +--------+--------+--------+--------+
|Sel. All| | | |ULcorner| Top |URcorner| Cancel |
| Select |Prv Size|Nxt Size| | U&L | Up | U&R |Type Mo.|
+--------+--------+--------+ +--------+--------+--------+--------+
| | | L side | Center | R side | Quit |
| Up | | Left | Toggle | Right |Wrap Mo.|
+--------+--------+--------+ +--------+--------+--------+--------+
| | | | |LLcorner| Bottom |LRcorner| |
| Left | Down | Right | | D&L | Down | D&R | Exit |
+--------+--------+--------+ +--------+--------+--------| |
| Return from USE | REFER | Enter |
| USE |DISPLAY | Code |
+-----------------+--------+--------+
Additional information available:
Application-keypad Editing-keypad Control-keys
Main-keypad
KEYPAD Subtopic?
在编辑字形之前, 用户必须输入字符代码以作编辑。字符代码以区位码或内码格式指定 (第 4.1 节)。按 <ENTER> 来输入字符代码 (见图 4-1)。如果命令行中没用指定 /RESERVED, 用户只可输入用户定义区域内的代码, 否则会有出错信息显示出来。如果指定了 /RESERVED, 便可同时使用用户定义和保留用户定义字符代码。
有关用户定义字符的有效代码范围的详情, 请参阅第 2 章或在 CMGR 输入以下的命令:
CMGR> show character_set
DEC GB-2312 汉字字符集
代码范围 象限 区范围 字符种类
-------------- -------- ------------- ---------------
00101 - 00994 LR 1 - 9 DEC GB-2312 字符
01001 - 01594 LR 10 - 15 DEC GB-2312 保留字符
01601 - 08794 LR 16 - 87 DEC GB-2312 字符
08801 - 09494 LR 88 - 94 DEC GB-2312 保留字符
10101 - 18794 LL 1 - 87 用户定义字符
18801 - 19494 LL 88 - 94 保留用户定义字符
用户现在可以使用小键盘、功能键、或控制键的各种功能来执行编辑。用户应注意所有 EDIT 态的默认设置: 光标态的 ON/OFF、贴补态的 OVERWRITE、字符类型的 LETTER 和绕回态的 OFF。这设置会影响编辑功能的大部分操作。用户可按小键盘功能键来更改任何一个 EDIT 态, 如按 <PF3> 来更改光标态。
用户可从当前的系统属性数据库中取出位映象字形模式来执行 CUT 功能, 然后使用 PASTE 功能把贴补缓冲区 (里面包含从字形剪切出来的部分) 插入正编辑的字形模式。USE 功能有助于执行这操作。
如果用户要使用的字形存储于默认数据库以外的另一个数据库内, 在启动编辑程序之前必须执行以下命令:
此命令把当前数据库设置为 HEI, 随后的 CMGR 命令都将在 HEI 数据库上操作(在这情形下, 编辑程序的 USE 功能将从 HEI 数据库读取字形)。
要调用 USE, 用户应按 <KP0> 键并输入关键字 (任选的) 和用户定义字符代码(或如果在命令行中指定了 /RESERVED, 亦可输入保留用户字符代码)。关键字可以是 "DATABASE" 或 "MEMORY"8, 默认是 "DATABASE"。它指定字形模式的源。 如果关键字是 "DATABASE" 或没有指定, CMGR 会从当前系统属性数据库中检索指定的用户定义字形模式。如果关键字是 "MEMORY", CMGR 便会从内存记录9取出字形。
然后, 用户便可执行 SELECT 和 CUT 操作, 把合适的字形部分放进贴补缓冲区。最后, 按 <GOLD + <KP0> 返回原来的位映象, 并把该部分贴补 (按 <INSERT HERE>) 到当前编辑的位映象。在执行 PASTE 操作之前, 用户必须按光标移动功能键 (如 <GOLD> + <KP7>), 把光标移到适当的位置。
图 4-2、图 4-3、图 4-4、图 4-5、图 4-6 和 图 4-7 展示每一操作的屏幕显示。字形是从 HEI 系统属性数据库取出的。
用户可以执行类似的操作来组合最终的字形模式, 或使用编辑程序功能来建立新的字形模式。完成字形模式后或在编辑期间, 用户可以按 <KP.> 来在 DISPLAY窗口以实际大小显示字形 (见图 4-10)。
此外, 用户可能希望看到其他字符代码的实际大小字形。REFER 可提供这方面功能,它最多可显示当前系统属性数据库或内存记录中的三个字形。按 <GOLD> + <KP.>, 便有提示要求提供字符代码, 用类似 USE 功能那样的关键字和字符代码来回答, 字形便在其中一个 REFER 窗口内显示出来 (见图 4-11 和图 4-12)。
字形编辑程序也提供画几何图形或重新编排字形模式的功能。例如,用户可以首先 SELECT 一个区域并按 <O> 来画一个椭圆。图 4-13 和 图 4-14 展示此例子。
CMGR 编辑程序提供 MARK 功能以协助编辑。用户按 <GOLD> + <M> 便可在当前光标位置作标记。标记座标会展示出来。然后, 用户可以把光标移到任何位置。如有需要, 便可在任何时候按 <GOLD> + <G> 来跳回到标记的位置。图 4-15、图4-16、图 4-17、图 4-18 和图 4-19 展示使用标记功能来画三角形的例子。
图4-4 按 <SELECT> + <KP3> X 6 + <KP6> X 11 选择区域
图4-5 按 <REMOVE> 把选定部分剪切到 Paste 缓冲区
图4-6 按 <GOLD> + <KP0> 返回到原来的位映象
图4-7 按 <GOLD> + <KP7> 前去适当的位置并按 <INSERT HERE> 贴补该 Paste 缓冲区
图4-11 按 <Gold> + <KP.> 并键入 "MEMORY 10102" 以在其中一个 REFER 窗口显示内存字形
图4-12 内存记录的 10102 字形显示在最左面的 REFER 窗口中
图4-16 使用 <KP6> 和 <KP8> 画三角形的两边
图4-18 通过按 <Gold> + <G> 完成选择, 光标会直接跳到标记位置
在 24x24 大小的字形模式的编辑完成之后, 用户可能希望编辑其他大小的字形。要这样做, 可按 <Next Screen>, 编辑程序的编排设计便更改成图 4-20 那样。现在, 用户可以编辑 32x32 大小的字形。
大小的次序是 24x24、32x32 和 40x40。按 <Next Screen> 便从 24x24 大小向前去到 40x40 大小, 然后再回到 24x24 大小。按 <Prev Screen> 便从 40x40大小反向前去到 24x24 大小, 然后再回到 40x40。用户可使用这两个键来转换到任一个大小并编辑该大小的字形。
为了帮助用户建立不同大小的字形, CMGR 提供了一个转换大小的功能。用户可以把同一代码另一大小的字形转换成当前大小。例如, 在使用 <Next Screen> 来转换成 32x32 大小之后, 按 <F18>, 便有提示询问转换前的大小。输入 24 并按<Return>, 24x24 大小的字形便会转换成 32x32 大小并装入 EDIT 缓冲区。图4-21 和图 4-22 说明整个过程。
编辑字形后, 按 <F17> 以输入整理特征。如果用户需要排序/合并字符, 此步骤是必需的。用户会收到提示要求他输入每个整理特征的值 (图 4-23)。输入所有整理特征后, 便会象图 4-24 所示的那样显示出来。
假定再编辑了两个用户定义字符 10102 和 10103, 然后输入 EXIT (<GOLD> + <ENTER>), 便产生 TEMP.PRE 和 TEMP.CVD 两个输出文件。这两个输出文件保存了用户的编辑结果 ( TEMP.PRE 保存位映象字形模式, 而 TEMP.CVD 保存整理特征)。之后, 编辑对话期便结束, 用户也返回 CMGR> 提示符。
在产生用户属性文件 (TEMP.PRE 和 TEMP.CVD) 以后, 用户便可以用下述命令以这两个文件来更新当前的系统属性数据库:
默认限定词是 /FULL/SIZE=ALL/CONFIRM=ALL/LOG, 意思是会按输入文件更新用户定义字符的所有属性, 并要求确认将要执行的所有更新。实际上, 用户可以输入 /NOCONFIRM 来撤销确认, 或输入 /CONFIRM=CONFLICT 来表示只在当前系统属性数据库中已有对应字符代码的属性时才需要确认。此外, 用户可以指定 /NOLOG 来撤销在更新操作期间显示通知信息。请注意, 此命令必须有 SYSPRV 特权才可执行。
与 EDIT 命令相同, 使用 /FULL 限定词时不能指定文件扩充名, 原因是 CMGR 会自动添加这两个扩充名。这说明这命令会以 TEMP.PRE 和 TEMP.CVD 来更新当前的系统属性数据库。
如果用户属性文件包含保留用户定义字符的属性, 用户便必须使用 /RESERVED 限定词, 否则, 更新操作便会失败。
以下展示该 UPDATE 操作 (假定当前系统属性数据库是 CMGR_DEFAULT 并且已包含字符 10102 的两个属性)。
%CMGR-I-UPGFONT,正在用文件DISK$:[USER]TEMP.PRE;1更新CMGR_DEFAULT
更新代码 10101 的 24x24 大小的字形模式吗 ? [N]: Y
%CMGR-I-FONTUPD, 已更新代码 10101 的 24x24 大小的字形模式
%CMGR-I-FONTEXIST, 代码 10102 的 24x24 大小的字形模式已存在
更新代码 10102 的 24x24 大小的字形模式吗 ? [N]: ALL
%CMGR-I-FONTUPD, 已更新代码 10102 的 24x24 大小的字形模式
%CMGR-I-FONTUPD, 已更新代码 10103 的 24x24 大小的字形模式
%CMGR-I-FONTUPD, 已更新代码 10101 的 32x32 大小的字形模式
%CMGR-I-FONTEXIST, 代码 10102 的 32x32 大小的字形模式已存在
%CMGR-I-FONTUPD, 已更新代码 10102 的 32x32 大小的字形模式
%CMGR-I-FONTUPD, 已更新代码 10103 的 32x32 大小的字形模式
%CMGR-I-FONTUPD, 已更新代码 10101 的 40x40 大小的字形模式
%CMGR-I-FONTEXIST, 代码 10102 的 40x40 大小的字形模式已存在
%CMGR-I-FONTUPD, 已更新代码 10102 的 40x40 大小的字形模式
%CMGR-I-FONTUPD, 已更新代码 10103 的 40x40 大小的字形模式
%CMGR-I-UPGCOLL,正在用文件DISK$:[USER]TEMP.CVD;1更新 CMGR_DEFAULT
%CMGR-I-COLLUPD, 已更新代码 10101 的整理值
%CMGR-I-COLLEXIST, 代码 10102 的整理值已存在
%CMGR-I-COLLUPD, 已更新代码 10102 的整理值
%CMGR-I-COLLUPD, 已更新代码 10103 的整理值
CMGR SHOW TABLE 命令允许用户建立字符属性表, CMGR SHOW BITMAP 命令建立字形位映象的输出。这两个命令的主要目的是以表或位映象的格式展示系统属性数据库和用户属性文件的内容。使用 SHOW TABLE 命令来展示系统属性数据库中的字形属性表时, 可显示 DEC 汉字字符集内的所有区。至于在数据库上的其他SHOW TABLE 和 SHOW BITMAP 操作, 只限于展示用户定义字符或保留用户定义字符 (如果指定了 /RESERVED)。
如果用户只要展示属性文件 (TEMP.PRE 和 TEMP.CVD) 的内容但不展示位映象,他们可以输入:
CMGR> SHOW TABLE/USER=TEMP/OUTPUT=LIST1.LIS
/USER 限定词是指属性资料要从用户属性文件取出, 而不是从系统属性数据库取出。用户属性文件说明是这限定词的值。同样地, 如果指定 /FULL 限定词 (是默认限定词), 便不允许给用户属性文件指定扩充名。
如果用户要在屏幕上显示资料, 由于 /OUTPUT 的默认是 /OUTPUT=SYS$OUTPUT,因此他们可以省略限定词 /OUTPUT=LIST1.LIS。
图 4-25 展示输出列表文件 LIST1.LIS 的内容。
如果用户只以字形编辑程序建立预装入文件而不建立整理数据文件,他们必须添加限定词 /FONT:
CMGR> SHOW TABLE/USER=TEMP/OUTPUT=LIST1.LIS/FONT
要展示预装入文件 TEMP.PRE 的位映象字形模式及其对应的整理特征, 用户可以输入:
CMGR> SHOW BITMAP/USER=TEMP/OUTPUT=LIST2.LIS/WIDTH=80
而且, /FULL/SIZE=ALL 会是默认。图 4-26 展示此命令中输出列表 LIST2.LIS部分。注意, 限定词 "/WIDTH=80" 限制输出列表的宽度为 80 列。宽度的有效值是 132 和 80, 默认是 132。
要展示 HEI 系统属性数据库的属性表而不展示位映象, 用户应输入:
CMGR> SET DATABASE HEI
CMGR> SHOW TABLE/OUTPUT=LIST3.LIS 1-87
要展示 CMGR_DEFAULT 系统属性数据库的字符位映象, 应输入:
CMGR> SET DATABASE/DEFAULT
CMGR> SHOW BITMAP/OUTPUT=LIST4.LIS 10101-18794
再一次, /FULL/SIZE=ALL 是这两个命令的默认。如果用户要在终端屏幕上显示资料, 由于 /OUTPUT 的默认是 /OUTPUT= SYS$OUTPUT, 因此他们可以省略限定词 /OUTPUT。
每一个命令都接受一个参数。SHOW TABLE 的参数是区号, 而 SHOW BITMAP 的参数是字符代码。
CMGR> SHOW TABLE 1-10, 30-40/QUADRANT=1
"1-10" 和 "30-40" 指定区的范围。用户必须使用连字符 "-" 来分隔该范围的上下限。
CMGR> SHOW BITMAP 10101-11094, 13001-14094
注意, 没有 /RESERVED 限定词, 便不能显示保留用户定义区域内的代码属性 (仅用 SHOW TABLE 的字形除外)。因此, 如果用户要展示保留用户定义区域内有关属性的资料, 应使用下列命令:
CMGR> SHOW TABLE/RESERVED 88-94/QUADRANT=1
CMGR> SHOW BITMAP/RESERVED 18801-19494
用户应该尝试指定不同组合的 /FULL、/FONT、/COLLATING、/SIZE、/USER、/SYSTEM 和 /RESERVED 来看看输出有什么差别。
REMOVE 和 COPY 命令都需要有 SYSPRV 特权来执行, 它们在当前系统属性数据库上操作。REMOVE 用以除去当前系统属性数据库的字符属性, 而 COPY 则用以把字符属性从一个代码复制到另一个代码。
这两个命令都以 /FULL/SIZE=ALL 和 /LOG 作为默认。另外, REMOVE 命令以/CONFIRM 作为默认, 而 COPY 命令则以 /CONFIRM=ALL 为默认。
REMOVE 命令接受代码列表或代码范围作为其参数。COPY 命令只接受两个参数。第一个是源代码列表, 第二个是目的地代码列表。当源代码列表和目的地代码列表中的代码数目不同时, CMGR 便截断较长的那个参数。注意, 除非指定/RESERVED 限定词, 否则两个命令都不允许处理保留用户定义字符。
以下展示每个命令的例子, 当前数据库已设置为 CMGR_DEFAULT。
%CMGR-I-RMGFONT, 正在从 CMGR_DEFAULT 数据库除去 24x24 大小的字形 模式...
除去代码 10101 的 24x24 大小的字形模式吗 ? [N]: Y
%CMGR-I-FONTRMD, 已除去代码 10101 的 24x24 大小的字形模式
除去代码 10102 的 24x24 大小的字形模式吗 ? [N]: N
除去代码 10103 的 24x24 大小的字形模式吗 ? [N]: ALL
%CMGR-I-FONTRMD, 已除去代码 10103 的 24x24 大小的字形模式
%CMGR-I-RMGFONT, 正在从 CMGR_DEFAULT 数据库除去 32x32 大小的字形 模式 ...
%CMGR-I-FONTRMD, 已除去代码 10101 的 32x32 大小的字形模式
%CMGR-I-FONTRMD, 已除去代码 10102 的 32x32 大小的字形模式
%CMGR-I-FONTRMD, 已除去代码 10103 的 32x32 大小的字形模式
%CMGR-I-RMGFONT, 正在从 CMGR_DEFAULT 数据库除去 40x40 大小的字形模式 ...
%CMGR-I-FONTRMD, 已除去代码 10101 的 40x40 大小的字形模式
%CMGR-I-FONTRMD, 已除去代码 10102 的 40x40 大小的字形模式
%CMGR-I-FONTRMD, 已除去代码 10103 的 40x40 大小的字形模式
%CMGR-I-RMGCOLL, 正在从 CMGR_DEFAULT 数据库除去整理值 ...
%CMGR-I-COLLRMD, 已除去代码 10101 的整理值
%CMGR-I-COLLRMD, 已除去代码 10102 的整理值
%CMGR-I-COLLRMD, 已除去代码 10103 的整理值
%CMGR-I-DBUPD, 已更新 CMGR_DEFAULT 系统数据库
CMGR> COPY/FONT/SIZE=24 10101-10102 12101
%CMGR-I-CPGFONT, 正在复制 CMGR_DEFAULT 数据库中的 24x24 大小的字 形模式...
%CMGR-I-FONTEXIST, 代码 12101 的 24x24 大小的字形模式已存在 把代码 10101 的 24x24 大小的字形模式复制至代码 12101 ? [N]: Y
EXTRACT 命令从系统属性数据库抽取字符属性资料来产生用户属性文件。用户可以用 EXTRACT CODE 命令来抽取字形和整理属性, 或用 EXTRACT REFERENCE 命令来只抽取字形属性。
EXTRACT CODE 命令的主要功能是为编辑或预装入 (只就预装入文件而言) 建立用户属性文件。EXTRACT REFERENCE 命令则为预装入建立预装入文件。
EXTRACT CODE 接受两个参数。一个是代码列表, 另一个是用户属性文件的说明:
CMGR> EXTRACT CODE 10101-10103 USER1
EXTRACT CODE 命令的默认限定词是 /FULL/SIZE=ALL, 因此, 上述命令会建立两个文件, 即 USER1.PRE 和 USER1.CVD。这两个文件分别包含代码 10101 至 10103 的所有大小的预装入序列和整理值。而且, 如果使用了 /FULL 限定词 (或默认), 便不允许在用户属性文件说明中指定文件扩充名。产生预装入文件和整理数据文件后, 用户便可以使用字形编辑程序来编辑文件或把 USER1.PRE 预装入到 终端以供显示。
如上所述, EXTRACT REFERENCE 只建立预装入文件, 它不具有 /FULL、/FONT 或/COLLATING 中的任何一个限定词。这命令的功能是检索一遍一些文本文件以找出用户定义字符, 并给那些用户定义字符建立预装入文件。建立的预装文件可以预装入到终端/打印机上。因此, 用户在发送文本文件前, 应把这文件发送到设备以便显示或打印那些用户定义字符。当然, 系统属性数据库必须包含那些用户定义字符代码的字形属性。
EXTRACT REFERENCE 也接受两个参数。一个是待检索的文本文件列表, 另一个是预装入文件的说明:
CMGR> EXTRACT REFERENCE USERDATA1.TXT, USERDATA2.TXT USER2
用户可在这两个命令上使用限定词 /ENTRY_LIMIT 来控制最多只可输出多少属性记录到用户属性文件。原因是所有设备 (如 VT382) 都只有有限的内存空间来存储预装入字形模式。如果用完了内存空间, 任何输入的预装入字形模式便会重写到内存的现有字形模式上。因此, 如果必需的话, 用户应查看有关的设备参考手册来指定 /ENTRY_LIMIT 的值, 从而使预装入文件内的所有字形模式都可有效地预装入到设备上。如果不指定这限定词, CMGR 便不限制输出属性记录的数目。
再者, 如果用户要抽取保留用户定义字符, 便必须指定 /RESERVED。如果没有指定该限定词而 EXTRACT CODE 的代码列表却包含保留用户定义字符代码, 命令便会失败。至于 EXTRACT REFERENCE, 如果此命令在文本文件中找到一个保留用户定义字符, 便会显示一个警告信息。
如果用户要抽取其中一种或两种大小的字形而不是所有大小的字形,可使用/SIZE 限定词, 并指定大小作为限定词的值。例如:
CMGR> EXTRACT REFERENCE/SIZE=24 USERDATA1.TXT, USERDATA2.TXT USER2
CONVERT FONT_SIZE 命令把预装入文件中的字形模式从一种大小转换成另一种大小。这命令接受两个参数, 即输入预装入文件列表和输出预装入文件。系统会读取输入预装入文件中的预装入序列, 并把它们转换成 /SIZE 限定词指定的字形大小。转换后的预装入序列会写入输出预装入文件。例如:
CMGR> CONVERT FONT_SIZE FONT.PRE FONT32.PRE/SIZE=32
这命令会读取 FONT.PRE 中的所有字形, 并把它们转换成 32x32 的字形大小, 然后输出到 FONT32.PRE 文件。如果 FONT.PRE 包含同一个代码的重复预装入序列(可能属不同的字形大小), 那么会用最后一个预装入序列来执行转换。还有, 如果 FONT.PRE 中的预装入序列已是 32x32 大小的, 那么便只会复制该预装入序列到输出文件。
SHOW CHARACTER_SET 命令用以展示字符集资料。用户可以使用这些资料来确定CMGR 操作的有效代码范围和区范围。例如, 用户必须在 CMGR 的所有命令中指定有效的用户定义字符代码, 或者用户必须在一些具有 /RESERVED 限定词的命令中输入保留用户定义字符的有效代码范围。SHOW CHARACTER_SET 的输出展示如下。
CMGR> show character_set
DEC GB-2312 汉字字符集
代码范围 象限 区范围 字符种类
-------------- -------- ------------- ---------------
00101 - 00994 LR 1 - 9 DEC GB-2312 字符
01001 - 01594 LR 10 - 15 DEC GB-2312 保留字符
01601 - 08794 LR 16 - 87 DEC GB-2312 字符
08801 - 09494 LR 88 - 94 DEC GB-2312 保留字符
10101 - 18794 LL 1 - 87 用户定义字符
18801 - 19494 LL 88 - 94 保留用户定义字符
SHOW VERSION 命令展示当前 CMGR 的版本号, 如下所示:
CMGR> SHOW VERSION
%CMGR-I-VERSION, CMGR 第 2.0 版
任何时候用户都可在 CMGR 中键入 HELP, 然后在 "Topic?" 提示符处选择要阅读的题目。每当用户对使用任何一个 CMGR 命令有疑问, 都可以使用这命令。
CMGR> help
Information available:
Character_attributes CONVERT COPY EDIT EXIT EXTRACT
HELP REMOVE SET SHOW System_Attribute_Database
UPDATE User_Attribute_Files
Topic? copy
COPY
COPY 命令把源字符代码的字符属性复制到当前 "系统属性数据库" 的目的地字符代码。对每对源/目的地代码执行操作时不设任何缓冲, 因此, 下列命令会使 10101的属性被复制到从 10102 到 10194 的所有代码(10101 复制到 10102, 然后 10102复制到 10103, 如此类推。):
有关怎样选择当前数据库的详情, 请参阅 SET DATABASE 命令的题目。
COPY [/qualifiers] source-code[,...] destination-code[,...]
Additional information available:
/COLLATING /CONFIRM /FONT /LOG /RESERVED /SIZE
CMGR> 提示符表示已进入 CMGR 子系统, 用户现在可以输入本区中描述的命令。
另一个使用 CMGR 命令的方法是在 DCL 命令级上直接地使用它们:
$ CMGR cmgr-commands [qualifiers] [parameters]
把旧字形数据库文件 FONT1.DAT 中的字形转换到当前系统属性数据库。
推出 CMGR 后, 便不再使用旧的 FONT.DAT、FONT1.DAT 系统字形数据库。要使用在 FONT1.DAT 中定义的字形模式, 系统经理必须在系统升级后使用 CONVERT DATABASE 命令来执行转换。
CONVERT DATABASE 命令读取在 HSY$SYSTEM:FONT1.DAT 中定义的字形模式, 并把他们转换成新的格式, 然后把字形存储到当前的系统属性数据库。
旧的字形系统仅支持 24x24 大小的字形。但采用 CMGR 后, 32x32 和 40x40 大小的字形也得到支持。在执行 CONVERT DATABASE 时, 系统会从 FONT1.DAT 中读取 24x24 大小的字形, 并把它们转换成 32x32 和 40x40 的大小。转换后的字形会装入当前的系统属性数据库。
然而, 旧的字形系统不支持整理特征。CMGR 无法从旧的字形系统中获得整理值。因此, 在执行 CONVERT DATABASE 命令后,整理特征仍未定义。
可用 SET DATABASE 命令来设置当前数据库。在多数情况下, 系统经理都需要把当前数据库设置为 CMGR_DEFAULT, 然后用 CONVERT DATABASE 来执行转换。这是因为 OpenVMS/Hanzi 的字形处理程序会在按需装入时使用 CMGR_DEFAULT 数据库的字形。
指定如果当前系统属性数据库内已有字形模式的定义时是否需要用户确认。
%CMGR-I-READFIL, 正在读文件 HSY$SYSTEM:FONT1.DAT
%CMGR-S-FONTCONVTD, 已转换 10101 的字形数据
%CMGR-S-FONTCONVTD, 已转换 10102 的字形数据
%CMGR-S-FONTCONVTD, 已转换 10103 的字形数据
%CMGR-I-FDBCONVEND, 总共把 3 个模式转换至 CMGR_DEFAULT 字形数据库
此命令转换 HSY$SYSTEM:FONT1.DAT 中的三个字形模式并把它们存储到当前的系统属性数据库 - CMGR_DEFAULT。
CONVERT FONT_FILE [/qualifiers] font-file[,...] preload-file |
|
一个或多个字形文件的文件名。将转换这些字形文件中找到的用户定义字符和保留用户定义字符的所有字形模式。
在旧的字形系统中, 用户字形存储在字形文件里。在 CMGR 中, 用户字形存储在预装入文件里。要在 CMGR 下使用在字形文件中定义的字形,必须首先使用 CONVERT FONT_FILE 命令来把这些字形文件转换成预装入文件。
用户可在 CONVERT FONT_FILE 命令中输入字形文件列表, 便可把文件中的所有字形转换成预装入序列。这命令可转换用户定义字符和保留用户定义字符。这里没有 /RESERVED 限定词。
把一个或多个预装入文件中的所有字形转换成其中一种支持的字形大小。
CONVERT FONT_SIZE [/qualifiers] source-file[,...] destination-file |
|
_Input File: source-file[,...]
_Output File: destination-file
一系列源预装入文件, 里面包含要转换的预装入序列。默认扩充名是 .PRE。
存储已转换的预装入序列的输出预装入文件。转换后, 这文件中的所有预装入序列都会有指定的大小。
CONVERT FONT_SIZE 命令把一个或多个预装入文件中的所有字形转换为其中一个支持的字形大小, 并把它们输出到一个目的地预装入文件。这命令可转换用户定义字符和保留用户定义字符。这里没有 /RESERVED 限定词。
要指定输出字形大小, 可使用 /SIZE 限定词。如果输入预装入文件已包含指定大小的字形, 预装入序列就只复制到输出文件。如果输入文件包含一个以上的同码预装入序列, 便使用最后的预装入序列来作转换。
指定要转换的字形大小。font-size 的有效值是 24、32 和 40, 它们分别表示24x24、32x32 和 40x40 的字形大小。
CMGR> CONVERT FONT_SIZE/SIZE=32 MYFILE24.PRE MYFILE32.PRE
假定 myfile24.pre 包含 10101 的 24x24 字形。这命令会把该字形转换为 32x32 大小, 并把它存储入 myfile32.pre 。
把指定的源字符代码的字符属性复制到当前系统属性数据库的目的地字符代码。
代码或代码范围的列表。代码可以是 "区位" 码或内码。代码范围是两个代码,以连字符分隔, 中间无空格。
"区位" 码由 5 个十进制数字组成, 第一位数字是任选的, 可以是 "0" 或 "1"。"0" 指定右下象限, 而 "1" 指定左下象限。如果不指定, 默认为 "0"。接下来的两位数字指定 "区", 最后两位数字指定 "位"。
内码是前面带 "H" 的十六进制代码。例如, HA121 即等于 10101。
如没有 /RESERVED 限定词, 只能对属于用户定义区域的代码执行复制。有关详情,请参阅 /RESERVED 的描述。
星号 "*" 可用来指定用户定义区域的所有代码。也就是说, "*" 等于 "10101-18794"。
COPY 命令把在 source-code 代码列表中指定的每个代码的字符属性复制到在 destination-code 代码列表中的相应代码。如果两个代码列表具有不同的长度,较长列表中的任何多余代码都会被忽略。
对于每对源/目的地代码执行复制操作时不设任何缓冲, 因此, 下列命令会使 10101 的属性复制到从 10102 到 10194 的所有代码 (10101 复制到 10102, 然后 10102 复制到 10103, 依此类推):
CMGR> COPY 10101-10193 10102-10194
按照默认, 会复制所有字符属性。然而, 用户可以明确指定要复制那个字符属性。如果要复制字形模式, 用户可以指定要复制那种字形大小。
注意, 用户只在当前数据库中代码间复制字符属性。当前数据库可以 SET DATABASE 命令来设置。
如果在命令行中没有指定字符属性限定词, 便假定为 /FULL。
要指定 "保留用户定义字符" 的代码时, 便指定这个限定词。
如果指定了这个限定词, 便可用星号 "*" 来指定用户定义区域内的所有代码以及保留用户定义区域中的代码。也就是说, "*" 等于 "10101-19494"。
指定要复制的字形大小。font-size 的有效值是 24、32 和 40, 它们分别表示 24x24、32x32 和 40x40 的字形大小。用户也可以使用关键字 'ALL' 来表示要复制所有支持的字形大小。
这个限定词只与 /FONT 或 /FULL (默认) 一起使用时才有效。
这个命令把字符代码 10101 的所有字符属性复制到 10102。它将请求确认并通知您复制操作是成功还是失败。
CMGR> COPY/NOLOG/CONFIRM=CONFLICT/FONT HA121-Ha122 10111-10113
source-code 代码列表扩展到 10101、10102。
destination-code 代码列表扩展到 10111、10112、10113。
这个命令将把字形模式从 10101 复制到 10111, 同时从 10102 复制到 10112。目的地代码列表中的最后一个代码 (10113) 会被忽略。除非发生错误, 否则不会打印信息。此外, 除非两个 destination-code 已有字形模式定义, 否则不会请求确认。
调用字形编辑程序来编辑用户属性文件中的字形模式。同时也可以在编辑字形模式时编辑其他字符属性。
_Input File: user-attribute-file
用户属性文件的文件名。要编辑一个以上的属性, 文件名不能有扩充名, 而是使用默认的扩充名。
EDIT 命令调用 CMGR 字形编辑程序来编辑预装入文件中的字形模式。用户也可以使用字形编辑程序来编辑其他字符属性, 但不能在没有编辑字形时去编辑它们。
如没有 /RESERVED 限定词, 只可以编辑属于用户定义区域的代码。有关详情请参阅 /RESERVED 的描述。
有关使用字形编辑程序的详情, 请参阅第 6 章 "字形编辑程序参考"。
这限定词不可没有 /FONT 而单独使用, 原因是字形编辑程序不可以单独编辑整理特征。
如果在命令行中没有指定字符属性限定词, 就假定为 /FULL。
为了显示, 字形编辑程序使用一些特殊的字符字块。每当启动编辑程序, 便会把这些字块装入用户的终端。然而, 一旦装入字块, 除非用户重置终端, 否则它们不会被擦除。装入需花时间, 因此, 如果确信字块已装入, 为了节省时间, 就可以指定 /NOLOAD_GLYPH。
如果调用编辑程序时不指定这个限定词, 便只能编辑用户定义区域的代码。
指定要编辑的字形大小。font-size 的有效值是 24、32 和 40, 它们分别表示 24x24、32x32 和 40x40 的字形大小。用户也可以使用关键字 'ALL' 来表示要编辑所有支持的字形大小。
CMGR> EDIT/FONT/COLLATING/SIZE=ALL MYFILE
这命令调用字形编辑程序来编辑用户属性文件 myfile.pre; 以及 myfile.cvd;。如果默认目录中没有这两个文件, 便会把它们建立起来。在进入编辑对话期前, 会把特殊字块装入用户终端。同时用户可以编辑任何支持的字形大小。此外, 还会有信息显示以通知您在对话期内执行的操作是成功还是失败。
按指定的字符代码从当前的系统属性数据库中抽取字符属性到用户属性文件。
_Output file: user-attribute-file
代码或代码范围的列表。代码可以是 "区位" 码或内码。代码范围是两个代码,以连字符分隔, 中间无空格。
"区位" 码由 5 个十进制数字组成, 第一位数字是任选的, 可以是 "0" 或 "1"。"0" 指定右下象限, 而 "1" 指定左下象限。如果不指定, 默认为 "0"。接下来的两位数字指定 "区", 最后两位数字指定 "位"。
内码是前面带 "H" 的十六进制代码。例如, HA121 即等于 10101。
如没有 /RESERVED 限定词, 只能抽取属于用户定义区域内的代码。有关详情, 请参阅 /RESERVED 的描述。
星号 "*" 可用来指定用户定义区域的所有代码。也就是说, "*" 等于 "10101-18794"。
用户属性文件的文件名。要抽取一个以上的属性, 文件名不能有扩充名, 因为会添加默认的扩充名。
EXTRACT CODE 命令把在 source-code 代码列表中所指定的每个代码的字符属性抽取到用户属性文件。如果文件已经存在, 便建立更高的版本。
如果指定输入极限, 便不会抽取多于指定数目的字符属性。代码列表末尾的多余代码会被忽略。
按照默认, 会抽取指定代码的所有字符属性。然而, 用户可以明确指定要抽取的字符属性。如果要抽取字形模式, 用户可以指定要抽取的字形大小。
注意, 字符属性会从当前数据库抽取, 而当前数据可以由 SET DATABASE 命令来设置。
/ENTRY_LIMIT=number-of-character
如果在命令行中没有指定字符属性限定词, 就假定为 FULL。
如果指定了这个限定词, 可以用星号 "*" 来指定用户定义区域的所有代码以及保留用户定义区域中的代码。也就是说, "*" 等于 "10101-19494"。
指定要抽取的字形大小。font-size 的有效值是 24、32 和 40, 它们分别表示 24x24、32x32 和 40x40 的字形大小。用户也可以使用关键字 'ALL' 来表示要抽取所有支持的字形大小。
这个限定词只与 /FONT 或 /FULL (默认) 一起使用时才有效。
CMGR> EXTRACT CODE/FONT/ENTRY_LIMIT=5 10101-10107 MYFILE
source-code 代码列表扩展到 10101、10102、10103、10104、10105、 10106、10107。
因为输入极限为 5, 10101 到 10105 内所有大小的字形模式都被抽取, 只忽略最后两个代码 10106 和 10107。
为指定文本文件中的用户定义字符把字形模式从当前的系统属性数据库中抽取到用户预装入文件。
EXTRACT REFERENCE [/qualifiers] text-file[,...] preload-file |
|
文本文件名的列表。这些文本文件中的用户定义字符将会抽取其预装入序列。如果一个字符在文本文件中出现多次, 便仅抽取其预装入序列一次。
输出预装入文件的文件名。这个文件将被建立起来, 并包含抽取的预装入序列。
EXTRACT REFERENCE 命令为指定文本文件列表中的每个用户定义字符抽取字形模式, 并把它们输出到指定的预装入文件。如果预装入文件已经存在, 便会建立更高版本。
如果指定了 /RESERVED 限定词, 便也可抽取保留用户定义字符。否则, 如在文本文件中找到保留用户定义字符, 便会显示警告信息。
它有助于在文本文件中找出用户定义字符的预装序列, 使用户可在打印文本文件前把序列预装到终端或打印机, 从而节省按需装入的时间。
抽取次序取决于用户定义字符在文本文件中的出现频率。频率越高,抽取越迟。这保证了当用户把字形预装入到没有足够字形 RAM 的终端时, 只丢掉频率较低的预装入序列。
如果指定了输入极限, 便不能抽取多于指定数目的字形模式。如果用户定义字符的个数大于指定的输入极限, 便会首先丢掉频率较低的多余用户定义字符。
按照默认, 会抽取所有可支持其大小的字形模式。然而, 用户也可用 /SIZE 限定词来指定要抽取的字形大小。
注意, 字形模式是从当前数据库中抽取的, 而当前数据库可以由 SET DATABASE命令来设置。
/ENTRY_LIMIT=number-of-character
如果指定了这个限定词, 便会抽取文本文件中找到的用户定义区域的所有代码以及保留用户定义区域的代码。
指定要抽取的字形大小。font-size 的有效值是 24、32 和 40, 它们分别表示 24x24、32x32 和 40x40 的字形大小。用户也可使用关键字 'ALL' 来表示要抽取所有支持的字形大小。
CMGR> EXTRACT REFERENCE/SIZE=24 MYTEXT.TXT MYFILE.PRE
这个命令会根据 'mytext.txt' 中找到的用户定义字符, 从当前系统属性数据库中将 24x24 大小的字形模式抽取到预装入文件 'myfile.pre'。然后, 用户便可以在发送文件 'mytext.txt' 前, 将文件预装入到终端/打印机。字形将可用于终端/打印机而无须按需装入。
指定用户想要求助的题目。如果没有指定题目, 便会显示所有题目的列表。
要离开求助, 可使用 <CTRL/Z> 或按 <RETURN> 几次。
代码或代码范围的列表。代码可以是 "区位" 码或内码。代码范围是两个代码,以连字符分隔, 中间无空格。
"区位" 码由 5 个十进制数字组成, 第一位数字是任选的, 可以是 "0" 或 "1"。"0" 指定右下象限, 而 "1" 指定左下象限。如果没有指定, 默认为 "0"。接下来的两个数字指定 "区", 最后两个数字指定 "位"。
内码是前面带 "H" 的十六进制代码。例如, HA121 即等于 10101。
如没有 /RESERVED 限定词, 只能除去属于用户定义区域的代码。有关详情, 请参阅 /RESERVED 的描述。
星号 "*" 可用来指定用户定义区域的所有代码。也就是说, "*" 等于"10101-18794"。
REMOVE 命令除去 character-code 代码列表中指定的每个代码的字符属性。它按照指定代码列表的次序逐个除去属性。
如果指定了 /RESERVED, 便可除去用户定义区域和保留用户定义区域的属性。否则, 只可除去用户定义区域的属性。
按照默认, 会除去所有字符属性。然而, 用户可以明确地指定要除去哪些字符属性。如果已除去字形模式, 用户可以指定哪些字形大小要删除。
注意, 字形模式是从当前数据库中除去的, 而当前数据库可以由 SET DATABASE 命令来设置。
如果在命令行中没有指定字符属性限定词, 就假定为 /FULL。
如果指定了这个限定词, 可用星号 "*" 来指定用户定义区域内的所有代码以及保留用户定义区域内的代码。也就是说, "*" 等于 "10101-19494"。
指定要除去的字形大小。font-size 的有效值是 24、32 和 40, 它们分别表示 24x24、32x32 和 40x40 的字形大小。用户也可以使用关键字 'ALL' 来表示要除去所有支持的字形大小。
这个限定词仅与 /FONT 或 /FULL (默认) 一起使用时才有效。
这个命令将从当前系统属性数据库中除去 10101 代码的所有字符属性。在它实际删除属性之前, 会请求用户确认, 并且通知用户操作是成功还是失败。
指定要设置为当前数据库的数据库名。支持的数据库有 CMGR_DEFAULT、SONG 和HEI。
如果已指定 /DEFAULT 限定词, 便不允许使用该参数, 否则, 就必须指定这个参数。
CMGR 有三个系统属性数据库, 名为 CMGR_DEFAULT、SONG 和 HEI。用户注册时,会以默认数据库 CMGR_DEFAULT 作为当前数据库 (除非由系统经理明确地另行设置)。所有随后的 CMGR 命令将在当前数据库上操作。要选择另一个数据库作为当前数据库, 可使用 SET DATABASE 命令。
SET DATABASE 命令使用逻辑名 CMGR$DATABASE_NAME 来保存当前数据库设置以供下次调用。
系统经理或用户可以在系统、组、作业或进程逻辑名表中, 把其中一个支持的数据库名定义为 CMGR$DATABASE_NAME 这逻辑名来取代默认。以后调用 CMGR, 便会以此数据库作为当前数据库。但如果把逻辑名定义为一个不支持的名, 便不能调用 CMGR。
要展示有关数据库的资料, 可使用 SHOW DATABASE 命令。
以位映象格式显示当前系统属性数据库和用户属性文件中指定代码的字形模式。
代码或代码范围的列表。代码可以是 "区位" 码或内码。代码范围是两个代码,以连字符分隔, 中间无空格。
"区位" 码由 5 个十进制数字组成, 第一位数字是任选的, 可以是 "0" 或 "1"。"0" 指定右下象限, 而 "1" 指定左下象限。如果不指定, 默认为 "0"。接下来的两个数字指定 "区", 最后两个数字指定 "位"。
内码是前面带 "H" 的十六进制代码。例如, HA121 等于 10101。
如没有 /RESERVED 限定词, 只可指定属用户定义区域的代码。有关详情, 请参阅/RESERVED 的描述。
星号 "*" 可用来指定用户定义区域的所有代码。也就是说, "*" 等于"10101-18794"。
SHOW BITMAP 命令以位映象格式显示当前系统属性数据库中定义的以及来自预装入文件的预装入序列的字形的模式。其他字符属性也可和字形模式一起显示。用户可以用 /width 限定词来挑选 80 列或 132 列显示。
要显示当前系统属性数据库的位映象, 可使用 /SYSTEM 限定词并指定要显示的字符代码作为参数。注意, 当前数据库可用 SET DATABASE 命令来选择。要从用户属性文件来显示位映象, 可使用 /USER 限定词并指定用户属性文件作为/USER 限定词的值。在这种情形下, 字符代码列表参数是任选的。如果指定了字符代码列表, 便只显示属于该列表的代码位映象。如果没有指定字符代码列表,便会显示指定预装入文件中找到的所有字形模式。
如果需要指定保留用户定义字符的代码, 可使用 /RESERVED 限定词。
SHOW BITMAP 使用 '@' 来代表位映象上的 ON 象素 (前景), "." 来代表 OFF 象素 (背景)。
因为 SHOW BITMAP 不可以单独显示整理特征, 所以这个字符属性限定词不可以没有 /FONT 而单独使用。
如果在命令行中没有指定字符属性限定词, 就假定为 /FULL。
按照默认, 位映象会打印到 SYS$OUTPUT。使用这个限定词, 用户可以指示它打印到输出文件。
如果指定了这个限定词, 星号 "*" 可用来指定用户定义区域内的所有代码以及保留用户定义区域内的代码。也就是说, "*" 等于 "10101-19494"。
指定要展示的字形大小。font-size 的有效值是 24、32 和 40, 它们分别表示 24x24、32x32 和 40x40 的字形大小。用户也可以使用关键字 "ALL" 来表示要展示所有支持的字形大小。
使用 SHOW BITMAP 打印当前系统属性数据库中的字形模式和/或其他字符属性。使用这个限定词时, 必须指定 character-code 代码列表参数。然后, 便打印指定字符代码的所有位映象和其他字符属性。
如果在命令行中没有指定 /SYSTEM 或 /USER, 就假定为 /SYSTEM。
使用 SHOW BITMAP 来打印存储在用户属性文件中存储的字形模式和/或其他字符属性。使用这个限定词时, character-code 代码列表参数是任选的。如果指定该代码列表, 仅显示属于列表的那些代码位映象。如果没有指定, 便打印用户属性文件中的所有位映象及其他字符属性。
要显示一个以上的属性, user-attribute-file 的文件名不能有扩充名, 而是使用默认的扩充名。
用户可以指定 80 或 132 列宽。如果不指定这个限定词或指定限定词却不指定值, 默认是 132 列。
CMGR> SHOW BITMAP/FONT/OUTPUT=MYBITMAP.LIS/SIZE=(32,40) 10101
这个命令将以位映象格式把 10101 的 32x32 和 40x40 大小的字形模式打印到文件 'mybitmap.lis'。位映象会使用 '.' 作为背景。
CMGR> SHOW BITMAP/FONT/COLLATING/USER=MYFILE/NOBACKGROUND
这个命令会打印预装入文件 'myfile.pre' 中找到的所有代码的字形模式,并且也会打印整理数据文件 'myfile.cvd' 中代码的整理特征。位映象会以空白作为背景。
显示当前系统属性数据库中指定区内或用户属性文件中的字符代码表。
_Section No.[section-number [/positional-qualifiers] [,...]]
[section-number [/positional-qualifiers] [,...]]
区号或区范围的列表。区号是从 1 到 94 的整数。区范围是两个区号, 以连字符分隔, 中间无空格。
星号 "*" 可用来指定一个象限的所有区。也就是说, "*" 等于 "1-94"。
区号的解释取决于它所在的象限。默认是 DEC 汉字字符平面的左下象限。要指定右下象限中的区, 可使用 /QUADRANT 定位限定词。
/QUADRANT 限定词可置于两处以修改区号的意义。它可以置于 "TABLE" 一字之后及区号列表之前。这样可把限定词应用到整个区号列表。/QUADRANT 限定词也可以与每个区号或区范围并排放置。这样仅把限定词应用到该具体的区号或区范围。第二种情形会取代第一种情形。
SHOW TABLE 命令显示当前系统属性数据库中指定区内或用户属性文件中的字符代码表。这些代码表展示当前系统属性数据库或用户属性文件中有关字符属性的资料。
要显示当前系统属性数据库的代码表, 可使用 /SYSTEM 限定词。注意, 当前数据库可用 SET DATABASE 命令来选择。
有关所有区中的字形模式资料可随时显示。然而, 有关其他字符属性的资料, 则只可显示具有用户定义字符和保留用户定义字符的那些区的资料。(如果指定了/RESERVED)。
如果在命令行中没有指定字符属性限定词, 就假定为 /FULL。
代码表通常打印到 SYS$OUTPUT。使用这个限定词, 用户可以指示把它打印到输出文件。
如果没有指定这个限定词, 便只显示保留用户定义字符的字形模式是否存在。
指定要展示的字形大小。font-size 的有效值是 24、32 和 40, 它们分别表示 24x24、32x32 和 40x40 的字形大小。用户也可以使用关键字 'ALL' 来表示要展示所有支持的字形大小。
这个限定词仅与 /FONT 或 /FULL (默认) 一起使用时才有效。
使用 SHOW TABLE 来打印当前系统属性数据库中的代码表。要使用这个限定词,就必须指定区号列表参数, 然后便会打印指定区的代码表。
在命令行中没有指定 /SYSTEM 或 /USER 时, 就假定为 /SYSTEM。
使用 SHOW TABLE 来打印指定用户属性文件的代码表。要使用这个限定词, 不可指定区号参数。用户属性文件中所有字符属性的资料将被打印。
要显示一个或以上的属性, user-attribute-file 的文件名就不能有扩充名, 因为会使用默认的扩充名。
指定要使用字符平面上的哪个象限。象限名可接收的值是 LOWER_LEFT 和 LOWER_RIGHT。用户也可以使用 LL 或 1 来代表 LOWER_LEFT, 使用 LR 或 0 来代表 LOWER_RIGHT。
CMGR> SHOW TABLE/FONT/COLLATING 1/QUADRANT=1
这个命令显示当前系统属性数据库左下象限中区 1 的代码表。所有大小的字形模式和整理特征都将展示表中。
CMGR> SHOW TABLE/COLLATING/USER=MYFILE.CVD/OUTPUT=MYTABLE.LIS
这个命令把整理数据文件 'myfile.cvd' 的代码表打印到文件 'mytable.lis'。代码表包含整理数据文件中定义的所有整理特征的资料。
用户属性文件的文件名列表。要更新一个以上的属性, 文件名不能有扩充名, 因为会添加默认的扩充名。
UPDATE 命令用存储在用户属性文件中的字符属性插入或替换当前系统属性数据库的字符属性。如果没有指定 /RESERVED, 便只可更新用户定义字符。否则, 可更新用户定义字符和保留用户定义字符。
该命令会顺序地读取用户属性文件中找到的字符属性, 并在系统属性数据库中逐一更新这些属性。
按照默认, 会更新所有字符属性。然而, 用户可以明确地指定要更新哪个字符属性。如果已更新字形模式, 用户可以指定哪些字形大小要更新。
注意, 字符属性会更新到当前数据库, 而当前数据库可用 SET DATABASE 命令来设置。
如果在命令行中没有指定字符属性限定词, 就假定为 /FULL。
指定要更新的字形大小。font-size 的有效值是 24、32 和 40, 它们分别表示 24x24、32x32 和 40x40 的字形大小。用户也可以使用关键字 'ALL' 来表示要更新所有支持的字形大小。
这个限定词仅与 /FONT 或 /FULL (默认) 一起使用时才有效。
CMGR> UPDATE/FONT/COLLATING MYFILE
这个命令用 'myfile.pre' 中定义的字形模式和 'myfile.cvd' 中定义的整理特征来更新当前系统属性数据库。它将请求确认, 并且通知用户更新是成功还是失败。
CMGR> UPDATE/NOLOG/CONFIRM=CONFLICT/FONT/SIZE=24 MYFILE.PRE
这个命令用 'myfile.pre' 中定义的 24x24 大小的字形模式来更新当前系统属性数据库。除非发生错误, 否则不打印信息。此外, 除非目的地代码已定义字形模式, 否则不会请求确认。
CMGR 提供一个全屏幕字形编辑程序以建立和修改字符字形模式。编辑程序也允许用户输入和更改用户定义字符的整理特征。本章提供使用字形编辑程序的全面参考资料。同时, 也在章末提供一个快速参考, 介绍所有字形编辑程序的命令 (键关联)。
VT382 是 CMGR 字形编辑程序支持的终端类型。字形编辑程序启动时, 会把一些字块装入 VT382 终端的动态浮动字符集 (DRCS)。字块是一些图形字符, 用以显示编辑程序屏幕的编排设计。如果在编辑对话期间重置终端, 字块便会丢失, 屏幕显示也会搞乱。如要恢复, 必须先退出编辑程序然后重新启动。
字形编辑程序要求 VT382 的小键盘态需要设置为 "应用小键盘"。在调用 CMGR 时, 其实已设置了该小键盘态。所以、如果小键盘在 CMGR 对话期间给设置为 "数字小键盘", 用户便必须把它重置为 "应用小键盘" 以便编辑程序能恰当地操作。
%CMGR-W-NOSUCHFIL, 没有这文件, DISK$USER:[MYDIR]TEMP.PRE;
%CMGR-W-NOSUCHFIL, 没有这文件, DISK$USER:[MYDIR]TEMP.CVD;
%CMGR-I-LOADFONT, 正在把字块装入您的终端, 请稍候...
%CMGR-W-NOSUCHFIL, 没有这文件, DISK$USER:[MYDIR]TEMP.PRE;
%CMGR-W-NOSUCHFIL, 没有这文件, DISK$USER:[MYDIR]TEMP.CVD;
%CMGR-I-LOADFONT, 正在把字块装入您的终端, 请稍待...
有关 EDIT 命令的详情, 请参阅第 5 章中的全面描述。
OpenVMS/Hanzi 的字符系统中, 每个字符代码都与若干个字符属性相关。CMGR 是一个公用程序, 用以操纵用户定义字符和保留用户定义字符的这些属性。CMGR 当前支持的属性有:
为了要在 CMGR 命令中指定操纵哪个属性, 于是定义了一些字符属性限定词。此外, 为了便于在系统属性数据库以外操纵这些属性, 便使用预定义格式的文件来存储这些属性。这些文件合称为用户属性文件。
字形模式以预装入序列来存储, 整理数据则以文本文件格式的编码数字来存储。
CMGR 字形编辑程序支持编辑 24x24、32x32 和 40x40 大小的字形模式以及整理特征。用户可以使用该编辑程序来建立或修改预装入文件和整理数据文件。用户输入命令启动编辑程序时, 可以使用相应的属性限定词来指定编辑哪个属性。
字形编辑程序会根据指定的属性限定词来打开指定的预装入文件和/或整理数据文件。如果文件存在, 并为有效的预装入文件和整理数据文件, 字形编辑程序便会把所有预装入序列和整理数据读入内存。从此之后, 便只会用内存记录来执行所有的处理。
用户正常退出字形编辑程序时, 或按 <GOLD> + <PF3> 来输出编辑结果时 (6.6.15 节), 便会建立新的预装入文件和/或整理数据文件以存储编辑结果。
在 VT382 终端上成功地启动编辑程序以后, 用户应该可以看见一个类似图 6-1的屏幕:
屏幕的顶行是标题行, 包含如正编辑的字形大小、CMGR 正在其上运行的机器 (节点名) 以及当前时间等资料。时间不会校准至秒, 但会大约每分钟更新一次。
标题 "参考" 下面的左上角有三个小窗口, 是给 REFER 功能用来显示当前系统属性数据库或内存记录的字形的。字形按其实际大小显示, 用户在设计新字形时可以这些字形作为参考。有关如何使用 REFER 的详情, 请参阅 6.6.5 节中的描述。
REFER 窗口下面有一个字段, 用以展示正在处理哪个字符代码。区位码和内码都会显示出来。有关如何输入代码的详情, 请参阅 6.6.1 节。
在三个 REFER 窗口下面另有一个小窗口。这窗口用于显示当前正在编辑的字形。字形按实际大小显示。用户可通过此窗口看见字形实际上在终端上使用时的样子。有关如何 DISPLAY (显示) 字形的详情, 请参阅 6.6.5 节。
在代码和 DISPLAY 窗口下面, 展示了用户正在处理的文件。如果有空间的话,便会显示完整文件名, 否则仅显示文件名及其文件扩充名。
标记位置指明 EDIT 或 USE 缓冲区的标记的 X-Y 坐标。标记由 Mark 功能设置 (请参阅 6.6.9 节)。坐标的原点是左上角。X 坐标从左到右增加, Y 坐标则向下增加。
共有四个编辑态, 用户可选择设置其中一个来控制编辑功能的特征。光标态可以是 ON、OFF、ON/OFF 或 MOVE, 它控制光标移动时是否会开关光标下的象素。贴补态可以是 OVERLAY 或 OVERWRITE, 它控制贴补操作的结果。类型态可以是BODY 或 LETTER, 它指定是否保留包围字符的边界。绕回态可以是 ON 或 OFF,它允许或撤销绕回光标。此外, 光标态和贴补态可以影响几何图形的绘画。有关这些态的详情, 请参阅 6.6.4 节。
如果同时编辑整理特征和字形, 在 "整理特征" 的标题下面便会有三个字段。这三个字段是支持的整理特征, 即拼音、部首和笔画。如果其中一个特征采用默认值, 便显示一个 "-", 否则便显示该特征的值。
右手边的是主窗口。用户可在该窗口内移动光标或使用所提供的编辑功能 (如剪切与贴补、自动建立几何图形等) 来建立或修改字形。窗口内的每一点代表一个象素, 因此, 24x24 大小的字形便有 24x24 的点矩阵。
窗口周围的数字帮助用户找出矩阵内每一点的 X-Y 坐标。X 坐标从左到右地增加, 而 Y 坐标则向下增加。左上角是原点。
屏幕的底行用以显示信息, 也让用户输入字形编辑程序请求的资料。
字形编辑程序也支持编辑 32x32 和 40x40 大小的字形。图 6-2 展示编辑 40x40大小的字形时的编排设计。图 4-20 是编辑 32x32 大小的字形时的编排设计。有关如何编辑大小的详情, 请参阅 6.6.12 节。有关如何转换字形大小的详情, 请参阅 6.6.13 节。
CMGR 字形编辑程序提供一组功能以帮助用户编辑他们的字形。所有这些功能都可在键盘上按一、两个键来调用。在本节中, 您可以找到有什么支持的功能, 这些功能是什么以及如何调用它们。
在用户开始建立字形或输入一些整理值之前, 他们必须首先指定与该字形或整理值相关的字符代码。要指定该代码, 可使用应用小键盘上的 <Enter> 键。按<Enter> 之后, 会有提示询问代码。如果输入了用户定义区域或保留用户定义区域12 中的一个有效代码, 编辑便会启动。有关如何在 CMGR 中指定有效代码的详情, 请参阅 4.1 节。要编辑另一个代码的属性, 再次按 <Enter> 并指定该代码。当前的更改会保存 (6.6.16 节) 在内存中, 然后可开始编辑另一代码。
有些功能是以两次击键来调用的。第一个键是称为 GOLD 键的 <PF1>。按 GOLD 键之后, 便处于 COLD 状态, 小键盘上的键定义都会更改。按了第二个键后, GOLD 状态便会自然被清除。一般来说, 用户也可再按一次 <PF1> 来清除 GOLD 状态。
在主窗口中移动光标是建立或修改字形的基本方法。以下小节描述三组用以移动光标的键。
除了 <KP5> 以外, <KP1> 至 <KP9> 是用以移动光标的一组基本键。光标移动时,会把它下面的象素 ON 或 OFF, 这要视乎当时的光标态。有关详情, 请参阅 6.6.4.1 节。以 <KP5> 为中心的八个键正好对应于光标移动的八个方向。每次击键都会把光标往那方向移动一个象素。能否移入或移过边界则取决于类型态和绕回态。有关详情, 请参阅 6.6.4.3 节和 6.6.4.4 节。
共有四个编辑态, 即光标态、贴补态、类型态和绕回态。这些编辑态会影响一些编辑功能的特征。
光标态设置有 ON、OFF、ON/OFF 或 MOVE, 可使用 <PF3> 来互换。光标态处于 ON 态时, 以小键盘键来移动光标 (6.6.3.1 节) 可开启光标下的象素。光标态处于 OFF 态时, 便会关掉象素。光标态是 ON/OFF 时, 便会把象素从开互换为关或从关互换为开。最后, MOVE 态允许用户移动光标而不更改任何象素的状态。
贴补态影响剪切与贴补中的贴补操作。贴补态可以是 OVERLAY 或 OVERWRITE。在 OVERLAY 态, PASTE (贴补) 缓冲区的模式便叠加在编辑缓冲区中已经存在的模式上。在 OVERWRITE 态中, PASTE 缓冲区的模式将重写原来的模式上。
EDIT 缓冲区中的字形模式可以按其实际大小显示在 DISPLAY 窗口中 (6.4 节)。按 <KP.> 或 <CTRL/R> 便可执行以下操作。
为了帮助用户建立或修改字形, 编辑程序提供了 REFER 功能。REFER 窗口每次最多只可显示当前系统属性数据库或内存记录中的三个不同的字形。(6.4 节)。按 <Gold> + <KP.> 便有提示要求用户输入要引用的代码。在应答中, 用户应输入一个关键字(任选的)和一个字符代码。有效的关键字有 "DATABASE" 和 "MEMORY",可以缩写及用小写。如果没有指定关键字, 默认是 "DATABASE" (见图 4-11)。
如果关键字是 "DATABASE" 或没有指定关键字, 并输入了一个用户定义区域或保留用户定义区域13 内的有效代码, 而在当前系统属性数据库中已具该字形的定义,该字形便会按其实际大小显示在其中一个 REFER 窗口中。
同样地, 如果关键字是 "MEMORY", 并输入了一个有效的代码, 而内存记录中已具有该字形, 那么, 该字形便会显示在其中一个 REFER 窗口中 (见图 4-12)。
编辑程序允许用户把当前系统属性数据库中定义的字形或内存记录中的字形检索到 USE 缓冲区。在那里, 用户可以把字形的一部分剪切到 Paste 缓冲区, 然后把它贴补到 EDIT 缓冲区。
按 <KP0>, 便会有提示要求输入一个字符代码。在应答中输入一个关键字 (任选的) 和一个字符代码。有效的关键字有 "DATABASE" 和"MEMORY", 可以缩写和用小写。如果没有指定关键字, 默认是 "DATABASE" (见图 4-7)。
如果关键字是 "DATABASE" 或没有指定关键字, 并输入了一个用户定义区域或保留用户定义区域14 中的有效代码, 而当前系统属性数据库已具有该字形的定义,该字形便会给检索到 USE 缓冲区。USE 缓冲区会显示在主窗口中 (6.4 节)。
同样地, 如果关键字是 "MEMORY", 并输入了一个有效代码, 而内存记录已具有该字形, 那么, 该字形便会装入 USE 缓冲区并显示在主窗口中 (6.4 节)。
有些编辑程序操作只可在选择区域上执行。选择区域是主窗口内以反相显示的矩形区域。要开始选择, 按编辑小键盘上的 <Select> 或主小键盘上的 <s>。光标的当前位置是该选择区域的一角。接着, 把光标移到另一个位置。该位置便是选择区域的对角, 现以反相显示。要取消选择, 可再按 <Select> 或 <s>。
要选择整个位映象, 按 <GOLD> + <Select> 或按 <GOLD> + <s>。击键两次便可选择整个位映象。
编辑程序提供一个 Paste 缓冲区以便用户把一部分的模式剪切到缓冲区, 随后再把模式贴补到另一位置。要把模式剪切到该缓冲区, 首先选择一个区域 (6.6.7 节), 然后按 <Remove> 或 <c>。选择区域中的模式便从当前缓冲区中消失, 并存储到 Paste 缓冲区。要把该模式贴补到当前缓冲区, 可使用 <Insert Here> 或 <p> 键。
如果当前缓冲区没有足够空间插入 Paste 缓冲区的整个位映象, 它会在执行插入之前要求您确认。如果要插入的话, 也只会插入部分的位映象。
编辑程序提供一个 MARK 功能来协助编辑。用户可按 <GOLD> + <m> 来标记 EDIT 缓冲区或 USE 缓冲区的当前光标位置。标记坐标会展示于标记位置下面 (6.4 节)。稍后, 用户只需要击键两次 (也就是按 <GOLD> + <g>), 便可从缓冲区的任何位置跳到标记位置。
编辑程序提供一些能助用户绘画几何图形的功能。支持的几何图形有线、矩形和椭圆形。图形只可在用户选择的矩形区域内 (6.6.7 节) 绘画, 结果则取决于当前的光标态和贴补态设置 (6.6.4.1 节和 6.6.4.2 节)。
要画一个图形, 首先挑选适当的光标态和贴补态。一般规则是: 如果光标态是 ON,图形便以 ON 象素的方式画出; 如果光标态是 OFF, 图形将用 OFF 象素的方式画出; 如果光标态是 ON/OFF, 图形将用 ON 象素互换为 OFF 象素和 OFF 象素互换为 ON 象素的方式画出; 如果光标态是 MOVE, 便不会画出任何图形。如果是空心图形 (空心矩形和空心椭圆形), 贴补态会确定该空心图形是重写还是重叠原来的象素。有关态如何影响绘画图形功能的详情, 请参阅下列的表。
图形以 ON 互换为 OFF 和 OFF 互换为 ON 象素的方式来画出。如果是空心的矩形或空心的椭圆形, 图形内原来的模式不会更改。 |
||
设置适当的态后, 开始选择一个区域, 然后按下面列出的任何一个键来绘画对应的图形。
有几个特殊的编辑功能可助用户建立或修改字形, 包括在选择区域内倒置象素状态的功能和环绕轴线对称地重新排列模式的功能。
所有这些功能都只能在选择区域内操作。有关如何建立选择区域的详情, 请参阅 6.6.7 节。选择之后, 按下面的其中一个键来执行所需的功能。
字形编辑程序支持编辑 24x24、32x32 和 40x40 大小的字形。用户第一次进入编辑程序时, 所编辑的是 24x24 大小的字形。要改为编辑其他大小, 可按编辑小键盘上的 <Prev Screen> 或 <Next Screen>。字形大小依次是 24x24、32x32、 40x40, 然后再返回 24x24。按 <Prev Screen> 便反向前去下一个大小。按<Next Screen> 则正向前去下一个大小。之后, 下一个大小的字形便会装入主窗口以供编辑。
字形编辑程序让用户把一个种小的字形转换成同样字符代码但有另一大小的字形。假定用户建立了大小为 24x24 的字形, 然后, 他要建立大小为 32x32 的字形。他按 <Next Screen> (6.6.12 节) 后再按 <F18>, 便有提示要求输入字形转换前的大小。他应回答 '24’并按 <Return>, 字形便被转换并装入主窗口以供进一步编辑。
只有在命令行指定了 /COLLATING 或 /FULL (默认) 限定词后, 编辑程序才允许输入整理值。
按 <F17> 便有提示要求用户给每个支持的整理特征输入整理值。在应答中, 用户应输入有效的整理值。如果没有输入任何值, 便不更改当前值。如果输入 '-',便会把该整理特征设置为默认值。
正如 6.3 节和 6.6.16 节所述, 所有修改都只会保存在内存的记录中。要把字符属性输出到用户属性文件而不终止编辑对话期, 用户应按 <GOLD> + <PF3>。当前更改便会保存到内存记录, 再把所有内存记录写入新版本的用户属性文件。
要删除当前字符代码的内存记录, 用户应按 <GOLD> + <PF4>。系统会要求确认。如果回答是 'y', 该字符代码的所有字符属性都会从内存除去。如果回答是 'n',便会询问是否要删除该字符代码的某一具体属性。这样, 用户便可以选择只删除字形或整理值。
如要取消对当前字符代码所作的更改, 可按 <GOLD> + <KP->。系统会要求确认。如果回答是 'yes' 或 'y', 便可取消从输入该字符代码 (6.6.1 节) 至按 <GOLD> + <KP-> 期间所作的任何更改。然而, 如果在 '取消' 前已执行 '保存'(6.6.16 节), 在保存之前所作的更改便不会取消。
位映象 (Bitmap): 一个位映象由一系列字节表示, 而每字节的每一位均代表一个象素。在 CMGR 中, 字形模式以位映象来表示以供用户编辑。CMGR 支持三种字形大小。24x24 的字形模式需要 72 个字节的位映象来表示、32x32 的字形模式需要 128 个字节来表示、40x40 的字形模需要 200 个字节来表示。
整理特征 (Collating Characteristics): 这是指用户定义字符的整理属性。在 OpenVMS/Hanzi 中, 只支持三种整理特征, 分别是 "拼音"、"部首" 和 "笔画数"。
整理数据文件 (Collating Data File): 整理数据文件是用来存储字形编辑程序或一些 CMGR 命令建立的整理特征。只由 CMGR 使用并具有默认文件扩充名 ".CVD"。
字形模式、位映象字形模式 (Font Pattern, Bitmap Font Pattern): 这术语是指用户定义字符的字形属性。位映象字形模式由二维矩阵建立, 里面的每个元素就是一个象素。象素可以是 ON 或 OFF。这二维矩阵是以位映象格式存储的。
内码 (Internal Code): 内码是指 DEC 汉字字符的一种表示法。在 CMGR 中,大多数命令都接受内码作为参数或限定词的值。内码以一个前面带有 "H" 的十六进制值字符串来表示。请参阅本手册的 4.1 节。
按需装入 (On Demand Loading): 按需装入是在硬件设备上实施的一种机制。它允许在设备发出请求时把字形模式动态地装入该设备。
预装入 (Preload, Preloading): 预装入是指在需要实际使用或显示字形模式前,把一些字形模式装入原来没有该些字形模式的硬件设备。
预装入文件 (Preload File): 预装入文件以预装入序列格式存储位映象字形模式。预装入文件可以供 CMGR 使用或作预装入之用。它有一个默认文件扩充名".PRE"。
预装入序列 (Preload Sequence): 预装入序列是一个存储位映象字形模式的换码序列。预装入序列的格式与位映象不同, 除了位映象资料料外, 字形的大小和字符代码也会编写到预装入序列里。任何可以执行按需装入的硬件设备都可以解释此序列。
区位码 (Qu Wei Code): 区位码表示 DEC 汉字字符平面两个象限中的字符代码。每个象限再分成 94 区, 并且每区均有 94 个位置。区号是 "区" , 位置号是"位"。请参阅本手册的 4.1 节。
保留用户定义, 保留用户定义字符 (Reserved User-Defined Area, Reserved User-Defined Character): DEC 汉字字符集中有一个区域, 可以让用户使用 CMGR 命令的 /RESERVED 限定词来建立自己的字符或特殊字形模式。该区域称为 "保留用户定义区域", 而那些定义位置则称为 "保留用户定义字符"。
系统属性数据库 (System Attribute Database): 这是指用来存储位映象字形模式和整理特征的 "全系统数据库"。共有三个支持的系统属性数据库, 分别命名为 CMGR_DEFAULT、SONG 和 HEI。有了这三个数据库便可让用户存储不同字体的字形和整理值。这与系统数据库的定义相同。系统属性数据库可以再分成系统字形数据库和系统整理数据库。
字体 (Typeface): 同一中文字符可以用不同的式样写出。中文字符的这些不同外观就称为字体。例如, 有 SONG 体 (宋体) 和 HEI 体 (黑体)。使用 CMGR,用户可以在不同的系统属性数据库中存储和操纵不同字体的字形和整理值。
用户属性文件 (User Attribute File): 这是用户自己或由一些 CMGR 命令建立的数据文件。与属性文件的定义相同。共有两种用户属性文件: 一种是预装入文件, 另一种是整理数据文件。
用户定义区域、用户定义字符 (User-Defined Area, User-Defined Character): DEC 汉字字符集中有一个让用户建立自己的字符或特殊字形模式的区域, 这区域称为 "用户定义区域", 而这些定义位置则称为 "用户定义字符"。