Groff
# Groff

Groff [ˈdʒiːrɒf] ist die GNU-Implementierung von troff, einem Textsatzsystem, das von AT&T für das Betriebssystem Unix entwickelt wurde. Auf vielen Unix- und GNU-basierten Systemen dient groff zur Anzeige von elektronischen Handbuchseiten (Manpages).

## Geschichte

Die erste 1990 freigegebene Version 0.3.1 wurde von James Clark innerhalb des GNU-Projektes weitestgehend in C++ implementiert. 1991 folgte mit Version 1.04 die erste stabile Version. 1999 übernahmen Werner Lemberg und Ted Harding die weitere Pflege. Die Neuimplementierung wurde vorgenommen, um Copyrightproblemen mit dem alten, proprietären Code vorzubeugen. Groff wird kontinuierlich weiterentwickelt. Wegen Lizenzproblemen ist Apple zu mandoc gewechselt, ähnlich dem Wechsel zur Z shell.

## Unterschiede zu AT&T-troff

Auf Kompatibilität wurde bei der Entwicklung größtmögliches Augenmerk gelegt. Unterschiede sind in der Manpage groff_diff(7) dokumentiert.

Das Ditroff-Zwischenformat wurde beibehalten, allerdings mit einigen Erweiterungen. Es stehen unter anderem Treiber für PostScript, PCL und DVI zu Verfügung. Ebenso kann direkt HTML erzeugt werden.

nroff erzeugt formatierte Textdateien und kann dort auch Codes für die Terminalsteuerung einbetten, um Schriftschnitte wie Fett, Kursiv oder auch farbigen Text auf entsprechenden Terminals darzustellen. Zusätzlich beherrscht es die Ausgabe mehrerer Zeichensätze.

Da die meisten troff-Befehle äußerst primitiv sind, liegen groff einige sogenannte Makropakete bei. So gibt es z. B. die Pakete Mom, Me, Mm und Ms für Dokumente, Doc und Man für Manpages. Diese werden beim Aufruf von groff auf der Kommandozeile entsprechend mitgeladen.

