简体中文 Solaris 用户指南

第 9 章 字体

本章描述简体中文 Solaris 操作系统支持使用的 PostScript、TrueType 和位图字体。下列几节讨论如何使用和编辑字体。

显示 PostScript 系统 (DPS)

简体中文 Solaris 操作系统在显示 PostScript 系统 (DPS) 中提供 PostScript 字体。本节描述字体和 DPS 工具。有关进一步的详细信息,请参见由 Adobe® Systems 公司出版的 《Programming the Display PostScript System with X》。

使用简体中文 PostScript 字体和 DPS 工具

简体中文 Solaris 操作系统包含下表中列出的字体。

表 9–1 简体中文 Solaris 操作系统 PostScript 字体

字体名 

说明 

宋体 

宋体 EUC 的别名;可像罗马字体一样使用。 

宋体 EUC 

宋体字体,EUC 编码,水平显示;可像罗马字体一样使用。 

楷体 

楷体 EUC 的别名;可像罗马字体一样使用。 

楷体 

楷体字体,EUC 编码,水平显示;可像罗马字体一样使用。 

仿宋体 

仿宋体 EUC 的别名;可像罗马字体一样使用。 

仿宋体 EUC 

仿宋体字体,EUC 编码,水平显示;可像罗马字体一样使用。 

黑体 

黑体 EUC 的别名;可像罗马字体一样使用。 

黑体 EUC 

黑体字体,EUC 编码,水平显示;可像罗马字体一样使用。 

下图显示了一个宋体字体的样例。

上文介绍了此图形。

创建复合的罗马和简体中文字体

可以使用任何一个罗马字体和任意简体中文字体的组合来创建复合字体。例如,下列 PostScript 代码定义了一个复合字体:Times-Italic+Kai-Medium。此复合字体用 Times 斜体显示 ASCII 字符,用楷体显示简体中文字符。

/makeEUCfont {
        /AsianFont exch def
        /WestFont  exch def
        /NewFont   exch def

        /CIDInit /ProcSet findresource 
        begin
          NewFont [ AsianFont WestFont ]
          beginrearrangedfont
            1 usefont
            1 beginbfrange
              <00> <7e>  <00>
            endbfrange
          endrearrangedfont
        end
  } bind def

  /LC_Times-Roman /Times-Roman /Kai-Medium makeEUCfont

在 DPS 编程中使用简体中文字体

在 DPS 自动换行定义中,可以像使用罗马字体那样使用简体中文字体。下列代码样例生成 Hello World 图形中的显示。

	defineps PSWDisplayText(char *text)
        	/pointSize 50 def
        	/Helvetica pointSize selectfont
        	(Hello World) stringwidth pop 2 div neg 0 moveto
        	(Hello World) show
	
        	/cpSize 40 def
        	/Song-Medium cpSize selectfont
        	(text) stringwidth pop 2 div neg pointSize neg moveto
        	(text) show
	endps

可以在 C 程序中调用 PSWDisplayText(中文文本)以显示所设计的中文文本。

Window 用英文和简体中文字符显示文本 Hello World。

简体中文 Solaris 在 DPS 中提供 TrueType 支持。

将 BDF 字体转换为 PCF 格式

必须将 BDF 字体转换为 PCF 格式,以使字体可以在简体中文 Solaris 应用程序中使用。

如何将 BDF 字体转换为 PCF 格式

  1. 使用 bdftopcf 命令将 BDF 字体转换为 PCF 格式。


    system% bdftopcf -o myfont14.pcf myfont14.bdf
    
  2. 用已转换的 PCF 文件替换下列目录中的 BDF 文件:$OPENWINHOME/lib/locale/locale-name/fonts

如何安装和检查已编辑的字体

  1. 压缩 .pcf 字体文件并将其移入字体目录中。


    system% compress myfont14.pcf
    
  2. 在字体目录中运行以下命令。

    .bdf 文件不应在字体目录中。


    system% cat >> fonts.alias
    -new-myfont-medium-r-normal--16-140-75-75-c-140-gb2312.1980-0
    Myfont-Medium14
    ^D
    system% mkfontdir
    system% xset +fp `pwd`
    
  3. 使用如下所示的命令行查看字体。


    system% xfd -fn Myfont-Medium14
    

所有简体中文字体都含有 XLFD 字体名称。可以使用 xlsfonts 实用程序显示字体名称。


system% xlsfonts | grep gb2312

使用 sdtudctool 创建字符

sdtudctool 实用程序支持位图、Type 1 和 CID 等字体。本节包含使用 sdtudctool 创建、输入和打印下列代码范围中简体中文语言环境中的新字符的说明。

表 9–2 语言环境的代码点

语言环境 

代码范围 

zh 

0xD7FA-0xD7FE 

zh.GBK 

0xA140-0xA7A0 

0xAAA1-0xAFFE 

0xF8A1-0xFEFE 

zh_CN.GB18030 

0xA140-0xA7A0 

0xAAA1-0xAFFE 

0xF8A1-0xFEFE 

如何使用 sdtudctool

