国际语言环境指南

第 7 章 具有 mp 的打印过滤器增强模式

本章描述具有 mp 的打印增强模式。 它包括下列主题:

用于 UTF-8 的打印

Solaris 9 环境中提供了增强的 mp(1) 打印过滤器,可用来打印各种输入文件格式,包括用 UTF-8 编写的纯文本文件。 它使用 Solaris 系统提供的 TrueType 和 Type 1 可缩放字体和 X11 位图字体。它还可以使用打印机常驻字体并且可用作打印服务器客户程序。

该公用程序的输出为标准的 PostScript ,可以发送给任何 PostScript 打印机。当用作 X Print 服务器客户程序时,mp(1) 还可以输出任何页面描述语言,mp 受打印服务器支持。

要使用该公用程序,请键入下面内容:

system% mp 文件名 | lp

由于该公用程序接受 stdin 流,因此您还可以将其作为过滤器来使用。

system% cat 文件名 | mp | lp 

可将该公用程序设置为一个行式打印机的打印过滤器。例如,下面的命令序列通知打印机服务 LP,打印机 lp1 只接受 mp 格式文件。 此命令还将打印机 lp1 安装在端口 /dev/ttya 上。 有关详细信息,请参阅 lpadmin (1M) 手册页。

system# lpadmin -p lp1 -v /dev/ttya -I MP
system# accept lp1
system# enable lp1

使用 lpfilter(1M),可以为过滤器添加该公用程序,如下所示:

system# lpfilter -f lp1 -F 路径名 

该命令通知 LP,可通过名为 路径名 的过滤器描述文件使用转换器(此处为 mp)。 路径名 包含下面内容:

Input types: simple
Output types: MP
Command: /usr/bin/mp

使用 /usr/bin/mp 过滤器将缺省类型文件的输入转换为 PostScript 输出。

若要打印 UTF-8 文本文件,请使用下面命令:

system% lp -T MP UTF-8-file

有关更详细的信息,请参阅 mp 手册页。

mp 打印过滤器增强模式概述

mp 打印过滤器在 Solaris 9 发行版中得到了增强。 最新版的 mp 可以用三种不同的模式进行内部处理,以便在一种语言环境中产生输出文件来打印国际文本。可用的模式包括:

下面部分将描述何时使用特定的打印方法以及 mp 针对这些打印方法所使用的配置和支持文件。

与语言环境特定的字体配置文件 mp.conf 一起使用 mp

如果命令行中没给出 -D-P 选项,则此打印方法为缺省方法,除非 /usr/openwin/lib/locale/$LANG/print /usr/lib/lp/locale/$LANG/mp 目录中存在 prolog.ps 文件。prolog.ps 文件强迫 mp 使用文件中的 PostScript 嵌入字体进行打印。即使语言环境中存在 prolog.ps,使用 -M 选项也会忽略 prolog.ps 文件而使用 mp.conf 文件(如果它存在的话)。

此方法使用 /usr/lib/lp/locale/$LANG/mp/mp.conf 字体配置文件。您可能不必更改此文件,除非您需要使用其它替换字体进行打印。此文件可使用 TrueType、Type 1 或pcf 字体进行配置。/usr/lib/lp/locale/C/ 包含此打印模式和下一个方法的公用打印页布局文件 .ps定制现有的 prolog 文件并添加新的 prolog 文件中提供了如何定制这些文件的说明。

与语言环境特定的 PostScript 描述文件一起使用 mp

如果命令行中没给出 -D-P 选项,并且存在 /usr/openwin/lib/locale/$LANG/print/prolog.ps ,则 prolog.ps 文件将被前置到输出中。根据 .ps prolog 页的打印样式,布局文件也被前置到输出中。

此打印方法仅使用 PostScript 字体文件。mp 用作 Xprt(X 打印服务器)客户程序 中描述了 prolog.ps 文件的定制。

mp 用作 Xprt(X 打印服务器)客户程序

此项支持使 mp 能够为连接到网络(受 X 打印服务器支持)的任何打印机进行打印输出。PostScript 和许多 PCL 版本也由此命令支持。

