CSTeX

česká a slovenská podpora TeXu

Petr Olšák, listopad 2012

en English

CSTeX vznikl na počátku 90. let minulého století a prodělal mnoho podob. Nejprve to byla sada disket, které bylo nutno postupně nastrkat do počítače s DOSem, aby se tam nainstaloval emTeX s českou a slovenskou podporou vzorů dělení a maker. V současné době se CSTeX skládá z níže uvedených balíčků. Na CSTeXu pracovala řada dobrovolníků více či méně koordinována sdružením CSTUG.

cstexman.pdf

Základní dokumentací k CSTeXu je ,,Manuál k CSTeXu`` v souboru cstexman.pdf. Je to technická dokumentace, která asi není moc stravitelná pro začátečníka. Tomu doporučujeme věnovat nejprve pozornost seznamu literatury na konci této www stránky.

Pojem CSTeX lze též pojmout šířeji jako podporu ve formě nejen softwaru, ale též návodů a textů k českému TeXu a také není možno nepřipomenout diskusní skupinu cstex.

Obsah

  1. Balíčky CSTeXu
  2. Poslední změny v CSTeXu
  3. Poznámky k instalaci jednotlivých balíčků
  4. Doporučená literatura

1. Balíčky CSTeXu

csfonts.tar.gz (Jul.1997)
csfonts-t1.tar.gz (Feb.1999)
csplain.tar.gz (Dec.2012)
cslatex.tar.gz (Oct.2012 obsolete)
cspsfonts.tar.gz (Dec.2012)
cstrip.tar.gz (May.1999)
enctex.tar.gz (Jan.2010)
vlna.tar.gz (Sep.2002)
csindex.tar.gz (Dec.1998)

Balíčky CSTeXu jsou obvykle součástí TeXových distribucí (TeXlive, MikTeX) a uživatel je tedy nemusí stahovat z této www stránky a instalovat. Tato stránka ovšem obsahuje odkazy na nejnovější verze těchto balíčků. Pokud máte dojem, že Vaše distribuce neobsahuje nejnovější verzi vámi požadovaného balíčku, můžete si samozřejmě stáhnout zde odkazovaný tar.gz a postupovat podle návodu k manuální instalaci.

Ne všechny balíčky jsou pro běžný provoz potřebné. Základ tvoří balíček CSfonts a CSplain. Balíček CSLaTeX je považován za zastaralý. Uživatelé by místo něj měli použít běžný LaTeX s podporou vícejazyčné sazby.

  • CSfonts ... metafontové soubory a metriky fontů, které rozšiřují původní Knuthovy CM fonty o znaky české a slovenské abecedy.
  • CSfonts-t1 ... CSfonty ve formátu PostScript Type1.
  • CSpsfonts ... metriky *8z a map soubory základních 35 PostScriptových fontů kódovaných podle IL2. Toto kódování mírně rozšiřuje kódování CSfontů.
  • CSplain ... makra na generování formátu, vzory dělení, další dodatečná makra.
  • cstrip ... test funkcionality formátu CSplain.
  • EncTeX ... záplata modifikující TeX, aby na úrovni input procesoru dokázal překódovat vícebytové kódování.
  • CSLaTeX ... zastaralá a nepoužívaná součást CSTeXu.
  • Vlna ... jednoduchý prográmek na doplňování vlnek za neslabičné předložky.
  • CSindex ... alternativa programu Makeindex na tvorbu rejstříků.

2. Poslední změny v CSTeXu

2013

Průběžně je korigován csplain a OPmac dle reportů uživatelů.

Dec. 2012

Do balíčku csplain.tar.gz přidáno makro OPmac.

Dec. 2012
CSpsfonts

CSLaTeXové makro soubory, které čtou cspsfonts, jsou přestěhovány z cspsfonts.tar.gz do cslatex.tar.gz.

Nov. 2012
CSplain

Přidán soubor ucode.tex, který přepíná do Unicode podobně, jako t1code.tex přepíná do T1 kódování.

Byl upraven soubor hyphen.lan tak, že je připraven ke čtení vzorů dělení slov 54 jazyků zveřejněných na TeX hyphenation patterns. Některé vzory dělení jsou připraveny až ve třech kódováních: ISO-8859-2, T1 (Cork), Unicode. Při inicializaci formátu csplain detekuje, zda použitý TeXový program je schopen pracovat interně v Unicode (tj. LuaTeX nebo XeTeX). Pokud ano, zavede implicitně vzory dělení pro češtinu a slovenštinu také v Unicode.

