Scroll to navigation

groff(1) General Commands Manual groff(1)

Name

groff - Oberfläche für das GNU-roff(7)-Dokumenten-Formatierungssystem

Übersicht

groff [-abcCeEgGijklNpRsStUVXzZ] [-d cText] [-d Zeichenkette=Text] [-D Rückfallkodierung] [-f Schriftfamilie] [-F Schriftverzeichnis] [-I Einbindungsverzeichnis] [-K Eingabekodierung] [-L Spooler-Argument] [-m Makropaket] [-M Makroverzeichnis] [-n Seitennummer] [-o Seitenliste] [-P Postprozessorargument] [-r nummerischer_Ausdruck] [-r Register=nummerischer_Ausdruck] [-T Ausgabegerät] [-w Warnungskategorie] [-W Warnungskategorie] [Datei …]
groff -h
groff --help
groff -v [option …] [Datei …]
groff --version [Option …] [Datei .…]

Beschreibung

groff ist die primäre Oberfläche für das GNU-roff(7)-Dokumentenformatierungssystem. GNU- roff(7) ist ein Textsatzsystem, das reine Textdateien als Eingeabe liest und die enthaltenen Formatierungsbefehle verwendet, um Ausgaben in PostScript, PDF, HTML, DVI und anderen Formaten oder die Anzeige im Terminal zu erstellen. Formatierbefehle können grundlegende Schriftsatzprimitive, Makros eines bereitgestellten Pakets oder benutzerdefinierte Makros sein. Alle drei Ansätze können kombiniert werden. Falls kein Operand Datei angegeben ist oder falls Datei »-« ist, liest groff aus dem Standardeingabedatenstrom.

groff ist eine Neuimplementierung und Erweiterung des Schriftsetzers aus AT&T Unix und aufgrund seiner langen Zuordnung zu Unix-Handbüchern (einschließlich der Handbuchseiten) auf den meisten POSIX-Systemen vorhanden. Zusammen mit seinen Vorgängern ist es bemerkenswert für die Erstellung mehrerer bestverkäuflicher Texte über Software-Engineering. groff ist in der Lage, typographisch fortgeschrittene Dokumente zu erstellen und dabei minimale Systemressourcen zu verwenden.

Der Befehl groff arrangiert die Ausführung von Präprozessoren, der Umwandlung von Eingabedokumenten in eine geräteunabhängige Seitenbeschreibungssprache und die Erstellung der Ausgabe aus dieser Sprache.

Optionen

-h und --help zeigen eine kurze Gebrauchsinformation und beenden das Programm.

Da groff dazu gedacht ist, die direkten Aufrufe der meisten der troff(1) -Formatierer zusammenzufassen, nutzen die beiden Programme diverse Optionen gemeinsam. Allerdings verfügt groff über Optionen, die troff(1) nicht hat und andere, die groff anders interpretiert. Gleichzeitig können nicht alle gültigen troff(1) -Optionen an groff übergeben werden.

groff-spezifische Optionen

Die folgenden Optionen gibt es entweder bei GNU- troff(1) nicht oder sie werden von groff anders interpretiert.