如果使用了 -D-P 命令选项,并且您的环境中没有设置任何 XPDISPLAY 变量,则打印服务器启动脚本将在运行客户程序的计算机端口 2100 处启动 Xprt 服务器。该脚本还在 mp 完成后终止打印服务器。如果设置了 XPDISPLAYmp 客户程序将尝试同运行于 XPDISPLAY 的打印服务器进行联系。 在这种情况下,如果服务器没有运行,则不会对它进行启动尝试。

/usr/lib/lp/locale/C/mp 目录包含用作 Xprt 客户程序的mp .xpr 打印页布局文件。 这些是为 300 dpi 打印机创建的样本文件。如果目标打印机具有不同的 dpi 值,该 dpi 值将自动转换为目标打印机的分辨率。

配置文件的本地化

配置文件为添加或更改字体项或字体组项提供灵活性。

系统缺省配置文件 /usr/lib/lp/locale/$LANG/mp/mp.conf ,其中 $LANG 是发生打印的语言环境中的语言环境变量。用户可具有一个个人配置文件,该配置文件由 -u config.file 路径 选项指定。

为了便于兼容,连字或变体字型已被编码为字符,这种形式称为 变形显现形式mp.conf 文件主要用于将一种语言环境中的中间代码点映射为用来打印该代码点的字体编码中的变形显现形式。

中间代码点可以是宽字符,也可以是可移植布局服务 (PLS) 层的输出。 复杂文本布局打印要求中间代码点为 PLS 输出。由 mp(1) 生成的缺省中间代码为 PLS 输出。

当前受支持的字体格式是可移植已编译格式 (PCF)、TrueType 和 Type1 格式。既支持系统常驻 Type1 字体又支持打印机常驻 Type1 字体。请记住下列有关 mp.conf 配置文件的格式和内容:

mp.conf 文件中的不同部分包括:

字体别名

mp.conf 文件的字体别名部分用于定义打印时使用的每种字体的别名。这部分的每一行都具有以下形式:

FontNameAlias 字体别名 字体名称 字体路径 			
字体别名

为字体名称起别名的常用惯例是,指定字体的编码/脚本名称,名称后面跟一个字母,表示该字体是 Roman 字体、粗体、斜体或粗斜体(R、B、I 或 BI)。

例如,由于 /usr/openwin/lib/X11/fonts/75dpi/courR18.pcf.Z, 是 iso88591 Roman 字体,因此给它起的别名为 iso88591R。

字体类型

.pcf 字体指定 PCF 、为 Adobe Type1 字体指定 Type1 并为 truetype 字体指定 TrueType 。 在此 mp.config 文件中只能配置这三种字体。

字体路径

请在此处给出字体文件的绝对路径名。对于 Type1 打印机常驻字体,只指定字体名称,如 Helvetica

例如,

FontNameAlias   prnHelveticaR   Type1   Helvetica

字体组定义

您可以将同一类型的字体合并为一个字体组。字体组的格式如下:

关键字

FontGroup

字体组名称

字体的组名称。

组类型

字体类型。只为同一类型的字体(PCF、Type1 和 TrueType)创建字体组。

Roman

字体组中的 Roman 字体名称。

粗体

字体组中的粗体字体名称。

斜体

字体组中的斜体字体名称。

粗斜体

字体组中的粗斜体字体名称。

对于创建组,只需要 Roman 字体项。粗体、斜体和粗斜体字体均为可选。邮件/新闻文章的标题可用不同类型的字体来显示,例如。如果只定义了 Roman 字体,则将使用它代替其它字体。

映射部分

mp.conf 文件的映射部分从中间代码范围映射到语言环境中的字体组。 此部分中的每一行都具有如下形式。

关键字

MapCode2Font。

range_start

0x 开头的 4–字节十六进制值表示要映射到一个或多个字体组的代码范围的开始。

range_end

表示要映射的代码范围的结尾。它可以是 '-' 值;其中只有单个中间代码点被映射到目标字体。

一个 Type1、PCF 或 TrueType 字体组,表示形式通过它进行打印。

关联部分

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

添加打印机常驻字体

下列示例说明了将新的 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

创建共享对象文件

此示例创建一个共享对象文件。

添加此字体的方法是:将下面的行添加到 mp.conf 文件的相应部分。下列示例说明如何添加 TrueType 字体。除了更改 PCF 关键字(而不是TrueType)外, PCF 字体遵循同一模式。

