Další Předchozí Obsah

7. TeX a jiné DTP systémy

Petr Kolář Petr.Kolar@vslib.cz; 17. 5. 1999

Nejnovější verze českého teTeXu pro Red Hat 6.0 je na ftp://luznice.felk.cvut.cz/pub/cstex/.

Michal Choura xchoura@cs.felk.cvut.cz, Pavel Janík ml. Pavel.Janik@math.muni.cz: 28. 7 1998; Arnošt Štědrý arnost@uivt.cas.cz: starší verze

7.1 Instalace z RPM balíků CSTeXu pro RedHat

V současné době existují pro distribuci RedHat 5.x balíky s kompletním českým TeXem. Lze je nalézt na serveru ftp://math.feld.cvut.cz/pub/cstex/unix/RPMS/ a mirrorech, např. ftp://ftp.fi.muni.cz/pub/linux/localization/cstex/. Balíky obsahují teTeX ve verzi 0.9, a obvykle nejnovější verze doplňků csTeXu, tedy csplain, cslatex a doplňky do pdfTeXu včetně Postscriptové verze CS fontů. Doporučuji před instalací přečíst soubor README.cstetex, kde jsou aktuální informace o balících. Rozdíly oproti předchozím verzím lze zjistit příkazem rpm -qp --changelog tetex-0.9cs-*.i386.rpm.

Postup instalace je jednoduchý. Přesvědčte se, že dosud nemáte žádný TeX instalován; pokud příkaz

# rpm -qa | grep tetex

zobrazí nějaký výstup, tedy jméno nějakého balíku, je třeba jej odinstalovat příkazem rpm -e jméno_balíku. Potom lze nainstalovat balíky s českým TeXem:

# rpm -Uvh tetex-0.9cs-*.i386.rpm

Pochopitelně, pokud některou z částí nechcete instalovat, nemusíte.

Čerstvě nainstalovaný TeX je dobré nakonfigurovat. K tomu slouží program texconfig. Po jeho spuštění se objeví menu, kde doporučuji zkonfigurovat minimálně dvips. Tento program totiž v základní konfiguraci přesměrovává svůj výstup přímo na tiskárnu. Zvolte tedy v hlavním menu ,,dvips``, dále ,,global settings``, velikost papíru ,,A4``, potom vyberte ,,Set up the command to print on this printer`` a stiskněte Enter.

Balíky v binární formě jsou kompilovány na RedHatu 5.x, a tedy s knihovnou glibc. Nebudou proto chodit na starších verzích RedHatu. Pokud byste je chtěli používat na starších distribucích, je nutné je přeložit z balíku tetex-0.9cs-*.src.rpm. Vzhledem ke komplexnosti TeXu však je (alespoň zatím) nutné balík překládat přímo v systémových adresářích. Proto nejlepší je překlad provést na nějakém zkušebním počítači. Pozor, v průběhu překladu balíku se smaže obsah adresáře /usr/lib/texmf!

Další informace lze získat z ftp serveru ftp://math.feld.cvut.cz/pub/cstex/unix/README.*

7.2 Obecná instalace na libovolný Unix

Existují dvě možnosti. Jednak můžete nainstalovat TeX ze zdrojových kódů web2c, dnes ve verzi 7.2, a nebo instalovat komplexní teTeX. První možnost popisuje pan Petr Olšák v textu, který lze nalézt na ftp://math.feld.cvut.cz/pub/cstex/unix/README.web2c. Pokud máte dost místa na disku, doporučuji druhou možnost, instalaci teTeXu. Postup prozkoumal Pavel Janík ml.

