Groff (software)

{{short description|Unix typesetting software used for man pages}}

{{lowercase}}

{{Infobox software

| logo = Official gnu.svg{{!}}class=skin-invert

| name = groff

| author = James Clark

| developer = GNU Project

| released = {{Start date and age|1990|06}}

| latest release version = {{wikidata|property|preferred|references|edit|Q288684|P348|P548=Q2804309}}

| latest release date = {{wikidata|qualifier|preferred|single|Q288684|P348|P548=Q2804309|P577}}

| latest preview version = {{wikidata|property|preferred|references|edit|Q288684|P348|P548=Q51930650}}

| latest preview date = {{wikidata|qualifier|preferred|single|Q288684|P348|P548=Q51930650|P577}}

| programming language = C++

| genre = Typesetting

| license = 2009: GPL-3.0-or-later{{efn|GPL-3.0-or-later since 2009-01-04.{{cite web|url=https://git.savannah.gnu.org/cgit/groff.git/commit/?h=1.20&id=0ba9ac513f520a1a82bc2392340c2b9f65756909|title=1.20: Update GPL2 to GPL3.}}}}
1992: GPL-2.0-or-later{{efn|GPL-2.0-or-later from 1992-08-03 until 2009-01-04.{{cite web|url=https://git.savannah.gnu.org/cgit/groff.git/tree/ChangeLog?h=1.06|title=1.06: ChangeLog}}}}
1990: GPL-1.0-or-later{{efn|GPL-1.0-or-later from 1990 until 1992-08-01.{{cite web|url=https://git.savannah.gnu.org/cgit/groff.git/tree/groff.c?h=1.02|title=1.02: groff.c}}}}

| website = {{URL|https://gnu.org/software/groff/}}

}}

groff ({{IPAc-en|ˈ|dʒ|iː|r|ɒ|f}} {{respell|JEE|roff}}){{Cite web | last=Laha | first=Manas | title=An Introduction to the GNU Groff Text Processing System | date=17 June 2003 | url=http://dl.dropbox.com/u/4299293/grofftut.pdf | archive-url=https://web.archive.org/web/20170202234221/https://dl.dropboxusercontent.com/u/4299293/grofftut.pdf | archive-date=2 Feb 2017}} (also called GNU troff) is a typesetting system that creates formatted output when given plain text mixed with formatting commands.{{Cite web|url=https://www.gnu.org/software/groff/|title=GNU troff (Groff) — a GNU project|last=|first=|date=|website=www.gnu.org|publisher=|language=en|access-date=2017-01-28|quote=Groff (GNU troff) is a typesetting system that reads plain text mixed with formatting commands and produces formatted output.}} It is the GNU replacement for the troff and nroff text formatters, which were both developed from the original roff.

Groff contains a large number of helper programs, preprocessors, and postprocessors including eqn, tbl, 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 derived operating systems such as Linux and 4.4BSD derivatives — notably because troff macros are used to create man pages, the standard form of documentation on Unix and Unix-like systems.

OpenBSD has replaced groff with mandoc in the base install, since their 4.9 release,[http://www.openbsd.org/plus49.html Changes made between OpenBSD 4.8 and 4.9] as has macOS Ventura.

History

groff is an original implementation written primarily in C++ by James Clark and is modeled after ditroff, 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 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 systems. In 1999, Werner Lemberg and Ted Harding took over maintenance of groff.[http://www.fitug.de/debate/9905/msg00325.html FFII-Nachrichten 1999 Woche 20].

See also

{{Portal|Free and open-source software}}

Notes

{{notelist}}

References

{{reflist}}