groff(1) General Commands Manual groff(1) Name groff - Frontend fur das GNU-roff(7)-Dokumentenformatierungssystem Ubersicht groff [-abcCeEgGijklNpRsStUVXzZ] [-d cText] [-d Zeichenkette=Text] [-D Ruckfallkodierung] [-f Schriftfamilie] [-F Schriftverzeichnis] [-I Einbindungsverzeichnis] [-K Eingabekodierung] [-L Spooler-Argument] [-m Makropaket] [-M Makroverzeichnis] [-n Seitennummer] [-o Seitenliste] [-P Postprozessorargument] [-r numerischer_Ausdruck] [-r Register=numerischer_Ausdruck] [-T Ausgabegerat] [-w Warnungskategorie] [-W Warnungskategorie] [Datei ] groff -h groff --help groff -v [option ] [Datei ] groff --version [Option ] [Datei .] Beschreibung groff ist das primare Frontend fur das GNU- roff(7) -Dokumentenformatierungssystem. GNU- roff(7) ist ein Textsatzsystem, das reine Textdateien als Eingabe liest und die enthaltenen Formatierungsbefehle verwendet, um Ausgaben in PostScript, PDF, HTML, DVI und anderen Formaten oder die Anzeige im Terminal zu erstellen. Formatierbefehle konnen grundlegende Schriftsatzprimitive, Makros eines bereitgestellten Pakets oder benutzerdefinierte Makros sein. Alle drei Ansatze konnen kombiniert werden. Falls kein Operand Datei angegeben ist oder falls Datei >>-<< ist, liest groff aus dem Standardeingabedatenstrom. groff ist eine Neuimplementierung und Erweiterung des Schriftsatzprogramms aus AT&T Unix und aufgrund seiner langen Verbindung mit Unix-Handbuchern (einschliesslich der Handbuchseiten) auf den meisten POSIX-Systemen vorhanden. Zusammen mit seinen Vorgangern ist es bemerkenswert fur die Erstellung mehrerer Bestseller uber Software-Engineering. groff ist in der Lage, typographisch fortgeschrittene Dokumente zu erstellen und dabei minimale Systemressourcen zu verwenden. Der Befehl groff arrangiert die Ausfuhrung von Praprozessoren, die Umwandlung von Eingabedokumenten in eine gerateunabhangige Seitenbeschreibungssprache und die Erstellung der Ausgabe aus dieser Sprache. Optionen -h und --help zeigen eine kurze Aufrufsinformation an 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 verfugt groff uber Optionen, die troff(1) nicht hat und andere, die groff anders interpretiert. Gleichzeitig konnen nicht alle gultigen troff(1) -Optionen an groff ubergeben werden. groff-spezifische Optionen Die folgenden Optionen gibt es entweder bei GNU- troff(1) nicht oder sie werden von groff anders interpretiert. -D Kod Setzt die von preconv(1) verwandte Ruckfalleingabekodierung auf Kod; impliziert -k. -e Fuhrt den Praprozessor eqn(1) aus. -g Fuhrt den Praprozessor grn(1) aus. -G Fuhrt den Praprozessor grap(1) aus; impliziert -p. -I Verz 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 ubergeben. -j Fuhrt den Praprozessor chem(1) aus; impliziert -p. -k Fuhrt den Praprozessor preconv(1) aus. Lesen Sie seine Handbuchseite fur dessen Verhalten, falls keine der Optionen -K und -D von groff zusatzlich angegeben ist. -K Kod Setzt die von preconv(1) verwandte Eingabekodierung auf Arg; impliziert -k. -l Schickt die Ausgabe zum Drucken an einen Spooler. Die Direktive >>print<< in der Geratebeschreibungsdatei legt den zu verwendenden Standardbefehl fest; siehe groff_font(5). Falls fur das Ausgabegerat keine solche Direktive vorhanden ist, wird die Ausgabe per Pipe an lpr(1) weitergeleitet. this option is ignored. Siehe die Optionen -L und -X. -L Arg Ubergibt Arg an den Druck-Spooler. Falls mehrere Arg benotigt werden, ubergeben Sie jedes mit einer getrennten Option -L. groff stellt Arg kein Options-Minuszeichen vor der Ubergabe an das Spooler-Programm voran. -M Funktioniert als Option fur troff(1) , wird aber auch an eqn(1) , grap(1) und grn(1) ubergeben. -N Verbietet Zeilenumbruche zwischen eqn-Trennsymbolen; ubergibt -N an eqn(1). -p Fuhrt den Praprozessor pic(1) aus. -P Arg Ubergibt Arg an den Postprozessor. Falls mehrere Arg benotigt werden, ubergeben Sie jede mit einer getrennten Option -P. groff stellt Arg kein Options-Minuszeichen vor der Ubergabe an den Postprozessor voran. -R Fuhrt den Praprozessor refer(1) aus. Es wird kein Mechanismus zum Weiterreichen von Argumenten an refer zur Verfugung gestellt, weil die meisten Optionen von refer gleichwertige Sprachelemente haben, die innerhalb des Dokuments angegeben werden konnen. -s Fuhrt den Praprozessor soelim(1) aus. -S Arbeitet im Modus mit >>erweiterter Sicherheit<<, siehe -U weiter unten fur das Gegenteil. Aus Sicherheitsgrunden ist der Modus mit erweiterter Sicherheit standardmassig aktiviert. -t Fuhrt den Praprozessor tbl(1) aus. -T Gerat Weist troff(1) an, die Eingabe fur das Ausgabegerat Gerat zu formatieren. groff ruft dann den Ausgabetreiber auf, um die Ausgabe von troff(1) in eine Form umzuwandeln, die fur Gerat geeignet ist; siehe den nachfolgenden Unterabschnitt >>Ausgabegerate<<. -U Arbeitet im unsicheren Modus; ubergibt die Option -U an pic(1) und troff(1). -v --version Schreibt Versionsinformationen von groff und allen Programmen, die es ausfuhrt, in den Standardausgabedatenstrom; dass heisst, die angegebene Befehlszeile wird auf die ubliche Weise verarbeitet, wobei dem Formatierer und allen aufgerufenen Pra- und Postprozessoren -v ubergeben wird. -V Gibt die Befehlssequenz, die von groff ausgefuhrt wurde, in den Standardausgabedatenstrom aus, fuhrt sie aber nicht aus. Wenn dies mehr als einmal angegeben wird, wird groff die Befehlssequenz sowohl ausgeben als auch ausfuhren. -X Verwendet gxditview(1) anstelle des ublichen Postprozessors, um ein Dokument (vorab) auf einer X11-Anzeige zu betrachten. Wenn diese Option mit -Tps kombiniert wird, dann werden die Schriftmetriken des PostScript-Gerats verwandt, wahrend die Optionen -TX75 und -TX100 die Metriken der X11-Schriften verwenden. -Z Deaktiviert das Postprocessing. troff(1) -Ausgabe wird in dem Standardausgabedatenstrom erscheinen (ausser dies wird mit -z unterdruckt); siehe groff_out(5) fur eine Beschreibung dieses Formats. Transparente Optionen Folgende Optionen werden unverandert an das Formatierprogramm troff(1) weitergegeben und detaillierter in dessen Handbuchseite beschrieben. -a Erstellt eine ungefahre Naherung der Schriftsatzausgabe als reinen Text. -b Schreibt bei jedem Fehler oder jeder Warnung eine Ablaufverfolgung (Backtrace) in die Standardfehlerausgabe. -c Startet mit deaktivierter Farbe. -C Aktiviert den AT&T- troff(1) -Kompatibilitatsmodus; impliziert -c. -d cs -d Name=Zeichenkette Definiert eine Zeichenkette. -E Verhindert Fehlermeldungen von troff(1) ; impliziert -Ww. -f Fam Legt die Standard-Schriftfamilie fest. -F Verz Sucht im Verzeichnis Verz nach dem ausgewahlten Ausgabegerateverzeichnis mit Gerate- und Schriftbeschreibungsdateien. -i Verarbeitet die angegebenen Eingabedateien vor der Standardeingabe. -I Verz Durchsucht Verz nach Eingabedateien. -m Name Verarbeitet Name.tmac vor Eingabedateien. -M Verz Durchsucht Verzeichnis Verz nach Makrodateien. -n Num Gibt der ersten Seite die Nummer Num. -o Liste Gibt nur Seiten aus Liste aus. -r cnumerischer_Ausdruck -r Register=numerischer_Ausdruck Definiert ein Register. -w Name -W Name Aktiviert (-w) oder verhindert (-W) die Ausgabe von Warnungen der Kategorie Name. -z Unterdruckt formatierte, gerateunabhangige Ausgabe von troff(1). Aufruf Die Architektur des GNU- roff(7) -Systems folgt der anderer gerateunabhangiger roff(7) -Implementierungen. Sie besteht aus Praprozessoren, Makropaketen, Ausgabetreibern (oder >>Postprozessoren<<), einer Sammlung von Hilfswerkzeugen und zentral dem Formatierer troff(1) Siehe roff(7) fur eine Ubersicht daruber, wie ein Roff-System funktioniert. Die im GNU- roff(7) -System verfugbaren Frontend-Programme erleichtern die Verwendung gegenuber traditionellen roff(7) -Systemen, die die Erstellungen von Befehlsfolgen oder die Verwendung temporarer Dateien benotigen, um die Quellen von der wartbaren Form in die Gerate-bereite Ausgabe zu bringen. Die nachfolgende Erorterung fasst die Bestandteile des GNU- roff(7) -Systems zusammen. Es erganzt roff(7) mit groff-spezifischen Funktionen. Erste Schritte Wer das Lernen durch Experimente bevorzugt oder den Wunsch hat, schnelle Ruckmeldungen vom System zu bekommen, mochte 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 hatten. ( roff(7) -Systeme wurden zu Zeiten von papierbasierten Terminals mit 66 Zeilen pro Seite entwickelt.) Heutige Benutzer konnten die Ausgabe auf ein UTF-8-fahiges Terminal bevorzugen. $ echo "Hello, world!" | groff -Tutf8 | sed '/^$/d' Die Erstellung von PDF, HTML oder TeXs DVI ist auch unkompliziert. Der schwierige Teil konnte die Auswahl eines Betrachtungsprogramms fur 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 mogen sich freuen, dass sie groff in einer Lese-Auswert-Ausgabe-Schleife (REPL) verwenden konnen. Dies kann praktisch sein, um das eigene Verstandnis des Verhaltens des Formatierers oder der von ihm verstandenen Syntax zu bestatigen. 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 konnen Kommentare auch erfolgen. .nr b (\n[a] + (7/2)) \# Den Text der nachsten 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 Seitenlange auf die aktuelle vertikale Position, \# so dass keine leeren Zeilen ausgespuckt werden, wenn wir fertig sind. .pl \n[nl]u Hi, Leslie. Your secret number is 4. It is even. Papierformate In GNU- roff(7) werden die Seitengrossen fur den Formatierer troff(1) und fur die Ausgabegerate getrennt behandelt. Im Formatierer werden Anfragen zum Setzen der Seitenlange (.pl), des Seitenversatzes (oder linken Randes, .po) und der Zeilenlange (.ll) verwandt. Der rechte Rand wird nicht explizit konfiguriert; die Kombination aus Seitenversatz und Zeilenlange stellt die zur Ableitung notwendigen Informationen bereit. Das automatisch von troff(1) geladene Makropaket papersize stellt eine Schnittstelle fur die Konfiguration der Seitendimensionen uber 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 berucksichtigen. Einige bieten alternative Mechanismen. Fur jedes Ausgabegerat kann die Grosse des Ausgabemediums in seiner DESC-Datei gesetzt werden. Die meisten Ausgabetreiber erkennen auch eine Befehlszeilenoption -p, um die Standarddimensionen ausser Kraft zu setzen und eine Option -l, um Querformat zu verwenden. Siehe groff_font(5) fur eine Beschreibung der Direktive papersize, die ein Argument der gleichen Form wie bei -p akzeptiert. Die Handbuchseite des Ausgabetreibers, wie grops(1), konnte auch hilfreich sein. groff verwendet die Befehlszeilenoption -P, um Optionen an die Ausgabegerate weiterzugeben. Verwenden Sie beispielsweise folgendes fur die Postscript-Ausgabe auf A4-Papier im Querformat: groff -Tps -dpaper=a4l -P-pa4 -P-l -ms foo.ms > foo.ps Frontend Das groff-Programm ist ein Wrapper um das troff(1) -Programm. Es ermoglicht die Angabe von Praprozessoren mittels Befehlszeilenoption und fuhrt automatisch den fur das ausgewahlte Ausgabegerat geeigneten Postprozessor aus. Damit kann die manuelle Zusammenstellung von Bearbeitungssequenzen oder die Verwaltung temporarer Dateien vermieden werden, die von Benutzern traditioneller roff(7) -Systeme verlangt wird. Verwenden Sie das Programm grog(1) , um die korrekte groff-Befehlszeile zur Formatierung eines Dokuments abzuleiten. Sprache Eingabe fur ein roff(7) -System ist eine reine Textdatei, in der die Steuerzeilen und Maskiersequenzen eingeschoben sind. Die Kombination bildet ein Dokument in einer der Sprachfamilien, die auch roff(7) genannt werden, siehe roff(7) Hintergrundinformationen. Ein Uberblick uber Sprachsyntax und -funktionalitaten von roff(7) , einschliesslich der vollstandigen Liste unterstutzter Maskiersequenzen, Anfragen und vordefinierter 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. Praprozessoren Ein Praprozessor interpretiert eine domanenspezifische Sprache, die Ausgabe in der Sprache roff(7) erzeugt. Haufig wird solche Eingabe auf Abschnitte oder Bereiche einer roff(7) -Datei beschrankt (durch Makroaufrufe, die spezifisch fur jeden Praprozessor sind, eingeklammert), die dadurch ersetzt werden. Praprozessoren interpretieren daher eine Teilmenge der roff(7) -Syntax zusammen mit ihrer eigenen Sprache. GNU roff(7) stellt Neuimplementierungen der meisten den Benutzern von AT&T troff(1) vertrauten Praprozessoren bereit. Diese haben regelmassig erweiterte Funktionalitaten und/oder benotigen GNU- troff(1) , um ihre Ausgabe zu formatieren. tbl ordnet Tabellen an eqn setzt Mathematik pic zeichnet Diagramme refer verarbeitet Literaturverweise soelim bearbeitet >>eingelesene<< Eingabedateien vor grn stellt Diagramme dar chem . zeichnet chemische Struturformeln mittels pic gperl fullt groff- Register und Zeichenketten mittels glilypond bettet LilyPond- Notenblatter ein gpinyin erleichtert die Eingabe von chinesischem Mandarin mittels Hanyu Pinyin perl(1)in(1) Ein nur bei GNU roff(7) verfugbarer Praprozessor ist preconv(1) , der diverse Eingabekodierungen in eine fur GNU troff(1) verstandliche konvertiert. Wird dieser verwandt, dann wird er vor allen anderen Praprozessoren ausgefuhrt. Die meisten Praprozessoren schliessen 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 durfen dem Steuerzeichen nicht folgen oder vor dem Ende der Eingabezeile sein. Wird von diesen Regeln abgewichen, dann kann der Praprozessor diese Merkmale nicht mehr erkennen. Merkmale werden im Allgemeinen in der Praprozessorausgabe beibehalten und durch troff(1) nachfolgend als Makros interpretiert. Der Praprozessor ideal ist in groff noch nicht verfugbar. +---------------+-----------------+----------------+ |Praprozessor | 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 fur die Verwendung durch die Allgemeinheit geeignet ist, dann heisst sie Makropaket. Makropakete konnen vor allen roff(7) -Eingabedokumenten mit der Option -m geladen werden. Das GNU- roff(7) -System implementiert die bekanntesten Makropakete fur AT&T troff(1) auf eine kompatible Art und erweitert sie. Diese haben ein- oder zweibuchstabige Namen, die von der intensiven Durchfuhrung der Namensokonomie der fruhen Unix-Kultur stammen, ein pragnanter Ansatz, der zur Kennzeichnung vieler Pakete in der allgemeinen Anwendung fuhrt, wobei der nroff(1) - und -Optionsbuchstabe zu ihrem Aufruf fuhrte. Manchmal ergab das Wortspiele, wie bei >>man<< (kurz fur >>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 >>vollumfangliche<< Pakete, die neben anderen grundsatzlichen Aufgaben die Verantwortung fur Seitenlayout ubernehmen und ihr eigenes Lexikon an Makros zum Dokumentenaufbau definieren. Jedes dieser Pakete steht alleine und ein bestimmtes Dokument kann davon hochstens eines nutzen. an 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. doc 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. e 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. m implemetiert das von der AT&A-Makrosammlung der zweiten Generation fur allgemeine Dokumente verwandte Format, ein Nachfolger von s; siehe groff_mm(7). Es kann auf der Befehlszeile mit -mm angegeben werden. om (immer >>mom<< genannt) ist ein von Peter Schaffter speziell fur GNU- roff(7) geschriebenes modernes Paket. Im mom-HTML-Handbuch finden Sie eine ausfuhrliche Dokumentation. Sie - mom hat die weibliche Anrede - kann auf der Befehlszeile als -mom angegeben werden. s ist das ursprungliche Allzweck-Dokumentenformat von AT&T; siehe groff_ms(7). Es kann auf der Befehlszeile mit -ms angegeben werden. Andere sind erganzend. Zum Beispiel ist andoc ein Wrapper-Paket speziell fur GNU- roff(7) , das erkennt, ob das Dokument das man- oder das mdoc-Format benutzt, und das entsprechende Makropaket ladt. Es kann auf der Befehlszeile mit -mandoc angegeben werden. Ein man(1) -Bibliotheksprogramm kann diese Makrodatei dazu verwenden, das Laden des korrekten Makropakets zu delegieren. Es ist daher fur man selbst nicht notwendig, den Inhalt eines Dokumentes zu durchsuchen, um das Problem zu entscheiden. Viele Makropakete erweitern die Funktion der vollumfanglichen 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 Funktionalitaten der AT&T troff(1) und nroff(1) sowie viele Erweiterungen. Die Befehlszeilenoption -C schaltet troff(1) in den Kompatibilitatsmodus, der versucht, das klassische roff(7) so gut wie praktisch moglich zu emulieren, um das Formatieren von Dokumenten, die fur altere Systeme geschrieben wurden, zu ermoglichen. 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 Ausgabegerat mit der Option -T anzugeben und ist daher fur die Verwendung als Terminalausgabegerat praktisch, wie das im nachsten Unterabschnitt beschrieben wird. GNU troff(1) erstellt die Ausgabe in einer Gerate-unabhangigen aber dennoch Gerate-wahrnehmenden Seitenbeschreibungssprache, die in groff_out(5) ausfuhrlich beschrieben wird. Ausgabegerate Die Ausgabe von troff(1) wird fur ein bestimmtes Ausgabegerat formatiert, das typischerweise uber die Option -T des Formatierers oder eines Frontends bestimmt wird. Falls weder diese Option noch die Umgebungsvariable GROFF_TYPESETTER verwandt wird, ist das Vorgabegerat ps. Ein Ausgabegerat kann eines der folgenden sein: ascii fur Teminals, die den Zeichensatz und die -kodierung ISO/IEC 646:1991 IRV verwenden, die auch als US-ASCII bekannt ist. cp1047 fur Terminals, die den Zeichensatz und die -kodierung der IBM-Codeseite 1047 verwenden. dvi fur das DVI-Format von TeX. html xhtml fur HTML- bzw. XHTML-Ausgabe. latin1 fur Terminals, die den Zeichensatz und -kodierung ISO Latin-1 (ISO/IEC 8859-1) verwenden. lbp fur CaPSL-Drucker von Canon (Laserdrucker der Serien LBP-4 und LBP-8). lj4 fur HP-LaserJet4- oder andere PCL5-kompatible Drucker. pdf fur PDF-Ausgabe. ps fur PostScript-Ausgabe. utf8 fur Terminals, die den Zeichensatz ISO/IEC 10646 (>>Unicode<<) in der UTF-8-Kodierung verwenden. X75 zur Vorschau mittels gxditview(1) in einer Auflosung von 75 DPI und einer Basistypgrosse von 10 Punkt. X75-12 zur Vorschau mittels gxditview(1) in einer Auflosung von 75 DPI und einer Basistypgrosse von 12 Punkt. X100 zur Vorschau mittels gxditview(1) in einer Auflosung von 100 DPI und einer Basistypgrosse von 10 Punkt. X100-12 zur Vorschau mittels gxditview(1) in einer Auflosung von 100 DPI und einer Basistypgrosse von 12 Punkt. 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 fur andere Zwecke, wie Seitenumsortierung oder statistische Messungen in einem Dokument, sind denkbar. Jeder Ausgabetreiber unterstutzt ein oder mehrere Ausgabegerate, von denen jedes seine eigene Geratebeschreibungsdatei hat. Ein Gerat bestimmt seinen Postprozessor mit der Direktive postpro in seiner Geratebeschreibungsdatei, siehe groff_font(5). Die Option -X setzt diese Auswahl ausser Kraft und fuhrt dazu, dass gxditview(1) als Ausgabetreiber agiert. 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) stellt X75, X75-12, X100 und X100-12 bereit und kann zusatzlich eine Vorschau von ps durchfuhren. Werkzeuge GNU roff(7) enthalt eine Sammlung von Hilfswerkzeugen. gdiffmk(1) kennzeichnet die Unterschiede zweier roff(7) -Eingabedateien. grog(1) leitet den groff-Befehl ab, den ein Dokument benotigt. Eine Reihe von Hilfswerkzeugen bereiten Schriftbeschreibungen vor, und ermoglichen es dem Formatierer, sie bei der Erstellung der Ausgabe fur ein bestimmtes Gerat zu verwenden. addftinfo(1) fugt Informationen zu AT&T-troff-Schriftbeschreibungsdateien hinzu, damit diese mit GNU- troff(1) genutzt werden konnen. afmtodit(1) erstellt Schriftbeschreibungsdateien fur PostScript-Type-1-Schriften. pfbtops(1) ubersetzt eine PostScript-Typ-1-Schrift aus dem Format PFB (Printer Font Binary) in PFA (Printer Font ASCII), das dann von afmtodit(1) interpretiert werden kann. hpftodit(1) erstellt Schriftbeschreibungsdateien fur die Famile der HP LaserJet 4-Drucker. tfmtodit(1) erstellt Schriftbeschreibungsdateien fur das TeX-DVI-Gerat. xtotroff(1) erstellt Schriftbeschreibungsdateien fur X-Windows-System-Kernschriften. Ein Werkzeugtrio, das mit der Praprozessorsprache roff(7) erstelltes Material in graphische Bilddateien umwandelt. 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. Eine weitere Gruppe an Programmen arbeitet mit bibliographischen Datendateien, die vom Praprozessor refer(1) verwandt werden. indxbib(1) erstellt invertierte Indizes fur bibliographische Datenbanken, beschleunigt Nachschlageaktionen auf ihnen. lkbib(1) durchsucht die Datenbanken. lookbib(1) durchsucht die Datenbanken interaktiv. Ruckgabewert groff beendet sich mit einem Fehlerstatus, falls es beim Auswerten seiner Argumente ein Problem gab und mit einem erfolgreichen Status, falls entweder die Option -h oder --help angegeben wurde. Andernfalls fuhrt groff eine Befehlssequenz zur Verarbeitung seiner Eingabe aus; falls sich alle Befehle innerhalb der Befehlssequenz erfolgreich beenden, macht groff dies auch. Falls nicht, kodiert der Exit-Status von groff eine Zusammenfassung der aufgetretenen Probleme; dabei wird Bit 0 gesetzt, falls sich ein Programm mit einem Fehlerstatus beendete, Bit 1, falls ein Programm durch ein Signal beendet wurde und Bit 2, falls ein Befehl nicht ausgefuhrt werden konnte. (Falls daher alle drei Unglucksfalle die Befehlssequenz betreffen wurden, wurde sich groff mit dem Status 2^0 + 2^1 + 2^2 = 1+2+4 = 7 beenden.) Um Fehler bei Problemen in der Sequenz zu untersuchen, konnte der erneute Aufruf von groff mit der Option -V hilfreich sein und dabei die berichtete Befehlssequenz in separate Stufen herunterzubrechen und dann den von jedem Befehl ausgegebenen Exit-Status und die Diagnosemeldungen zu untersuchen. Umgebung Normalerweise ist in Umgebungsvariablen, die mit PATH enden, das Trennzeichen fur Pfadangaben der Doppelpunkt; dies kann abhangig vom Betriebssystem variieren. Zum Beispiel nutzt Windows stattdessen ein Semikolon. GROFF_BIN_PATH Dieser Suchpfad, gefolgt von PATH, wird zum Auffinden von Befehlen, die von groff ausgefuhrt werden, genutzt. Falls er nicht gesetzt ist, wird das Installationsverzeichnis der GNU- roff(7) -Programme /usr/bin vor PATH durchsucht. GROFF_COMMAND_PREFIX GNU roff(7) kann zum Kompilierungszeitpunkt so konfiguriert werden, dass es Prafixe an Programmnamen anwendet, die es bereitstellt und fur die es ein Gegenstuck in AT&T troff(1) gibt, so dass Namenskollisionen zur Laufzeit vermieden werden. Das Standardprafix ist leer. Wird es verwandt, ist dieses Prafix typischerweise der Buchstabe >>g<<. Beispielsweise wurde GNU- troff(1) als gtroff installiert. Neben troff(1) gilt der Prafix auch fur die Formatierer nroff(1) , den Praprozessoren eqn, grn, pic, refer, tbl und soelim(1) und die Hilfswerkzeuge indxbib(1) und lookbib(1). GROFF_ENCODING Der Wert dieser Variable wird an die Option -e des Praprozessors preconv(1) ubergeben, um die Zeichenkodierung der Eingabedateien auszuwahlen. Die Existenz dieser Variablen impliziert die Option -k von groff. Falls gesetzt aber leer ruft groff preconv(1) ohne eine Option -e auf. Die Option -K von groff setzt GROFF_ENCODING ausser Kraft. GROFF_FONT_PATH Sucht nach dem Verzeichnis der Gerate- und Schriftbeschreibungsdateien fur das gewahlte Ausgabegerat in dieser Liste von Verzeichnissen. Siehe troff(1) und groff_font(5). GROFF_TMAC_PATH Sucht Makrodateien in dieser Liste von Verzeichnissen. Siehe troff(1) und groff_tmac(5). GROFF_TMPDIR Erstellt temporare Dateien in diesem Verzeichnis. Falls diese Variable nicht, aber die Umgebungsvariable TMPDIR gesetzt ist, werden temporare Dateien stattdessen dort erstellt. Auf Windows-Systemen werden die Umgebungsvariablen TMP und TEMP (in dieser Reihenfolge) auch uberpruft, falls keine der vorangegangenen gesetzt ist. Andernfalls werden temporare Dateien in /tmp erstellt. Die Befehle refer(1) , grohtml(1) und grops(1) verwenden temporare Dateien. GROFF_TYPESETTER Setzt das Standard-Ausgabegerat. Falls leer oder nicht gesetzt wird ps verwandt. Die Option -T setzt GROFF_TYPESETTER ausser Kraft. SOURCE_DATE_EPOCH Ein Zeitstempel (ausgedruckt in Sekunden seit der Unix-Epoch), der als Ausgabeerstellungszeitstempel anstelle der aktuellen Zeit verwandt werden soll. Die Zeit wird beim Start des Formatierers mittels localtime(3) in eine menschenlesbare Form umgewandelt und in Registern fur die Verwendung durch Dokumente und Makropakete gespeichert. TZ Die bei der Umwandlung der aktuellen Zeit in eine menschenlesbare Form zu verwendende Zeitzone (oder Wert von SOURCE_DATE_EPOCH); siehe tzset(3). Beispiele roff(7) -Systeme sind am besten fur die Formatierung von Handbuchseiten bekannt. Sobald ein man(1) -Bibliotheksprogramm eine Handbuchseite gefunden hat, kann es den Befehl groff ganz ahnlich wie folgt aufrufen: groff -t -man -Tutf8 /usr/share/man/man1/groff.1 Das Bibliotheksprogramm wird auch die Ausgabe mittels Pipe an ein Seitenbetrachtungsprogramm weiterleiten, das die SGR-Terminal-Maskiersequenzen, die groff fur Fettdruck, Unterstreichen und Kursiv ausgibt, nicht interpretieren konnte, siehe den nachfolgenden Abschnitt >>Beschrankungen<<. Um eine roff(7) -Datei mittels der Praprozessoren tbl und pic sowie dem Makropaket me zu verarbeiten wie dies Benutzer des klassischen AT&T- roff(7) gewohnt sind, muss eine Befehlssequenz geschrieben (oder geskriptet) werden. pic foo.me | tbl | troff -me -Tutf8 | grotty Bei groff kann diese Pipe auf den entsprechenden Befehl gekurzt werden. groff -p -t -me -T utf8 foo.me Ein einfachere Moglichkeit, dies zu erreichen, ist grog(1) zu verwenden, um den Praprozessor und die Makrooptionen zu erraten, und das Ergebnis durch Verwendung der Befehlssubstitutionsfunktionalitat der Shell auszufuhren. $(grog -Tutf8 foo.me) Jede Befehlszeilenoption an einen Postprozessor muss mit der benotigten Anzahl an einleitenden Gedankenstrichen >>-<< angegeben werden, da groff die Argumente unverandert an den Postprozessor weitergibt; dies ermoglicht die Ubergabe einer beliebigen Anzahl an Argumenten. 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' - aquivalent. Beschrankungen Bei der seitenweisen Anzeige fur die Gerate ascii, cp1047, latin1 und utf8 konnten Programme wie more(1) und less(1) Befehlszeilenoptionen benotigen, um bestimmte Terminal-Maskiersequenzen korrekt zu handhaben; siehe grotty(1). In EBCDIC-Umgebungen wie OS/390 Unix sind die Ausgabegerate ascii und latin1 nicht verfugbar. Umgekehrt ist das Gerat cp1047 auf Systemen, die auf den Zeichenkodierungsnormen ISO/IEC 646 oder ISO/IEC 8859 basieren, nicht verfugbar. Installationsverzeichnisse GNU groff installiert Dateien an verschiedene Stellen, abhangig von seiner Konfiguration zum Zeitpunkt der Kompilierung. Auf dieser Installation werden die folgenden Orte verwandt: /usr/lib/X11/app-defaults Application defaults directory for gxditview(1). /usr/bin Verzeichnis, das die ausfuhrbaren Befehle von groff enthalt /usr/share/groff/1.23.0/eign Liste haufiger Worter fur indxbib(1) /usr/share/groff/1.23.0 Verzeichnis fur Datendateien /usr/dict/papers/Ind Vorgabeindex fur lkbib(1) und refer(1) /usr/share/doc/groff-1.23.0 Dokumentationsverzeichnis /usr/share/doc/groff-1.23.0/examples Beispielverzeichnis /usr/share/groff/1.23.0/font Schriftenverzeichnis /usr/share/doc/groff-1.23.0/html HTML-Dokumentationsverzeichnis /usr/lib/font Veraltetes Verzeichnis fur Schriftarten /usr/share/groff/site-font Lokales Schriftartenverzeichnis /usr/share/groff/site-tmac Lokales Verzeichnis fur Makropakete (tmac-Dateien) /usr/share/groff/1.23.0/tmac Verzeichnis fur Makropakete (tmac-Dateien) /usr/share/groff/1.23.0/oldfont Schriftartenverzeichnis fur die Kompatibilitat mit alteren Versionen von groff; siehe grops(1) /usr/share/doc/groff-1.23.0/pdf PDF-Dokumentationsverzeichnis Makroverzeichnis von groff Die meisten durch GNU- roff(7) bereitgestellten Makropakete sind in /usr/share/groff/1.23.0/tmac fur die Installation entsprechend dieses Dokuments gespeichert. Als grundsatzliche Regel gilt, dass mehrere Verzeichnisse nach Makrodateien durchsucht werden; siehe %troff(1) Sie finden in groff_tmac(5) einen Katalog an von GNU roff(7) bereitgestellten Makrodateien. groff-Gerate- und Schriftbeschreibungsverzeichnis Von GNU roff(7) bereitgestellte Gerate- und Schriftbeschreibungsdateien sind in /usr/share/groff/1.23.0/font bei einer Installation entsprechend dieses Dokuments gespeichert. Als grundsatzliche Regel gilt, dass mehrere Verzeichnisse nach Gerate- und Schriftbeschreibungsdateien durchsucht werden; siehe troff(1). Zu den Formaten dieser Dateien siehe groff_font(5). Verfugbarkeit Sie erhalten Links zu groff-Veroffentlichungen zum Herunterladen, seinem Quell-Depot, Diskussions-Mailinglisten, eine Unterstutzungs-Problemdatenbank und weitere Informationen auf der groff-Seite der GNU-Website . Eine freie Implementierung des Praprozessors grap, geschrieben von Ted Faber kann auf der grap-Website gefunden werden. groff unterstutzt nur dieses grap. Autoren groff (sowohl die Frontend-Befehle als auch das Gesamtsystem) wurde primar von James Clark geschrieben. Zu diesem Dokument haben auch Clark, Trent A. Fisher Werner Lemberg , Bernd Warken und G. Branden Robinson beigetragen. Siehe auch Groff: Die GNU-Implementierung von Troff, von Trent A. Fisher und Werner Lemberg, ist das primare groff-Handbuch. Sie konnen es interaktiv mit >>info groff<< lesen. Einfuhrung, Geschichte und weitere Lekture: roff(7) Betrachter fur groff- (und gerateunabhangige AT&T- troff(1) -)Dokumente: gxditview(1) Praprozessoren: 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), mmroff(1), groff_mom(7), pdfmom(1), groff_ms(7), groff_rfc1345(7), groff_trace(7), groff_www(7) Verwaltungswerkzeuge fur bibliographische Datenbanken: indxbib(1), lkbib(1), lookbib(1) Sprache, Konventionen und GNU-Erweiterungen: groff(7), groff_char(7), groff_diff(7), groff_font(5), groff_tmac(5) Sprache der Zwischenausgabe: groff_out(5) Formatierprogramm: troff(1) Formatierer-Wrapper: nroff(1), pdfroff(1) Postprozessoren fur Ausgabegerate: grodvi(1), grohtml(1), grolbp(1), grolj4(1), gropdf(1), grops(1), grotty(1) Hilfswerkzeuge fur die Schrift-Unterstutzung: addftinfo(1), afmtodit(1), hpftodit(1), pfbtops(1), tfmtodit(1), xtotroff(1) Hilfswerkzeuge fur die Graphikumwandlung: eqn2graph(1), grap2graph(1), pic2graph(1) Hilfswerkzeuge fur die Darstellung von Unterschieden: gdiffmk(1) Hilfswerkzeug >>groff guess<<: grog(1) UBERSETZUNG Die deutsche Ubersetzung dieser Handbuchseite wurde von Florian Rehnisch , Frank Stahr , Mario Blattermann , Dr. Tobias Quathamer und Helge Kreutzmann erstellt. Diese Ubersetzung ist Freie Dokumentation; lesen Sie die GNU General Public License Version 3 oder neuer bezuglich der Copyright-Bedingungen. Es wird KEINE HAFTUNG ubernommen. Wenn Sie Fehler in der Ubersetzung dieser Handbuchseite finden, schicken Sie bitte eine E-Mail an die Mailingliste der Ubersetzer . Groff 1.23.0 28. August 2024 groff(1)