AFM2TFM - Funguje ci nefunguje?

Cejka Rudolf xcejka00 at dcse.fee.vutbr.cz
Wed Jun 18 21:57:09 CEST 1997


Zdravim vsechny nadsene TeXisty a mam {\em dotaz} na to,
zda nikomu nevadi, jak pracuje program afm2tfm. Abych to upresnil,
tak zde popisu, jak afm2tfm "pocita" vysku znaku CHAR, i kdyz je
primo uvedena v metrice:

    * Je-li parametr fontu XHeight nesmyslny (tj. XHeight <= 50) nebo
      nazev znaku CHAR je delsi nez jedno pismeno, vyska je urcena jako
      CHAR.Height.
    * Pro jednopismenny nazev znaku se hleda, zda ve fontu existuje
      AKCENT (hleda se jen ze ctyr moznosti "acute", "tilde", "caron"
      nebo "dieresis") a zaroven verze znaku CHAR s timto akcentem AKCENT
      (oznacme si jej napriklad jako CHARAKCENT).
    * Jsou-li znaky AKCENT a CHARAKCENT nalezeny, pak pro prvni nalezenou
      dvojici je vyska znaku CHAR spocitana jako
      (CHARAKCENT.Height - AKCENT.Height + XHeight).
    * Neni-li zadna vhodna dvojice znaku AKCENT a CHARAKCENT nalezena,
      vyska znaku je urcena jako v prvnim pripade, tj. CHAR.Height.

Pokud to bylo moc nesrozumitelne, tak zde je priklad: Pro znak "A" (CHAR) je
nalezen prvni akcent "acute" (AKCENT) a akcentovy znak "Aacute" (CHARAKCENT)
a vyska znaku "A" je tudiz spocitana jako
(Aacute.Height - acute.Height + XHeight).

Dival jsem se na vysledne vysky a zdaji se byt rozhazene jen trochu.
Pouze pismena "d" a "t" maji vysky dost podstatne snizeny (\v{d} a \v{t}
s akcenty proklate nizko....). Podle meho nazoru je sice hezke, ze se
pamatuje na akcenty i u pismen bez akcentu, ale netusim k cemu je to dobre.
Spis mi to vadi, kdyz chci urcit skutecnou velikost vysazeneho textu,
a mam tudiz pocit, ze kdyz uz to tam autori chteji mit (pro koho?), tak by
alespon bylo dobre pridat parametr, ktery by tuto "inteligentni" vymozenost
mohl vypnout. Kdysi (pred rokem az dvema) jsem o tom psal panu Rokickimu,
ale bez jakekoli odezvy. Planuji tedy o tom informovat K. Berryho, ale nevim,
jaky nazor na tuto zalezitost ma blizke (tedy ceske a slovenske) okoli.

Zdravi
  Rudolf Cejka (xcejka00 at stud.fee.vutbr.cz)


PS.: Kdyby to nekomu vadilo uz ted a chtel se one vymozenosti zbavit,
staci v adresari texk-7.0/dvipsk provest nasledujici prikaz:
==========================================================
patch <<END
--- afm2tfm.c
***************
*** 1164,1170 ****
  {
     register char **p;
     register struct adobeinfo *aci, *acci ;
!    if (xheight <= 50 || *(ai->adobename + 1)) return (ai->ury) ;
                                             /* that was the simple case */
     for (p=accents; *p; p++)  /* otherwise we look for accented letters */
        if (0 != (aci=findadobe(*p))) {
--- 1164,1170 ----
  {
     register char **p;
     register struct adobeinfo *aci, *acci ;
!    /* if (xheight <= 50 || *(ai->adobename + 1)) */ return (ai->ury) ;
                                             /* that was the simple case */
     for (p=accents; *p; p++)  /* otherwise we look for accented letters */
        if (0 != (aci=findadobe(*p))) {
END
==========================================================





More information about the csTeX mailing list