[cstex] Fwd: accent pre yfonts a zvacsenie pisma

Zdenek Wagner zdenek.wagner at gmail.com
Sat Dec 29 14:55:07 CET 2012


Dne 29. prosince 2012 12:28 peter knezel <peter.knezel at gmail.com> napsal(a):
> Zdravim pan Olsak,
>
> vyskusal som Vas "hints" a snazim sa pochopit dane zmeny.
>
> po zmene ygoth.pl pre i (bez bodky)
>
> (CHARACTER O 20 %=======znak i bez bodky
>    (CHARWD R 0.166057)
>    (CHARHT R 0.472223)
>    )
> (CHARACTER O 21 %=======znak j bez bodky
>    (CHARWD R 0.149389)
>    (CHARHT R 0.675751)
>    (CHARDP R 0.154333)
>    )
>
> sa mi znak \' posunul nizsie - tak ako ste to napisali. Co presne vyjadruju
> tie cisla? Aka jednotka sa tu pouziva?

Obvykle velikost fontu. Jednotka je uvedena na zacatku toho souboru.

> Mohol by som najst niekde v literature viac o CHARWD, CHARHT, CHARDP a o
> skriptoch:
>
Jiz jsem ji doporucoval, je to v knize Typograficky system TeX, kterou
napsal Petr Olsak.

> tftopl ygoth.tfm ygoth.pl
> edit ygoth.pl
> pltotf ygoth.pl
>
>
> Tipujem, ze to suvisi so sirkou a vyskou pisma. Alebo sa mylim?
>
> Predpokladam, ze tieto pravidla platia aj pre ine pisma - nie iba pre
> yfonts...
>
Mate v zasade 2 typy fontu. Do prvniho typu patri fonty, ktere umi
pouzivat puvodni Knuthuv TeX. Ten umi pracovat pouze s metrickymi
udaji, ktere ziskava z TFM souboru. Program tftopl nedela nic jineho,
nez ze binarni TFM zkonvertuje do lidsky citelneho tvaru, pltotf
provadi opacnou konverzi. V puvodnim Knuthove TeXu tedy nemuzete
pouzit font, ktery nema TFM. Do druheho typu patri fonty TrueType a
OpenType, ktere TFM nemaji, ale XeTeX a LuaTeX si prectou metricke
informace primo z fontu.

Jeste bych rad upozornil, ze nemuzete pouzit uplne libovolnou vysku.
TFM ma omezeni pouze na 16 ruznych vysek, pokud zadate jinou hodnotu,
takze prekrocite pocet 16 hodnot, dojde k zaokrouhleni, mozna i uplne
spatnemu. Male "o" bude ve fontu pravdepodobne o nekolik pixelu vyssi
nez "v" a "x", aby vypadalo opticky stejne, ale v TFM bude
pravdepodobne jeho vyska stejna. Vyska "i bez tecky" by tedy mela
odpovidat minuskove dotaznici.

> Skusal som aj \char17 cize j bez bodky ako aj ine accents ako \accent19 cize
> znak \' (napr. \accent20 = znak \v{}, ako aj \accent21 = znak \u{}).
>
> Existuje aj tabulka pre vsetky znaky \accentn, kde n je cislo?
>
Tady bych se jeste vratil ke sve poznamce z jednoho z minulych mailu.
Psal jsem, ze v baliku ygoth maji nektere fonty kodovani LY, nektere
LYG. Pismeno L znamena, ze je to lokalni nestandardni kodovani. Je
tedy videt, ze pismo nebude dobre fungovat ve standardnim prostredi a
nemuzete stejny primitiv \accent pouzit pro libovolny font (tedy
musite pro stejny ucinek pouzit jinou hodnotu). Prave pro tyto ucely
slouzi NFSS2. V LaTeXu se totiz makro \' expanduje ruzne. Nejprve se
hleda, zda je v danem kodovani definovan primo kompozitni znak makrem
\DeclareTextComposite. Pokud neni, hleda se definice
\DeclareTextAccent, ktera expanduje na \accent s odpovidajicim cislem.
Specialni znaky (i bez tecky aod.) jsou definovany pomoci
\DeclareTextSymbol. Kdyz tedy napisete

