45.11. A Bit of Unix Typesetting History
Unix was one of the first operating
systems to provide the capability to drive a typesetter.
troff is both a markup language and a tool for
generating typesetter output.
Originally, troff was designed to drive a device
called a C/A/T phototypesetter, and thus it generated a truly
frightening collection of idiosyncratic commands. For a while, there
were several version of
troff
and troff-related tools, including tools to
translate C/A/T output into something useful, versions of
troff that output slightly saner things than
C/A/T, and so forth. It was all very confusing.
Most systems these days still have a version of
troff, often GNU's
groff, which outputs PostScript and other
device-independent formats. Unix manpages are still written in
nroff, a related tool that takes the same input
and spits out ASCII-formatted text, using the
man macro package. However, most people
don't use troff and its related
tools for general text formatting much any more.
So why do we care about troff? The
Jargon Dictionary (Version 4.2.2) has this to say:
troff /T'rof/ or /trof/
n.
The gray eminence of Unix text processing; a formatting and
phototypesetting program, written originally in PDP-11 assembler and
then in barely-structured early C by the late Joseph Ossanna, modeled
after the earlier ROFF which was in turn modeled after the Multics
and CTSS program RUNOFF by Jerome Saltzer (that name came from the
expression "to run off a copy"). A
companion program, nroff, formats output for terminals and line
printers.
In 1979, Brian Kernighan modified troff so that it could drive
phototypesetters other than the Graphic Systems CAT. His paper
describing that work ("A Typesetter-independent
troff," AT&T CSTR #97) explains
troff's durability. After discussing the
program's "obvious
deficiencies -- a rebarbative input syntax, mysterious and
undocumented properties in some areas, and a voracious appetite for
computer resources" and noting the ugliness and
extreme hairiness of the code and internals, Kernighan concludes:
"None of these remarks should be taken as denigrating
Ossanna's accomplishment with TROFF. It has proven a
remarkably robust tool, taking unbelievable abuse from a variety of
preprocessors and being forced into uses that were never conceived of
in the original design, all with considerable grace under fire."
The success of TEX and desktop publishing
systems have reduced troff's relative importance,
but this tribute perfectly captures the strengths that secured troff
a place in hacker folklore; indeed, it could be taken more generally
as an indication of those qualities of good programs that, in the
long run, hackers most admire.
-- DJPH
| | | 45.10. Introduction to Typesetting | | 45.12. Typesetting Manpages: nroff |
Copyright © 2003 O'Reilly & Associates. All rights reserved.
|