Portál AbcLinuxu, 3. května 2025 12:15

Heirloom troff a kamarádi -- instalace a čeština (delší)

19.10.2007 21:47 | Přečteno: 1457× | externí paměť | poslední úprava: 24.10.2007 11:19

The Heirloom Documentation Tools jsou vylepšené verse programů troff a nroff a jejich preprocesorů. Mezi vylepšení patří mj. přímý přístup k Type 1, OTF a TTF fontům a možnost přímého zápisu v UTF-8 bez nutnosti psát akcentované znaky jako troffí escape sekvence. Kód je spravován Gunnarem Ritterem a má původ v kódu pocházejícím od Sunu a Bellů.

Tento zápisek popisuje instalaci Heirloom Documentation Tools v systému NetBSD, nicméně autorovi zápisku se podařilo (s mírnou úpravou postupu) tyto nainstalovat i v Debian GNU/Linuxu. Zmíníme se také o přípravě česky psaných dokumentů.

Instalace

Podrobně je instalační postup popsán v souboru README na webu projektu. Stručně shrnuto instalace obnáší:

  1. přípravu adresáře, do nějž budeme instalovat,
  2. stažení zdrojových kódů a jejich rozbalení,
  3. nastavení kompilačních a instalačních voleb,
  4. kompilaci jednotlivých programů,
  5. rozkopírování jednotlivých programů do správných adresářů,
  6. poinstalační nastavení.

Ad 1. Budeme instalovat mimo adresářovou strukturu spravovanou kolekcí nástrojů pkgsrc a také mimo základní systém, autor se rozhodl pro adresář /usr/local. Pochopitelně můžeme instalovat i jinam, například do některého z podadresářů našeho domovského adresáře. Protože se adresář /usr/local v NetBSD běžně nevyskytuje, musíme jej vytvořit. Také mu změníme vlastníka na nás, abychom nemuseli pracovat jako root:

# mkdir /usr/local && chown vladimir /usr/local

Ad 2. Zkomprimovaný archiv se zdrojovými kódy je k mání zde.

Ad 3. Upravíme soubor mk.config v adresáři se zdrojovými kódy tak, aby odpovídal našim požadavkům a poměrům v našem systému. Skvělým pomocníkem nám bude příkaz which.

Stručný výtah z již změněného souboru mk.config:

INSTALL=/usr/bin/install
MACDIR=/usr/local/ucblib/doctools/tmac
FNTDIR=/usr/local/ucblib/doctools/font
TABDIR=/usr/local/ucblib/doctools/nterm
HYPDIR=/usr/local/ucblib/doctools/hyphen
REFDIR=/usr/local/ucblib/reftools
PUBDIR=/usr/local/pub
BINDIR=/usr/local/ucb
LIBDIR=/usr/local/ucblib
MANDIR=/usr/local/share/man
CC=cc
CCC=c++
SHELL=/bin/sh

Ad 4. et 5.

$ make && make install

Ad 6. Můžeme přidat adresář /usr/local/ucb do proměnné shellu PATH, rozšířit proměnnou MANPATH, případně nastavit Heirloom nroff jako systémový formátovač manuálových stránek.

Nic z toho však autor neudělal. (Proměnnou PATH nemodifikoval -- z obavy z kolise se systémovým *roff, kterým je program groff a který mu i nadále formátuje manuálové stránky; proměnnou MANPATH nemodifikoval z lenosti.) Pouze vytvořil v adresáři ~/bin symbolické odkazy na spustitelné soubory adresáře /usr/local/ucb, přičemž názvy odkazů doplnil o prefix h, např.:

$ ln -s /usr/local/ucb/troff /home/vladimir/bin/htroff

Čeština

Abychom pomocí Heirloom Documentation Tools mohli připravovat český psané dokumenty, potřebujeme:

  1. české fonty,
  2. přinutit troff akceptovat naše česky psané texty.