...
\usepackage[T1]{fontenc}
...
\font\ygoth=ygoth
{\ygoth \v{c}\'{\i}\z{z}ek}

pak makra z NFSS2 zjisti, ze \v{c} je v kodovani T1 dostupne jako
kompozitni znak a pouziji ho, stejne tak dalsi pouzite znaky s
diakritikou. \i ma v T1 take svuj kod. Ve fontu ygoth pravdepodobne na
techto pozicich prislusna pismena nejsou. Pokud si vymyslite napriklad
\'w, pak se vezme carka z mista, kde je v T1 kodovani. Kdyz vynechate
\usepackage[T1]{fontenc}, bude pouzito kodovani OT1, tedy kodovani
sedmibitovych CM fontu. Kompozitni znaky v tomto kodovani nejsou,
takze se vse bude expandovat pomoci primitivu \accent a pouziji se
kody diakritickych znamenek z CM fontu.

Pokud chcete nejakym fontem psat delsi text, je dobre jej zavest
LaTeXovym zpusobem a nesmesovat plain a LaTeX. Pokud opravdu chcete v
casti LaTeXoveho dokumentu pouzivat plainovske konstrukce, musite v te
casti dusledne odstranit vsechny pozustatky LaTeXu a uvest prostredi
do cisteho plainoveho stavu, coz da docela hodne prace.

Tabulky kodovani se daji vycist ze souboru *enc.def a najdete je take
v jiz zminene knize Typograficky system TeX.

> Dakujem Vam vopred za vysvetlenie.
>
> S pozdravom,
>
> Peter Knezel
>
>
> 2012/12/28 Petr Olsak <petr at olsak.net>
>>
>>
>> On Fri, 28 Dec 2012, peter knezel wrote:
>>
>>> Zdravim,
>>>
>>> skusal som generovat tabulky - pomohlo mi to aspon zobrazit vsetky mozne
>>> znaky pre
>>> dany typ pisma.
>>> Pre znaky a,e,o som nasiel 2 rozne varianty (okrem zakladneho znaku bez
>>> accentu) a
>>> to
>>> a) male e nad pismenom
>>> b) dvojbodka nad pismenom
>>>
>>> Znak i som nasiel v zakladnej forme - cize klasicke i - s bodkou nad
>>> zakladnou ako
>>> aj bez bodky na pozicii 00 - tak ako ste vysvetlili.(pozicia 020 pre
>>> ygoth)
>>>
>>> Co sa mi vsak podarilo zistit, ze \yfrak a \yswab dovoluje pouzit
>>> zvacsene pismena
>>> pre á a í, pricom pri pouziti
>>> \ygoth sa mi znaky zuzia - prekryvaju sa a neda sa zistit, ci sa znaky á
>>> a í
>>> zobrazuju spravne.
>>
>>
>> Kdyz se podivate do tabulky fontu ygoth, zjistite, ze na pozici 19 neni
>> akcent ale nejaka specialni ligatura. Zatimco ve fontu yfrak je na pozici 19
>> potrebny akcent. Makro \' pravdepodobne expanduje ve Vasem pripade na
>> \accent19, takze yfrak zpracuje spravne a ygoth nikoli. Tam se prekryva
>> zakladni znak s tou specialni ligaturou, takze vidite na vystupu zmet znaku.
>> Na velikosti fontu pritom nenazlezi.
>>
>>
>>> S pouzitim \accent bohuzial, nemam ziadne skusenosti. Mohli by ste mi
>>> vysvetlit, ako ho pouzivat?
>>
>>
>> Muzete tedy vyzkouset prime pouziti pritivu \accent a kombinovat dva ruzne
>> fonty. Na TeX-primitivni urovni vytvorite slovo KaHira takto:
>>
>> -------------
>>
>> \font\g=ygoth scaled 2000
>> \font\f=yfrak scaled 2000
>>
>> \f K\accent19 aH\accent19 \char16 ra           % yfrak
>>
>> \g K\f\accent19\g aH\f\accent19 \g\char16 ra   % ygoth, accents from yfrak
>>
>> \end
>>
>> -------------
>>
>> Jak vidite, mylil jsem se, kdyz jsem psal, ze bezteckove i je na pozici
>> 00, ve skutecnosti je na pozici 16 (nepozorne jsem se do te tabulky
>> podival).
>>
>> Kdyz si podrobne prohlidnete druhy vysledek, zjistite, ze carka nad
>> bezteckovym i je ulitla prilis nahoru. To je chyba v metrice fontu
>> ygoth, kde je bezteckove i na pozici 16 prilis vysoke (zrejme odvozene
>> chybne z vysky teckoveho i). Chcete-li to spravit, provedte nasledujici:
>>
>> tftopl ygoth.tfm ygoth.pl
>> edit ygoth.pl
>>
>> vyhledejete CHARACTER O 20 (protoze 16 je 20 oktalove) a tam nahradte
>> vysku:  CHARHT R 0.675751  za vysku  CHARHT R 0.472223 (protoze to je vyska
>> maleho pismene a). Ulozte soubor ygoth.pl a provedte
>>
>> pltotf ygoth.pl
>>
>> Tim vznikne v aktualnim adresari metrika ygoth.tfm, ktera ma prednost pred
>> metrikou v TeXové distribuci. Po novem TeXovani mate carku na spravnem
>> miste.
>>
>> Zdravim
>>
>> Petr Olsak
>>
>> PS. Pan Wagner se myli, kdyz pise, ze problem zavisi na velikosti fontu,
>> protoze je metafontovy. Font muzete libovolne zvetsovat, dokud se metafont
>> ,,nezriti``. Navic, mate-li TeXovou distribuci ne starsi deseti let,
>> vyskytuji se v ni soubory yfrak.pfb, ygoth.pfb atd., ktere jsou implicitne
>> pouzity, takze metafont neni vubec pro zvetsovani potreba.
>> Vase velikosti scaled4400 nedelaly na mem pocitaci zadne potize.
>>
>> _______________________________________________
>> csTeX mailing list
>> csTeX at cs.felk.cvut.cz
>> http://lists.felk.cvut.cz/mailman/listinfo/cstex
>>
>
>
> _______________________________________________
> csTeX mailing list
> csTeX at cs.felk.cvut.cz
> http://lists.felk.cvut.cz/mailman/listinfo/cstex
>



-- 
Zdeněk Wagner
http://hroch486.icpf.cas.cz/wagner/
http://icebearsoft.euweb.cz




More information about the csTeX mailing list