下一页 上一页 目录

5. 内容生成

5.1 生成 AFM 字体度量文件

AFM 字体度量文件对于显示已有的 TrueType 字体文件不是必需的,但对于创建新文件是必要的。ghostscript 程序 /usr/lib/ghostscript/5.50/printafm.ps 可以用来生成这些度量文件,但我发现使用 tetex-bin 软件包中的 ttf2afm 程序更容易。

以下脚本将为目录中所有 TrueType 字体生成一个 afm 文件


#!/bin/sh

set -e

for i in *.TTF
do
    /usr/bin/ttf2afm $i > ${i%TTF}afm
done

for i in *.ttf
do
    /usr/bin/ttf2afm $i > ${i%ttf}afm
done

ttf2afm 的一个小问题是,某些应用程序期望 afm 文件以 StartFontMetrics 标签开头,但 ttf2afm 创建的文件以注释开头。通过文本编辑器处理每个文件,这个“问题”很容易解决。

5.2 生成 font.map 文件

一旦我们有了 afm 文件,我们需要告诉系统如何找到它们。这通常通过 font.map 文件完成。

我一直无法找到关于此文件格式的文档,不像 fonts.dirfonts.scalefonts.alias 这些文件,它们都是由 mkfontdir 程序创建的。然而,最小格式似乎非常简单

别名似乎是通过多个条目实现的,并且文件名扩展名必须是小写。

5.3 图像处理:GIMP

GIMP 是 Gnu 图像处理和绘图程序。我无需进行任何额外的更改即可在 gimp 中使用 TrueType 字体。

5.4 ASCII 到 PostScript 转换:enscript

Enscript 是一个将 ASCII 转换为 PostScript 的程序。其他具有类似用途的程序有 a2psmpageEnscript 允许双面旋转、水印、页眉和基于关键字的语法着色。它不会重新格式化文本,通常用于打印源代码列表。

要将 TrueType 字体与 enscript 一起使用,您必须做两件事

有关详细信息,请参阅 enscript 文档。

一旦我进行了这些更改,我就可以毫无问题地使用 TrueType 字体了。

5.5 文本格式化和排版:groff

Groff 是 groff/troff 文档格式化系统的 Gnu 前端。Groff 的强大功能在 man 页面中体现得淋漓尽致。

用户 shell
$ zcat /usr/man/man1/groff.1.gz | groff -man | lpr

除了 man 页面外,大量的 Unix 文档使用带有 ms(有时是 me)宏的 troff 格式。例如,Debian xbooks 软件包包含 43 个使用带有 ms 宏的 troff 格式的文件。使用 groff,可以精美地打印这些材料。

Groff 是一个非常强大的系统,但它是用于 1960 年代印刷机的排版程序的孙子(或曾孙)。Groff 中的字体支持反映了这种传承。与它的前辈不同,Groff 使用 PostScript 作为默认输出格式,因此我们之前使用 ghostscript 的工作解决了问题的一半——groff 不必处理读取 TrueType 字体文件。它确实需要准确的字体度量,本节介绍如何重新生成必要的 groff 文件

Groff PostScript 描述文件
/usr/share/groff/font/devps/DESC
    Device description file
/usr/share/groff/font/devps/text.enc
    Encoding used for text fonts
/usr/share/groff/font/devps/generate/textmap
    Standard mapping.
/usr/share/groff/font/devps/generate/Makefile
    Standard makefile

我们必须编辑 Makefile 文件,

/usr/share/groff/font/devps/generate/Makefile
- afmdir=/usr/local/afm
+ afmdir=/usr/share/fonts/truetype

将字体名称更改为其 TrueType 等效项(例如,如果我们使用 Microsoft 的免费 TrueType 字体,我们将把 Helvetica 替换为 Arial),并将 TEXTFONTS 等更改为仅包含我们要重新定义的那些字体。

我们还必须编辑 /usr/share/groff/font/devps/generate/afmname 以使用 TrueType 字体名称和 afm 文件,并从 awk 中删除 "-e" 标志。

完成所有这些操作后,我们可以使用以下命令重建 groff 表:

用户 shell
$ cd /usr/share/groff/font/devps
$ make -f generate/Makefile

与往常一样,验证更改的最佳方法是使用视觉上独特的字体。例如,如果您使用的是 Microsoft 免费 TrueType 字体,则可以使用 Mistral 作为 TR

(我希望所有在四月一日愚人节那天重新配置系统以使用古英语字体打印手册页的人都支付我版税!)

5.6 文本格式化和排版:TeX

TeX 是大多数 GNU/Linux 系统上另一组常见的文本格式化和排版程序。

TeX 字体可以使用 mktexmf 创建,但我对确切的过程知之甚少。更多详细信息将很快提供。


下一页 上一页 目录