Share on Facebook Share on Twitter Email
Answers.com

Troff

 

(Typesetting RunOFF) A Unix utility that formats documents for typesetters and laser printers. Using a text editor, troff codes are embedded into the text and the troff command converts the document into the required output. See nroff and TeX.

Download Computer Desktop Encyclopedia to your iPhone/iTouch

Search unanswered questions...
Enter a question here...
Search: All sources Community Q&A Reference topics
Hacker Slang: troff
Top

[Unix] 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.


Wikipedia: Troff
Top

troff is a document processing system developed by AT&T for the Unix operating system.

Contents

History

troff can trace its origins back to a text formatting program called RUNOFF, written by Jerome H. Saltzer for MIT's CTSS operating system in the mid-1960s. (The name allegedly came from the phrase at the time, I'll run off a document.)

Bob Morris ported it to the GE 635 architecture and called the program roff (an abbreviation of runoff). It was rewritten as rf for the PDP-7, and at the same time (1969), Doug McIlroy rewrote an extended and simplified version of roff in the BCPL programming language.

The first version of Unix was developed on a PDP-7 which was sitting around Bell Labs. In 1971 the developers wanted to get a PDP-11 for further work on the operating system. In order to justify the cost for this system, they proposed that they would implement a document formatting system for the AT&T patents division. This first formatting program was a reimplementation of McIllroy's roff, written by Joe F. Ossanna.

When they needed a more flexible language, a new version of roff called nroff (Newer 'roff' ) was written. It had a much more complicated syntax, but provided the basis for all future versions. When they got a Graphic Systems CAT Phototypesetter, Ossanna wrote a version of nroff that would drive it. It was dubbed troff, for typesetter 'roff'. As such, the name troff is pronounced t-roff rather than trough.

With troff came nroff (they were actually almost the same program), which was for producing output for line printers and character terminals. It understood everything troff did, and ignored the commands which were not applicable (e.g. font changes).

Unfortunately, Ossanna's troff was written in PDP-11 assembly language and produced output specifically for the CAT phototypesetter. He rewrote it in C, although it was now 7000 lines of uncommented code and still dependent on the CAT. As the CAT became less common, and was no longer supported by the manufacturer, the need to make it support other devices became a priority. However, before this could be done, Ossanna died.

So, Brian Kernighan took on the task of rewriting troff. The newly rewritten version produced a device independent code which was very easy for postprocessors to read and translate to the appropriate printer codes. Also, this new version of troff (called ditroff for device independent troff) had several extensions, which included drawing functions. It was described in a Bell Labs Computing Science Technical Report entitled "A Typesetter-independent TROFF"; it is available from the Computing Science Technology website in gzipped PostScript here. The document defines the output format of ditroff, which is used by many modern troff clones like GNU groff.

The troff collection of tools was eventually called Documenter's WorkBench (DWB), and was under continuous development in Bell Labs and later at the spin-off Unix System Laboratories (USL) through 1994. At that time, SoftQuad took over the maintenance, although Brian Kernighan continued to improve troff on his own. There are thus currently four variants of the original Bell Labs troff:

  • An ancient variation from Bill Joy, still shipped by Sun Microsystems.
  • The SoftQuad DWB, based on USL DWB 2.0 from 1994
  • The DWB 3.4 from Lucent Software Solutions (USL)
  • Troff, Plan 9 edition

Use of troff and family was reduced somewhat in the 1990s, but it is still being used quite extensively. While troff has been supplanted by other programs such as Interleaf, FrameMaker and LaTeX, it is still the default format of the UNIX documentation.

The software was reimplemented as groff for the GNU system beginning in 1990. In addition, due to the open sourcing of Ancient UNIX Systems, as well as modern successors such as OpenSolaris and Plan 9 from Bell Labs, several versions of AT&T troff are available under various open source licenses.

Features

troff features commands to designate fonts, spacing, paragraphs, margins, footnotes and more. Unlike many other text formatters, troff can position characters arbitrarily on a page, even overlapping them, and has a fully programmable input language. Separate preprocessors are used for more convenient production of tables, diagrams, and mathematics. Inputs to troff are plain text files that can be created by any text editor.

Extensive macro packages have been created for various document styles. A typical distribution of troff includes the me macros for formatting research papers, man macros for creating Unix man pages, and the ms and mm macros for letters, books, technical memoranda, and reports.

As troff evolved, since there are several things which cannot be done easily in troff, several preprocessors were developed. These programs transform certain parts of a document into troff input, fitting naturally into the use of "pipelines" in Unix — sending the output of one program as the input to another (see pipes and filters).

The eqn preprocessor allows mathematical formulae to be specified in a much simpler and more intuitive manner. tbl is a preprocessor for formatting tables. The refer preprocessor (and the similar program bib) processes citations in a document according to a bibliographic database.

Later, several other preprocessors appeared. The pic preprocessor provides a domain-specific programming language with a wide range of drawing functions. The ideal preprocessor does much the same thing, although via a much different paradigm. The grap preprocessor takes specifications for graphs, but, unlike other preprocessors, produces pic code.

Reimplementations

References

See also

External links


 
 
Learn More
nroff (technology)
grind (computer jargon)
CrApTeX (computer jargon)

Help us answer these
You found a worm that was long brownish in a water troff for a dog around 10cm long does anyone know what this is?
What is a troff?

Post a question - any question - to the WikiAnswers community:

 

Copyrights:

Computer Desktop Encyclopedia. THIS COPYRIGHTED DEFINITION IS FOR PERSONAL USE ONLY.
All other reproduction is strictly prohibited without permission from the publisher.
© 1981-2009 Computer Language Company Inc.  All rights reserved.  Read more
Hacker Slang. The Jargon File. Copyright © 2007.  Read more
Wikipedia. This article is licensed under the Creative Commons Attribution/Share-Alike License. It uses material from the Wikipedia article "Troff" Read more

 
Answer these
» More

Mentioned in