国际语言环境指南

关联部分

mp.conf 文件的关联部分将每种字体与共享对象相关联,此共享对象把中间代码点映射到字体编码中的变形显现形式。此部分中的每一行都具有如下形式。

关键字

CnvCode2Font

字体别名

为字体定义的别名。

映射函数

获取中间代码并返回字体编码中的变形显现形式,变形显现形式再获取字型索引,从而得到字型。

具有映射函数的文件路径

包含映射函数的 .so 文件名。您可以使用 dumpcs 中的公用程序来查找 EUC 语言环境的中间代码集。


注意:

mp (1) 使用的当前 TrueType 引擎只能处理格式 4 和 PlatformID 3 cmap。即,您只能配置 Microsoft .ttf 文件。 另外,要想使 TrueType 字体正常工作,字符映射编码必须是 Unicode 或 Symbol。由于 Solaris 环境中的大多数 .ttf 字体遵循这些限制,因此您可以在 mp.conf 文件内映射 Solaris 软件中的所有 TrueType 字体。


您创建用于映射与 PCF type1 X 逻辑字体说明 (XLFD) 相对应的字体的共享对象后,再创建从中间代码范围映射到由 XLFD 指定的编码的共享对象。 例如:

-monotype-arial-bold-r-normal-bitmap-10-100-75-75-p-54-iso8859-8

相应的 PCF 字体为:

/usr/openwin/lib/locale/iso_8859_8/X11/fonts/75dpi/ariabd10.pcf.Z

该字体以 isoISO 8859-8 进行编码,因此共享对象必须在中间代码和对应的 ISO 8859-8 代码点之间映射。

如果带有 XLFD 的 TrueType 字体:

-monotype-arial-medium-r-normal--0-0-0-0-p-0-iso8859-8

具有对应的字体:

/usr/openwin/lib/locale/iso_8859_8/X11/fonts/TrueType/arial__h.ttf

您应该在中间代码和 Unicode 之间映射,因为前一种 TrueType 字体的 cmap 编码在 Unicode 中。在此 TrueType 字体示例中,假定 en_US.UTF-8 语言环境中与希伯来字符(由 PLS 层产生)相对应的样例中间代码为 0xe50000e9。 由于该字体为 Unicode 编码,因此以这样的方式来设计对应的 .so 模块内的函数,即当您传递 0xe50000e9时,输出与 Unicode 中的变形显现形式相对应。 此处的示例为 0x000005d9

映射函数的函数原型应为:

unsigned int function(unsigned int inter_code_pt)

以下是可在 mp.conf: 中使用的可选关键字/值对:

PresentationForm WC/PLSOutput

缺省值为 PLSOutput。如果用户指定 WC,则生成的中间代码点为宽字符。 对于 CTL 打印,应使用此缺省值。

如果语言环境为非 CTL 语言环境并且键盘值为 PLSOutput,则该值将被忽略,而且 mp(1) 将生成宽字符代码。

如果语言环境支持 CTL,则您可以使用下表中列出的可选关键字/值对。这些变量可以假设该表中间列中给出的任何可能值。

表 7–1 可选关键字/值对

可选关键字 

可选值 

缺省  

Orientation

ORIENTATION_LTR/

ORIENTATION_RTL/

ORIENTATION_CONTEXTUAL

ORIENTATION_LTR

Numerals

NUMERALS_NOMINAL/

NUMERALS_NATIONAL/

NUMERALS_CONTEXTUAL

NUMERALS_NOMINAL

TextShaping

TEXT_SHAPED/

TEXT_NOMINAL/

TEXT_SHFORM1/

TEXT_SHFORM2/

TEXT_SHFORM3/

TEXT_SHFORM4

TEXT_SHAPED