Troff (Software)

Troff (Software)

Troff ist ein Textsatzsystem, das von AT&T für das Betriebssystem Unix entwickelt wurde. Es erlaubt professionellen und qualitativ hochwertigen Textsatz, samt typographischen Merkmalen wie verschiedenen Schriftarten, und Schriftschnitten, Abständen, Absätzen, Rändern, automatischer Worttrennung am Zeilenende, Fußnoten und Inhaltsverzeichnis, um nur einige zu nennen. Es gibt Erweiterungen, um Tabellen, Diagramme und mathematische Formeln darzustellen. Troff ist eine Markupsprache wie z. B. HTML und wird daher als reiner Text mit einem Texteditor geschrieben.

Troff wird in fast allen UNIX-artigen Systemen zur Formatierung der Online-Dokumentationen (man-Pages) verwendet.

Troff und TeX sind insofern miteinander verwandt, als beide das Ziel verfolgen, qualitativ hochwertigen Textsatz zu ermöglichen. Allerdings sind die Ansätze sehr verschieden, nicht nur in der Syntax, sondern auch in der Handhabung der Programmpakete und Schriftarten.

Inhaltsverzeichnis

Geschichte

Troff hat seinen Ursprung in einem Textverarbeitungsprogramm namens RUNOFF, geschrieben von Jerome H. Saltzer für das CTSS-Betriebssystem des MIT in der Mitte der 1960er. (Angeblich kam der Name von der damals gebräuchlichen Phrase, I’ll run off a document.)

Fotobelichter funktionierten damals mit Schablonen der einzelnen Zeichen. Eine Lichtquelle hat durch eine zweckmäßige Anordnung von Linsen und Zeichenschablone einen Film belichtet, Buchstabe für Buchstabe, Zeile für Zeile. Eine andere Schriftart konnte durch halbautomatisches Austauschen der Zeichenschablonen, das Ändern des Schriftschnittes ein internes Rotieren derselben, erzielt werden. Ein Schablonensatz bestand immer aus einer Schriftart mit verschiedenen Schriftschnitten. Der Belichter konnte eine Anzahl dieser Schablonensätze verwalten, aus dieser Einschränkung rührt auch die Notwendigkeit, Schriftarten zu Beginn des Dokuments zu „laden“.

Bob Morris portierte RUNOFF auf die GE 635-Architektur und nannte das Programm roff (eine Abkürzung von runoff). Es wurde als rf für die PDP-7 neu geschrieben, und zur gleichen Zeit (1969) schrieb Doug McIlroy eine erweiterte und vereinfachte Version von roff in der BCPL-Programmiersprache.

Die erste Version für Unix wurde auf einer PDP-7 entwickelt, die bei den Bell Labs stand. 1971 benötigten die Entwickler eine PDP-11, um weiter an dem Betriebssystem zu arbeiten. Um die Kosten dieses Systems zu rechtfertigen, schlugen sie vor, ein Dokumentenformatierungssystem für die AT&T-Patentdivision zu entwickeln. Dieses erste Formatierungsprogramm war eine von Joe F. Ossanna geschriebene Reimplementation von McIllroys roff.

nroff (Newer ‚roff‘), wurde hinsichtlich der bisher eingeschränkten Befehle entwickelt. Es hatte eine wesentlich kompliziertere Syntax, war aber die Basis für alle späteren Versionen. Es konnte allerdings nur Ausgaben für zeichenorientierte Geräte wie Zeilendrucker, Typenraddrucker, Computerterminals usw. formatieren.

Als die Labs einen Graphic Systems CAT Phototypesetter bekamen, schrieb Ossanna eine angepasste Version von nroff in PDP-11-Assemblersprache, die ihn ansteuern konnte. Diese Version wurde troff (typesetter roff) genannt, obwohl viele spekulierten, dass es eigentlich Times roff bedeute, aufgrund der Benutzung der Times Roman-Schriftenfamilie in troff als Standardschrift.

Die Festlegung auf die PDP-11 und den CAT erwies sich in Folge jedoch als Einschränkung. Osanna portierte troff nach C, obwohl es inzwischen auf 7000 Zeilen vom CAT abhängigen, unkommentierten Programmcode angewachsen war. Als der CAT älter wurde und der Hersteller die Unterstützung einstellte, bekam die Notwendigkeit, dass troff andere Geräte ansteuern kann, Priorität. Ossanna starb jedoch an einem Herzinfarkt, bevor dies realisiert werden konnte.