Pro kompilaci a instalaci budete potřebovat asi 100 MB volného místa. Originální teTeX lze nalézt na ftp://ftp.rrzn.uni-hannover.de/pub/local/misc/teTeX-beta/, dále budete potřebovat z  ftp://math.feld.cvut.cz/pub/cstex/unix/ soubory csfonts.tar.gz, cspdftexlib.tar.gz, csplain.tar.gz, cspsfonts.tar.gz, csuvodlat.tar.gz, enctex.tar.gz a nejnovější cslatex-*-.tar.gz. Mnoho cenných rad najdete též v souboru README.web2c-7.2 tamtéž. Vzhledem k rychlosti vývoje doporučuji též stáhnout nejnovější verzi pdfTeXu z  ftp://ftp.cstug.cz/pub/local/cstug/janik/, soubory pdftex.tar.gz, Makefile.in a configure.in (přečtěte si soubor Install, postup se často mění).

Do libovolného adresáře, např. /usr/src, rozbalte originální zdrojové kódy:

# cd /usr/src
# tar xzvf teTeX-src-0.9.tar.gz

Dále do nějakého vhodného adresáře umístěte strom vstupních souborů TeXu:

# mkdir -p /usr/local/teTeX/share/texmf
# cd /usr/local/teTeX/share/texmf
# tar xzvf teTeX-texmf-0.9.tar.gz

Rozbalte distribuční balík enctexu (umožní v TeXu používat a za běhu přepínat vstupní kódování TeXových dokumentů):

# cd /usr/src/teTeX-0.9
# tar xzvf enctex.tar.gz

Instalujte české doplňky do TeXu (Latex není nutno mazat celý, stačí smazat adresáře misc, input, a raději i graphics, psnfss a tools):

# rm -rf /usr/local/teTeX/share/texmf/tex/latex
# cd /usr/local/teTeX/share/
# tar xzvf csplain.tar.gz
# tar xzvf cslatex-*.tar.gz
# tar xzvf csfonts.tar.gz
# tar xzvf cspsfonts.tar.gz
# tar xzvf cspdftexlib.tar.gz
# tar xzvf csuvodlat.tar.gz

Pokud chcete používat pdfTeX, nainstalujte nejnovější verzi:

# cd /usr/src/teTeX-0.9/texk/web2c
# rm -rf pdftexdir
# tar xzvf pdftex.tar.gz

Soubory Makefile.in a configure.in z distribuce pdfTeXu překopírujte do téhož adresáře (přepíší původní). Pak vytvořte nové soubory Makefile.in a configure.in příkazem

# autoconf -m ../etc/autoconf
# ./configure

Vytvořte Makefile pro kompilaci:

# cd /usr/src/teTeX-0.9
# ./configure --prefix=/usr/local/teTeX --disable-multiplatform

Aplikujte patch enctexu (ovlivní tex.ch) a zkopírujte jeho soubory do TeXového stromu:

# cd /usr/src/teTeX-0.9/texk/web2c/
# patch <../../enctex/enctex.patch-to-7.2
# mkdir /usr/local/teTeX/share/texmf/tex/enctex
# cp ../../enctex/*.tex /usr/local/teTeX/share/texmf/tex/enctex

Dále je vhodné upravit Makefile pro xdvi tak, aby se jako náhradní font používal csr10 a změnit standardní velikost papíru z Letter na A4. V souboru /usr/src/teTeX-0.9/texk/xdvik/Makefile upravte řádek

DEFS = -DHAVE_CONFIG_H $(XDEFS)

na

DEFS = -DHAVE_CONFIG_H -DA4 -DALTFONT=\"csr10\" $(XDEFS)

Aby TeX správně pracoval s českými Postscriptovými fonty, je třeba v adresáři /usr/local/teTeX/share/texmf/dvips/ přidat obsah souboru rawfonts.map na začátek psfonts.map. Proto:

# cd /usr/local/teTeX/share/texmf/dvips
# mv psfonts.map psfonts.orig
# cat rawfonts.map psfonts.orig > psfonts.map

