enctex a unicode

Petr Olsak petr at olsak.net
Mon Jun 13 10:22:53 CEST 2005


On Mon, 13 Jun 2005, Arnost Stedry wrote:

> no ja pochopitelne nemam unicodovy font
>
> ten prikaz
>
> ttf2tfm gentium.ttf -w gentium at Unicode@
>
> rozkouskuje unicodovy font na kousky po 256 znacich (takze v krajnim pripade mam 256 fontu)
>
> v .map souboru to pak vypada zhruba takto:
>
> gentiumT1 <gentium.ttf <T1-WGL4.enc
> gentium00 <gentium.ttf <gentium00.enc
> gentium01 <gentium.ttf <gentium01.enc
> gentium02 <gentium.ttf <gentium02.enc
>
> pro konkretni kodovani navic muzu udelat dalsi specialni (viz prvni
> radek), cimz muzu celkem bezbolestne pouzivat babel na prepinani jazyku

Vas projekt me zajima, pouzijete-li encTeX, pak bych byl velmi potesen,
kdyz mi naspisete informaci, jakym zpusobem.

Na rozdil od LaTeXoveho baliku na utf8, ktery pracuje s aktivnimi znaky
(ted nevim, jak se to jmenuje), je encTeX zatim pouze low-level nastroj,
pricemz jednoduche reseni pro ceskou a slovenskou abecedu je udelano a
dalsi rozsireni si musi udelat kazdy podle svych moznosti. Na druhe strane
ten LaTeXovy balik je uz pripraven na uzivatelske urovni k pouziti.

EncTeX Vam umozni vracet zpatky texty ve \write souborech (pro obsah atd.)
zpet do UTF8. Rovnez muze vracet do UTF8 chybove hlasky (s citovanym
textem zrovna cteneho radku rozdelenym na dva) a texty \message v logu a
na terminalu, nicmene texty z overfull boxu do UTF8 nevraci spolehlive,
nebot v tuto chvili je uz ztracena informace o tom, jak vypadal znak ve
sve UTF8 variante pred konverzi do 8bitoveho znaku.

Dovedu si predstavit, ze jedno kodovani s max 256 pozicemi zvolite jako
zakladni a budete jej mapovat primo na jednobytove znaky. Dalsi kodovani
s dalsimi pozicemi budete mapovat na kontrolni sekvence. Napr.
kompletni azbuka se muze sejit v dalsim z nekolika 256 znakovych kodovani
a bude mapovana na sekvence typu \ruYA. Je dobre vedet, ze tyto sekvence
se daji jednoduse definovat jako

\def\ruYA{{\cyrfont \char<cislo>}}

pricemz ani opakovane prepinani do stejneho fontu ani vstupovani a
vystupovani ze skupiny pro kazde pisneno uvnitr slova nevadi pri hledani
mist deleni slov. Presneji, nastavite-li deleni slov pro rustinu napr.
makrem \ruhyph a pisete:

{\ruhyph ruska slova v UTF8} latinka,

pak se Vam rustina bude delit podle ruskych vzoru deleni. Samozrejme, je
treba pocitat s konfliktem pri michani ruznych vzoru deleni s nestejnym
mapovanim \lccode v jednom odstavci. O tom tady uz byla rec: vec je
vyresena v eTeXu.

Pokud ale chcete, aby ve "vedlejsich" kodovanich fungovaly take ligatury,
je nutne se vyhnout prepinani fontu a skupin pro kazde pismeno a zahrnout
tuto vec globalne do prikazu na prepnuti jazyka (v ukazce makro \ruhyph).
Dale pak neni mozne pouzit pri definici prikaz \char, ale primo kod znaku,
tj. napr. \def\ruYA{^^<hexa cislo>}.

Pokousel jsem se vytvorit pomoci maker vicejazycne prostredi pro plain
postavene na OFS a encTeXu. Pracovne jsem to nazval OKTeX. Protoze ale sam
jsem to k nicemu nepotreboval a z vnejsku jsem nezaznamenal o to zadny
zajem, prestal jsem na tom delat. Na Siti zustal jen rozpracovany projekt.

Zdravim

Petr Olsak





More information about the csTeX mailing list