Open main menu
Home
Random
Recent changes
Special pages
Community portal
Preferences
About Wikipedia
Disclaimers
Incubator escapee wiki
Search
User menu
Talk
Dark mode
Contributions
Create account
Log in
Editing
Troff
(section)
Warning:
You are not logged in. Your IP address will be publicly visible if you make any edits. If you
log in
or
create an account
, your edits will be attributed to your username, along with other benefits.
Anti-spam check. Do
not
fill this in!
==History== ''troff'''s origins can be traced to a [[text formatting|text-formatting]] [[computer program|program]] called [[RUNOFF]], which was written by [[Jerome H. Saltzer]] for [[Massachusetts Institute of Technology|MIT]]'s [[Compatible Time-Sharing System|CTSS]] [[operating system]] in the mid-1960s. (The name allegedly came from the phrase ''I'll run off a document''.) [[Robert Morris (cryptographer)|Bob Morris]] ported it to the [[GE 635]] architecture and called the program [[roff (software)|roff]] (an abbreviation of ''runoff'').{{citation needed|date=February 2020}} It was rewritten as [[rf (program)|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 Bell Labs patents department.<ref>{{cite book |last=Kernighan |first=B. W. |author-link=Brian Kernighan |date=October 2019 |title=Unix: A History and a Memoir |url=https://www.cs.princeton.edu/~bwk/memoir.html|publisher=Kindle Direct Publishing |page=42 |isbn=9781695978553}}</ref> This first formatting program was a reimplementation of McIllroy's ''roff'', written by [[Joe Ossanna|Joe F. Ossanna]]. When they needed a more flexible language, a new version of ''roff'' called [[nroff]] (''newer "roff"'') was written, which provided the basis for all future versions. When they got a [[CAT (phototypesetter)|Graphic Systems CAT phototypesetter]], Ossanna modified ''nroff'' to support multiple fonts and [[Typeface#Proportion|proportional spacing]]. Dubbed ''troff'', for ''typesetter roff'', its sophisticated output amazed the typesetter manufacturer and confused [[peer review]]ers, who thought that manuscripts using ''troff'' had been published before.<ref>J. F. Ossanna. ''Nroff/Troff User's Manual''. CSTR #54, Bell Labs, 1976. Revised by B. W. Kernighan, 1992.</ref><ref name="reader">{{cite tech report |first1=M. D. |last1=McIlroy |author-link1=Doug McIlroy |year=1987 |url=http://www.cs.dartmouth.edu/~doug/reader.pdf |title=A Research Unix reader: annotated excerpts from the Programmer's Manual, 1971β1986 |series=CSTR |number=139 |institution=Bell Labs}}</ref> As such, the name ''troff'' is pronounced {{IPAc-en|Λ|t|iΛ|r|Ι|f}} rather than *{{IPAc-en|Λ|t|r|Ι|f}}. With ''troff'' came ''nroff'' (they were actually almost the same program), which was for producing output for [[line printer]]s and character [[computer terminal|terminal]]s. It understood everything ''troff'' did, and ignored the commands which were not applicable, e.g., [[typeface|font]] changes. Ossanna's ''troff'' was written in [[PDP-11]] [[assembly language]] and produced output specifically for the [[CAT (phototypesetter)|CAT phototypesetter]]. He rewrote it in [[C (programming language)|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. Ossanna died before this task was completed, so [[Brian Kernighan]] took on the task of rewriting ''troff''. The newly rewritten version produced a device-independent code which was very easy for post-processors to read and translate to the appropriate printer codes. Also, this new version of ''troff'' (often called '''ditroff''' for ''device independent troff'') had several extensions, which included drawing functions.<ref>B. W. Kernighan. ''A Typesetter-Independent TROFF''. CSTR #97, Bell Labs, 1981, revised March 1982.</ref> The program's documentation defines the output format of ''ditroff'', which is used by many modern ''troff'' clones like GNU [[groff (software)|groff]]. In 1983, ''troff'' was one of several UNIX tools available for Charles River Data Systems' [[UNOS (operating system)|UNOS]] operating system under [[Bell Laboratories]] license.<ref>{{Cite book|year=1983|title=The Insider's Guide To The Universe|publisher=Charles River Data Systems, Inc.|url=https://www.1000bit.it/ad/bro/charles/CharlesRiverSystem-Universe.pdf|page=13}}</ref> The ''troff'' collection of tools (including [[#Preprocessors|pre]]- and post-processors) 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. Thus, there are at least the following variants of the original Bell Labs ''troff'' in use: * the SoftQuad DWB, based on USL DWB 2.0 from 1994; * the DWB 3.4 from [[Lucent]] Software Solutions (formerly USL); * troff, [[Plan 9 from Bell Labs|Plan 9]] edition. While ''troff'' has been supplanted by other programs such as [[Interleaf]], [[FrameMaker]], and [[LaTeX]], it is still being used quite extensively. It remains the default formatter for the [[UNIX manual|UNIX documentation]]. The software was reimplemented as [[groff (software)|groff]] for the [[GNU's Not Unix|GNU]] system beginning in 1990. In addition, due to the [[open-source software|open sourcing]] of [[Ancient UNIX]] systems, as well as modern successors such as the ditroff-based open-sourced versions found on [[OpenSolaris]] and [[Plan 9 from Bell Labs]], there are several versions of AT&T troff (CAT and ditroff-based<ref>See the man page of the ditroff -> postscript converter on OpenSolaris: {{man|1|dpost|OpenSolaris}}</ref>) available under various open-source licenses.
Edit summary
(Briefly describe your changes)
By publishing changes, you agree to the
Terms of Use
, and you irrevocably agree to release your contribution under the
CC BY-SA 4.0 License
and the
GFDL
. You agree that a hyperlink or URL is sufficient attribution under the Creative Commons license.
Cancel
Editing help
(opens in new window)