简体中文 Solaris 用户指南

第 7 章 字体

关于本章

本章描述简体中文 Solaris 操作环境中包含的 PostScript 字体、使用 PostScript 字体需要什么以及如何编辑这种字体。

Display PostScript 系统 (DPS)

简体中文 Solaris 操作环境在“Display PostScript 系统 (DPS)”中提供 PostScript 字体。本节描述在简体中文 Solaris 软件中使用 DPS 需要什么。有关进一步的详细信息,请参见由 Adobe® Systems 公司出版的 Programming the Display PostScript System with X。

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

简体中文 Solaris 操作环境包括下表中列出的字体。可以像使用罗马字体那样使用任何简体中文字体。

表 7–1 简体中文 Solaris 操作环境 PostScript 字体

字体名 

说明 

Song-Medium 

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

Song-Medium-EUC 

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

Kai-Medium 

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

Kai-Medium-EUC 

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

FangSong-Medium 

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

FangSong-Medium-EUC 

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

Hei-Medium 

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

Hei-Medium-EUC 

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

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

图形 7–1 简体中文文本按 PostScript 输出显示的样本

Graphic

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

可以使用任何一个罗马字体和简体中文字体的组合来创建复合字体。例如,下面的 PostScript 代码定义了一个复合字体:Times 斜体+楷体。该复合字体用 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 环绕定义中,可以像使用罗马字体那样使用简体中文字体。以下代码样本创建下一个图形中的显示。

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 (中文文本) 以显示所设计的中文文本。有关示例,请参见下图。

图形 7–2 使用简体中文 Solaris 操作环境 DPS

Graphic

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

将 BDF 转换为 PCF 格式

在应用程序能够使用修改后的 BDF 文件之前,必须先把它转换成 PCF 格式文件。

    如下所示将已编辑的字体转换为 X11 PCF 格式,以使这些字体能在简体中文 Solaris 操作环境中使用:


system% bdftopcf -o myfont14.pcf myfont.bdf

有关更多信息,请参见 bdftopcf(1) man 页。

安装和检查已编辑的字体

  1. 要添加新位图,将 .pcf 字体文件移入字体目录。在将 .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. 可以键入以下命令,使用 X 字体显示器 (xfd) 查看字体:


    system% xfd -fn Myfont-Medium14
    

所有简体中文字体都有 XLFD 字体名称,可以使用 xlsfonts 公用程序来显示这些名称,如下所示:


system% xlsfonts | grep gb2312

sdtudctool 创建字符

可以使用 sdtudctool 公用程序中的绘图工具来创建新字符。 下面是不同简体中文语言环境的用户定义字符代码范围:

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

zh 

0xD7FA-0xD7FE 

zh.GBK 

0xAAA1-0xAFFE 

zh_CN.GB18030 

0xAAA1-0xAFFE 

zh.UTF-8 

0xAAA1 - 0xAFFE 

sdtudctool 公用程序支持位图、Type 1 和 CID 字体。 还可以为新字符指定字体大小。本节包含 sdtudctool 的使用步骤。

使用 sdtudctool

本节包含关于用 sdtudctool 公用程序和其他工具创建、输入和打印新字符的说明。有关 zh 语言环境中的示例,请使用下面的步骤。

  1. 要启动此公用程序,键入下面的命令:


    system% sdtudctool
    

    出现下面的窗口。

    Graphic
  2. 单击“字符”按钮。

    出现下面的对话框:

    Graphic
  3. 指定新字符的代码位置。

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

  5. 单击“保存”保存字符。

  6. 继续创建新的字符。

  7. 完成后,从“文件”菜单中选择“保存”保存对环境所做的更改。

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

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

    选项对话框出现。

    Graphic
  2. 打开“追加字体路径”将 UDC 字体别名追加到字体路径上。

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

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

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

  4. 从下列尺寸中为位图字体选择一个或多个字体尺寸(以镑值为单位):12、14、16、20、24。

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

    出现下面的窗口。

    Graphic
  2. 要关闭窗口,再次单击该图标。

向新拼音输入法注册 UDC
  1. 从“文件”菜单中选择“保存”,或者从“文件”菜单中选择“打开字典工具”。 这将调用 sdtudc_register 工具。

    Graphic
  2. 在 "reading" 列中输入拼音。 请注意,只有有效的拼音可以向新拼音输入法注册。

    Graphic
  3. 单击“确认”按钮。

    显示出下面的对话框。

    Graphic
  4. UDC 及其拼音将注册在 /var/tmp/newpyudc.txt 中。 单击对话框中的“确定”以确认。

键入新字符

要键入您创建的字符,与 UDC 拼音一起使用新拼音输入法,或者使用内码输入法。

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

    Graphic
  2. 在 GB 内码模式下键入 "D7FA"。

    Graphic
打印新字符

可以使用 "mp" 公用程序打印您创建的字符。

  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