cslatex vs. latex -- indexy

Zdenek Wagner wagner at cesnet.cz
Wed May 31 10:39:38 CEST 2006


On Tue, 30 May 2006, Jano Kula wrote:

> Zdenek Wagner wrote:
> > On Tue, 30 May 2006, Jano Kula wrote:
>
> >> proto by me zajimalo, jsetli nekdo zna odpoved na puvodni otazku.
> >>
> > inputenc resi konverzi na urovni maker (v TeXovem zaludku) pomoci
> > aktivnich znaku, takze zpetna cesta neni mozna, encTeX to dela pri vstupu
> > (v TeXovych ustech), takze si pravidla pro cteni lze zapamatovat a pouzit
> > je obracene pri zapisu. Bez definice \mubyte ... \endmubyte, nebo bez
> > moznosti zasahu do \xprn to nepujde.
>
> zpetna cesta mozna je, protoze latex, zapisuje do *.aux suboru opet
> utf8, tedy aspon v pripade rejstrikovych pojmu. nefunguje to ale v cslatexu.
>
cslatex resi konverzi standardne pomoci TCX tabulek (v emTeXu pro OS/2 a
DOS pomoci TCP tabulek). Ty modifikuji obsah vektoru xchr, xord a xprn. V
unixech je to defaultne nastaveno na ISO-8859-2, v OS/2 na CP852, ve
Windows (snad) na Win1250. Lze vygenerovat format, ktery ma jako default
UTF-8, pricemz konverze je definovana pomoci \mubyte ... \endmubyte.
cslatex ma ve formatu zapsano -default-translate-file, takze pri
zpravocani souboru muzete definovat jiny soubor s jinou TCX tabulkou. Lze
tedy vnutit stejnou tabulku, jakou pouzijete v babelizovanem latexu s
ucs.sty. Nejsem si jist, jestli lze v TCX samostatne nastavit xprn a
ponechat xord a xchr beze zmeny. Pokud ano, mohl byste mit vystup jiny nez
vstup, ale konverze temito vektory jsou vzdy podle schematu 1 byte -> 1
byte. Muzete tedy mit na vystupu ISO-8859-2, nikoliv UTF-8. vicebytovou
konverzi umi jen encTeX. V ucs.sty je to mozna udelano tak, ze v
prislusnych prikazech pro zapis jsou vsem znakum zmeneny \catcode na 12,
takze se zapisi tak, jak jsou, zatimco cslatex je pri cteni prekonvertuje
z UTF-8 na vnitrni kodovani, pri vystupu je zkonvertuje zpet.

Pri sazbe knih velmi casto potrebuji, aby kapitola zacinala na nove
strance a prvni odstavec zacinal inicialou obvykle z jineho fontu. V
definici \chapter pak mam:

\everypar{\UsadInicialu}
\def\UsadInicialu#1{\everypar{} ... zpracuj #1 ...}

S encTeXem to funguje, ucs.sty mi nacte pulku znaku a nasledkem budou
podivne chyby.

Pri zpracovani jistych textu pouzivam konstrukci

\futurelet\znak\pokracuj

EncTeX mi do makra \znak vzdy vlozi cele pismeno, ucs.sty muze vlozit jen
pulku.

Krome toho by text mel byt prenositelny. Kdyz napisu cesky text v UTF-8,
dam to spoluautorovi, aby to upravil, on bude mit v pocitaci napr.
ISO-8859-2, prozene si to iconvem, aby to v editoru videl spravne, a bude
muset vyhodit ze souboru \usepackage{ucs}, aby to slo u nej zpracovat, je
to spatne. Kdyz nekdo ve Windows napise dokument, ja si to v Linuxu
prevedu na UTF-8, otevru v editoru, upravim, dopisu \usepackage{ucs} a
stejne to nepomuze, protoze mi nebude fungovat \futurelet\znak ..., je to
taky spatne. CS* formaty (a nejen ty) by mely byt psany tak, aby konverzi
dokumenty ve stejnem jazyce, vytvorenem na systemu s jinym LC_CTYPE, do
LC_CTYPE v mem pocitaci nedoslo k takovym zmenam, ze bych musel
pridavat/ubirat balicky a modifikovat definice maker.

> JK
>

Zdenek Wagner
e-mail: wagner at cesnet.cz

see also http://hroch486.icpf.cas.cz/wagner/
         http://icebearsoft.euweb.cz




More information about the csTeX mailing list