Groff ( ) (also called GNU troff) is a typesetting system that creates formatted output when given plain text mixed with formatting commands. It is the
GNU
GNU () is an extensive collection of free software (383 packages as of January 2022), which can be used as an operating system or can be used in parts with other operating systems. The use of the completed GNU tools led to the family of operat ...
replacement for the
troff
troff (), short for "typesetter roff", is the major component of a document processing system developed by Bell Labs for the Unix operating system. troff and the related nroff were both developed from the original roff.
While nroff was inten ...
and
nroff
nroff (short for "new roff") is a text-formatting program on Unix and Unix-like operating systems. It produces output suitable for simple fixed-width printers and terminal windows. It is an integral part of the Unix help system, being used to fo ...
text formatters.
Groff contains a large number of helper programs,
preprocessor
In computer science, a preprocessor (or precompiler) is a program that processes its input data to produce output that is used as input in another program. The output is said to be a preprocessed form of the input data, which is often used by so ...
s, and postprocessors including
eqn,
tbl
Part of the troff suite of Unix document layout tools, tbl is a preprocessor that formats tables in preparation for processing with troff/nroff.
Overview
Mike Lesk is the original author of tbl. Like the main troff program, it uses command l ...
,
pic and
soelim. There are also several macro packages included that duplicate, expand on the capabilities of, or outright replace the standard troff macro packages.
Groff development of new features is active, and is an important part of free, open source, and
UNIX
Unix (; trademarked as UNIX) is a family of multitasking, multiuser computer operating systems that derive from the original AT&T Unix, whose development started in 1969 at the Bell Labs research center by Ken Thompson, Dennis Ritchie, and ot ...
derived operating systems such as
Linux
Linux ( or ) is a family of open-source Unix-like operating systems based on the Linux kernel, an operating system kernel first released on September 17, 1991, by Linus Torvalds. Linux is typically packaged as a Linux distribution, which ...
and 4.4
BSD
The Berkeley Software Distribution or Berkeley Standard Distribution (BSD) is a discontinued operating system based on Research Unix, developed and distributed by the Computer Systems Research Group (CSRG) at the University of California, Berk ...
derivatives — notably because troff macros are used to create
man pages
A man page (short for manual page) is a form of software documentation usually found on a Unix or Unix-like operating system. Topics covered include computer programs (including library and system calls), formal standards and conventions, and ev ...
, the standard form of documentation on Unix and Unix-like systems.
OpenBSD
OpenBSD is a security-focused, free and open-source, Unix-like operating system based on the Berkeley Software Distribution (BSD). Theo de Raadt created OpenBSD in 1995 by forking NetBSD 1.0. According to the website, the OpenBSD project em ...
has replaced groff with
mandoc
mandoc (historically called mdocml) is a utility used for formatting man pages in BSD Operating Systems (e.g. NetBSD), specifically those written in the ''mdoc'' and ''man'' macro languages. Unlike the groff and older troff and nroff tools tha ...
in the base install, since their 4.9 release. Also
macOS Ventura
macOS Ventura (version 13) is the nineteenth and current major release of macOS, Apple's desktop operating system for Mac computers. The successor to macOS Monterey, it was announced at WWDC 2022 on June 6, 2022, and launched on October 24, 2 ...
.
History
groff is an original implementation written primarily in
C++
C++ (pronounced "C plus plus") is a high-level general-purpose programming language created by Danish computer scientist Bjarne Stroustrup as an extension of the C programming language, or "C with Classes". The language has expanded significan ...
by
James Clark and is modeled after
ditroff
troff (), short for "typesetter roff", is the major component of a document processing system developed by Bell Labs for the Unix operating system. troff and the related nroff were both developed from the original roff.
While nroff was inten ...
, including many extensions. The first version, 0.3.1, was released June 1990. The first stable version, 1.04, was announced in November 1991. groff was developed as
free software
Free software or libre software is computer software distributed under terms that allow users to run the software for any purpose as well as to study, change, and distribute it and any adapted versions. Free software is a matter of liberty, no ...
to provide an easily obtained replacement for the standard AT&T troff/nroff package, which at the time was proprietary, and was not always available even on branded
UNIX
Unix (; trademarked as UNIX) is a family of multitasking, multiuser computer operating systems that derive from the original AT&T Unix, whose development started in 1969 at the Bell Labs research center by Ken Thompson, Dennis Ritchie, and ot ...
systems. In 1999, Werner Lemberg and Ted Harding took over maintenance of groff. The current version of groff is 1.22.4,
released on .
See also
*
TeX
Tex may refer to:
People and fictional characters
* Tex (nickname), a list of people and fictional characters with the nickname
* Joe Tex (1933–1982), stage name of American soul singer Joseph Arrington Jr.
Entertainment
* ''Tex'', the Italian ...
*
Desktop publishing
Desktop publishing (DTP) is the creation of documents using page layout software on a personal ("desktop") computer. It was first used almost exclusively for print publications, but now it also assists in the creation of various forms of online c ...
Notes
References
External links
*
groff mailing list archive(searchable)
hosted b
Nabble archiving the groff mailing list into a searchable forum (sadly none of the emails are visible today).
* gives background and examples of troff, including the GNU roff implementation.
{{GNU
GNU Project software
groff
Free typesetting software