troff

更新时间:2023-05-04 19:02

troff是一款由AT&T为Unix开发的文字处理软件

简介

troff是一个由AT&TUnix开发的文字处理软件。troff的历史能够回溯到一个叫做RUNOFF的排版程序,在20世纪六十年代中期由Jerome H. Saltzer为MIT的CTSS操作系统编写。(其名称据传是来自于当时一个短语I'll run off a document的缩写。)

Robert Morris把它移植到GE 635体系结构上并称其roff(runoff的缩写)。它为了能在PDP-7上运行被重写为rf,与此同时,Douglas McIlroy用BCPL编程语言重写了一个roff的扩展和简化了的版本。

第一个版本

Unix的第一个版本是在贝尔实验室里的一台PDP-7上开发出来的。在1971年开发者们为了能在操作系统上做进一步的工作想获得一台PDP-11。为了能够协调这台设备的成本,他们建议说他们应该为AT&T的专利部门开发一个文档处理系统。第一个处理程序是对McIlroy的roff的重新编写,由Joe F. Ossanna完成。

发展进程

当他们需要一个更加灵活的语言时,编写了一个roff的新版本叫做nroff(Newer ‘roff’)。该版本有着更加复杂的句法,但是它为未来的版本奠定了基础。当他们获得了一个图像设备CAT照相排版机时,为了能够驱动它,Ossanna又编写了nroff的一个版本。这个版本被叫做troff,因为它是排字机(typesetter)的roff。为此,troff的发音应该是t-roff而不是trough。 随troff而来的有nroff,它是为针式打印机和字符终端设备产生输出的。它理解troff所理解的任何事情,并且不再使用不合适的命令(比如字体改变)。

不幸的是,Ossanna的troff是用PDP-11汇编语言编写的,所以只能产生CAT照相排版机的输出。他用C语言进行了重写,尽管这变成了7000行无注释的代码并且仍然依赖CAT。随着CAT越来越不常见,并且不再受到制造商的支持,使troff支持其他设备就成为了一个要优先解决的问题。可是在这被完成之前Ossanna就去世了。Brian Kernighan接手了重写troff的工作。新写的版本产生了一个与设备无关的带代码,这让后继者非常容易容易阅读并改写成适合其他打印机的代码。同时,这个新版本的troff(因为是device independent troff被称为ditroff)具有了几项扩展,其中包含了绘图函数。该版在贝尔实验室的一篇题为《一个与排版机无关的troff》的计算机科学技术报告中得到描述,该报告经gzip压缩的PostScript版可在计算机科学技术网这里获得。该文章定义了ditroff的输出格式,改格式被像GNUgroff这样的许多现代troff的克隆版本所使用。

troff的工具集最终被称作Documenter's WorkBench(DWB),并且直到1994年还在贝尔实验室和后来抽资脱离贝尔实验室的UNIX系统实验室(USL)中继续开发。当时,SoftQuad公司接管了维护任务,尽管Kernighan自己还在改进troff。因此现在有四个起初贝尔实验室的troff的变体:

一个由Bill Joy编写的古老变体,现在仍然由Sun公司掌管

SoftQuad的DWB,基于USL1994年的DWB 2.0

朗讯的DWB 3.4

troff,Plan 9中的版本

troff及其家族的使用在20世纪九十年代有了某种程度的减少,但是仍然被广泛地使用着。虽然troff正在被像InterleafFrameMakerLaTeX这样的其他程序所取代,但它仍然是Unix手册的缺省格式。 始于1990年的GNU项目重新编写了该软件,起名为groff。另外,由于早期Unix版本的开源化,以及其现代的后继者OpenSolaris和9号计划,AT&T的troff的几个版本均可在不同的开源许可证下获得。

免责声明
隐私政策
用户协议
目录 22
0{{catalogNumber[index]}}. {{item.title}}
{{item.title}}