安装 PostScript 字体

如果我们只能使用标准软件包中的少数几种字体,groff 就不会那么有趣了。幸运的是,如果您正在使用 PostScript 设备,groff 可以轻松安装任何 Type 1 字体。groff 还配备了自动将字体包含在 PostScript 输出文件中的机制,因此您无需采取任何额外步骤将它们下载到您的打印机。

要开始字体安装,请找到 groff PostScript 设备文件所在的 devps 目录。在 Linux 系统上,这将在类似如下的位置:

/usr/share/groff/font/devps
从这个目录中进行操作,字体安装基本上是一个三步过程。 我们将通过安装 Optima 系列的 Roman 字体来概括以下步骤。 此处,内部 PostScript 字体名称为“Optima”,groff 将设置为以 OptimaR 访问此字体。(我们将按照此设置,为 Optima 系列的斜体、粗体和粗斜体变体分别使用 OptimaI、OptimaB 和 OptimaBI。)

步骤 1. 从 type1 afm 文件创建 groff 度量文件

<command:> afmtodit.pl -e text.enc  op______.afm  textmap  OptimaR
步骤 2. 将 .pfb 文件转换为 .pfa 格式
<command:> pfbtops  op______.pfb >op______.pfa
步骤 3. 编辑 devps 目录中名为 download 的文件,并添加包含以下条目的行
Optima    op______.pfa
第一步使用 groff 附带的 afmtodit.pl 实用程序,将字体的 PostScript 度量文件从 afm 格式(代表“adobe metric file”)转换为 dit 格式(代表“device independent troff”)。 在示例中,我们使用-e选项来使用text.enc随 groff 提供的编码文件重新编码字体,以访问比标准编码通常提供的更多字符。接下来的三个参数是必需的,分别是字体的 .afm 文件、groff 的 textmap 文件以及我们希望从 groff 引用此字体的名称。

第二步使用 pfbtops 实用程序将 Type 1 字体从二进制格式转换为“ASCII”格式。 大多数 Type 1 字体都以紧凑的二进制格式分发,该格式由 .pfb 扩展名识别。 但是,groff 的自动下载机制需要 Type 1 字体的 ASCII 版本,通常由 .pfa 扩展名识别。

第三步使用 groff 的自动下载机制注册字体。 /devps 目录中名为 download 的文件是一个简单的 ASCII 文件,每行有两个空格分隔的字段。 第一个字段具有字体的内部 PostScript 名称,第二个字段给出了要为此字体下载的 .pfa 文件的位置。

就这样。 按照与上述相同的模式,对斜体、粗体和粗斜体变体重复此操作。 然后,Optima 字体就可以在您的文档中按需使用了

.ALIAS  FONT     ft
.ALIAS FONTFAM fam .FONT OptimaR .<p> #The text here will appear in Optima Roman. .FONTFAM Optima .<p> #The text here will also appear in Optima Roman. The .fam request is a groff extension that makes it easier to work with typeface families. .<p> It is also possible to change fonts with \f[OptimaI]inline\fP escape sequences. Since the groff family mechanism is in use, we can also change \fIinline\fP with the abbreviated escape sequence to get the italic variant of the current family.
在上面的示例文本中,我们展示了使用别名 groff 请求来更改字体。 当然,主要文章应该为您提供一些关于如何设计和导出改进的用户界面,以使用 groff 宏选择字体的想法。

一个大型且完整的免费 Type 1 字体集是 Computer Modern 集合 - 源自 Donald Knuth 的 TEX/Metafont 系统 - 转换为 PostScript 格式并由 Blue Sky Research 免费提供。 这些字体与 groff 排版程序配合良好,并提供完整的 f 连接符集。 上述过程中需要对连接符进行一项修改。 由于 groff 识别 f 连接符,因此您需要编辑在上面步骤 1 中创建的 dit 文件。 找到文件顶部附近以单词“ligatures”开头的行,并删除不是 fi、ff、fl、ffi 或 ffl 的任何条目。

对于 Bitstream 500 和 Corel 集合中的字体,也需要类似的过程。 这些字体中的大多数都有 fi 和 fl 连接符字符,但 afmtodit.pl 实用程序没有“找到”它们。 在这种情况下,只需编辑在上面步骤 1 中创建的 dit 文件。 在文件顶部附近插入以下单行,紧接在以单词开头的行之前kernpairs:

ligatures fi fl 0
现在,groff 将能够访问这些连接符并自动将其插入到打印的输出中。 这是使 groff 排版的文档具有精致和专业品质的许多小细节之一。
© . All rights reserved.