FontNameAlias   jis0201R TrueType /home/fn/HG-Minchol.ttf
FontGroup     jis0201 TrueType jis0201R
MapCode2Font  0x0020 	0x007f  jis0201
CnvCode2Font   jis0201R 	 _ttfjis0201 <.so path>

其中 .so 路径指向 xu2jis0201.so 文件。

用已更改的 mp.conf 文件调用 mp(1) 会导致范围 0x0020-0x007f 以新字体打印。也用同样的 .so 文件映射其它日文字符范围,例如,范围 0x0000FF61 0x0000FF9F

为了维护向下兼容性, /usr/openwin/lib/locale/$LANG/print/prolog.ps 文件(如果存在的话)用于在当前语言环境(其中 $LANG 是语言环境组件之一)中创建输出。在这种情况下,不使用任何配置文件机制。

请参阅 /usr/lib/lp/locale/en_US.UTF-8/mp/mp.conf,它是一个样例 mp.conf 文件。

定制现有的 prolog 文件并添加新的 prolog 文件

prolog 文件可分为两种主要类别:

PostScript 文件定制

PostScript 文件属于下列类别:

依赖于语言环境的 prolog 文件

prolog.ps 文件的目的是设置非通用字体。应用程序使用这些预定义 PostScript 字体名称进行打印。prolog 文件必须为桌面设置日历管理器和 mp 至少定义下面字体名称。

下列示例使用这些字体打印指定的特殊本地字符集:

100 100 moveto
/LC_Times-Roman findfont 24 scale font setfont(您的语言环境中的任何字符串)显示 

Solaris 本地化工具包为日语环境提供了一个样例 prolog.ps 文件。另外,此文件也可以在 /usr/openwin/lib/locale/ja/print/ 目录中找到。

下列示例说明如何在现有的 prolog.ps 中添加或更改复合字体。

%
(Foo-Fine) makecodeset12 
(Base-Font) makeEUCfont
%

假设您要定义一种称为 LC_Base-Font 的复合字体:

LC_Base-Font 是 Foo-Fine 和名为 Base-Font 的基准字体的复合字体。Foo-Fine 是包含本地字符集的字体。您不需要任何高深的 PostScript 知识就可以添加或更改字体。

对示例版本进行研究是创建 prolog.ps 文件的最好方法。在示例 prolog.ps 中,需要编写两个例程,即 makecodeset12 makeEUCfontMakecodeset12 设置本地字体编码信息。此例程可能会因语言环境的不同而不同。MakeEUCfont 将基准字体和区域字体合并为一个复合字体。prolog 文件的创建者应具有良好的 PostScript 知识,以便编写 makecodeset12makeEUCfont

prolog.ps 文件支持只保持向后兼容性。不要为一种语言环境的打印需要创建新的 prolog.ps 文件。请换而使用 mp.conf

prolog.ps 的路径为

/usr/openwin/lib/locale/$LANG/print/prolog.ps

通用 PostScript prolog 文件

通用 prolog 文件为 mp.common.ps

其它每个页面布局 prolog 文件都需要包含此文件。

mp.common.ps 文件位于 /usr/lib/lp/locale/C/mp/ 目录中,它包含一个 PostScript 例程以便将标准编码中的字体重新编码为 ISO 8859–1 编码。.reencodeISO 例程从打印布局 prolog 文件中调用以更改字体的编码。通常情况下,此 prolog 文件不需要任何定制。如果用户正在创建自己的 prolog 文件,请将环境变量 MP_PROLOGUE 设置为指向包含修改后的 prolog 文件的目录。

打印布局 prolog 文件

打印布局 prolog 文件、mp.*.ps 文件包含控制用于打印的页面布局的例程。除了为具有用户名、打印日期和页号的打印页提供标题和页脚外,这些 prolog 文件还可以提供其它信息。例如,prolog 文件可提供有效的打印区域尺寸以及打印所要使用的横向和纵向模式。

打印布局 prolog 文件为:

需要在每个 prolog 文件中定义一组标准函数。当新的打印页启动、某个打印页结束或新的列结束时这些函数即被调用。这些函数的实现定义了打印输出的打印属性。

下列 PostScript 变量被 mp(1) 程序在运行时定义。所有的打印布局文件都可以使用这些变量来打印动态信息,如 用户名 主题打印时间。 从变量获取的此信息通常出现在打印页的标题或页脚中。

用户

正在运行 mp 的用户的名称,可从系统 passwd 文件中获取。