A další úprava Postscriptových fontů je nutná pro správnou činnost pdfTeXu. Prohlížeče PDF znají jen několik základních fontů, ostatní je nutné do dokumentu přiložit. Musíte mít nainstalovány fonty, dodávané s programem Ghostscript. V souboru /usr/local/teTeX/share/texmf/fonts/type1/adobe/subs upravte proměnnou GSFPATH tak, aby ukazovala na adresář s Postscriptovými fonty Ghostscriptu. Potom skript pusťte, vygenerují se linky na tyto fonty:

# cd /usr/local/teTeX/share/texmf/fonts/type1/adobe/
# ./mklinks

Nejvíce problémů je s TeXovým modulem Babel. Ten totiž obsahuje soubor czech.sty, jehož jméno koliduje se stylem czech.sty, který používáme v CSTeXu. Pokud Babel nebudete potřebovat, nejjistější je jej zcela vyjmout:

# rm -rf /usr/local/teTeX/share/texmf/tex/generic/babel

Pokud jej potřebujete, je nutné upravit soubor /usr/local/teTeX/share/texmf/web2c/texmf.cnf tak, aby soubor czech.sty z adresáře /usr/local/teTeX/share/texmf/tex/csplain načetl vždy dříve, než ten z Babelu.

Teď již můžete celý teTeX přeložit. Nejprve musíte obnovit TeXovou databázi souborů ls-R, neboť jste měnili obsah TeXového stromu.

# cd /usr/src/teTeX-0.9/texk/kpathsea
# make
# ./mktexlsr
# cd ../..
# make world

A nakonec je třeba vygenerovat české (slovenské) formáty TeXu:

# PATH=/usr/local/teTeX/bin:$PATH
# cd /usr/local/teTeX/share/texmf/web2c
# tex -ini csplain.ini
# ln -s latex.fmt cslatex.fmt
# pdftex -fmt pdfcsplain -ini csplain.ini
# etex -efmt=ecsplain -ini \*csplain.ini
# tex -ini cslatex.ini
# cd ../../bin
# ln -s tex csplain
# ln -s tex cslatex
# ln -s pdftex pdfcsplain
# ln -s etex ecsplain
# mktexlsr

Pak už zbývá jen TeX nakonfigurovat (viz odstavec o teTeXu pro RedHat) a vyzkoušet.

7.3 Doplňky pro TeX

Program vlnka

Slouží pro přidání vlnky (mezery, ve které nemůže dojít ke zlomu řádky). Program je k dispozici na ftp://math.feld.cvut.cz/pub/olsak/vlna/. Pro RedHat Linux je k dispozici RPM balík na ftp://ftp.fi.muni.cz/pub/linux/localization/ a nebo v adresáři contrib na každém zrcadle RedHatu.

csindex

Program csindex slouží pro vytváření správně česky nebo slovensky setříděných indexů pro LaTeX. Pro RedHat Linux lze nalézt na ftp://ftp.fi.muni.cz/pub/linux/localization/.

a2ac

Utilitka a2ac umí do Postscriptového AFM souboru přidat znaky s českými akcenty. Slouží pro počešťování Postscriptových fontů. Program lze nalézt na ftp://math.feld.cvut.cz/pub/olsak/a2ac/, RPM balík pro RedHat Linux je na ftp://ftp.fi.muni.cz/pub/linux/localization/ nebo v adresáři contrib na každém zrcadle RedHatu.

7.4 České fonty v TeXu

O kódování

V současné době existují tři základní možnosti jak v TeXu psát česky:

  1. Použít nativní TeXovský přístup a kódovat české znaky pomocí sekvencí \', \v a \accent23, kde \' je sekvence pro čárku, \v pro háček a \accent23 pro kroužek.
  2. Použít CS-fonty distribuované CSTUGem a pro kódování znaků užívat stránku ISO-Latin-2.
  3. Použít EC/DC fonty pokrývající téměř všechny evropské jazyky (balík Babel).