Setzt die von preconv(1) verwandte Rückfalleingabekodierung auf Kod; impliziert -k.
eqn(1) Präprozesor ausführen.
grn(1) Präprozesor ausführen.
grap(1) Präprozessoren ausführen; impliziert -p.
Funktioniert wie die Option von troff(1) (siehe unten), impliziert aber auch -g and -s. Sie wird an soelim(1) und den Ausgabetreiber weitergegeben und grn(1) wird die Option -M mit Verz als sein Argument übergeben.
chem(1) Präprozessoren ausführen; impliziert -p.
preconv(1) Präprozessoren ausführen. Lesen Sie seine Handbuchseite für dessen Verhalten, falls weder die Option -K noch -D von groff auch angeben wird.
Die von preconv(1) benutzte Eingabekodierung auf Arg setzen; impliziert -k.
Die Ausgabe zum Drucken an einen Spooler schicken. Die Direktive »print« in der Gerätebeschreibungsdatei legt den zu verwendenden Standardbefehl fest; siehe groff_font(5) Falls im Ausgabegerät keine solche Direktive vorhanden ist, wird die Ausgabe per Pipe an lpr(1) weitergeleitet. output is piped to lpr(1). Siehe die Optionen -L und -X.
Arg dem Druck-Spooler übergeben. Falls mehrere Arg benötigt werden, übergeben Sie jede mit einer getrennten Option -L. groff stellt Arg kein Options-Minuszeichen vor der Übergabe an das Spooler-Programm voran.
Funktioniert als Option für troff(1) , wird aber auch eqn(1) , grap(1) und grn(1) übergeben.
Verbietet Zeilenumbrüche zwischen eqn-Trennsymbolen; übergibt -N an (eqn)1
pic(1) Präprozessoren ausführen.
Arg den Postprozessor übergeben. Falls mehrere Arg benötigt werden, übergeben Sie jede mit einer getrennten Option -P. groff stellt Arg kein Options-Minuszeichen vor der Übergabe an den Postprozessor voran.
refer(1) Präprozessoren ausführen. Es wird kein Mechanismus zum Weiterreichen von Argumenten an refer zur Verfügung gestellt, weil die meisten Optionen von refer gleichwertige Sprachelemente haben, die innerhalb des Dokuments angegeben werden können.
soelim(1) Präprozessoren ausführen.
Ausführung in »sicherem« Modus, siehe nachfolgendem -U für das Gegenteil. Aus Sicherheitsgründen ist der Modus mit erweiterter Sicherheit standardmäßig aktiviert.
tbl(1) Präprozessoren ausführen.
Weist troff(1) an, die Eingabe für das Ausgabegerät Gerät zu formatieren. groff ruft dann den Ausgabetreiber auf, um die Ausgabe von troff(1) in eine Form umzuwandeln, die für Gerät geeignet ist; siehe den nachfolgenden Unterabschnitt »Ausgabegeräte«.
Ausführung im unsicheren Modus; übergibt die Option -U an pic(1) und troff(1)
Versionsinformationen von groff und allen Programmen, die es ausführt, in den Standardsausgabedatenstrom schreiben; das heißt, die angegebene Befehlszeile wird auf die übliche Weise verarbeitet, wobei dem Formatierer und allen aufgerufenen Prä- und Postprozessoren -v übergeben wird.
Die Befehlssequenz, die von groff ausgeführt würde, in den Standardausgabedatenstrom ausgeben, aber nicht ausführen. Wenn dies mehr als einmal angegeben wird, wird groff die Befehlssequenz sowohl ausgeben als auch ausführen.
gxditview(1) anstelle des üblichen Postprozessors verwenden, um ein Dokument (vorab) auf einer X11-Anzeige zu betrachten. Wenn diese Option mit -Tps kombiniert wird, dann werden die Schriftmetriken des PostScript-Geräts verwandt, während die Optionen -TX75 und -TX100 die Metriken der X11-Schriften verwenden.
Deaktiviert das Postprocessing. troff(1) -Ausgabe wird in dem Standardausgabedatenstrom erscheinen (außer dies wird mit -z unterdrückt); siehe groff_out(5) für eine Beschreibung dieses Formats.

Transparente Optionen

Folgende Optionen werden unverändert an das Formatierprogramm troff(1) weitergegeben und detaillierter in dessen Handbuchseite beschrieben.

Erstellt eine ungefähre Näherung der Schriftsatzausgabe als reinen Text.
Schreibt bei jedem Fehler oder jeder Warnung eine Ablaufverfolgung (Backtrace) in die Standardfehlerausgabe.
Startet mit deaktivierter Farbe.
Aktiviert den AT&T- troff(1) -Kompatibilitätsmodus; impliziert -c.
Definiert eine Zeichenkette.
Verhindert Fehlermeldungen von troff(1) ; impliziert -Ww.
Die Standard-Schriftfamilie festlegen.
Sucht im Verzeichnis Verz nach dem ausgewählten Ausgabegeräteverzeichnis mit Geräte- und Schriftbeschreibungsdateien.
Nach den angegebenen Eingabedateien die Standardeingabe verarbeiten.
Durchsucht Verz nach Eingabedateien.
Verarbeitet Name.tmac vor Eingabedateien.
Durchsucht Verzeichnis Verz nach Makrodateien.
Der ersten Seite die Nummer Num geben.
Nur Seiten aus Liste ausgeben.
Definiert eine Zeichenkette.
Aktiviert (-w) oder verhindert (-W) die Ausgabe von Warnungen in Kategorie Name.
Unterdrückt formatierte, geräteunabhängige Ausgabe von troff(1)

Verwendung

Die Architektur des GNU- roff(7) -Systems folgt anderen geräteunabhängigen roff(7) -Implementierungen. Sie besteht aus Präprozessoren, Makropaketen, Ausgabetreibern (oder »Postprozessoren«), einer Sammlung von Hilfswerkzeugen und zentral dem Formatierer troff(1) Siehe roff(7) für eine übersicht darüber, wie das Roff-System funktioniert.

Die im GNU- roff(7) -System verfügbaren Oberflächenprogramme erleichtern die Verwendung gegenüber traditionellen roff(7) , die die Erstellungen von Befehlsfolgen oder die Verwendung temporärer Dateien benötigen, um die Quellen von der wartbaren Form in die Geräte-bereite Ausgabe zu bringen. Die nachfolgende Erörterung fasst die Bestandteile des GNU- roff(7) -Systems zusammen. Es ergänzt roff(7) mit groff-spezifischen Funktionen.

