Troff

Technology
12 hours ago
8
4
2
Avatar
Author
Albert Flores

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. +more 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. +more 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. +more 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. +more 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. +more 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). +more 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. +more 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. +more 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. +more 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. +more 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. +more 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. +more4 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. +more 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

5 min read
Share this post:
Like it 8

Leave a Comment

Please, enter your name.
Please, provide a valid email address.
Please, enter your comment.
Enjoy this post? Join Cesko.wiki
Don’t forget to share it
Top