Výhody a nevýhody těchto přístupů:

  1. Lehká přenositelnost dokumentů jak ve zdrojovém kódu, tak ve formě dvi. Tento přístup se kvůli nepřehlednosti vyplácí pouze tehdy, pokud češtinu používáme na málo místech v textu. Příklad sl\accent23 un\v ec\'\i = slůněcí to myslím dokumentuje.
  2. CS fonty jsou osmibitové fonty obsahující plnou podporu pro psaní češtiny a slovenštiny. Všechny znaky jsou zde obsaženy ve své akcentované podobě, nechybí ani české uvozovky a ogonok pro psaní polských slov. Ve znacích 1--127 se shodují s cm-fonty, české a slovenské znaky jsou kódovány jako ISO-Latin-2. Instalací CSTeXu se zabývá kapitola Obecná instalace na libovolný Unix.
  3. EC/DC fonty se stávají evropským standardem a zdá se, že vytlačí z LaTeXu původní Knuthovy cm-fonty. Kódovány jsou dle standardu Cork. Ve spojení s LaTeX2e a balíkem Babel jsou mocným nástrojem k psaní vícejazyčných dokumentů. Jejich nevýhodou je menší typografická čistota a nekompatibilita s cm-fonty co se týká umístění znaků 1--127. Např. čárka nad českým písmenem é se má lišit co do velikosti od čárky nad francouzským písmenem é, což v EC/DC fontech z důvodu nedostatku místa není. Na druhou stranu jsou podobně jako cm-fonty k dostání ve formátu Type 1. Metafontový zdroják je poněkud rozsáhlý, tj. stovky malých souborů. Současný CSTeX zajišťuje podporu EC/DC fontů pomocí parametru T1 příkazu:
      \usepackage[T1]{czech}
      
    
    Je nutno míti na paměti, že v LaTeXu musí být zavedeny vzory pro dělení slov pro T1 kódování, tj. při initexování zadáno v hyphen.cfg:
      \DeclareLanguage[IL2,T1]{\czech}{czhyphen.tex}%
                                    {\lefthyphenmin=2 \righthyphenmin=3
                                     \@requesthyphens}%
      
    

    Pro bližší info o czech.sty: http://home.zcu.cz/~snajdr5/cslatex/

    Pokud nepotřebujeme dělení slov (nechce se nám právě teď instalovat CSTeX) můžeme použít:

    \usapackage[T1]{fontenc}
    

Takže (1) použijeme většinou v případě, kdy píšeme dopis v cizině nebo nám nezbývá čas na instalaci. (2) je v současné době podporováno CSTuGem, takže v rámci České republiky by měl být bezproblémový. (3) je způsob podporovaný v Evropě, časem by se měl stát standardem, tj. vesměs dostupným.

Formáty fontů

Do TeXu lze pohodlně začlenit jednak fonty ve formátu Metafontu, jednak fonty ve formátu Type 1. První lze využít pro všechna zařízení, druhé je výhodné používat při převodu textu do PostScriptu programem DVIPS, který zvláště ve velkých rozlišeních generuje menší výstup.

Metafontové fonty

V současné době vím pouze o třech plně českých fontových sadách. Jednak tedy EC-fonty, pak CS-fonty a nakonec Concrete Modern fonty (vlastně se jedná o pouhý klon CS-fontů) počeštitelný stejným mechanismem jako jsou z CM fontů udělány CS-fonty.

