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
创建的文件以注释开头。通过文本编辑器处理每个文件,这个“问题”很容易解决。
font.map
文件
一旦我们有了 afm
文件,我们需要告诉系统如何找到它们。这通常通过 font.map
文件完成。
我一直无法找到关于此文件格式的文档,不像 fonts.dir
、fonts.scale
和 fonts.alias
这些文件,它们都是由 mkfontdir
程序创建的。然而,最小格式似乎非常简单
AFM
文件名,不带扩展名别名似乎是通过多个条目实现的,并且文件名扩展名必须是小写。
GIMP
GIMP
是 Gnu 图像处理和绘图程序。我无需进行任何额外的更改即可在 gimp
中使用 TrueType 字体。
enscript
Enscript
是一个将 ASCII 转换为 PostScript 的程序。其他具有类似用途的程序有 a2ps
和 mpage
。Enscript
允许双面旋转、水印、页眉和基于关键字的语法着色。它不会重新格式化文本,通常用于打印源代码列表。
要将 TrueType 字体与 enscript
一起使用,您必须做两件事
/usr/share/fonts/truetype
添加到您的 AFMPath
。有关详细信息,请参阅 enscript
文档。
一旦我进行了这些更改,我就可以毫无问题地使用 TrueType 字体了。
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
。
(我希望所有在四月一日愚人节那天重新配置系统以使用古英语字体打印手册页的人都支付我版税!)
TeX
TeX
是大多数 GNU/Linux 系统上另一组常见的文本格式化和排版程序。
TeX
字体可以使用 mktexmf
创建,但我对确切的过程知之甚少。更多详细信息将很快提供。