Program troff je v informatice specializovaný neinteraktivní textový procesor, který pro unixové systémy vyvinula společnost AT&T. Umožňuje profesionální a vysoce kvalitní sazbu včetně typografických prvků, jako jsou různé styly a sklon písma, rozpětí, odstavce, okraje, automatické oddělování slov na konci řádku, poznámky, index, podporu pro tvorbu tabulek, grafů a matematických vzorců a další. Troff je značkovací jazyk (podobně jako HTML) a proto se celý dokument zapisuje jako prostý text. Obdobným, avšak pokročilejším systémem pro sazbu je nástroj TeX.

Historie Předchůdcem programu troff byl program RUNOFF na formátování textu, který v polovině 60. let napsal Jerome H. Saltz pro operační systém CTSS pro MIT (název prý vznikl z dříve často používané fráze: – „vyjet“ dokument).

Bob Morris předělal v roce 1969 RUNOFF na architekturu 635-GE a jméno zkrátil na roff. Na PDP-7 se spouštěl příkazem rf. Ve stejné době Doug McIlroy napsal rozšířenou a zjednodušenou verzi roff v programovacím jazyce BCPL.

První verze pro Unix byla vyvinuta v Bellových laboratořích na počítači PDP-7. V roce 1971 si vývojáři přáli pořídit PDP-11 pro pokračování vývoje operačního systému Unix, a žádost o pořízení nového stroje zdůvodnili vytvořením systému formátování dokumentů pro patentovou divizi AT&T. Zmíněný program napsal Joe F. Ossanna jako reimplementaci McIllroyova roffu.

Nroff (novější verze programu roff) byl vyvinut s ohledem na dosud omezené možnosti. Měl mnohem komplikovanější syntaxi, ale byl základem pro všechny pozdější verze. Umožňoval výstup pouze na znakově orientovaná zařízení jako jsou řádkové tiskárny, rotační tiskárny, počítačové terminály, apod.

V roce 1972 začala společnost Graphic Systems prodávat zařízení GSI C/A/T pro fotosazbu. Starší osvitové jednotky pracovaly se šablonami pro jednotlivé znaky. Zdroj světla osvětloval prostřednictvím vhodného uspořádání čoček a šablon písmen film, písmenko po písmenku, řádek po řádku. Změny stylu písma se prováděly poloautomatickou výměnou šablon a změna sklonu písma se prováděla optickým náklonem. Šablona záznamu se vždy skládala z jednoho stylu písma s různými sklony. Osvětlovací přístroj mohl uchovávat určitý počet šablon záznamu a z tohoto omezení vyplynula také nutnost na začátku každého dokumentu styl písma „zavolat“.

Když v roce 1973 laboratoře dostaly Graphic Systems CAT Phototypesetter, napsal Ossanna vlastní verzi nroffu pro PDP-11 v jazyce symbolických adres, kterou nazval troff (typesetter roff; zkratka bývá někdy vysvětlována jako Times roff, protože troff používal standardně písmo Times Roman).

Ustálení na PDP-11 a CATu se v důsledku ukázalo jako omezení. Osanna přepsal troff do programovacího jazyka C a zdrojový kód se z původních 7000 řádků CATu značně rozrostl. Když CAT zastaral a výrobce ukončil podporu, bylo potřeba, aby troff mohl ovládat i jiná zařízení, což se stalo jeho prioritou. Ossanna ale zemřel na infarkt dříve, než mohl tuto myšlenku zrealizovat.

Tak se Brian Kernighan dostal k úkolu přeprogramovat troff do jazyka C. Tato od základu nově vyvinutá verze produkovala kódy nezávislé na zařízení, které může ovladač tiskárny překládat na řídící kódy konkrétní tiskárny. Nová verze byla pojmenována ditroff podle anglického označení device independent („nezávislý na zařízení“). Měla také několik vylepšení, jako je např. vykreslování grafů funkcí.

Funkce Troffu se souhrnně nazývaly Documenter’s WorkBench (DWB) a v Bellových laboratořích se zdokonalovaly až do roku 1994. Poté jeho podporu převzala SoftQuad. Brian Kernighan přesto dál troff vylepšoval. I díky tomu existují dnes tři verze (Bell-Labs-Troff).

Organizační struktura Troff funguje jako filtr. Editorem se vytvoří textový dokument, který troff převede do jiného formátu, a to v souladu s návodem pro textové dokumenty, které jsou v troffu implementovány. Dříve příkazy troffu aktivovaly přímo osvitovou jednotku. S příchodem metod tisku s vyšším rozlišením (např. Laserová tiskárna) byl troff přepsán, aby generoval metakód (tzv. device independent troff, zkráceně ditroff). Z tohoto meziformátu pak další programy generují kód specifický pro konkrétní zařízení.

Preprocessory Když byl vyvinut troff s DWB, začaly se používat různé preprocesory, neboť ne vše lze v troffu realizovat. Tyto programy pracují jako filtr a transformují specifické části dokumentu do vstupu programu troff. jednotlivé programy mají svou vlastní syntaxi a rozpoznávají svůj kód v troff dokumentu tak, že vyhledávají určitá klíčová slova a převádějí je na kód troffu (Requests). Nroff vytváří výstupy pro znakově orientovaná zařízení jako jsou řádkové tiskárny, rotační tiskárny, počítačové terminály, atd. Příkazy, které nejsou použitelné (např. změna stylu písma), jsou ignorovány.

Varianty troff od Billa Joye, stále dodávané firmou Sun Microsystems SoftQuad DWB, založené na USL DWB 2.0 z roku 1994 DWB 3.4 z Lucent Software Solutions (USL) groff jako GNU implementace troff a nroff

Troff dnes V průběhu času vznikly jiné programy, které plní podobnou úlohu jako troff – Interleaf, FrameMaker a LaTeX. Proto od 90. let popularita troffu klesá. Zůstává standardním formátem pro dokumentaci v unixových systémech, včetně formátování manuálových stránek, a je stále intenzivně využíván.

Reference

Externí odkazy

Kategorie:Sázecí programy Kategorie:Software pro Unix Kategorie:Software pro Linux Kategorie:Software pro Solaris