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

Zdenek Wagner wagner at cesnet.cz
Thu Dec 29 18:48:21 CET 2005


On Tue, 27 Dec 2005, David Jez wrote:

> > 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 musi fungovat i ve fontech, ktere netvori CSTUG, a tezko donutime
ostatni tvurce, aby tyto ligatury vsude vkladali. Kdyz pak uzivatel
predefinuje \rmfamily na jiny font a uvozovky prestanou fungovat, bude to
hloupe. Hlavne jde o to, ze nekdo napise dokument v Computer Modern, vse
mu funguje, ja vezmu jeho zdrojak, presadim ho v jinem fontu a budu muset
vsechny ligatury hledat a necim nahrazovat. To stoji cas a penize... Krome
toho musi uvozovky fungovat i v kodovani T1, a to zpusobem, aby nebylo
nutno zasahovat do vlastniho textu.

> 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 ]=------------------------------------
>

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