Pripominky k cspsfonts2 a k novym CS-fontum

David Jez dave.jez at seznam.cz
Mon Nov 22 13:16:09 CET 2004


  Dobre rano,

  reaguji na dalsi body, ktere jsem uz v patek vecer nezminil

> 1. TeXovske metriky pro pismo Nimbus Mono alias Courier maji daleko
> k tomu, aby mohly byt pouzivany jako skutecne neproporcionalni pismo
> (strojopis). Duvody rozepisu do tri bodu. Zaprve je to pritomnost
> kerningu a pak take rady zbytecnych ci nevhodnych ligatur. Ve shode
> s pismem cstt10 by zde mely byt pouze dve ligatury: spanelsky otaznik
> a vykricnik; srovnej vsak bod 6. Na konci souboru xt2.enc by tedy mely
> byt pouze tyto komentarove radky tykajici se kerningu a ligatur:
> % LIGKERN * {} * ;
> % LIGKERN question quoteleft =: questiondown ;
> % LIGKERN exclam quoteleft =: exclamdown ;
> 
> 6. Knuth v CM-fontech navrhl, ze spanelsky otaznik a vykricnik se
> budou realizovat jako ligatura ?`, resp. !`. Tato myslenka byla
> prevzata i do CS-fontu. Dosti dobre proto nechapu, proc v pocestenych
> metrikach PostScriptovych fontu tyto ligatury nejsou. Jako jediny
> nepresvedcivy duvod mi napada, ze by to mohlo byt proto, aby
> nedochazelo k neprijemnostem pri pouziti obraceneho apostrofu jako
> ceske jednoduche koncove uvozovky. Mozna ze by bylo vhodne, aby byly
> do metrik v cspsfonts2 zarazeny ceske jednoduche uvozovky (fonty od
> URW obsahuji nevyuzitou quotesinglebase). Vhodnymi kandidaty jsou
> pozice 240 a 241, nebot ve zdrojovem kodu CS-fontu (soubor cscode.mf)
> cteme:
> single_opening_quote:=240;
> single_closing_quote:=241;
> 
> 5. Proč metriky z cspsfonts2 musejí obsahovat znaky, ktere tam vubec
> neptari? --- Srovnej Manual k CSTeXu. Je to znacne nestandardni
> a zrejme pro 99 procent CSTeXistu je to zbytecny balast.
  Pri vytvareni metrik k pismum v kodovani 8u (Nimbus Mono L) jsem pouzil
tabulku xt2.enc. Ta obsahuje ligatury pro uvozovky; neobsahuje jako
ligaturu spanelsky otaznik a vykricnik a muze obsahovat ,,balast`` - tot
fakt. Nicmene je praci kolegy Sojky, pochazejici tusim z roku 1995 (?)
a predpokladam, ze pro potreby CSTeXu vyhovovala a ze nevznikla jen tak
nahodou. Necitim se tedy jako clovek, ktery je povolany ji menit.
  Tento bod si urcite zasluhuje hlubsi diskuzi a vyjadreni Petra Sojky.
  Ad kerning: u neproporcionalniho pisma je samozrejme nevhodny, jenze
jak spravne rikas, problem je jinde. URW si obecne o pismu Nimbus Mono
vubec nemysli, ze by mohlo byt neproporcionalni. Plati to jak u Type1
verzich, tak o TrueType verzich. Pismo je pokazde oznacene jako
proporcionalni - nemyslim si sice, ze by lidem z URW preskocilo
v bedynkach par kolecek, ale nevim co tim sledovali.

> 2. Druhym nedostatkem dodanych metrik pro pismo Nimbus Mono alias
> Courier jsou naprosto nevhodne hodnoty fontdimen 3, 4, 7, tj. STRETCH,
> SHRINK a EXTRASPACE. Zde je na vine pismolijna URW, nebot
> v prislusnych souborech afm uvadi "IsFixedPitch false", ackoli vsechny
> znaky s jedinou vyjimkou, o niz se zminim v bode 3, maji stejnou
> sirku. Na zaklade informace "IsFixedPitch false" program afm2tfm vlozi
> do vyslednych TeXovskych metrik hodnoty roztazeni, stazeni
> a extramezery, jake jsou vhodne pro proporcionalni pismo.
> 
> 3. V pismu ucrbo (tj. Nimbus Mono v tucnem sklonenem rezu) ma pismeno
> \v{d} sirku 7.4pt, zatimco vsechny ostatni znaky jsou siroke 6pt.
> Onehda jsem tento problem resil prostrednictvim virtualniho fontu:
> nejdrive vysadit tento znak a potom vratit aktualni bod sazby o rozdil
> skutecna sirka (7.4pt) minus pozadovana sirka (6pt). Zaroven by bylo
> vhodne o stejnou hodnotu zvetsit italickou korekci. Pri tomto reseni
> bude sice hacek vycnivat napravo z boxu ohranicujiciho pismeno \v{d},
> nicmene vzhled sazby nebude narusen, ponevadz hacek se vejde do mezery
> mezi pismenem "d" a nasledujicim pismenem, a dokonce i slova jako
> treba "lo\v{d}ka" vypadaji dobre.
  Otazkou tedy zustava, jak z toho ven. Chtel jsem do pisem co nejmene
