Polske \L a \l v ps-fontech v IL2

Zdenek Wagner wagner at cesnet.cz
Tue Oct 14 14:33:10 CEST 2003


Vazeni kolegove,
minuly tyden zde byl dotaz na \l a \L ve fontu Palatino, coz me privedlo
ke zjisteni, ze to v kodovani IL2 skutecne nefunguje. Slibil jsem napravu,
ale kdyz jsem se podival, jak jsou prislusne znaky udelany, dospel jsem k
zaveru, ze to neni zcela trivialni.

CM fonty (kodovani OT1) maji samostatne skrtatko (znak s kodem 32), kterym
se preskrtne l resp L. V kodovani T1 jsou \l i \L kresleny jako samostatne
znaky. Kodovani IL2 (CS fonty) je konzervativnim rozsirenim OT1. Je zde
take samostatne skrtatko. Kodovani IL2 obsahuje pouze znaky nutne pro
cestinu a slovenstinu, neobsahuje dalsi znaky napr. \~n apod. XL2 je
rozsirenim IL2 a na volne pozice c CS fontech mapuje (skoro) vse, co je v
PS fontech dostupne. Proto jsou na urcitych pozicich tez znaky \l a \L. V
kodovani XL2 tedy problem neni. Potiz je v tom, ze PS fonty nemaji
samostatne skrtatko. Pokud bych prenesl definice \l a \L z xl2enc.def do
il2enc.def, prestaly by tyto znaky fungovat v CS fontech.

Jedno z moznydh reseni je zasah do CS fontu, aby se \l a \L dostaly na
stejne pozice jako jsou v XL2. To je vsak reseni nejmene stastne, protoze
budou na ruznych pocitacich ruzne verze CS fontu a chudaci uzivatele budou
zmateni tim, ze \l a \L nekdy funguji a jindy nikoliv. Navic by to chtelo
zasah do il2enc.def, coz by melo podobne nasledky.

Jinou moznosti je vyuziti posledniho parametru makra \DeclareFontFamily v
souborech *.fd. Zde by se daly vlozit odpovidajici \chardef\l a
\chardef\L, ale ani to neni nejlepsi reseni. Vetsinou uzivatel meni font
docasne uvnitr skupiny, cimz zmenene definice ve vhodnem okamziku vymizi,
ale kdyz nekdo pouzije:

\usefont{IL2}{ppl}{m}{it} Ma\l gosia \usefont{IL2}{cmr}{b}{n} Ma\l gosia

nebude v druhem pripade \l fungovat, protoze se nenatahne znovu
il2enc.def. Navic plain nepouziva *.fd, takze pro uzivatele csplainu se
problem neresi.

Nakonec me napada jedina moznost: do prislusnych VF a TFM pro kodovani IL2
pridat dve ligatury:

\char32 + l -> \l
\char32 + L -> \L

TeX nikdy nepouziva znak s kodem 32 jako mezislovni mezeru, takze nehrozi
riziko zmrseni l a L na zacatku slova. Obe polska pismenka budou funkcni
jako samostatne znaky v kodovani XL2 i metodou, jako by byly vytvoreny
pomoci samostatneho skrtatka. Neni nutny zadny zasah do metrik raw fontu
ani do metrik pro T1 a OT1. Neni nutno pro sazbu \l a \L pouzivat zadna
nova makra, takze prechod mezi CS fonty a PS fonty bude bezproblemovy.
Problemy s (ne)kompatibilitou budou minimalni, protoze se jen do nove
verze doplni vlastnost, ktera tam byt mela, a je mozno nekde (na
www.cstug.cz) upozornit, ze si maji uzivatele stahnout novou verzi metrik.

Budu rad, kdyz se na tento navrh nekdo podiva a pripadne me upozorni, ze
jsem neco prehledl.

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