So kam Brian Kernighan zu der Aufgabe, troff in C zu programmieren. Diese von Grund auf neu entwickelte Version produzierte geräteunabhängigen Code, der sehr einfach von Treibern gelesen und in entsprechende Druckercodes übersetzt werden konnte. Diese neue Version von troff (ditroff, für device independent ‚troff‘, genannt) hatte außerdem einige Erweiterungen wie z. B. Zeichenfunktionen.

troff wurde dann zur Documenter’s WorkBench und wurde bei den Bell Labs (die in Unix System Laboratories, USL, umbenannt wurden) bis 1994 ständig weiterentwickelt. Danach übernahm SoftQuad die Pflege. Brian Kernighan entwickelte troff trotzdem alleine weiter. Deshalb gibt es zur Zeit drei Varianten des Bell-Labs-troff. Der Quellcode von 'ditroff aus der Documenter’s WorkBench wurde am 14. Juni 2005 zusammen mit Solaris von Sun veröffentlicht unter die OpenSource Lizenz CDDL gestellt.

Interner Aufbau

Troff kann als Filter verstanden werden. Mit einem Editor wird ein Textdokument erstellt, welches mittels troff in ein anderes Format übersetzt wird, unter Beachtung der Anweisungen, die im Dokumententext eingebettet sind.

Früher wurde mit dem troff-Ausgabekode direkt der Fotobelichter angesteuert. Mit dem Aufkommen anderer hochauflösender Druckmethoden (z. B. Laserdrucker) wurde troff derart umgeschrieben, dass eine Art Metakode generiert wurde, sogenanntes device independent troff, kurz ditroff. Weitere Filterprogramme generierten dann aus diesem Zwischenformat den endgültigen, gerätespezifischen Kode zur Ansteuerung.

Makros

Da die troff-Steuerbefehle teilweise komplex sind und innerhalb eines Dokumentes mehrfach vorkommen können, wurde von Anfang an die Möglichkeit der Makroerstellung vorgesehen. So können verschiedene troff-Befehle, z. B. zum Verkleinern des Fontgröße bei gleichzeitigem Ändern des linken und rechten Einzuges zu einem Makro zusammengefasst werden. Das erhöht die Übersichtlichkeit im Dokument enorm und ermöglicht ähnlich der CSS bei HTML oder Stilvorlagen in den bekannten grafischen Textverarbeitungen eine zentralisierte Formatstruktur, die bei Anpassungen einmal geändert werden muss und so Änderungen an vielen Stellen im Dokument vermeidet.

Es wurden umfangreiche Makro-Pakete für unterschiedlichste Dokumentenstile entwickelt. Eine typische troff-Distribution enthält z. B. die me-Makros, um wissenschaftliche Arbeiten zu formatieren, man-Makros, um Unix-man-pages zu erstellen, und die ms-Makros für Bücher, technische Dokumentationen und Berichte.

Präprozessoren

Als sich troff zur DWB weiterentwickelte, begann die Arbeit an diversen Präprozessor-Programmen, da sich in troff nicht alles einfach realisieren ließ. Diese Programme transformieren – auch wieder als Filter – bestimmte Teile eines Dokuments in troff-Input. Diese Filterprogramme haben ihre eigene Syntax und erkennen ihren Kode im troff-Dokument anhand bestimmter Schlüsselbefehle (die genau eine Zeile umfassen) und übersetzen den Kode dazwischen in troff-Steuerbefehle (Requests).

Präprozessor Funktion
tbl Tabellensatz
eqn Formeln und mathematische Ausdrücke
pic Einfache Illustrationen und Flussdiagramme (Bestandteil von Documenters Workbench/ditroff)
ideal Zeichenfunktionen ähnlich pic
grap Graphen, wandelt aber diesen code in pic code, nicht direkt troff
refer Bibliografische Verweise- und Zitateverwaltung
bib Siehe refer weiter oben
soelim Externe Textdateien laden, die von einem Präprozessor bearbeitet werden müssen