Oct. 2012

Výrazně obnovena dokumentace k CSTeXu. Především Manuál k CSTeXu a www stránky.

Oct. 2012
CSpsfonts

Veškeré metriky *8z a *8u jsou nově přegenerovány tak, že nepoužívají virtuální fonty pomocí kompozitních znaků, jak to dělaly dříve. Znaky jsou odkazovány přímo pomocí /Encoding vektoru. Takže v PDF dokumentu pořízeném v těchto fontech bude fungovat vyhledávání českých slov a přenášení textu clipboardem do jiné aplikace. Také nově jsou do kódování těchto fontů zařazeny znaky \trademark, \registered a \euro. O tyto znaky je pozměněn soubor xl2.enc a xt2.enc. Nově jsou zařazeny soubory cs-a35-nodownload.map a cs-a35-urwdownload.map. Vlastnosti jsou posány v Manuálu k CSTeXu v kapitole třetí.

Přidány *8z.vf a *8z.tfm rodiny Charter. Tyto fonty neobsahují přímé znaky české a slovenské abecedy, tudíž jsou implemetovány pomocí kompozitních znaků a virtuálních fontů (generováno v roce 2002 programem a2ac).

Oct. 2012
CSLaTeX

Tento balíček je označen jako zastaralý. Do \everyjob je přidán výpis zprávy:

***** WARNING ***** CSLaTeX is obsolete, dont use it please. *****
***** You can use normal LaTeX+Babel or XeLaTeX+polyglossia. *****

Tedy: Varování. CSLaTeX je zastaralý, nepoužívejte ho, prosím. Můžete použít LaTeX s Babelem nebo XeLaTeX s polyglossií.

Oct.2012
czech.sty, slovak.sty

Tyto soubory jsou přestěhovány na místo, kam už asi dvacet let patří: z balíčku CSplain do balíčku CSLaTeX. Vzhledem k tomu, že balíček CSLaTeX je považován za zastaralý, považujeme za zastaralé i tyto soubory.

Oct. 2012
CSplain

Přidána rozsáhlá dokumentace k CSplainu.

Je doporučeno implicitně generovat formát CSplain s UTF-8 kódováním za použití encTeXu.

Do formátu přidány příkazy \resizefont, \resizeall na změnu velikosti už zavedeného fontu resp. zavedených fontů. Dále přidán fontový přepínač \tenbi a makro \bi. Vlastnosti jsou popsány v Manuálu k CSTeXu v odst. 4.8 pod heslem \resizefont.

Opraven a značně doplněn soubor t1enc.tex definující kódování podle Corku.

UTF-8 kódovaný csplain implicitně má nastaveno varování při neznámém UTF-8 kódu na vstupu. Je ošetřen také vadný UTF-8 vstup jako \errmessage. Vlastnosti jsou popsány v Manuálu k CSTeXu v odst. 4.6.

Přidány soubory utf8off.tex a mixcodes.tex.

Přidány soubory utf8lat1.tex a utf8lata.tex.

Vše dokumentováno v Manuálu k CSTeXu v kapitole čtvrté.

Oct. 2012
ctimes.tex, ...

Soubory ctimes.tex, cavantga.tex, cbookman.tex, chelvet.tex, cncent.tex a cpalatino.tex zcela přepsány: umějí zavádět i T1 kódované fonty a implicitně volají makro tx-math.tex, takže užití příkazu \setsimplemath považujeme za přežité.

Uvedené soubory jsou přestěhovány z balíčku CSpsfonts do balíčku CSplain.

Oct. 2012
cs-antt.tex, ...

Do balíčku CSplain zařazeny soubory cs-bera.tex (Bera) cs-antt.tex (Antykwa Torunska) cs-charter.tex (Charter) cs-arev.tex (ArevSans) cs-polta.tex (Antykwa Poltawskiego), které zavádějí odpovídající fonty jednoduchým způsobem, jako to dělají soubory ctimes.tex, canavtga.tex atd. Dále zařazen soubor cs-all.tex, který po načtení příkazem \input vypíše seznam těchto fontových souborů.

