[cstex] babel, cslatex a encTeX dnes

Zdenek Wagner zdenek.wagner at gmail.com
Wed Jul 30 17:52:41 CEST 2014


Dne 30. července 2014 16:49 Marek Nožka <marek at tlapicka.net> napsal(a):
> Dobrý den a srdečné pozdravy všem.
>
> Omlouvám se pokud se ptám na něco, co je notoricky známé, ale nenašel jsem
> nikde žádný "oficiální návod" na téma jak správně sázet české texty. Proto
> bych si dovolil mnou sesbírané poznatky sepsat a poprosil bych vás
> o komentáře.
>
> 1. Používejte encTeX, protože pokud ho máte aktivovaný každý český znak se
>    chová jako znak.
>
>    To znamená, že do definic formátů je třeba přidat -enc.
>
> V Texlive 2014:
> latex    pdftex language.dat -enc -translate-file=cp227.tcx *latex.ini
> pdflatex pdftex language.dat -enc -translate-file=cp227.tcx *pdflatex.ini
> pdfcslatex pdftex - -etex -enc cslatex.ini
> cslatex    pdftex - -etex -enc cslatex.ini
>
>    Tady mě napadá dotaz: Proč není encTeX ve formátech cslatex a
>    pdfcslatex automaticky? Uživatelé csplain už ho tam automaticky mají.
>    Chápu, že je to asi otázka správce těchto formátů, ale co brání tomu,
>    aby encTeX byl součástí cslatex a pdfcslatex ve výchozím nastavení?
>
Správcem CSTeXu je Petr Olšák. V jeho zájmu je především csplain. Jak
píšete níže, cslatex je zastaralý, neudržovaný a již nejsou důvody pro
jeho použití. Převod starých dokumentů pro použití s babelem nemusí
být vždy jednoduchý a rychlý, což je důvod pro jeho nevyhození a v
distribuci zabírá tak málo místa, že nikomu jeho existence nevadí. je
tedy nutno se smířit s tím, že po diskusi ohledně budoucnosti CSTeXu
došlo ke všeobecné shodě na tom, že cslatex zůstane tak, jak je, a
nikdo s ním nic dělat nebude.

Můj fmt-local.cnf vypadá takto:
$ cat `kpsewhich fmtutil-local.cnf`
# cslatex in UTF-8
#!cslatex
#!pdfcslatex
cslatex         pdftex  -       -etex -enc cslatex-utf8.ini
pdfcslatex      pdftex  -       -etex -enc cslatex-utf8.ini

# latex with enctex
#!latex
#!pdflatex
latex pdftex language.dat -enc -translate-file=cp227.tcx *latex.ini
pdflatex pdftex language.dat -enc -translate-file=cp227.tcx *pdflatex.ini


> 2. Pro definici znakové sady nepoužívejte  \usepackage[utf8]{inputenc}
>    Místo toho uveďte na začátek dokumentu  \input utf8-t1
>
> 3. Pro vlnkování používejte \usepackage{encxvlna}, protože jen TeX může
>    vlnkovat Tex.
>
Není to úplně pravda, zde se využívá encTeX, který vkládá makra v
okamžiku zpracování vstupním procesorem, ale interpretuje je
makroprocesor podle kategorie mezery, přepínače \ifmmode a dalších
vnitřností LaTeXu. I tak v jistých případech dochází k fatálnímu
selhání, například při použití balíčku microtype. A problém encTeXu
přichází i při použití balíčku url, který je načítán balíčkem
hyperref. Příčina i náprava je vysvětlena v popisu balíčku encxvlna.
Výhodou je to, že se vlnkuje při texování, není nutno pouštět externí
program.

> 4. cslatex a pdfcslatex nepoužívejte jsou zastaralé. Používejte babel.
>    Preambule dokumentu by tedy měla vypadat asi takto:
>
> \input utf8-t1
> \documentclass[11pt,a4paper]{article}
> \usepackage[czech]{babel}
> \usepackage[T1]{fontenc}
> \usepackage{lmodern}
> \usepackage{encxvlna}
>
>    Tomu T1 moc nerozumím, ale prý je to nějaké kódování fontů. Beru to jako

LaTeX standardně používá font v kódování OT1, tj. font, který má pouze
znaky US-ASCII a samostatná diakritická znaménka. Nemá tedy písmeno č,
které musí vytvořit pomocí \v{c}, což nakonec vede na použití
primitivu \accent. To má dva vážné problémy:

1. Horší vzhled znaků (připojení diakritického znaménka se dělá
matematicky, není optimalizováno tvůrcem fontu)
2. Nefinguje dělení slov

Kódováni T1 je standard pro východoevropské a západoevropské jazyky,
znaky s diakritickými znaménky jsou kresleny jako glyf. Zdánlivě se
použije font ze stejné rodiny, jen s jiným kódováním, ale průzkumem
příslušných *.fd souborů se dá zjistit, že se použije skutečně jiný
font.

>    fakt. Zajímalo by mě ale, proč musím explicitně uvést \usepackage{lmodern}.
>    Pokud tento balíček nepoužiji, LaTeX použije stejný font, ale kvalita je
>    jiná -- horší.
>
Opšt je to tím, že je použit jiný font, a to Latin Modern. Jde o to,
že DC fonty a EC fonty vznikaly asi dost mechanicky zejména s ohledem
na západní jazyky. B. Jackowski fonty výrazně vylepšil a upravil i pro
češtinu a slovenštinu. Na testování českých textů se výrazně podíleli
Karel Horák, Karel Píška, Vít Zýka a částečně i já, CSTUG na vývoj
finančně přispěl.

> 5. Pokud máte starší dokument pro cslatex nebo pdfcslatex přidejte
>    následující řádky:
>
> \input utf8-t1 % pokud dokument nepoužívá iso8859-2
> \usepackage[T1]{fontenc}
> \usepackage{lmodern}
>
encTeX má překódovací soubory i pro další kódování, Petr Olšák o tom
kdysi napal článek do Zpravodaje.
>
> Budu vděčný za každou radu i šťouchanec.
>
> Díky.
>
>                 Marek Nožka
>
>
>
> _______________________________________________
> csTeX mailing list
> csTeX at cs.felk.cvut.cz
> https://lists.felk.cvut.cz/mailman/listinfo/cstex



-- 
Zdeněk Wagner
http://hroch486.icpf.cas.cz/wagner/
http://icebearsoft.euweb.cz




More information about the csTeX mailing list