Erste Schritte

Wer das Lernen durch Experimente bevorzugt oder den Wunsch hat, schnelle Rückmeldungen vom System zu bekommen, möchte vielleicht mit einem »Hello, world!«-Dokument anfangen.

$ echo "Hello, world!" | groff -Tascii | sed '/^$/d'
Hello, world!

Der sed(1) -Befehl wurde nur verwandt, um die 65 leeren Zeilen zu beseitigen, die andernfalls das Terminalfenster geflutet hätten. ( roff(7) -Systeme wurden zu Zeiten von papierbasierten Terminals mit 66 Zeilen pro Seite entwickelt.)

Heutige Benutzer könnten die Ausgabe auf ein UTF-8-fähiges Terminal bevorzugen.

$ echo "Hello, world!" | groff -Tutf8 | sed '/^$/d'

Die Erstellung von PDF, HTML oder TeXs DVI ist unkompliziert. Der schwierige Teil könnte die Auswahl eines Betrachtungsprogramms für die Ausgabe sein.

$ echo "Hello, world!" | groff -Tpdf > hello.pdf
$ evince hello.pdf
$ echo "Hello, world!" | groff -Thtml > hello.html
$ firefox hello.html
$ echo "Hello, world!" | groff -Tdvi > hello.dvi
$ xdvi hello.html

Verwendung von groff als eine REPL

Benutzer mit Programmiererfahrung mögen sich freuen, dass sie groff in einer Lese-Auswert-Ausgabe-Schleife (REPL) verwenden können. Dies kann praktisch sein, um das eigene Verständnis des Verhaltens des Formatierers oder der von ihm verstandenen Syntax zu bestätigen. Einschalten aller Warnungen mit -ww kann hierbei helfen.

$ groff -ww -Tutf8
\# Dies ist ein Kommentar. Definieren wir ein Register.
.nr a 1
\# Ganzzahlarithmetik mit Operatoren erfolgt von links nach rechts.
.nr b \n[a]+5/2
\# Lassen Sie uns das Ergebnis auf dem Standard-Datenfehlerstrom ausgeben.
.tm \n[b]
3
\# Jetzt definieren wir eine Zeichenkette.
.ds name Leslie\" So können Kommentare auch erfolgen.
.nr b (\n[a] + (7/2))
\# Den Text der nächsten zwei Eingabezeilen zentrieren.
.ce 2
Hi, \*[name].
Your secret number is \n[b].
\# Jetzt wird erkennbar, dass die Division Richtung Null gerundet wurde.
It is
\# Hier ist eine If-Else-Steuerstruktur.
.ie (\n[b] % 2) odd.
.el even.
\# Dieser Trick setzt die Seitenlänge auf die aktuelle vertikale Position,
\# so dass keine leeren Zeilen ausgespuckt werden, wenn wir fertig sind.
.pl \n[nl]u
<Control-D>

Hi, Leslie.
Your secret number is 4. It is even.

Papierformate

In GNU- roff(7) werden die Seitengrößen für den Formatierer troff(1) und für die Ausgabegeräte getrennt behandelt. Im Formatierer werden Anfragen zum Setzen der Seitenlänge (.pl), des Seitenversatzes (oder linken Randes, .po) und der Zeilenlänge (.ll) verwandt. Der rechte Rand wird nicht explizit konfiguriert; die Kombination aus Seitenversatz und Zeilenlänge stellt die zur Ableitung notwendigen Informationen bereit. Das automatisch von troff(1) geladene Makropakt papersize stellt eine Schnittstelle für die Konfiguration der Seitendimensionen über bequeme Namen bereit, wie »letter« oder »A4«, siehe groff_tmac(5) In dieser Installation ist die Vorgabe des Formatierers »A4«.

Es obliegt jedem Makropaket, die auf diese Art konfigurierten Seitendimensionen zu berücksichtigen. Einige bieten alternative Mechanismen.

Für jedes Ausgabegerät kann die Größe des Ausgabemediums in seiner DESC-Datei gesetzt werden. Die meisten Ausgabetreiber erkennen auch eine Befehlszeilenoption -p, um die Standarddimensionen außer Kraft zu setzen und eine Option -l, um Querformat zu verwenden. Siehe groff_font(5) für eine Beschreibung der Direktive papersize, die ein Argument der gleichen Form wie bei -p akzeptiert. Die Handbuchseite des Ausgabetreibers, wie grops(1) könnte auch hilfreich sein. groff verwendet die Befehlszeilenoption -P, um Optionen an die Ausgabegeräte weiterzugeben. Verwenden Sie beispielsweise folgendes für die Postscript-Ausgabe auf A4-Papier im Querformat:

groff -Tps -dpaper=a4l -P-pa4 -P-l -ms foo.ms > foo.ps
    

Oberfläche

Das groff-Programm ist ein Wrapper um das troff(1) -Programm. Es ermöglicht die Angabe von Präprozessoren mittels Befehlszeilenoption und führt automatisch den für das ausgewählte Ausgabegerät geeigneten Postprozessor aus. Damit kann die manuelle Zusammenstellung von Bearbeitungssequenzen oder die Verwaltung temporärer Dateien vermieden werden, die bei den Benutzer traditioneller roff(7) -Systeme notwendig ist. Verwenden SIe das Programm grog(1) , um die korrekte groff-Befehlszeile zur Formatierung eines Dokuments abzuleiten.

Sprache

Eingabe für ein roff(7) -System ist eine reine Textdatei, in der die Steuerzeilen und Maskiersequenzen eingeschoben sind. Die Kombination bildet eine Dokument in einer der Sprachfamilien, die auch roff(7) genannt werden, siehe roff(7) Hintergrundinformationen. Ein Überblick über Sprachsyntax und -funktionalitäten von roff(7) , einschließlich der vollständigen Liste unterstützter Maskiersequenzen, Anfragen und vordefinierte Register kann in groff(7) gefunden werden. GNU roff(7) -Erweiterungen zur AT&T- troff(1) -Sprache, eine gemeinsame Teilmenge der noch bestehenden roff(7) -Dialekte, werden in groff_diff(7) im Detail beschrieben.

Präprozessoren

Ein Präprozessor interpretiert eine domänenspezifische Sprache, die Ausgabe in der Sprache roff(7) erzeugt. Häufig wird solche Eingabe auf Abschnitte oder Bereiche einer roff(7) -Datei beschränkt (durch Makroaufrufe, die spezifisch für jeden Präprozessor sind, eingeklammert), der dadurch ersetzt wird. Präprozessoren interpretieren daher eine Teilmenge der roff(7) -Syntax zusammen mit ihrer eigenen Sprache. GNU roff(7) stellt Neuimplementierungen der meisten der Benutzern von AT&T troff(1) vertrauten Präprozessoren bereit. Diese haben regelmäßig erweiterte Funktionalitäten und/oder benötigen GNU- troff(1) , um ihre Ausgabe zu formatieren.

tbl ordnet Tabellen an;
eqn setzt Mathematik;
pic zeichnet Diagrammene;
refer verarbeitet Literaturverweise;
soelim bearbeitet »eingelesene« Eingabedateien vor
grn stellt Diagramme dar;
gremlin(1)
chem . zeichnet chemische Struturformeln mittels pic;
gperl füllt groff- Register und Zeichenketten mittels
perl(1);
glilypond bettet LilyPond- Blattmusik ein; und
gpinyin erleichtert chinesische Mandarin-Eingabe mittels Hanyu Pinyin.

Ein nur bei GNU roff(7) verfügbarer Präprozessor ist preconv(1) , der diverse Eingabekodierungen in eine für GNU troff(1) verständliche konvertiert. Wird dieser verwandt, dann wird er vor allen anderen Präprozessoren ausgeführt.

Die meisten Präprozessoren schließen den Inhalt zwischen einem Paar von charakteristischen Merkmalen ein. Jedes solches Merkmal muss am Anfang der Eingabezeile vorkommen und den Punkt als Steuerzeichen verwenden. Leerzeichen und Tabulatoren dürfen dem Steuerzeichen nicht folgen oder vor dem Ende der Eingabezeile sein. Werden diese Regeln verletzt, dann kann der Präprozessor diese Merkmale nicht mehr erkennen. Merkmale werden im Allgemeinen in der Präprozessorausgabe beibehalten und durch troff(1) nachfolgend als Makros interpretiert. Der Präprozessor ideal ist in groff noch nicht verfügbar.

Präprozessor Anfangsmerkmal Endemerkmal
chem .cstart .cend
eqn .EQ .EN
grap .G1 .G2
grn .GS .GE
ideal .IS .IE
.IF
pic .PS .PE
.PF
.PY
refer .R1 .R2
tbl .TS .TE
glilypond .lilypond start .lilypond stop
gperl .Perl start .Perl stop
gpinyin .pinyin start .pinyin stop

Makropakete

Makrodateien sind roff(7)-Eingabedateien und so entwickelt, dass sie selbst keine Ausgabe produzieren, sondern die Erstellung anderer roff(7)-Dokumente vereinfachen. Wenn eine Makrodatei an einem Standardort installiert wurde und für die Verwendung durch die Allgemeinheit geeigenet ist, dann heißt sie Makropaket.

