troff

troff
Operační systémUN*X
Webtroff.org
Některá data mohou pocházet z datové položky.

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

Troff má svůj původ v programu na zpracování textu nazvaný RUNOFF, který napsal Jerome H. Saltz pro CTSS operační systém pro MIT v polovině 60. let (název prý vznikl z dříve často používané fráze: I’ll run off a document).

Osvitové jednotky dříve pracovaly se šablonami na jednotlivé znaky. Zdroj světla osvětloval prostřednictvím vhodného uspořádání čoček a šablonek na písmena film, písmenko po písmenku, řádek po řádku. Nového stylu písma bylo dosaženo díky poloautomatické výměně šablonek a díky vnitřní rotaci se docílilo změny sklonu písma. Š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“.

Bob Morris předělal troff na 635-GE architekturu a pojmenoval program roff (zkratka pro runoff). Pro PDP-7 byl napsán jako rf. Ve stejné době (1969) Doug McIlroy napsal rozšířenou a zjednodušenou verzi roff v programovacím jazyce BCPL.

První verze pro Unix byla vyvinuta na PDP-7 v Bellových laboratořích. V roce 1971 požadují vývojáři PDP-11, aby i nadále pracoval operační systém a pro zdůvodnění výdajů na tento systém předložili a vyvinuli systém formátování dokumentu pro patentovou divizi AT&T. Zmíněný program napsal Joe F. Ossanna jako reimplementace 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. Mohl by to však být pouze výstup pro znakově orientované zařízení jako jsou řádkové tiskárny, rotační tiskárny, počítačové terminály, apod.

Když laboratoře dostaly Graphic Systems CAT Phototypesetter, napsal Ossanna vlastní verzi nroffu pro PDP-11 v jazyce symbolických adres. Tato verze byla pojmenována troff (typesetter roff). Ačkoliv mnozí spekulovali, že to vlastně znamená Times roff, protože troff používal Times Roman jako standardní styl písma.

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 z původních 7000 řádků CATu se zdrojový kód značně rozrostl. Když CAT zestárl 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é lze snadno číst pomocí ovladače tiskárny a řídící kódy tak mohly být snadno převedeny. 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ř. kreslení 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ý se pak převede prostřednictvím troffu 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 osvětlovací přístroj. S příchodem metod tisku s vyšším rozlišením (např. Laserová tiskárna) byl troff přepsán tak, že byl generován metakód (tzv. device independent troff, zkráceně ditroff). Ostatní filtrovací programy pak generují z tohoto meziformátu konečný specifický kód 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

V tomto článku byl použit překlad textu z článku Troff na německé Wikipedii.


Externí odkazy