Kritika cslatexu

Petr Tesarik petr at tesarici.cz
Wed Dec 14 11:59:00 CET 2005


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.

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í.

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
-------------- next part --------------
A non-text attachment was scrubbed...
Name: uv.tex
Type: text/x-tex
Size: 796 bytes
Desc: not available
URL: <http://lists.felk.cvut.cz/pipermail/cstex/attachments/20051214/4552e9e4/attachment-0001.bin>


More information about the csTeX mailing list