Oct. 2012
tx-math.tex, ams-math.tex

Zcela nová plainová makra, která zavádějí matematické fonty (TX fonty vizuálně kompatibilní s Times nebo AMS fonty vizuálně kompatibilní s Computer Modern). Umožňuje snadné přepínání do jiných velikostí. Vlastnosti jsou popsány v Manuálu k CSTeXu v odst. 4.5. Makra nabízejí práci se stovkami nových znaků a s osmi matematickými abecedami v plainu. Soubory zařazeny do balíčku CSplain.

Oct. 2012
encTeX

Upraveno makro utf8unkn.tex: přidána \errmessage UTF-8 INPUT IS CORRUPTED. Dále přidány soubory mixcodes.tex, utf8off.tex, utf8lat1.tex a utf8lata.tex. Všech pět těchto souborů je zdvojeno a uloženo i v balíčku CSplain, takže při instalaci nové verze CSplainu není nutno balík enctex.tar.gz vůbec rozbalovat.

3. Poznámky k instalaci jednotlivých balíčků

Předpokladem pro provoz balíčků CSTeXu je fungující TeXová distribuce obsahující aspoň TeX, formát plain.tex a Computer Modern fonty.

Zde jsou jen rámcové informace o instalaci balíčků. Podrobnější informace naleznete obvykle v README nebo INSTALL příslušného balíčku.

CSfonts
CSfonts-t1
CSpsfonts
CSplain

Balíčky CSfonts, CSfonts-t1, CSpsfonts a CSplain. obsahují jen soubory TeXových maker, metrik nebo konfigurační soubory pro programy spolupracující s TeXem. Stačí je zařadit tam, kde je programy z vaší TeXové distribuce najdou. Po rozbalení balíčku v pracovním adresáři vzniká texmf/ strom, který poskytuje návod, kam soubory zařadit do obvyklé TDS struktury. Typicky po takovém zařazení je nutno obnovit vyhledávací databázi LS-R pro tyto programy. Jak se to dělá je závislé na použité TeXové distribuci.

CSpsfonts

Tento balíček od roku 2012 ruší většinu souborů *.vf (virtuálních fontů). Z toho důvodu nestačí zařadit soubory balíčku někam do adresáře, který má přednost před adresáři v distribuci (např. texmf-local/ má přednost před texmf-dist/), protože některé programy si všimnou starých *.vf souborů a nebudou pracovat správně. Je tedy nutné před instalací balíčku CSpsfonts nemilosrdně promazat všechny jeho staré soubory v distribuci.

Dalším ,,problémem`` instalace tohoto balíčku jsou mapovací soubory, které jsou v balíčku připraveny: cs-a35-urwdownload.map a cs-a35-nodownload.map. První z nich by měl načíst pdfTeX zatímco druhý z nich je určen pro program dvips. V TeXlive distribuci se výchozí mapovací soubory nanutí jednotlivým programům rutinou updmap nebo updmap-sys. Rutina čte mapovací soubory odkudsi ze zdrojového adresáře, spojuje je a vkládá je kamsi do cílových adresářů pro použití jednotlivými programy. Jak pomocí této rutiny vnutit jiný mapovací soubor pdfTeXu a jiný programu dvips se mi nepodařilo zjistit. Uvítám, když mě někdo poučí. Polovičaté řešení je nabídnout oběma programům soubor cs-a35-urwdownload.map. To u obou programů funguje, ale výstup z dvips bude mít zavedeny URW nahrážky fontů, místo aby použil přímé fonty od Adobe až PostScriptový rip.

CSfonts-t1

Tento balíček má mapovací soubor csfonts.map. S ním komplikace nejsou, ten je potřeba jen vnutit všem programům, které čtou mapovací soubory. V TeXlive se k tomu užívá rutina updmap nebo updmap-sys.

CSplain,
generování formátů