MailFor

用于保存要打印的文章类型名称的变量。此变量的可能值为:

  • “Listing for” - 当输入为文本文件时

  • “Mail for” - 当输入为邮件文件时

  • “Article from” - 当输入为新闻组文章时

主题

从邮件和新闻标题中获取的主题。您可以使用 -s 选项将某个主题强迫为邮件和新闻文件以及正常的文本文件。

Timenow

出现在标题和页脚中的打印时间。此信息从 localtime() 函数中获取。

下列函数在打印布局 prolog 文件中实现。所有这些函数都可以使用子函数。

endpage

用法:page_number endpage

当到达打印页的底部时调用。此函数恢复页面的图形上下文并发出 “showpage” 命令。在某些 prolog 文件中,标题和页脚信息仅以逐页模式(而不是逐列模式)显示。您可以实现此函数以调用显示标题和页脚灰度级菱形的子函数。

newpage

用法: page_number newpage

当某个新页开始时要执行的例程或命令。设置横向打印模式、保存打印图形上下文和翻译页坐标是用于例程的一些函数。

endcol

用法: page_number col_number endcol

用于显示标题和页脚信息。移到新的打印位置,等等。

要添加新的打印布局 prolog 文件,您需要在打印布局 prolog 文件内显式定义下列变量。

NumCols

打印页中的列数。缺省值为 2。

PrintWidth

打印区域的宽度(以英寸为单位)。缺省值为 6。

PrintHeight

打印区域的高度(以英寸为单位)。缺省值为 9。

.xpr 文件定制

默认情况下,这些文件位于 /usr/lib/lp/locale/C/mp/ .xpr 文件与每个 PostScript prolog 布局文件相对应,mp.common.ps 除外。您可以通过定义 MP_PROLOGUE 环境变量来定义替换的 prolog 目录。

这些文件用作关键字/值对。以 # 开头的行被认为是注释。空格分隔不同的标记(除非显式进行说明)。每个 .xpr 文件的三个主要部分由下列关键字对绑定:

某些关键字/值对可用于这三个区域。下面分别描述每个区域。

STARTCOMMON/ENDCOMMON 关键字

出现在 STARTCOMMON 关键字之后并且在 ENDCOMMON 关键字之前的所有关键字/值对定义打印页的常规属性。通过使用“/”来分隔关键字的不同有效值。

ORIENTATION 0/1

“0”表示以纵向模式打印而“1”表示以横向模式打印。

PAGELENGTH 无符号整数

一个值,用于表示每个逻辑页的行数。

LINELENGTH 无符号整数

一个值,用于表示每行的单列字符数。

NUMCOLS 无符号整数

每个物理页的逻辑页数。

HDNGFONTSIZE 无符号整数

标题字体磅值(以小数点表示)。

BODYFONTSIZE 无符号整数

正文字体磅值(以小数点表示)。

PROLOGDPI 无符号整数

创建当前 .xpr 文件使用的每英寸点数比例。

YTEXTBOUNDARY 无符号整数

此 y 坐标确定了页或逻辑页(列)中文本打印的边界。此边界还可以用于检查文本打印是否发生在预期的区域内。在复杂文本布局和 EUC 打印时需要此边界,这是因为从相应的字体中获取的字符高度信息有可能是错的。

STARTTEXT 无符号整数 无符号整数

以小数点表示的 x/y 点,这是物理页的第一个逻辑页中实际文本打印的开始位置。

PAGESTRING 0/1

1 表示需要在标题中的页号前附加一个“Page”字符串。

0 表示只显示页号。

EXTRAHDNGFONT font string 1 font string 2、... font string n

“font string 1”到“font string n”是 X 逻辑字体描述。将关键字 EXTRAHDNGFONT 从逗号分隔字体名称列表中分隔开的标记是 ",而不是空格或制表符。 当打印标题时,给定的首选项是这些字体,而不是内置字体。通常情况下,EXTRABODYFONT 用于分配在 /usr/openwin/server/etc/XpConfig/C/print/models/<model name>/fonts 目录中配置的打印机常驻字体。

fonts.dir 文件包含打印机常驻字体的 XLFD。

一种字体通常被指定为

 "-monotype-Gill Sans-Regular-r-normal- -*-%d-*-*-p-0-iso8859-2" 

