国际语言环境指南

添加打印机常驻字体

下列示例说明了将新的 PCF、TrueType 或 Type1 打印机常驻字体添加到配置文件时需要遵循的步骤。

将用于显示 0x00000021 - 0x0000007f 范围内字符的字体替换为 TrueType 字体,而不是当前配置的 PCF 字体。

在添加新字体前,请查看配置文件中与当前配置字体相对应的各种组件,如下所示。

FontNameAlias iso88591R  PCF  /usr/openwin/lib/X11/fonts/75dpi/courR18PCF.Z
FontNameAlias iso88591B  PCF  /usr/openwin/lib/X11/fonts/75dpi/courB18PCF.Z
.
.
.
FontGroup       iso88591         PCF       iso88591R iso88591B
.
.
.
MapCode2Font    0x00000020      0x0000007f      iso88591
.
.
.
CnvCode2Font iso88591R _xuiso88591 /usr/lib/lp/locale/$LANG/mp/xuiso88591.so
CnvCode2Font iso88591B _xuiso88591 /usr/lib/lp/locale/$LANG/mp/xuiso88591.so

假设您选择了 /usr/openwin/lib/locale/ja/X11/fonts/TT/HG-MinchoL.ttf 作为在 en_US.UTF-8 语言环境中进行映射的候选文件。由于这是一个 Unicode 字符映射的 TrueType 字体文件,因此在 .so 内的映射函数中,您只需要有直接返回传入 ucs-2 代码点的函数。

unsigned short _ttfjis0201(unsigned short ucs2) {
                 return(ucs2);
         }

将此程序代码保存在 ttfjis0201.c 文件中。 按如下方式创建一个共享对象。

cc -G -Kpic -o ttfjis0201.so ttfjis0201.c

但是,如果您正在映射 PCF 文件(如 /usr/openwin/lib/locale/ja/X11/fonts/75dpi/gotmrk20.pcf.Z ),则在 /usr/openwin/lib/locale/ja/X11/fonts/75dpi/ 目录中查找 fonts.dir 文件。熟悉与 XLFD 相对应的编码,即:

-sun-gothic-medium-r-normal--22-200-75-75-c-100-jisx0201.1976-0

如果 jisx0201 为该编码,请准备一个从 ucs-2 映射到 jisx0201 的共享对象。您需要获得映射表,以便创建 .so 模块(如果一个都没有提供的话)。对于 Unicode 语言环境,查找从许多字符集到 ftp.unicode.org/pub/MAPPINGS/ 下的Unicode 的映射。请遵循这些映射 (1)(1) 以编写 xu2jis0201.c 文件:

 unsigned short _xu2jis0201(unsigned short ucs2) {
                         if(ucs2>= 0x20 && ucs2 <= 0x7d )
                                 return (ucs2);
                         if(ucs2==0x203e)
                                 return (0x7e);
                         if(ucs2>= 0xff61 && ucs2 <= 0xff9f)
                                 return (ucs2 - 0xff60 + 0xa0);
                        return(0);
                 }

当您创建一个映射文件时,请将所有 UCS-2 包括到 jisx0201 事例中。

cc  -G -o xu2jis0201.so xu2jis0201.c