Po instalaci balíčku CSplain je třeba vygenerovat formáty csplain.fmt a pdfcsplain.fmt. Tato činnost je závislá na použité TeXové distribuci, která pro tyto účely používá konfigurační soubory a své nastroje, které tyto soubory čtou a na základě toho volají příslušný TeXový program na vygenerování formátu a formát zařadí do stromové stuktury souborů podle logiky distribuce. Například je obvyklé, že je formát zařazen jinam, generuje-li formát správce sytému (pro všechny uživatele) a jinam, pokud je generuje uživatel pro své soukromé potřeby bez oprávnění zasahovat do systému. Níže uvádím příkazy (na manuální úrovni), které vygenerují formáty csplain.fmt a pdfcsplain.fmt v systému odvozeném z web2c. Předpokladem je TeXový program disponující rozšířením encTeX (to poznáte podle toho, že rozumí přepínači -enc). Tento program se typicky jmenuje tex, etex, pdftex nebo pdfetex. Je jedno, který z těchto programů se použije, ale stejný program je pak nutné použít i při čtení vygenerovaného formátu, jinak bychom se dočkali chyby ,,I am stymied``.

   pdfetex -ini -enc "\let\enc=u \input csplain.ini"
   pdfetex -jobname=pdfcsplain -ini -enc "\let\enc=u \input csplain.ini"

Je možné, že v DOS-like příkazovém interpretru se výše uvedené uvozovky nemají použít. Ty jsou naopak potřebné v běžném unixovém shellu, aby deaktivovaly na řádku použité znaky backslash. Pro odstranění těchto kompliací existuje v distribuci soubor csplain-utf8.ini obsahující text ,,\let\enc=u \input csplain.ini``, takže je možno generovat formát taky takto:

   pdfetex -jobname=csplain -ini -enc csplain-utf8.ini
   pdfetex -jobname=pdfcsplain -ini -enc csplain-utf8.ini

Formát je podle uvedených příkazů vygenerován pro vstupní kódování UTF-8, což je doporučená volba vstupního kódování. Změny na jiné kódování se dají pak provést i v dokumentu bez nutnosti formát znovu generovat, viz dokumentaci k CSplainu.

Konečně je potřeba nějak zařídit, aby se příkazem csplain vyvolal zvolený TeXový program s formátem csplain.fmt a analogicky pro pdfcsplain. Je tedy potřeba přemístit vygenerované formáty csplain.fmt a pdfcsplain.fmt kamsi, kde je použitá TeXová distribuce najde, a připravit dávky s odpovídajícími jmény a příkazy ,,pdfetex -fmt=csplain.fmt $@`` nebo podobnými. Zase záleží na použitém operačním systému a TeXové distribuci. Na unixu obvykle stačí ztotožnit csplain a pdfcsplain s použitým TeXovým programem pomocí linku:

   ln -s pdfetex csplain
   ln -s pdfetex pdfcsplain

přičemž tyto linky mají být samozřejmě tam, kde je najde jako spustitelné programy interpretr příkazového řádku.

encTeX

encdoc.pdf

Pokud máte v TeXové distribuci TeXový program, který nerozumí přepínači -enc, zřejmě nemá do sebe zahrnut encTeX. V takovém případě nelze generovat formát CSplain s kódováním vstupu UTF-8. Jestliže takový vstup pro CSplain potřebujete a encTeX skutečně není součástí vašeho TeXového programu, připravte se na manuální záplatování a kompilaci TeXového programu ze zdrojových kódů. Balíček nabízí záplatu ,,patch`` na změnový soubor web2c TeXu, který se jmenuje tex.ch. Pokud se tato záplata nepovede nasadit, je možné soubor enctex.ch zakomponovat do změnového souboru pro kompilaci TeXu manuálně. Přeji příjemnou zábavu. Nakonec je potřeba samozřejmě překompilovat TeX ze zdrojových souborů tex.web.

vlna
csindex

Tyto programy se kompilují kompilátorem C ze zdrojových souborů. Stačí mít kompilátor (ten bývá přirozenou součástí každého normálního operačního systému) a postupovat podle návodu v README. Program vlna je navíc distribuován ve zdrojovém textu v jazyce CWEB, ale interpretr tohoto jazyka nemusíte mít instalován. Stačí mít Céčko.

4. Doporučená literatura

  1. Petr Olšák: První setkání s TeXem.
  2. Petr Olšák: TeX pro pragmatiky.
  3. Pavel Satrapa: LaTeX pro pragmatiky.
  4. Jiří Rybička: LaTeX pro začátečníky.
  5. Petr Olšák: TeXbook naruby.
  6. Petr Olšák: Typografický systém TeX.
  7. Donald Knuth: The TeXbook.