EncTeX -- rozšíření TeXu o možnost překódování -- popis instalace ================================================================= 1. 9. 1997 Petr Olšák 3. 1. 2003 Nejprve popíšu postup při instalaci encTeXu na web2c verze 7.3, kde již původně byl originální program TeX kompilován, nebo byl aspoň spuštěn configure (podle pokynů pro instalaci web2c TeXu) a jsou připraveny knihovny TeXu (*.tfm, *.tex apod.) v /usr/local/share/texmf. V balíku jsou dodáván patch pro verzi web2c 7.3.7 1. přejdeme do adresáře, kde je tex.ch a tex.web: $ cd source/TeX/texk/web2c 2. Rozbalíme enctex.tar.gz: $ zcat /zdroj/enctex.tar.gz | tar xvf - 3. Aplikujeme změnu souboru tex.ch: $ patch -p0 <./enctex/enctex.patch-to-7.3.7 nebo $ patch -p0 <./enctex/enctex.patch-to-7.5 v závislosti na verzi web2c, kterou máme. Soubor enctex.patch-to-7.5 je možné použít i na web2c 7.4.5, což byla aktuální stabilní verze teTeXu. Pokud máte verzi web2c 7.5, pak můžete navíc po aplikaci tohoto patche použít ještě patch enc-option.patch-to-7.5, který přidává přepínač -enc do příkazového řádku (bez něho není encTeX inicializován) a řeší spolupráci s TCX tabulkami. Tato dvojice patchů byla zaslána Olafu Weberovi k zařazení do standardní distribuce web2c. Doporučuji přejít z verze encTeXu Feb. 2003 na verzi Jun. 2004, která opravuje některé chyby: $ patch -p0 <./enctex/enctex.patch-jun2004 Pokud tento krok ohlásí chybu pro Hunk #1, je potřeba v souboru tex.ch nahradit řetězec "Feb. 2003" textem "Jun. 2004" manuálně. Ostatní části záplaty (hunks) by měly projít bez problémů. 4. Překompilujeme TeX: $ make tex Tento povel v sobě zahrnuje jednak tangle tex.web tex.ch což vytvoří Pascalský kód TeXu tex.p. Dále se provede ./web2c/convert tex.p takže vznikají jednotlivé moduly tex?.c v jazyce C. Potom se tyto moduly kompilují kompilátorem jazyka C a nakonec linkují do spustitelného programu tex. Výsledkem je tedy nový program tex a dále nový inicializační soubor tex.pool. 5. Instalujeme binární program tex a soubor tex.pool do systému (cesty se ve Vašem systému mohou mírně lišit): $ strip tex $ su # cp tex /usr/local/bin # cp tex.pool /usr/local/share/texmf/web2c 6. Instalujeme vstupní tabulky *.tex z balíku encTeX. Doporučuji je zařadit do adresáře enctex: # mkdir /usr/local/share/texmf/tex/generic/enctex # cp enctex/*.tex /usr/local/share/texmf/tex/generic/enctex # texhash 7. Inicializujeme znovu formáty. Pro verzi encTeXu z oficiální web2c-7.5.3 je nutné použít při generování formátů (nikoli při použití formátu) přepínač -enc. Význam tohoto přepínače je vysvětlen v dokumentaci encdoc.tex|dvi|pdf. Příklady proto uvádím s tímto přepínačem. # cd /usr/local/share/texmf/web2c # tex -ini -enc plain *\dump # tex -ini -enc csplain.ini # tex -ini -enc -jobname cslatex cslatex.ini Pokud chcete hned využít nových vlastností TeXu, zkuste instalovat některý z formátů plain-x-y, například: # tex -ini -enc plain-1250-cs Viz soubory enctex/plain-*-*.tex a enctex/kam-latex.tex. 8. Pozměněný tex.ch čte tangle i při kompilaci programů pdftex a etex. Tyto programy budou tedy po kompilaci také obsahovat encTeX. Při požití enctex.patch-to-7.3 se kromě tex.ch pozměnil v drobné maličkosti i soubor pdftexdir/tex.pch, což je nutné pro zdárnou kompilaci. Stačí tedy vytvořit pdftex obvyklým způsobem: $ make pdftex $ strip pdftex $ su # cp pdftex /usr/local/bin # cp pdftex.pool /usr/local/share/texmf/web2c # cd /usr/local/share/texmf/web2c # pdftex -ini -enc -jobname pdfplain plain *\dump # pdftex -ini -enc -jobname pdfcsplain csplain.ini # pdftex -ini -enc -jobname pdfcslatex cslatex.ini 9. Program Omega není encTeXem pozměněn, protože při své kompilaci nenačítá tex.ch. Taky by to nemělo žádnou logiku, protože omega má svůj vlastní konfigurovatelný input procesor. -------------- Protože encTeX pozměňuje pouze velmi málo věcí ve změnovém souboru tex.ch, je možné jej při troše ruční práce instalovat i na jiných implementacích TeXu, kde jsou k dispozici zdrojové texty TeXu tex.web a tex.ch. Stačí se podívat do souboru enctex.ch, kde je patrné, jaké změny se mají provést. Veškerý kód encTeXu se opírá o standardní části programu tex.web s výjimkou ukládání vektorů xord a xchr do formátu. Zde jsem s výhodou použil již hotové pomocné funkce dump_things a undump_things napsané pro web2c přímo v jazyce C. Pokud by to někdo potřeboval v jiné implementaci, musel by zřejmě použít analogii k dump_four_ASCII z tex.web.