Makropakete können vor allen roff(7) -Eingabedokumenten mit der Option -m geladen werden. Das GNU- roff(7) -System implementiert die bekanntesten Makropakete für AT&T troff(1) auf eine kompatible Art und erweitert sie. Diese haben zwei- oder dreibuchstabige Namen, die von der intensiven Durchführung der Namensökonomie der frühen Unix-Kultur stammen, ein prägnanter Ansatz, der zur Kennzeichnung vieler Pakete in der allgemeinen Anwendung führt, wobei der nroff(1)- und troff(1)-Optionsbuchstabe zu ihrem Aufruf führte. Manchmal ergab das Wortspiele, wie bei »man« (kurz für »manual« (Handbuch)) und selbst mit dem Optionsstrich, wie im Falle des Pakets s, besser bekannt als ms oder sogar -ms.

Makropakete dienen einer Reihe von Zwecken. Manche sind »vollumfängliche« Pakete, die neben anderen grundsätzlichen Aufgaben die Verantwortung für Seitenlayout übernehmen und ihr eigenes Lexikon an Makros zum Dokumentenaufbau definieren. Jedes solcher Pakete steht alleine und ein bestimmtes Dokument kann davon höchstens eines nutzen.

wird zum Aufbau von Handbuchseiten in dem aus Version 7 Unix (1979) stammenden Format verwandt; siehe groff_man(7) Es kann auf der Befehlszeile mit -man angegeben werden.
wird zum Aufbau von Handbuchseiten in dem aus 4.3BSD-Reno (1990) stammenden Format verwandt; siehe groff_mdoc(7). Es kann auf der Befehlszeile mit -mdoc angegeben werden.
ist die Allzweck-Makrosammlung aus Berkeley, entwickelt als Alternative zu AT&Ts s; siehe groff_me(7) Es kann auf der Befehlszeile mit -me angegeben werden.
implemetiert das von der AT&A-Makrosammlung der zweiten Generation für allgemeine Dokumente verwandte Format, ein Nachfolger von s; siehe groff_mm(7) Es kann auf der Befehlszeile mit -mm angegeben werden.
(immer »mom« genannt) ist ein von Peter Schaffter speziell für GNU- roff(7) geschriebenes modernes Paket. Im mom-HTML-Handbuch finden Sie eine ausführliche Dokumentation. Sie – mom hat die weibliche Anrede – kann auf der Befehlszeile als -mom angegeben werden.
ist das ursprüngliche Allzweck-Dokumentenformat von AT&T; siehe groff_ms(7) Es kann auf der Befehlszeile mit -ms angegeben werden.

Andere sind ergänzend. Zum Beispiel ist andoc ein Wrapper-Paket speziell für GNU- roff(7) , das automatisch erkennt, ob das Dokument das man- oder das mdoc-Format benutzt, und das entsprechende Makropaket lädt. Es kann auf der Befehlszeile mit -mandoc angegeben werden. Ein man(1) -Bibliotheksprogramm kann diese Makrodatei dazu verwenden, dass Laden des korrekten Makropakets zu delegieren. Es ist daher für man selbst nicht notwendig, den Inhalt eines Dokumentes zu durchsuchen, um das Problem zu entscheiden.

Viele Makropakete erweitern die Funktion der vollumfänglichen Pakete oder von roff(7) -Dokumenten, die solch ein Paket nicht einsetzen–letztere werden manchmal als »roh« charakterisiert. Diese Hilfspakete werden zusammen mit Details der Makrodatei-Benennung und Ablage in groff_tmac(5) beschrieben.

Formatierer

Der Formatierer, das Programm, das die Eingabe der Sprache roff(7) interpretiert, ist troff(1) Er bietet die Funktionalitäten der AT&T troff(1) und nroff(1) sowie viele Erweiterungen. Die Befehlszeilenoption -C schaltet troff(1) in den Kompatibilitätsmodus, der versucht, das klassische roff(7) so gut wie praktisch möglich zu emulieren, um das Formatieren von Dokumenten, die für ältere Systeme geschrieben wurden, zu ermöglichen.

Ein Shellskript, nroff(1) , emuliert das Verhalten des klassischen AT&T nroff. Es versucht, die Ausgabe korrekt basierend auf der Locale zu kodieren, entlastet den Benutzer davon, das Ausgabegerät mit der Option -T anzugeben und ist daher für die Verwendung als Terminalausgabegerät praktisch, wie das im nächsten Unterabschnitt beschrieben wird.

GNU troff(1) erstellt die Ausgabe in einer geräte-unabhängigen aber dennoch geräte-wahrnehmenden Seitenbeschreibungssprache, die in groff_out(5) detailliert wird.

Ausgabegeräte

Die Ausgabe von troff(1) wird für ein bestimmtes Ausgabegerät formatiert, das typischerweise über die Option -T des Formatierers oder einer Oberfläche bestimmt wird. Falls weder diese Option noch die Umgebungsvariable GROFF_TYPESETTER verwandt wird, ist das Vorgabegerät ps. Ein Ausgabegerät kann eines der folgenden sein:

