utf8 a deleni slov (dlouhe)

Petr Sojka sojka at fi.muni.cz
Thu Jun 9 14:37:01 CEST 2005


On Thu, Jun 09, 2005 at 11:30:14AM +0200, Arnost Stedry wrote:
Dobry den,

> pokousim se prejit plne na UTF8 (pripravuju mnohojazycnou publikaci)
>
> moj hlavicka vypada zhruba takto (pouzivam font gentium v pdf texu)
>
> \usepackage{ucs}
> \usepackage[utf8x]{inputenc}
> \usepackage[polutonikogreek,russian,czech,english]{babel}
> \usepackage{ttfucs}
> \DeclareFontFamily{T1}{gentium}{}

Nejprve je treba si udelat jasno v typech kodovani
a odliseni _vstupniho_ kodovani (nastavovaneho balikem inputenc,
napriklad) a _vystupniho_ kodovani (neboli kodovani fontu
resp. kodovani vzoru deleni, nastavovane pomoci baliku fontenc).
To jsou dve odlisne veci.
V soucasnych distribucich je jiz hned nekolik moznosti
mapovani mezi temito dvema kodovanimi (ve web2c pomoci
.tcx tabulek, v emtexu pomoci .tcx tabulek, v latexu
pomoci inputenc a fontenc [viz heslo LICR (makroexpanze)
v LaTeX Companion 2. vydani] nebo Olsakuv enctex.
Pokud ale potrebujete vice jak 256 rozlisitelnych znaku ve fontu,
pro optimalni reseni musite prejit na aleph resp. omegu.

> \DeclareFontShape{T1}{gentium}{m}{n}{
>   <-> gentium
> }{}
> \DeclareFontShape{T1}{gentium}{m}{it}{
>   <-> gentiumi
> }{}
> \renewcommand{\encodingdefault}{T1}
> \renewcommand{\rmdefault}{gentium}
> \DeclareTruetypeFont{gentiumi}
> \DeclareTruetypeFont{gentium}
>
> delici vzory mam samozrjme naistalovane. Vsechno vicemen lze priohnout
> tak, aby to fungovalo, problem je pouze pri deleni slov.
>
> kdyz si necham vypsat deleni slov:
>
> \selectlanguage{greek}
> \showhyphens{nejaky text v unicodu obsahujici recke a jine znaky}
>
> vypadne toto:
>
> /gentium/an-odaka-to-dat-mej d/gentium01/^^[/gentium/laje sc/gentium00/^^e9/
> gentium/ny lingvis-tic
> /gentium03/^^b4^^c5^^bd^^b1^^c4/gentium1f/}/gentium03/^^
> c4^^b5^^c1^^bf^^b9
>
> z toho usuzuju, ze deleni v rectine asi nebude fungovat.
To je spatna implikace. Par faktu:
-- vzory deleni TeXu (nemluvim o omeze) jsou v osmibitovem kodovani
   fontu (viz vystupni kodovani vyse), a tedy nelze uspokojive
   resit deleni jazyku, ktere maji vice nez 256 pro deleni
   nutne rozlisitelnych znaku.
-- pouzity font musi byt ve stejnem kodovani jako nactene vzory
   deleni pro dany jazyk (modulo ekvivalenci danou mapovanim \lccode)
-- pokud nevyuzijete \savinghyphcodes z etexu v2 a vyssi (v TeXu tento primitiv
   neni), pouzije se to \lccode mapovani (ekvivalence malych a velkych
   pismen, ktere se pro deleni nerozlisuji az na vyjimky [\uchyph=1]),
   ktere je nastaveno pro jazyk _na konci odstavce. To muze mit neblahy
   vliv pri pouzivani ruznych kodovani pri pouziti ruznych jazyku v
   odstavci, proto doporucuji osetreni pomoci \savinghyphcodes)

Tedy za prislusnych omezeni to fungovat muze (pokud pouzijete
vhodne metriky fontu adeleni slov v jejich kodovani).
V jakem kodovani se znaky vypisuji na terminal se da
take ovlivnit, ale zobakova notace je nejbezpecnejsi.

> v nejhorsim pripade by mne stacilo funkcni deleni v latinkovych jazycich.

To prece pri jazycich, ktere se vejdou do T1 funguje!
(Nezapomente na \usepackage[T1]{fontenc}).

--ps



More information about the csTeX mailing list