Ad 1. Pro začátek nám postačí URW náhrady za základní Adobe fonty. Stáhneme si je ze CTANu a nakopírujeme soubory *.pfb a *.afm do adresáře /usr/local/ucblib/doctools/font/devps. (Toto řešení je krapet "quick and dirty", správnější by bylo použití proměnné TROFFONTS, viz troff(1b)).

Ad 2. Direktivou .so czech.mac na začátku našich zdrojových textů přinutíme troff vkládat soubor czech.mac s tímto obsahem:

.do xflag 3
.lc_ctype cs_CZ.UTF-8
.fp 1 R utmr8a pfb
.fp 2 I utmri8a pfb
.fp 3 B utmb8a pfb
.fp 4 BI utmbi8a pfb
.fp 5 H uhvr8a pfb
.fp 6 HI uhvro8a pfb
.fp 7 HB uhvb8a pfb
.fp 8 HX uhvbo8a pfb
.fp 9 CW ucrr8a pfb
.fp 10 CI ucrro8a pfb
.fp 11 CB ucrb8a pfb
.fp 12 CX ucrbo8a pfb
.fp 13 S usyr pfb
.fp 14 ZD uzdr pfb

Tj. umožníme přímý český vstup v UTF-8 a redefinujeme rodin písem. Pro názvy fontů viz soubor README.base35

Zpracování dokumentu

Vzorová kolona při generování výsledného PostScriptu z našeho zdroje s obrázky a tabulkami a při použití makra -ms (pamětlivi našeho prefixu h) vypadá takto:

htbl -g náš_zdroják | hpic | htroff -Tps -ms | hdpost > výstup.ps

Pokud máme zdrojový text v ISO8559-2 předřadíme jí ještě iconv:

iconv -f latin2 -t utf-8 náš_zdroják | htbl -g | hpic | \
htroff -Tps -ms | hdpost > výstup.ps

Odkazy

The Heirloom Documentation Tools

URW "Base 35" font pack for LaTeX

       

Hodnocení: 88 %

        špatnédobré        

Tiskni Sdílej: Linkuj Jaggni to Vybrali.sme.sk Google Del.icio.us Facebook

Komentáře

Nástroje: Začni sledovat (0) ?Zašle upozornění na váš email při vložení nového komentáře. , Tisk

Vložit další komentář

20.10.2007 02:11 Kyosuke | skóre: 28 | blog: nalady_v_modre
Rozbalit Rozbalit vše Re: Heirloom troff a kamarádi -- instalace a čeština (delší)
Odpovědět | Sbalit | Link | Blokovat | Admin
Wow! Netušil jsem,že troffu se ještě dostává takovéhle pozornosti. :-) To je moc fajn, je to dost silný nástroj na spoustu věcí a pokud je teď i typograficky na výši, tak je to jedině dobře. Ovšem přiznávám, že jediná troffem sázená knížka, která se mi dostala do ruky, byl K&R 2nd Ed. K nám to zřejmě moc neproniklo... Určitě si ho vyzkouším.
Jak moc jsou ábíčkáři inteligentní? ;-)
vladka avatar 20.10.2007 08:47 vladka | skóre: 23 | blog: vladimiruv | Hlučín, Ostrava
Rozbalit Rozbalit vše Re: Heirloom troff a kamarádi -- instalace a čeština (delší)
...ještě dostává takovéhle pozornosti. :-)

No, minimálně pro mě, je to srdeční záležitost (preprocesor chem je naprosto úžasný). ;-)Teď ale vážně, ještě celkem nedávno jím sázeli u O'Reillyho (měli své upravené makro -ms nebo -mm) -- například Unix Power Tools. Domnívám se, že Skočovského "Principy" jsou taky sázené troffem (to je ale jen dommněnka). Plan9 ho má jako hlavní sazeč. Na západě je troff poměrně živý (pro ilustraci viz konfera groffu).

a pokud je teď i typograficky na výši

