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