für Teminals, die den Zeichensatz und die -kodierung ISO/IEC 646:1991 IRV verwenden, die auch als US-ASCII bekannt ist.
für Terminals, die den Zeichensatz und die -kodierung der IBM-Codeseite 1047 verwenden.
für das DVI-Format von TeX.
für HTML- bzw. XHTML-Ausgabe.
für Terminals, die den Zeichensatz und -kodierung ISO Latin-1 (ISO/IEC 8859-1) verwenden.
für CaPSL-Drucker von Canon (Laserdrucker der Serien LBP-4 und LBP-8).
für HP-LaserJet4- oder andere PCL5-kompatible Drucker.
für PDF-Ausgabe.
für PostScript-Ausgabe.
für Terminals, die den Zeichensatz ISO/IEC 10646 (»Unicode«) in der UTF-8-Kodierung verwenden.
zur Vorschau mittels gxditview(1) in der 75-DPI-Auflösung und einer 10-Punkt-Basistypgröße.
zur Vorschau mittels gxditview(1) in der 75-DPI-Auflösung und einer 12-Punkt-Basistypgröße.
zur Vorschau mittels gxditview(1) in der 100-DPI-Auflösung und einer 10-Punkt-Basistypgröße.
zur Vorschau mittels gxditview(1) in der 100-DPI-Auflösung und einer 12-Punkt-Basistypgröße.

Postprozessoren

Jedes Programm, das die Ausgabe von GNU- troff(1) interpretiert, ist ein Postprozessor. Die durch GNU- roff(7) bereitgestellten Postprozessoren sind Ausgabetreiber, die ein Dokument zum Anschauen oder Drucken vorbereiten. Postprozessoren für andere Zwecke, wie Seitenumsortierung oder statistische Messungen in einem Dokument, sind denkbar.

Jeder Ausgabetreiber unterstützt eines oder mehrere Ausgabegeräte, von denen jeder seine eigene Gerätebeschreibungsdatei hat. Ein Gerät bestimmt seinen Postprozessor mit der Direktive postpro in seiner Gerätebeschreibungsdatei, siehe groff_font(5) The -X option overrides this selection, causing gxditview to serve as the output driver.

grodvi(1)
stellt dvi bereit.
grohtml(1)
stellt html und xhtml bereit.
grolbp(1)
stellt lbp bereit.
grolj4(1)
stellt lj4 bereit.
gropdf(1)
stellt pdf bereit.
grops(1)
stellt ps bereit.
grotty(1)
stellt ascii, cp1047, latin1 und utf8 bereit.
gxditview(1)
provides X75, X75-12, X100, and X100-12, and additionally can preview ps.

Werkzeuge

GNU roff includes a suite of utilities.

gdiffmk(1)
kennzeichnet die Unterschiede zweier roff-Eingabedateien.
grog(1)
infers the groff command a document requires.

Several utilities prepare descriptions of fonts, enabling the formatter to use them when producing output for a given device.

addftinfo(1)
fügt Informationen zu AT&T-troff-Schriftbeschreibungsdateien zur Ermöglichung der Benutzung mit GNU- troff(1) hinzufügen.
afmtodit(1)
erstellt Schriftbeschreibungsdateien für PostScript-Type-1-Schriften.
pfbtops(1)
translates a PostScript Type 1 font in PFB (Printer Font Binary) format to PFA (Printer Font ASCII), which can then be interpreted by afmtodit.
hpftodit(1)
erstellt Schriftbeschreibungsdateien für die Famile der HP LaserJet 4-Drucker.
tfmtodit(1)
erstellt Schriftbeschreibungsdateien für das TeX-DVI-Gerät.
xtotroff(1)
erstellt Schriftbeschreibungsdateien für X-Windows-System-Kernschriften.

A trio of tools transform material constructed using roff preprocessor languages into graphical image files.

eqn2graph(1)
wandelt eine eqn-Gleichung in ein zugeschnittenes Bild um.
grap2graph(1)
wandelt ein pic-Diagramm in ein zugeschnittenes Bild um.
pic2graph(1)
wandelt ein pic-Diagramm in ein zugeschnittenes Bild um.

Another set of programs works with the bibliographic data files used by the refer(1) preprocessor.

indxbib(1)
erstellt invertierte Indizes für bibliografischen Datenbanken, beschleunigt Nachschlageaktionen auf ihnen.
lkbib(1)
durchsucht die Datenbanken.
lookbib(1)
durchsucht die Datenbanken interaktiv.

Rückgabewert