Byl vždycky, to co jsou schopny vyprodukovat kancelářské balíky, zvládne i troff se svými preprocesory, a IMHO zvládne i dost dobře matematiku na takřka TeXové úrovni (akorát si člověk bude muset pohrát s různými kerningy apod.). Ta mikrotypografická vylepšení současného troffu jsou samozřejmě super.

Jinak byl problém, že bellí troff byl dlouho closed source, a když už byla open implementace(groff) -- tak stejně jako v původním troffu byla znaková sada natvrdo zadrátovaná jako výstupní zařízení vedle např. výstupu do PostScriptu či na terminál. Ten troff, který jsem popisoval v blogu už je ovšem "troff pro 21. století".

The ability to mumble about inodes is the key to social success at a UNIX gurus' cocktail party.
20.10.2007 09:00 Käyttäjä 11133 | skóre: 58 | blog: Ajattelee menneisyyttä
Rozbalit Rozbalit vše Re: Heirloom troff a kamarádi -- instalace a čeština (delší)
to co jsou schopny vyprodukovat kancelářské balíky
Nevím jestli je to mnou, nebo těmi balíky, ale vždycky, když použiju nějaký kancelářský balík, tak mi z toho vznikne zrůdnost :-/
vladka avatar 20.10.2007 09:21 vladka | skóre: 23 | blog: vladimiruv | Hlučín, Ostrava
Rozbalit Rozbalit vše Re: Heirloom troff a kamarádi -- instalace a čeština (delší)
Já to myslel positivně -- při použití stylů apod. -- close/open offices jsou schopny, myslím, poskytnout celkem slušný výsledek. Ale i v troffu se dá psát prasácky: Někde jsem četl, že sekretářka svého času v jakési firmě používala .AU z -ms makra (používá se pro vysázení autorova jména v názvu práce, implicitně kursivou v troffu, underline v nroffu), aby docílila kursivního zvýraznění, to aspoň užila makro, nepsala v pure troffu. ;-) Stejně tak můžou vylézt prasárny i z TeXu, užívá-li se napatřičně.
The ability to mumble about inodes is the key to social success at a UNIX gurus' cocktail party.
20.10.2007 09:31 Käyttäjä 11133 | skóre: 58 | blog: Ajattelee menneisyyttä
Rozbalit Rozbalit vše Re: Heirloom troff a kamarádi -- instalace a čeština (delší)
No jasně, však já to vztahuji jen na mou situaci :-) Nehledě na to, že jsem včera dělal protokol do MIT, který jsem musel dělat právě v OO.o, takže mám takovou "veselou náladičku" co se týče kancelářských balíků :-)
vladka avatar 20.10.2007 10:25 vladka | skóre: 23 | blog: vladimiruv | Hlučín, Ostrava
Rozbalit Rozbalit vše Re: Heirloom troff a kamarádi -- instalace a čeština (delší)
Máš na mysli Báňu v Massachusetts? ;-) Jinak plně chápu, pár dní zpět jsem si hrál s Calcem a dospěl jsem k názoru, že spreadsheety jsou (alespoň pro mě) naprosto redundantní aplikace (např. takový ksh93 zvládá floating point aritmetiku, takže většina tanečků kolem tabulek se dají zvládnout jednoduchým skriptíkem). Jo, tu "veselou náladičku" jsem měl taky. :-D I když chápu, že pro některé je excel pracovním prostředím srovnatelným s Emacsem. ;-)

P.S: Když už spreadsheet -- sc je to co mi stačí.

P.P.S: Nechtěl jsem říct, že bych pomocí skriptů denně plnil tabulky, ale že jsem posedlostí některých lidí tabulkami za každou cenu.
The ability to mumble about inodes is the key to social success at a UNIX gurus' cocktail party.

Založit nové vláknoNahoru

ISSN 1214-1267, (c) 1999-2007 Stickfish s.r.o.