Dále se vyskytují fonty (např. Pandora) dobře počeštitelné pomocí virtuálních fontů (programem l2accent ftp://ftp.cstug.cz/pub/local/fontware/accents/).

Všechny zmíněné fonty jsou dostupné v archívu ftp://ftp.cstug.cz/pub/local/, ftp://ftp.cstug.cz/pub/CTAN/fonts/.

Type 1 fonty

V současné době je k dispozici mnoho českých nebo počeštitelných fontů ve formátu Type 1. Tyto fonty mohou být buď přímo vestavěny ve výstupním zařízení nebo mohou být dodávány ve formě souborů s příponou pfa nebo pfb, k nimž by měl být dodáván i metrický soubor s příponou afm.

Počeštění fontů zabudovaných ve výstupním zařízení.

Tyto fonty lze počeštit mechanismem virtuálních fontů. Pokud chcete počeštit pouze fonty ze základní sady, tj.:

TimesNewRoman
Helvetica
NewCenturySchoolBook
Palatino
Bookman

lze s výhodou použít již hotové řešení z balíku cspsfonts.tar.gz. Obsahuje TFM a VF soubory, které stačí umístit na patřičná místa (/usr/lib/texmf/fonts/tfm, /usr/lib/texmf/fonts/vf). Verze počeštěného teTeXu v RPM balících je již obsahuje.

Pokud vlastníte Postscriptový font ve formě AFM a PFA, resp. AFM a PFB souborů, jsou rámcově dvě možnosti:

  1. Font je již počeštěný, zbývá jej pouze překódovat.
  2. Font zatím neobsahuje všechny české znaky.

Jak to zjistím? Pokud již font obsahuje české znaky, pak je o nich informace v AFM souboru. Podíváme se tedy, zda-li AFM soubor obsahuje řádky typu:

C -1 ; WX 722 ; N Aacute ; B 15 0 706 892 ;

kde místo Aacute jsou postupně názvy českých znaků (caron = háček, acute = čárka, ring = kroužek, tedy Ccaron = Č (C s háčkem), uring = ů (u s kroužkem)). Pokud se nám podaří najít všechna česká písmena, můžeme zkusit vygenerovat font příkazem:

$ afm2tfm font.afm -t kodovani.enc -v cfont rfont

kde

font.afm         je jméno původního fontu
kodovani.enc     je jméno českého kódování
cfont            je jméno českého fontu
rfont            je jméno raw fontu

Česká kódování jsou dostupná např. v balíku a2ac ftp://ftp.cstug.cz/pub/local/cstug/olsak/a2ac, kde je také podrobnější info. Jméno českého fontu by mělo být ve shodě s ,,Font Naming Conventions`` ftp://ftp.cstug.cz/pub/tex/CTAN/documentation/fontname/. Jméno raw fontu můžete zvolit libovolně, většinou se používá jméno původního fontu s předponou r.

Program afm2tfm vygeneruje jednak na standardní výstup řádek:

rfont JmenoFontu

který přidáte (po malé úpravě) do souboru psfonts.map (/usr/lib/texmf/texmf/dvips/misc/psfonts.map). Co a jak přesně přidat do tohoto souboru, je lépe konzultovat v dokumentaci k programu DVIPS.

Dále vytvoří soubor rfont.tfm a cfont.vpl. Na posledně jmenovaný aplikujeme program:

vptovf cfont.vpl

čímž dostaneme soubory cfont.tfm a cfont.vf, které umístíme do adresářů /usr/lib/texmf/texmf/fonts/tfm a /usr/lib/texmf/texmf/fonts/vf.

Pokud font české znaky neobsahuje, můžete se pokusit sjednat nápravu programem a2ac ftp://ftp.cstug.cz/pub/local/cstug/olsak/a2ac, který, pokud najde jednotlivé akcenty, je schopen vytvořit kompozitní popis všech českých písmen.

Podrobnější popis viz dokumentace k a2ac, či článek Virtuální fonty, accents a přátelé ftp://ftp.cstug.cz/pub/tex/local/cstug/sojka/aboutacc/.

7.5 LyX

Program LyX slouží k vytváření textových dokumentů. Je to nadstavba nad TeX, přesněji nad makro LaTeX. Uživatel LyXu pracuje s grafickým rozhraním, podobajícím se textovým editorům ze světa MS Windows. Výstup programu LyX se po stisku tlačítka zpracuje LaTeXem a proto je výsledný dokument typograficky poměrně kvalitní.

LyX upravený pro bezproblémovou práci v češtině pro RedHat Linux lze nalézt na ftp://ftp.fi.muni.cz/pub/linux/localization/.

7.6 Literatura


Další Předchozí Obsah