zasahovat, proto jsem to zatim nechal byt jako otazku do budoucna, abych
nebyl porad jen Viktor cistic :=) protoze jedina solidni moznost je
dostatecne znasilnit afm soubory: zrusit kerning, nastavit pevnou sirku
a upravit sirku znaku dcaron: blbe je, ze nelze nastavit predsazeni
znaku na urovni metrik, ale az v .pfb souboru. Reseni s vracenim az po
vysazeni znaku se mi nezda, mam zkusenost s tim ze hacek pri sirce 600
vzdy ujede. Spise by bylo zapotrebi vratit bod sazby o 140 pred sazenim
znaku dcaron. Ale tak jako tak to nebude uplne idealni, dcaron tam dela
brajgl vzdycky. Je proste moc siroky, budto bude vycnivat napravo nebo
nalevo. Muj nazor je, ze nalevo to bude zavazet min.
  Nahodou sleva se i adobacky courier. A clovek si vice vsimne, ze se
tlucou pisma nez ze se nenapadne z neproporcionalniho pisma stalo
proporcionalni, proto jsem nechal dcaron sirsi. Vubec toto je otazka,
jak to resit. V principu vysledek bude vypadat blbe vzdy, bud se smichaji
znaky nebo text ujede a osobne jsem radeji pro ujeti. A jen tak mimochodem,
at delas co delas, dcaron a k bez kurzivy se do sebe sliji vzdy. I se
sirkou 740... A jak jsem rikal, sleva se i adobacky courier, staci
si to vyzkouset.
  Jinak jen tak mimochodem, prave kvuli metrikam jsem zvazoval jeste
jednu verzi cspsfonts: opet a2ac verze pomoci virtualnich fontu, ale
vytvorena z novejsich metrik od Adobe, ktere obsahuji i ceske znaky.
Obrovska vyhoda by byla, ze by nebyly rozdilne metriky. Navic pisma od
URW jsou uzsi takze i nahrada by probehla bez problemu. Nicmene jsem
a) nechtel tristit uz tak vzniklou schizofrenii verzi b) jsem chtel
vyuzit plne potencialu pisem od URW, pouzit jejich metriku a jejich
kerning.

> 4. Pokud podrobne prostudujete TeXovske metriky z balicku cspsfonts2
> (totez plati i o puvodnim cspsfonts), zjistite, ze pismena "i", "d"
> a "t" maji uvedenu mnohem mensi vysku, nez by ve skutecnosti
> odpovidalo jejich kresbe. (Zkuste si treba v pokusnem TeXovskem
> dokumentu tato pismena jednotlive oramovat.) Je to zpusobeno "hloupou
> inteligenci" programu afm2tfm, na kterou upozornil Petr Olsak ve svem
> clanku "Jak TeX k fontum ze Stresovic prisel". V cem tato "hloupa
> inteligence" spociva? Vyska neakcentovaneho znaku je v pripade, ze
> existustuje tentyz znak s akcentem, pocitana podle vzorce: vyska znaku
> s akcentem minus vyska akcentu plus xheight. Doporucoval bych proto
> vytvorit metriky pomoci afm2tfm, kde bude tato "hloupa inteligence"
> odstranena --- staci jediny drobny zasah do zdrojoveho kodu.
  Vynikajici postreh, diky za upozorneni. Priznavam se, ze me to uplne
uniklo. Soustredil jsem se akorat na sirku znaku lcaron tcaron apod. pomoci
a2ac aby nevylitla a na vysku uz jsem zapomel.

  Abych si to tedy zesumarizoval:
- Metriky vsech pisem predelat pomoci opraveneho afm2tfm a zminit se o tom
  v src a readme pro dalsi generace ktere si s tim budou hrat
- Vsechny fonty az na Nimbus Mono jsou v poradku, Nimbus tedy znasilnit:
  - zrusit kerning
  - nastavit IsFixedPitch
  - upravit znak dcaron (?)
- Otazka do plena - menit tabulky xl2.enc a xt2.enc ci nemenit?

  Souhasis se mnou, zapomel jsem na neco nebo te jeste neco napada?

> S pozdravem
> 
> Petr Brezina
  S pranim pekneho dne,
-- 
-------------------------------------------------------
  David "Dave" Jez                Brno, CZ, Europe
 E-mail: dave.jez at seznam.cz
PGP key: finger xjezda00 at eva.fit.vutbr.cz
---------=[ ~EOF ]=------------------------------------




More information about the csTeX mailing list