Kritika cslatexu

Zdenek Wagner wagner at cesnet.cz
Wed Dec 14 13:58:55 CET 2005


On Wed, 14 Dec 2005, Petr Tesarik wrote:

> Zdravím všechny cslatexisty!
>
> V průběhu práce na sjednocení Babelu a cslatexu jsem narazil na
> některé nedostatky cslatex-u, které mne vedly k sepsání tohoto mailu,
> aby náhodou nevznikl mylný dojem, že když se o žádných chybách v
> cslatexu neví, tak je bezchybný. Rád se na oplátku nechám zkritizovat,
> jaký jsem tupec a jak jsem nic nepochopil. ;)
>
> 1. Dávný problém s uvozovkami
>
> Je známo, že existují dvě verze makra \uv{}, přičemž ta původní verze
> sice umožňovala vložit do uvozovek \verb, ale porušovala kerning v CS
> fontech. Myslím, že Petr Olšák tehdy došel k závěru, že napsat makro,
> které by dodržovalo kerning NA OBOU STRANÁCH a zároveň umožňovalo
> předefinovat kategorie znaků uvnitř uvozovek (tj. např. \verb), nelze.
> Na okraj poznamenám, že napsat makro, které dodrží kerning pouze u
> otevíracích uvozovek, je triviální úkol.
>
O tomto problemu se vi. Nelze pouzit jen \chardef, protoze prave uvozovky
maji v ruznych kodovanich ruzny kod, musi se tedy jit pres XXenc.def, ale
ten kerning by snad osetrit slo.

> Proto mne zaráží, že nikdo evidentně neotestoval, zda nové makro \uv
> skutečně dodržuje kerning i u uzavíracích uvozovek. Ono ho totiž
> nedodržuje! Jakto? Inu, TeX nevloží implicitní kern, pokud je mezi
> dvěma znaky libovolný povel hlavního procesoru. Problémem je tady
> definice \crqq v kódování IL2:
>
> \DeclareTextCommand{\crqq}{IL2}%
>   {{\edef\@SF{\spacefactor\the\spacefactor}\char255 \@SF\relax}}%
>
> Ptám se proto, zda je skutečně k něčemu dobré zachovat za uvozovkami
> stejný \spacefactor?
>
> Pro úplnost dodám, že v LaTeXu 2.09 to fungovalo (\crqq je tam
> definované jako \chardef\crqq=255), naopak aktivní uvozovky,
> tj. způsob, který někteří lidé doporučují, se chová stejně špatně jako
> původní makro \uv.
>
> Přikládám testovací soubor (uv.tex).
>
>
> 2. Změna vzorů podle aktuálního kódování fontu
>
> Pokud se nemýlím, byl tento požadavek jedním z hlavních důvodů, proč
> udržovat separátní cslatex. Nedávno mi však přišel dokument, na
> kterém kolaboval cspdflatex. Analýzou problému jsem zjistil, že na
> vině je chyba v definici makra \@hyphenation, které se právě stará o
> přepínání vzorů dělení.
>
To me prekvapuje, na takovy pripad jsem jeste nenarazil...

> Nakonec zkusím vysvětlit, proč to sem píšu. Samozřejmě lze očekávat,
> že v souvislosti s převedením cslatexu do Babelu se najdou šťouralové,
> kteří najdou v novém řešení chyby. To je jedině správně, pomáhá to
> zlepšit kvalitu a o to nám všem nakonec jde. Nerad bych se ale stal
> tím, na koho padá vina za všechny problémy a od koho se očekává, že do
> Velikonoc dodá dokonalé řešení, když to v některých případech
> nedokázali tvůrci cslatexu ani za deset let...
>
> S pozdravem,
> Petr Tesařík
>

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