groff exits with a failure status if there was a problem parsing its arguments and a successful status if either of the options -h or --help was specified. Otherwise, groff runs a pipeline to process its input; if all commands within the pipeline exit successfully, groff does likewise. If not, groff's exit status encodes a summary of problems encountered, setting bit 0 if a command exited with a failure status, bit 1 if a command was terminated with a signal, and bit 2 if a command could not be executed. (Thus, if all three misfortunes befell one's pipeline, groff would exit with status 2^0 + 2^1 + 2^2 = 1+2+4 = 7.) To troubleshoot pipeline problems, you may wish to re-run the groff command with the -V option and break the reported pipeline down into separate stages, inspecting the exit status of and diagnostic messages emitted by each command.

Umgebung

Normalerweise ist in Umgebungsvariablen, die mit PATH enden, das Trennzeichen für Pfadangaben der Doppelpunkt; dies kann abhängig vom Betriebssystem variieren. Zum Beispiel nutzt Windows stattdessen ein Semikolon.

Dieser Suchpfad, gefolgt von PATH, wird für zum Auffinden von Befehlen, die von groff ausgeführt werden, genutzt. If it is not set, the installation directory of the GNU roff executables, /usr/bin, is searched before PATH.
GNU roff can be configured at compile time to apply a prefix to the names of the programs it provides that had a counterpart in AT&T troff, so that name collisions are avoided at run time. The default prefix is empty.
When used, this prefix is conventionally the letter “g”. For example, GNU troff would be installed as gtroff. Besides troff, the prefix applies to the formatter nroff; the preprocessors eqn, grn, pic, refer, tbl, and soelim; and the utilities indxbib and lookbib.
The value of this variable is passed to the preconv(1) preprocessor's -e option to select the character encoding of input files. This variable's existence implies the groff option -k. If set but empty, groff calls preconv without an -e option. groff's -K option overrides GROFF_ENCODING.
Seek the selected output device's directory of device and font description files in this list of directories. Siehe troff(1) und groff_font(5).
Seek macro files in this list of directories. Siehe troff(1) und groff_tmac(5)
Create temporary files in this directory. Falls dies nicht aber die Umgebungsvariable TMPDIR gesetzt ist, werden temporäre Dateien stattdessen dort erstellt. On Windows systems, if neither of the foregoing are set, the environment variables TMP and TEMP (in that order) are checked also. Andernfalls werden temporäre Dateien in /tmp erstellt. Die Befehle refer(1) , grohtml(1) und grops(1) verwenden temporäre Dateien.
Set the default output device. If empty or not set, ps is used. The -T option overrides GROFF_TYPESETTER.
A time stamp (expressed as seconds since the Unix epoch) to use as the output creation time stamp in place of the current time. The time is converted to human-readable form using gmtime(3) and asctime(3) when the formatter starts up and stored in registers usable by documents and macro packages.
The time zone to use when converting the current time to human-readable form; see tzset(3). If SOURCE_DATE_EPOCH is used, it is always converted to human-readable form using UTC.

Beispiele

roff systems are best known for formatting man pages. Once a man(1) librarian program has located a man page, it may execute a groff command much like the following.

groff -t -man -Tutf8 /usr/share/man/man1/groff.1
The librarian will also pipe the output through a pager, which might not interpret the SGR terminal escape sequences groff emits for boldface, underlining, or italics; see section “Limitations” below.

To process a roff input file using the preprocessors tbl and pic and the me macro package in the way to which AT&T troff users were accustomed, one would type (or script) a pipeline.

pic foo.me | tbl | troff -me -Tutf8 | grotty
    

Bei groff kann diese Pipe auf den entsprechenden Befehl gekürzt werden.

groff -p -t -me -T utf8 foo.me
    

An even easier way to do this is to use grog(1) to guess the preprocessor and macro options and execute the result by using the command substitution feature of the shell.

$(grog -Tutf8 foo.me)
    

Each command-line option to a postprocessor must be specified with any required leading dashes “-” because groff passes the arguments as-is to the postprocessor; this permits arbitrary arguments to be transmitted. Um zum Beispiel einen Titel an den Postprozessor gxditview weiterzureichen, sind die Shell-Befehle

groff -X -P -title -P 'Probelauf' mydoc.t
und
groff -X -Z mydoc.t | gxditview -title 'Probelauf' -
äquivalent.

Beschränkungen

When paging output for the ascii, cp1047, latin1, and utf8 devices, programs like more(1) and less(1) may require command-line options to correctly handle some terminal escape sequences; see grotty(1).

In EBCDIC-Umgebungen wie OS/390 Unix sind die Ausgabegeräte ascii und latin1 nicht verfügbar. Conversely, the output device cp1047 is not available on systems based on the ISO 646 or ISO 8859 character encoding standards.

Installation directories