可以使用下列步骤创建 zh 语言环境中的字符。

  1. 要启动此实用程序,请键入以下命令:


    system% sdtudctool
    

    出现下面的窗口。

    上文介绍了此图形。
  2. 单击“字符”按钮。

    出现下面的对话框:

    上文介绍了此图形。
  3. 指定新字符的代码位置。

  4. 使用绘图工具创建字符的轮廓或位图。

  5. 单击“文件”菜单中的“保存”来保存字符。

    新字符保存在 $HOME/.Xlocale/{locale}/fonts/UDC. 中。

如何指定 sdtudctool 选项

  1. 从“文件”菜单中选择“选项”。

    出现“选项”对话框。

    上文介绍了此图形。
  2. 打开“附加字体路径”选项以将 UDC 字体别名附加到字体路径上。

  3. 打开“保存字体路径”选项以将字体文件添加到系统字体路径上。

    新的字体文件(位于 $HOME/.Xlocale/{locale}/fonts/UDC 中)将在 $HOME/.OWfontpath 文件中列出,并在您下次登录时可由 X 服务器使用。

    如果“保存字体路径”是关闭的,字体文件仍会保存在 $HOME/.Xlocale/{locale}/fonts/UDC 中,但不会在您下次登录时添加到系统字体路径中。

  4. 为位图字体选择下列一个或多个字体大小(以点为单位):12、14、16、20 和 24。

如何查看字符参照

  1. 要查看字符参照,单击“帮助”菜单下的图标。

    出现下面的窗口。

    上文介绍了此图形。
  2. 要关闭窗口,再次单击该图标。

如何向新拼音输入法注册 UDC

  1. 从“文件”菜单中选择“保存”或从“文件”菜单中选择“打开字典工具”选项。出现 sdtudc_register 工具面板。

    上文介绍了此图形。
  2. 在 "reading" 列中输入拼音。

    上文介绍了此图形。
    注意 –

    只有有效的拼音可以向新拼音输入法注册。


  3. 单击“确认”按钮。

    出现下列对话框。

    上文介绍了此图形。
  4. UDC 及其拼音将注册到 /var/tmp/newpyudc.txt 中。单击对话框中的“确定”以确认。

如何键入新字符

使用新拼音或内码输入法为您创建的字符键入 UDC 的拼音拼写。

  1. 在新拼音模式下键入 shan

    上文介绍了此图形。
  2. 在 GB 内码模式下键入 D7FA

    上文介绍了此图形。

如何打印新字符

  1. 设置 mp 实用程序的字体路径。


    system% setenv UDC_BASE $HOME/.Xlocale/zh
    
  2. 指定 UDC 的配置文件,以打印包含 UDC 的文本文件。


    system% /usr/openwin/bin/mp -u/usr/lib/lp/locale/zh/mp/mp.conf.U\
     udc.txt > udc.ps
    

更改字体目录

/usr/dt/bin 目录中的 Xsession 脚本包含下列字体路径:/usr/openwin/lib/locale/locale/X11/fonts,其中 localezhzh.GBKzh_CN.GB18030。要动态添加不同的字体目录路径,请键入下列命令。


system% xset +fp font_directory-path
system% xset fp rehash

如何添加字体目录路径

    键入下列命令以动态添加不同的字体目录路径。


    system% xset +fp font_directory-path
    system% xset fp rehash
    

位图和 TrueType 字体

本节中的表列出可用于 zh_CN.EUCzh_CN.GBKzh_CN.GB18030 语言环境的 TrueType 字体和位图字体。

下表显示了 zh 语言环境的 TrueType 字体。

表 9–3 zh_CN.EUC 语言环境的 TrueType 字体

完整系列名 

子系列 

格式 

供应商 

编码 

 仿宋 R TrueType 汉仪 GB2312.1980
 黑体 R TrueType Monotype GB2312.1980
 楷体 R TrueType Monotype GB2312.1980
 宋体 R TrueType Monotype GB2312.1980

下表显示 zh 语言环境的位图字体。

表 9–4 zh_CN.EUC 语言环境的位图字体

完整系列名 

子系列 

格式 

编码 

 宋体 B PCF (14,16) GB2312.1980
 宋体 R PCF (12,14,16,20,24) GB2312.1980

表 9–5 zh_CN.GBK 语言环境的 TrueType 字体

完整系列名 

子系列 

格式 

供应商 

编码 

 仿宋 R TrueType 综艺 GBK
 黑体 R TrueType 综艺 GBK
 楷体 R TrueType 综艺 GBK
 宋体 R TrueType 综艺 GBK

下表显示 zh_CN.GBK 语言环境的位图字体。

表 9–6 zh_CN.GBK 语言环境的位图字体

完整系列名 

子系列 

格式 

编码 

 宋体 R PCF (12,14,16,20,24) GBK

下表显示 zh_CN.GB18030 语言环境的 TrueType 字体。

表 9–7 zh_CN.GB18030 语言环境的 TrueType 字体

系列名 

子系列 

格式 

供应商 

编码 

仿宋 

TrueType 

方正 

GB18030–2000 

宋体 

TrueType 

方正 

GB18030–2000 

黑体 

TrueType 

方正 

GB18030–2000 

楷体 

TrueType 

方正 

GB18030–2000 

下表显示 zh_CN.GB18030 语言环境的位图字体。

表 9–8 zh_CN.GB18030 语言环境的位图字体

系列名 

子系列 

格式 

编码 

宋体 

PCF(12,14,16,20,24) 

GB18030–2000