Stav práce na přechodu cslatex->Babel

David Jez dave.jez at seznam.cz
Tue Dec 27 17:00:50 CET 2005


> Zdravím všechny příznivce cslatexu!
  Ahoj Petře!

  Díky za patch, v tomto mailu se jenom vyjádřím k tvým předchozím
dotazům ohledně uvozovek.

> V průběhu práce se objevila také potřeba zásahů do souborů, které
> nejsou součástí Babelu. Jedná se například o výše uvedený czhyph.tex
> a skhyph.tex (jejich autorem je Petr Olšák, ovšem bez copyrightu), ale
> také v il2enc.def (součást cslatexu) jsou určité nesrovnalosti
> (uc/lc/sfcode).

> \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.
  S uvozovkami je více problémů:

  1. Samotné nešťastné makro \uv. Přiznám se, že jeho existenci moc
nechápu. Uvozovky jsou normální znak, jako jakýkoliv jiný. Je sice
krásné a vypadá hezky, že uvozovaný text je v jedné skupině, ale jsme
asi jediný jazyk, který toto používá. Navíc na jednoduché uvozovky už
makro není. Na francouzské také ne a na ostatní také ne. Navíc třeba na
závorky také nemáme makro třeba \zavorka{}, ale píšeme pěkně (). Navíc
napsat makro, které splňuje podínku, že dodržuje kern a lze použít ve
verbatimu nejde. Nicméně považuji makra s parametrem za lepší řešení
právě z toho důvodu, že kern dodržují. Pokud to někde vadí, není jiná
možnost než použít \clqq \crqq. Proto také moc dobře nechápu v CSLaTeXu
parametr olduv, pracující všude za cenu zhoršení kvality sazby nad
leností uživatele. Potom máme zcela zbytečně ve stylu 2 verze makra, z
nichž každá má své chyby. Z tohoto úhlu už mi vytváření třetího, s
omezením v parametru nebo jiným omezením připadá jako holá šílenost.
Kdyby totiž fungovaly např. znaky `' (nebo jiná kombinace) tak jak mají
(viz. dále), problém s makrem by zcela odpadl. Případně není problém
nechat makra plně na uživateli (protože pro jiné uvozovky už mu stejně
nic jiného nezbude).
  Co se týče definice \crqq, já používám klasickou definci:
    \DeclareTextSymbol{\crqq}{IL2}{255}%
která problémy nedělá. Dodržování spacefactor považuji za chybu, také to
dělá problémy. Jinak v žádném jazyce se nedodržuje. Ten způsob nevznikl
sám od sebe, do il2enc.def to někdo zanesl, měl by se přihlásit proč :).
Osobně bych to vyrazil, pokud někdo potřebuje kolem jakéhokoliv znaku
napsat balast kolem, dá se to udělat kdekoliv jinde.
  2. Aktivní znaky `'. Další průšvih. Definice je s mnoha prikazy kolem,
pak se chovají tyto znaky jako makro a porušují kerny. Přitom by stačilo
udělat znak ` jako jednoduchou otevírací uvozovku, s ligaturou na
dvojitou a totéž s uzavíracími ' a ''. Pak by odpadla hromada problémů a
uvozovky by se chovaly korektně jako znak, včetně dodržování
implicitních kernů. Nicméně problém č. 2: v IL2 kódování (ani v XL2)
jaksi není definována quotesinglebase...
  3. Kvůli zmíněné absenci quotesinglebase problém s jednoduchými
uvozovkami.

  Osobně to řeším upravenou il2enc.def, \clqq a \crqq případně makry s
paramterem na jakékoliv situace potřebuji (ne jen nutně na uvozovky). V
kódování T1 to řeším následující definicí:
\chardef\clq=13
\chardef\crq=96
\chardef\clqq=18
\chardef\crqq=16
  Samozřejmě, že písmo musí mít definován kerning. Většinou ale v
metrikách není definován kerning pro všechny skupiny, musí se dopisovat
ručně (nebo automatickými nástroji).

> Mimochodem, asi bude přece jen potřeba kromě souborů v Babelu nadále
> udržovat i cslatex právě kvůli podpůrným souborům pro kódování IL2
> (il2enc.def, il2cmr.fd atd.).
  Samozřejmě, s tím že nebude potřeba udržovat věci, které souvisí s
cslatexem, tedy styly a samotný formát. Akorát budeme muset udržovat
il2enc a definice písem pro IL2 (jak pro CM, tak pro psfonty - to se
ovšem může dát mimo, do balíčku s fonty).
  Současně s tím by Petr Olšák mohl už zrušit LaTeXové smetí (tedy
czech.sty a slovak.sty) z adresáře csplain.

> Přeju svátky plné radosti,
> Petr Tesařík
  S pozdravem,
David Jež
-- 
-------------------------------------------------------
  David "Dave" Jez                Brno, CZ, Europe
 E-mail: dave.jez at seznam.cz
PGP key: finger xjezda00 at eva.fit.vutbr.cz
---------=[ ~EOF ]=------------------------------------




More information about the csTeX mailing list