Troff

Troff on tekstinmuotoiluohjelmisto, joka on alun perin kehitetty AT&T:llä Unix-käyttöjärjestelmälle.

troff- ja nroff-ohjelmat kehitti Joe Ossanna, jonka jälkeen Brian Kernighan jatkoi.
Ossanna kirjoitti alkuperäisen toteutuksen assemblyllä noin vuonna 1973 ja se kirjoitettiin uusiksi C-kielellä noin vuonna 1975.

troff on suunniteltu tekstille ja sisältää myös ominaisuudet, joita tarvitaan matematiikalle.

Ominaisuuksia 

Troffin syöttökieli on täysin ohjelmoitavissa. Taulukoiden, kaavioiden ja matemaattisten kaavojen tuottamisen helpottamista varten on erillisiä esikääntäjiä. Troffin ohjaukseen käytetään tekstitiedostoa, jota voi muokata, käsitellä ja säilyttää käyttäjän valitsemilla työkaluilla.

Eri käyttötarkoituksia varten on kehitetty erilaisia laajoja makropaketteja. Tyypillinen troff-toteutus sisältää me-makrot tieteellisten tutkimusjulkaisujen tuottamista varten, man-makrot Unixin manuaalisivujen tuottamiseen sekä ms- ja mm-makrot kirjeitä, kirjoja, muistioita ja raportteja varten.

Esikääntäjät 

Troffin kehittyessä todettiin, ettei kaikkea voida tehdä helposti pelkällä troff-kielellä. Tämän takia alettiin kehittää esikääntäjiä. Ne muuttavat tietyntyyppisiä osia dokumentista troff-syötteeksi kelpaavaan muotoon. Esikääntäjät toimivat Unix-maailman filosofian mukaisesti, eli yksittäisen tehtävän hyvin suorittavan ohjelman tuloste sopii toisen ohjelman syötteeksi. Esikääntäjiä ovat mm.
 eqn (engl. equation), joka mahdollistaa matemaattisten kaavojen syöttämisen paljon helpommassa ja havainnollisemmassa muodossa
 tbl muotoilee taulukoita (tables).
 refer (ja samantyylinen bib) muotoilee lainauksia lainaustietokannan mukaan
 pic ja ideal kaavioiden kuvaamiseen
 grap, joka tuottaa kuvaajien tai kaavioiden määritelmistä ohjauskieltä picille.

Toteutuksia 

groff on GNU-projektin vapaa toteutus (troff ja nroff).
unroff on laajennettava, Scheme-kielellä toteutettu korvaava järjestelmä.
Heirloom troff perustuu OpenSolariksen troff-koodiin. Se sisältää lukuisia laajennuksia ja on myös groff-yhteensopiva.

Lähteet

Aiheesta muualla 
 The Text Processor for Typesetters 
 GNU troff (groff) — a GNU project 
 troff(1) - Linux man page 

Julkaisuohjelmat
Unix-ohjelmat
Matemaattiset merkintäkielet