\csprimeson a derivace -- reseni

Petr Olsak olsak at math.feld.cvut.cz
Wed Aug 13 12:20:51 CEST 1997


On Tue, 12 Aug 1997, Leo Hadacz wrote:

> Josef Tkadlec pise:
> >
> > Leo Hadacz:
> >
> > > pak zas nefunguje derivace v matematickem modu. Bohuzel jsem to nemoh
> > > vyzkouset, protoze na \csprimeson mi to pise Undefined control sequence.
> > > Tady je vstup:
> > >
> > > -------------------------------------------------------------
> > >
> > > \documentclass{artikel1}
> > > \usepackage[latin2]{inputenc}
> > > \usepackage{czech}
> >
> > Je treba pouzit \usepackage[cstex]{czech}

Odpozoroval jsem, ze na pouziti volby [cstex] nema problem vliv.

> Vysledek:
>
> ! Undefined control sequence.
> \next ->\@clqq
>                \let \next =
> l.14 Toto jsou ,,dobre``
>                          uvozovky.

Pri nastaveni \csprimeson bude znak ' aktivni vsude, zatimco puvodne
byl aktivni jen v matematickem modu a expandoval na (zhruba receno)
^\prime. To s sebou prinasi jiste potize, ktere podrobneji popisu nize.
Tyto potize byly davno reseny ve stylu czech.sty, ovsem ukazuje se, ze to
fungovalo bezvadne na plain a starsi verze LaTeXu. V urcitem okamziku
se panove vyvojari rozhodli (zrejme jen z estetickeho hlediska) zamenit
sekvenci \futurelet\next za \futurelet\@next at token a reseni znaku ' ve
stylu czech.sty pro matematicky mod prestalo fungovat.

Neptejte se me, ve ktere verzi zaplaty noveho LaTeXu k teto udalosti
doslo, ovsem faktem je, ze ona verze zaplaty, ktera je soucasne pouzivana
v CSTeXu (mimochodem neni nejnovejsi) tento problem jiz obsahuje.

Reseni:

Ve stylu czech.sty/slovak.sty, ktery je nyni spolecny pro LaTeX i plain a
poznate ho podle toho, ze obsahuje na zacatku:
%%
%% This is file `czech.sty',
%% generated with the docstrip utility.
%%

pridejte pred radkek 167:

\def\prim at s{\prime\futurelet\next\pr at m@s} % No \@next at token (P.O.)

takze budete mit:

\def\closequotes{\unskip\crqq\relax}
\def\prim at s{\prime\futurelet\next\pr at m@s} % No \@next at token (P.O.)
{\catcode`\'=\active
\gdef\csprimeson{\catcode96=\active \catcode39=\active

Domluvim se s panem Snajderem na oprave a zabalim to pak do distribuce
CSTeXu.

Technicke vysvetleni problemu:

Ve stylu czech.sty je nutno dvakrat opsat definici makra \pr at m@s, ktera
testuje pri pouziti ' v matematice nasledujici znak. Test je proveden
pomoci \ifx, takze se testuje nejen ASCII kod, ale i kategorie. Ta je v
rezimu \csprimeson jina nez v rezimu \csprimesoff. Toto makro
predpokladalo, ze testovany znak bude ulozen v \next (viz plain i stare
verze LaTeXu), ovsem od jiste verze LaTeXu se ukazal tento predpoklad jako
mylny.

Petr Olsak





More information about the csTeX mailing list