[cstex] babel, cslatex a encTeX dnes

Petr Olsak petr at olsak.net
Wed Jul 30 17:49:35 CEST 2014



On Wed, 30 Jul 2014, Marek Nožka wrote:

> 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

Dobrý den,

Csplain má implicitně nastaveno vstupní kódování na UTF-8 pomocí encTeXu. 
Csplain je také díky uft8unkn.tex citlivý i na neznámé UTF-8 kódy, píše 
o nich varování a umožní je uživateli dodefinovat.

Na druhé straně LaTeX je dlouhodobě zavedený mezinárodní formát, u kterého 
se takové věci jako encTeX neočekávají. LaTeXovsky vyřešit kódování 
znamená pomocí {inputenc} dát najevo vstupní kódování (potřebné znaky pak 
budou aktivní a expandují na LIRC, tj. na interní na kódování nezávislou 
reprezentaci znaků). Dále LaTeX vyžaduje pomocí {fontenc} dát najevo 
kódování použitých fontů, na které to LIRC dále pak expanduje.

EncTeX tuto cestu zcela obchází a rovnou převádí vstup na kódování fontů. 
To může v LaTeXu (např. při zápisu do textových souborů) působit potíže. 
Nezkoušel jsem to, nepodporuji z principu LaTeX. V každém případě je 
encTeX pro běžné LaTeXisty na celém světě zcela neznámý a vytvoříte tím 
jen dokumenty, které jiný LaTeXista nebude schopen zpracovat.

Pochopitelně, že kvůli té složité cestě, kterou LaTeX zvolil, vznikají 
problémy, jako například:

http://tex.stackexchange.com/questions/176694/non-ascii-character-as-argument

nebo

http://tex.stackexchange.com/questions/193598/redefining-a-command-and-special-character

Ovšem takto to LaTeXisti mají a není dle mého názoru vůbec možné je 
přesvědčit, aby to dělali jinak (z úvah jsem vyloučil XeLaTeX a LuaLaTeX, 
mám na mysli pouze LaTeX postavený na pdfTeXu).

XeLaTeX nebo LuaLaTeX je tedy pro LaTeXisty jistým vysvobozením z 
problémů, které mají. A zvykají si, že se věci týkající se kódování dají 
dělat úplně jinak.

>   Tady mě napadá dotaz: Proč není encTeX ve formátech cslatex a
>   pdfcslatex automaticky? Uživatelé csplain už ho tam automaticky mají.

Odpověď viz výše.

> 2. Pro definici znakové sady nepoužívejte  \usepackage[utf8]{inputenc}
>   Místo toho uveďte na začátek dokumentu  \input utf8-t1

Jistě tušíte, že nějaké "\input cosi" nevypadá moc LaTeXovsky.

>   Tomu T1 moc nerozumím, ale prý je to nějaké kódování fontů. Beru to jako
>   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ší.

Chápu to tak, že v T1 kódování bez {lmodern} jsou v LaTeXu asi nastaveny 
EC fonty. Možná métepocit, že vypadají húř.

Zdravím

Petr Olšák


More information about the csTeX mailing list