Troff
Originalautor (en) | Joe Ossanna |
---|---|
Entwickler (en) | AT & T Bell Laboratories |
Geschrieben in | C |
Betriebssystem | Unix, Unix-artig, Plan 9 |
Plattform | Plattformübergreifend |
Typ | Befehl |
Lizenz | Plan 9: MIT -Lizenz |
Webseite | TROFF![]() |
TROFF (/ˈtichrɒf/), kurz für "TypeSetter Roff", die Hauptkomponente von a Dokumentverarbeitungssystem entwickelt von Bell Labs für die Unix Betriebssystem. TROFF und die verwandten Nroff wurden beide aus dem Original entwickelt Roff.
Während NROFF aus Ausgabe an Klemmen und Leitungsdruckern produzieren sollte, sollte TOFF die Ausgangsausgabe erzeugen Artensett Systeme, insbesondere die Grafiksysteme Katze das war 1972 eingeführt worden. Beide verwendeten den gleichen zugrunde liegenden Auszeichnungssprache und eine einzelne Quelldatei könnte normalerweise von NROFF oder TROFF ohne Änderung verwendet werden.
TROFF Befehle Befehle zur Bestimmung von Schriftarten, Abstand, Absätzen, Rändern, Fußnoten und mehr. Im Gegensatz zu vielen anderen Textformatierern, TROFF Kann Zeichen willkürlich auf einer Seite positionieren, sie überlappen sie sogar und verfügt über eine vollständig programmierbare Eingabestand. Separate Präprozessoren werden für eine bequemere Produktion von Tabellen, Diagrammen und Mathematik verwendet. Eingaben in TROFF sind Klartextdateien, die von jedem Texteditor erstellt werden können.
Umfangreich Makropakete wurden für verschiedene Dokumentstile erstellt. Eine typische Verteilung von TROFF Beinhaltet die mich Makros für die Formatierung von Forschungsarbeiten, Mann und mdoc Makros zum Erstellen von Unix Mannseiten, MV Makros zur Erstellung montierbar Transparentiere, und die Frau und mm Makros für Briefe, Bücher, technische Memoranda und Berichte.
Geschichte
TROFF 'S -Ursprünge können auf a verfolgt werden Textformatierung Programm genannt ABFLIESSEN, was geschrieben wurde von Jerome H. Salzer zum MIT's CTSS Betriebssystem Mitte der 1960er Jahre. (Der Name kam angeblich aus dem Ausdruck Ich werde ein Dokument ablaufen.))
Bob Morris portierte es auf die GE 635 Architektur und das Programm genannt Roff (eine Abkürzung von abfließen). Es wurde als HF für die umgeschrieben PDP-7und gleichzeitig (1969), Doug McIlroy Umschrieben eine erweiterte und vereinfachte Version von Roff in dem BCPL Programmiersprache.
Die erste Version von Unix wurde auf einer PDP-7 entwickelt, die herum saß Bell Labs. 1971 wollten die Entwickler eine bekommen PDP-11 Für weitere Arbeiten am Betriebssystem. Um die Kosten für dieses System zu rechtfertigen, schlugen sie vor, ein Dokumentformatierungssystem für die Bell Labs Patent Department implementieren würden.[1] Dieses erste Formatierungsprogramm war eine Neuauflagen von Mcillroy's Roff, geschrieben von Joe F. Ossanna.
Wenn sie eine flexiblere Sprache brauchten, eine neue Version von Roff genannt Nroff (Neuere "Roff") wurde geschrieben, was die Grundlage für alle zukünftigen Versionen bildete. Als sie eine bekommen haben Grafiksysteme Katzenphototypesetter, Ossanna modifiziert Nroff mehrere Schriftarten zu unterstützen und Proportionalabstand. Genannt TROFF, zum TypeSetter Roff, sein hoch entwickelter Ausgang überraschte den ArtenSetter -Hersteller und verwirrt Peer-Rezensenten, wer dachte, dass Manuskripte verwendet werden TROFF war schon einmal veröffentlicht worden.[2][3] Als solcher der Name TROFF wird ausgesprochen /ˈtichrɒf/ statt */ˈtrɒf/.
Mit TROFF kam Nroff (Sie waren eigentlich fast das gleiche Programm), das für die Erzeugung der Ausgabe für die Erzeugung war Zeilendrucker und Charakter Terminals. Es verstand alles TROFF tat und ignorierte die Befehle, die nicht anwendbar waren, z. B., Schriftart Änderungen.
Ossanna TROFF wurde geschrieben PDP-11 Montagesprache und erzeugte Ausgang speziell für die Katze Phototypesetter. Er hat es umgeschrieben CObwohl es jetzt 7000 Zeilen unkontrollierter Code war und immer noch von der Katze abhängig war. Als die Katze weniger verbreitet war und vom Hersteller nicht mehr unterstützt wurde, wurde die Notwendigkeit, andere Geräte zu unterstützen, zu einer Priorität. Ossanna starb, bevor diese Aufgabe erledigt wurde, also Brian Kernighan übernahm die Aufgabe des Umschreibens TROFF. Die neu geschriebene Version erzeugte einen Geräts unabhängigen Code, der für Post-Prozessoren sehr einfach war, die entsprechenden Druckercodes zu lesen und zu übersetzen. Auch diese neue Version von TROFF (oft angerufen Ditroff zum Geräteunabhängige TROFF) hatte mehrere Erweiterungen, einschließlich Zeichnungsfunktionen.[4] Die Dokumentation des Programms definiert das Ausgabeformat von Ditroff, was von vielen modernen verwendet wird TROFF Klone wie GNU dürfen.
Das TROFF Sammlung von Werkzeugen (einschließlich Vor- und Post-Prozessoren) wurde schließlich gerufen Workbench des Documenters (DWB), und stand in Bell Labs und später bei der Spin-off kontinuierlich weiterentwickelt UNIX -Systemlabors (USL) bis 1994. Zu dieser Zeit, Softquad übernahm die Wartung, obwohl sich Brian Kernighan weiter verbesserte TROFF selbstständig. Somit gibt es mindestens die folgenden Varianten der ursprünglichen Bell -Labors TROFF in Benutzung:
- der Softquad DWB, basierend auf USL DWB 2.0 aus 1994;
- die DWB 3.4 von Lucent Softwarelösungen (ehemals USL);
- TROFF, Plan 9 Auflage.
Während TROFF wurde durch andere Programme wie z. Einfreulich, Framemaker, und LatexEs wird immer noch ziemlich ausführlich verwendet. Es bleibt das Standardformatierer für die Unix -Dokumentation.
Die Software wurde neu implementiert als dürfen für die GNU System ab 1990. Außerdem aufgrund der Open Sourcing von Alte Unix Systeme sowie moderne Nachfolger wie die auf Ditroff basierenden Open-Sourcing-Versionen auf OpenSolaris und Plan 9 von Bell LabsEs gibt mehrere Versionen von AT & T Troff (Cat und Ditroff-basiert[5]) im Rahmen verschiedener Open-Source-Lizenzen verfügbar.
Makros
TROFF enthält Sätze von Befehlen genannt Makros die ausgeführt werden, bevor das Dokument verarbeitet wird. Diese Makros umfassen die Einrichtung von Seiten- und Fußzeilen, neue Befehle zu definieren und im Allgemeinen zu beeinflussen, wie die Ausgabe formatiert wird. Das Befehlszeilenargument Für die Einbeziehung eines Makro -Sets ist -mName, was dazu geführt hat, dass viele Makro -Sets als Basistilename mit einem führenden Namen bezeichnet werden m.
Die Standard -Makro -Sets mit führender Bedeutung m sind:
- Mann zum Erstellen Handbuch Seiten[6][7]
- mdoc für semantisch annotierte Handbuch Seiten, die besser an angepasst sind Mandoc Konvertierung in andere Formate.[8][9]
Mandoc
ist eine Fusion, die beide manuellen Befehle setzt.[10] - mich zum Erstellen von Forschungsarbeiten[11]
- mm zum Erstellen Memorandums[12]
- Frau Zum Erstellen von Büchern, Berichten und technischen Dokumentation[13]
Eine umfassendere Liste der verfügbaren Makros ist normalerweise in a aufgeführt TMAC (5)
Handbuch Seite.[10]
Präprozessoren
Wie TROFF sich entwickelt, da es mehrere Dinge gibt, die nicht leicht gemacht werden können TROFF, mehrere Präprozessoren wurden entwickelt. Diese Programme verwandeln bestimmte Teile eines Dokuments in TROFF Eingabe, auf natürliche Weise in die Verwendung von "Pipelines" in UNIX einfügen - sendet die Ausgabe eines Programms als Eingabe an einen anderen (siehe Rohre und Filter). Typischerweise übersetzt jeder Präprozessor nur Abschnitte der speziell gekennzeichneten Eingabedatei und überträgt den Rest der Datei durch unverändertes. Die eingebetteten Vorverarbeitungsanweisungen sind in einer einfachen anwendungsspezifischen Programmiersprache geschrieben, die ein hohes Maß an Kraft und Flexibilität bietet.
- EQN Präprozessor ermöglicht es, mathematische Formeln auf einfache und intuitive Weise festzulegen.[14]
- tbl ist ein Präprozessor für Formatierungstische.
- verweisen (und das ähnliche Programm Lätzchen) verarbeitet Zitate in einem Dokument nach a bibliographisch Datenbank.
Drei Präprozessoren bieten TROFF mit Zeichnungsfähigkeiten durch Definition a Domänenspezifische Sprache zum Beschreiben des Bildes.
- Bild ist ein prozedurale Programmiersprache Bereitstellung verschiedener Zeichenfunktionen wie Kreis und Kasten.[15]
- Ideal Ermöglicht die Zeichnung von Bildern deklarativAbleiten des Bildes durch Lösen eines Systems von Simultangleichungen Basierend auf Vektoren und Transformationen, die durch seine Eingabe beschrieben werden.[16]
- grn beschreibt die Bilder durch grafische Elemente, die bei absoluten Koordinaten basierend auf dem gezeichnet sind Gremlin -Dateiformat definiert durch eine frühe Grafik -Workstation.[17]
Noch mehr Präprozessoren ermöglichen die Zeichnung komplexerer Bilder durch Erzeugung von Ausgabe für Bild.
- Grap Zeichnungen Diagramme, wie Handlungsdiagramme und Histogramme.[18]
- Chem Zeichnungen Chemische Strukturdiagramme.[19]
- dformat Zeichnungen rekordbasiert Datenstrukturen.[20]
Implementierungen
- Erbstück TROFF basiert auf TROFF von OpenSolaris Und so ist ein Nachkomme von Bell Labs 'Original -TROFF. Es beinhaltet Unterstützung für Offener Typ Schriftarten, verbesserte Unterstützung für Typ 1 Schriftarten, Unterstützung für Unicode, ein neuer Absatz -Formatierungsalgorithmus, fortgeschrittene Typografie und a dürfen Kompatibilitätsmodus.
- dürfen ist GNU -Projekt's frei Neuauflagen von TROFF und NROFF.
- Neatroff beinhaltet Unterstützung für fortschrittliche Schriftfunktionen und bidirektionale Text.
- Hafen von Plan 9 TROFF TO Linux durch den Autor von Neatroff, Ali Gholami Rudi.
- Plan 9 aus dem Benutzerraum Port von TROFF.
- Unroff ist ein erweiterbarer Austausch von TROFF in geschriebenem in Planen
- Mandoc ist ein spezialisierter Compiler/Formatierer nur für die Makropakete für Mann und MDOC.
Siehe auch
- Desktop-Publishing
- Dokument
- dürfen GNU Troff/NROFF -Ersatz
- Nroff
- SGML
- Tex
- Schreiber (Markup -Sprache)
Verweise
- ^ Kernighan, B. W. (Oktober 2019). Unix: Eine Geschichte und eine Memoiren. Kindle Direct Publishing. p. 42. ISBN 9781695978553.
- ^ J. F. Ossanna. NROFF/TROFF -Benutzerhandbuch. CSTR #54, Bell Labs, 1976. Überarbeitet von B. W. Kernighan, 1992.
- ^ McIlroy, M. D. (1987). A Research Unix Reader: Annotierte Auszüge aus dem Programmierhandbuch, 1971–1986 (PDF) (Technischer Bericht). Cstr. Bell Labs. 139.
- ^ B. W. Kernighan. Ein Typendier-unabhängiger TROFF. CSTR #97, Bell Labs, 1981, überarbeitete März 1982.
- ^ Siehe die Mannseite des Ditroff -> PostScript -Konverters auf OpenSolaris: Illumos und OpenSolaris Benutzerbefehle Referenz Handbuch Aus der neuesten Sonne basiert OpenSolaris - -
- ^ "Schreiben und Formularieren von UNIX -Handbuchseiten mit -Man -Makros". home.fnal.gov. Abgerufen 7. Mai 2019.
- ^ Linux Verschiedenes Handbuch - -
- ^ Freebsd Verschiedene Informationen Handbuch - -
- ^ "Index - Mandoc erweiterte Dokumentation". Mandoc. Abgerufen 7. Mai 2019.
- ^ a b Linux Dateiformate Handbuch - -
- ^ Linux Verschiedenes Handbuch - -
- ^ Linux Verschiedenes Handbuch - -
- ^ Linux Verschiedenes Handbuch - -
- ^ B. W. Kernighan und Lorinda L. Cherry. Ein System zum Artensettungsmathematik. CSTR #17, Bell Labs, Mai 1974.
- ^ B. W. Kernighan. PIC - Eine Grafiksprache für den Typensatz (überarbeitete Benutzerhandbuch). CSTR #116, Bell Labs, Dezember 1984.
- ^ C. J. Van Wyk. Ideales Benutzerhandbuch. CSTR #103, Bell Labs, Dezember 1981.
- ^ GRN - Groff Preprocessor für Gremlin -Dateien [1].
- ^ J. L. Bentley und B. W. Kernighan. Grap - Eine Sprache für Graphen (Tutorial und Benutzerhandbuch). CSTR #114, Bell Labs, August 1984.
- ^ J. L. Bentley, L. W. Jelinski und B. W. Kernighan. CHEM - Ein Programm für Chemiestrukturdiagramme. CSTR #122, Computer und Chemie, Bell Labs, April 1986.
- ^ J. L. Bentley. DFFORMAT - Ein Programm zum Typensatz von Datenformaten. CSTR #142, Bell Labs, April 1988.
Externe Links
- Der Textverarbeitungsprozessor für TypsSetters
- Die Geschichte von TROFF
- Von OpenSolaris abgeleitete Hafen von Troff und verwandten Programmen
- Benutzerhandbuch für die Plan 9 -Ausgabe von TROFF (Im PostScript -Format)
- Eine Geschichte von Unix vor Berkeley Abschnitt 3 beschreibt die Geschichte von Roff, NROFF, Troff, Ditroff, TBL, EQN und mehr.
- Der ursprüngliche Quellcode von NROFF, TROFF und die Präprozessoren von AT & T Bell Labs in Form des Release 3.3 des Documenters Workbench (DWB) (portiert auf aktuelle UNIX -Systeme von http://www2.research.att.com/sw/download)