nroff erzeugt Ausgaben für zeichenorientierte Geräte wie Zeilendrucker, Typenraddrucker, Computerterminals usw. Kommandos, die nicht anwendbar sind (wie Schriftartänderungen), werden ignoriert.

Varianten

  • troff von Bill Joy, wurde bis SunOS-4.x Sun ausgeliefert; seit SunOS-5.x liefert Sun ditroff
  • Die Heirloom Documentation Tools sind eine Version von ditroff mit einigen Erweiterungen; der frei verfügbare Quellcode basiert auf den gleichnamigen Programmen von OpenSolaris
  • Die SoftQuad DWB, die auf der USL DWB 2.0 von 1994 basiert
  • Die DWB 3.4 von Lucent Software Solutions (USL),
  • groff eine GNU-Implementation für troff und nroff

Troff heute

In den 1990er Jahren ließ die Popularität der troff-Familie nach, aber sie wird dennoch recht intensiv benutzt. Obwohl Troff von anderen Programmen wie Interleaf, FrameMaker und LaTeX ersetzt wurde, ist es immer noch das Standard-Format der UNIX-Dokumentation, der sogenannten Manpages.

Die Möglichkeit, Plaintext auszugeben und diesen trotzdem zu formatieren, ist heutzutage die wohl wichtigste Funktion von troff: Das Anzeigen einer Manpage auf einem modernen Unix-System startet im Hintergrund einen nroff-Prozess, welcher die im troff-Format vorliegenden Manpages formatiert und diese an ein Textbetrachtungsprogramm (z. B. more oder less) weiterreicht.

Referenzen

Weblinks


Wikimedia Foundation.

Игры ⚽ Нужно сделать НИР?

Schlagen Sie auch in anderen Wörterbüchern nach:

  • Troff — oder TROFF steht für: Troff (Software), kurz für Text Runoff, eine Textsatzsoftware. den Debugging Befehl trace off der Programmiersprache BASIC. Diese Seite ist eine Begriffsklärung zur Unterscheidung me …   Deutsch Wikipedia

  • Troff — Saltar a navegación, búsqueda troff es un sistema de proceso de textos desarrollado por AT T para el sistema operativo UNIX. Características Entre las características de troff se encuentran el espaciado, párrafos, márgenes, notas al pie de página …   Wikipedia Español

  • troff — es un sistema de proceso de textos desarrollado por AT T para el sistema operativo UNIX. Características Entre las características de troff se encuentran el espaciado, párrafos, márgenes, notas al pie de página y mucho más. A diferencia de otros… …   Wikipedia Español

  • troff — This article is about the Unix document processing system. For the command in BASIC, see TROFF. Not to be confused with Trough (disambiguation). troff is a document processing system developed by AT T for the Unix operating system. Contents 1… …   Wikipedia

  • Troff — See also trough. : TROFF may also refer to a command in the BASIC programming language. It is short for TRACE OFF . Some BASIC interpreter implementations used TROFF in place of or in addition to TRACE OFF lowercase|title=trofftroff is a document …   Wikipedia

  • Groff (software) — Infobox Software name = groff caption = developer = GNU Project latest release version = 1.19.2 latest release date = release date|2005|09|07 operating system = Cross platform genre = Typesetting license = GNU General Public License website =… …   Wikipedia

  • Refer (software) — refer is a program for managing bibliographic references,and citing them in troff documents.It is implemented as a troff preprocessor.refer was written by Mike E. Lesk at Bell Laboratories [Michael Lesk. Some applications of inverted indexes on… …   Wikipedia

  • SoftQuad Software — is best known for its HoTMetaL HTML editing software. HoTMetaL was one of a series of applications created by SoftQuad for editing, viewing and publishing structured (SGML and XML) content. HoTMetaL was based upon a popular SGML Editor called… …   Wikipedia

  • Groff — Entwickler: James Clark Aktuelle Version: 1.20.1 (Januar 2009) Betriebssystem: UNIX/Linux Kategorie: Schriftsatz …   Deutsch Wikipedia

  • Groffer — Groff Entwickler: James Clark Aktuelle Version: 1.20.1 (Januar 2009) Betriebssystem: UNIX/Linux Kategorie: Schriftsatz …   Deutsch Wikipedia

Share the article and excerpts

Direct link
Do a right-click on the link above
and select “Copy Link”