.xpr 文件中。 "%d(如果存在的话)被 mp(1) 替换为 .xpr 文件中当前标题字体的磅值。x 分辨率和 y 分辨率由 * 指定,并且平均宽度字段设置为 0 以表示可缩放字体的选择(如果可能的话)。您也可以给出更多的特定字体名称。

EXTRABODYFONT font string 1font string 2、... font string n

EXTRAHDNGFONT 相同,除了这些字体被用来打印页面正文以外。

XDISPLACEMENT 带符号/无符号 int

给出要应用于该页的 x 坐标位移,以便在 x 方向移动该页的内容。此位移可以是 +ve 或 -ve 值。

YDISPLACEMENT signed/unsigned int

与 x 位移相同(除了移动发生在 y 方向以外)。

当您发现某些打印机具有非标准页边距宽度并且需要在页中移动打印内容时,这两个关键字很有用。

STARTPAGE/ENDPAGE

此部分中的关键字值对由 STARTPAGE ENDPAGE 关键字绑定。此部分包含要用于物理页的绘图和标题信息。物理页可包含许多逻辑页,但是,包含在这些关键字之间的所有绘图例程仅一次应用于逻辑页。

有效的绘图实体为 LINE ARCXDrawLine()XDrawArc() 函数在这些关键字的值上执行。

此部分内的尺寸被映射在 PROLOGDPI 单元中。角度以度数表示。

LINE x1 y1 x2 y2

x/y 无符号坐标定义连接一条直线的两个点。

ARC x y width height angle1 angle2

x 和 y 均为表示弧线起始点的无符号整数。width 和 height 为表示弧线的宽度和高度的无符号整数。

USERSTRINGPOS x y

无符号坐标表示标题中用户信息的打印位置。

TIMESTRINGPOS x y

无符号坐标表示标题中打印时间的打印位置。

PAGESTRINGPOS x y

无符号坐标表示每个打印页的页字符串的打印位置。

SUBJECTSTRINGPOS x y

无符号坐标表示页中主题的打印位置。

STARTFORCEDPAGE/ENDFORCEDPAGE

-n 选项分配给 mp 时,STARTPAGE/ENDPAGE 部分内的所有装饰都不打印。但是,即使给出 -n 选项,也会打印 STARTFORCEDPAGE/ENDFORCEDPAGE 部分内所包含的任何内容。

STARTCOLUMN/ENDCOLUMN

所有关键字与 STARTPAGE/ENDPAGE 中描述的相同,除了此部分中的条目可 NUMCOLS 次应用于物理页以外。

如果 NUMCOLS 为 3,则物理页的可打印区域将被分为三个部分,并且每页中直线、弧线或标题装饰将出现三次。

STARTFORCEDCOLUMN/ENDFORCEDCOLUMN

-n 选项分配给 mp 时,STARTCOLUMN/ENDCOLUMN 部分内给定的所有装饰都不打印。但是,即使给出 -n 选项,也会打印 STARTFORCEDCOLUMN/ENDFORCEDCOLUMN 部分内包含的任何内容。

创建新的 .xpr 文件

下面的值是针对不同关键字的 mp(1) 程序缺省值(如果在 STARTCOMMON/ENDCOMMON 部分的 .xpr 文件中没有指定这些值的话)。

STARTPAGE/ENDPAGE STARTCOLUMN/ENDCOLUMN 绑定的其它两个部分不需要缺省值。

当创建新的 .xpr prolog 文件时,只需要指定与缺省值不同的值。

若要创建不带装饰的页,请使用如下方式:每个物理页有四个逻辑页,打印格式为纵向格式。

在这种情况下,您不需要其它两个部分:

如果您不在打印页中加入装饰,则不需要这些参数。所有坐标的缺省值均为 300 dpi,除非您没有指定 PROLOGDPI 关键字。如果目标打印机的分辨率不同,程序将调整 .xpr 文件以适应该分辨率。

当创建 .xpr 文件时,您必须事先知道纸张的尺寸。在美国使用的纸张为 8.5x11 英寸,对于分辨率为 300 dpi 的打印机,2550X3300 为总的尺寸。大多数打印机无法从纸张的左上角打印。相反,它们在物理页周围留一定的页边距。这意味着即使您试图从 0,0 打印,也不会打印到页的左上角。当创建新的 .xpr 文件时,您需要考虑此限制。