nroff („new roff“) ist der Unix-Textformatierer für Geräte mit fester Zeichenbreite — Terminals und Zeilendrucker. Während troff für den Fotosatzbelichter optimiert wurde, erzeugt nroff ASCII-Ausgabe. Beide teilen sich dieselben Kommandos und Makro-Pakete, daher lassen sich Manpages mit nroff direkt im Terminal darstellen.

Geschichte

Joe Ossanna entwickelte nroff 1973 bei den Bell Labs zusammen mit troff aus dem ursprünglichen roff. Die GNU-Welt emuliert nroff heute über groff: Das Kommando nroff ist dort ein Wrapper um groff -Tascii beziehungsweise -Tutf8.

Typische Aufrufe

nroff -man anleitung.1          " Manpage im Terminal
nroff -Tutf8 anleitung.1        " UTF-8-Ausgabe mit Sonderzeichen
nroff -man -Tascii datei.1 | less " mit Pager anzeigen

Das -T-Flag wählt die Ausgabe-Kodierung: ascii, latin1, utf8 oder cp1047. Ohne Angabe rendert nroff in reinem ASCII, wodurch Sonderzeichen wie Gedankenstriche verloren gehen.

Rolle im man-System

Jede Manpage ist im Kern eine nroff-Datei mit Makros wie .TH (Titel), .SH (Abschnitt), .PP (Absatz), .B (fett) und .I (kursiv). Das man-Kommando filtert passende Komprimierungs- und Formatierstufen und reicht die Seite an nroff beziehungsweise groff weiter — so entsteht der vertraute Terminal-Look mit Fettschrift und Einrückungen.

Verwandte Grundlagen: roff-Befehle, troff-Befehle, groff-Befehle.