GNU groff installiert Dateien an verschiedene Stellen, abhängig von seiner Konfiguration zum Zeitpunkt der Kompilierung. Auf dieser Installation werden die folgenden Orte verwandt:

/etc/X11/app-defaults
Application defaults directory for gxditview(1).
/usr/bin
Verzeichnis, das die ausführbaren Befehle von groff enthält
/usr/share/groff/1.23.0/eign
Liste häufiger Wörter für indxbib(1)
/usr/share/groff/1.23.0
Verzeichnis für Datendateien
/usr/dict/papers/Ind
Vorgabeindex für lkbib(1) und refer(1)
/usr/share/doc/groff-base
Dokumentationsverzeichnis
/usr/share/doc/groff-base/examples
Beispielverzeichnis
/usr/share/groff/1.23.0/font
Schriftenverzeichnis
/usr/share/doc/groff-base/html
HTML-Dokumentationsverzeichnis
/usr/lib/font
Ehemaliges Schriftartenverzeichnis
/usr/share/groff/site-font
locales Schriftartenverzeichnis
/usr/share/groff/site-tmac
Lokales Verzeichnis für Makropakete (tmac-Dateien)
/usr/share/groff/1.23.0/tmac
Verzeichnis für Makropakete (tmac-Dateien)
/usr/share/groff/1.23.0/oldfont
Schriftartenverzeichnis für die Kompatibilität mit älteren Versionen von groff; siehe grops(1)
/usr/share/doc/groff-base/pdf
PDF-Dokumentationsverzeichnis

Makroverzeichnis von groff

Most macro files supplied with GNU roff are stored in /usr/share/groff/1.23.0/tmac for the installation corresponding to this document. As a rule, multiple directories are searched for macro files; see troff(1). For a catalog of macro files GNU roff provides, see groff_tmac(5).

groff device and font description directory

Device and font description files supplied with GNU roff are stored in /usr/share/groff/1.23.0/font for the installation corresponding to this document. As a rule, multiple directories are searched for device and font description files; see troff(1). For the formats of these files, see groff_font(5).

Verfügbarkeit

Obtain links to groff releases for download, its source repository, discussion mailing lists, a support ticket tracker, and further information from the groff page of the GNU website.

Eine freie Implementierung des Präprozessors grap, geschrieben von Ted Faber kann auf der grap-Website gefunden werden. groff supports only this grap.

Autoren

groff (both the front-end command and the overall system) was primarily written by James Clark. Contributors to this document include Clark, Trent A. Fisher, Werner Lemberg, Bernd Warken, and G. Branden Robinson.

Siehe auch

Groff: Die GNU-Implementierung von Troff, von Trent A. Fisher und Werner Lemberg, ist das primäre groff-Handbuch. Sie können es interaktiv mit »info groff« lesen.

roff(7)
gxditview(1)
chem(1), eqn(1), neqn(1), glilypond(1), grn(1), preconv(1), gperl(1), pic(1), gpinyin(1), refer(1), soelim(1), tbl(1)
Makropakete und paketspezifische Hilfswerkzeuge:
groff_hdtbl(7), groff_man(7), groff_man_style(7), groff_mdoc(7), groff_me(7), groff_mm(7), groff_mmse(7) (nur in schwedischen Locales), mmroff(1), groff_mom(7), pdfmom(1), groff_ms(7), groff_rfc1345(7), groff_trace(7), groff_www(7)
indxbib(1), lkbib(1), lookbib(1)
groff(7), groff_char(7), groff_diff(7), groff_font(5), groff_tmac(5)
groff_out(5)
troff(1)
nroff(1), pdfroff(1)
Postprozessoren für Ausgabegeräte:
grodvi(1), grohtml(1), grolbp(1), grolj4(1), gropdf(1), grops(1), grotty(1)
addftinfo(1), afmtodit(1), hpftodit(1), pfbtops(1), tfmtodit(1), xtotroff(1)
eqn2graph(1), grap2graph(1), pic2graph(1)
gdiffmk(1)
“groff guess” utility:
grog(1)

ÜBERSETZUNG

Die deutsche Übersetzung dieser Handbuchseite wurde von Florian Rehnisch <fr@fm-r.eu>, Frank Stähr <der-storch-85@gmx.net>, Mario Blättermann <mario.blaettermann@gmail.com>, Dr. Tobias Quathamer <toddy@debian.org> und Helge Kreutzmann <debian@helgefjell.de> erstellt.

Diese Übersetzung ist Freie Dokumentation; lesen Sie die GNU General Public License Version 3 oder neuer bezüglich der Copyright-Bedingungen. Es wird KEINE HAFTUNG übernommen.

Wenn Sie Fehler in der Übersetzung dieser Handbuchseite finden, schicken Sie bitte eine E-Mail an die Mailingliste der Übersetzer.

30. April 2024 Groff 1.23.0