Korektni TFM soubory

Petr Olsak olsak at math.feld.cvut.cz
Fri Jan 10 08:52:59 CET 1997



On Wed, 8 Jan 1997, Jan Pazdziora wrote:

>
> Dobry den.
>
> V dokumentaci TFtoPL se pravi, ze po uvodnich 24 bajtech souboru se
> v TFM nachazi hlavicka, kde sedmnacty ctyrbajt ma byt:
>
> 	seven_bit_safe_flag
> 	ignored
> 	ignored
> 	face
>
> Testoval jsem cmr10.tfm a podobne, take cmsy10.tfm i dcr10.tfm,
> s jedinym vysledkem: seven_bit_safe_flag je vzdy nastaven na nulu
> (i u tech cm fontu), face je vzdy nastavena na 234, i u napriklad
> cmbx10. Pritom v te dokumentaci je napsano, ze hodnota face je
> 0 nebo 6 nebo 12 + 0 nebo 2 nebo 4 + 0 nebo 1, coz jsou postupne
> hodnoty expansion, weight, slope a ze tyto hodnoty jsou relevantni
> pro hodnotu face < 18.
>
> Takze muj dotaz je: fakt, ze v TFM souborech tyto hodnoty (seven_bit...
> a face) nemaji pouzitelne hodnoty je vlastnost, nebo chyba? Resp., co
> znamena ta magicka hodnota 234?
>
> Diky za odpoved.

Zrejme vite, ze nulty a prvni ctyrbajt hlavicky v tfm je cten TeXem
(kontrolni soucet a design_size) a ostatni ctyrbajty hlavicky jsou
ignorovany (vcetne zmineneho sedmnacteho). Napriklad v METAFONTu je
"natvrdo" naprogramovano vytvoreni hodnot nulteho a prvniho ctyrbajtu,
zatimco ostatni ctyrbajty muze zaplnit uzivatel prostrednictvim primitivu
headerbyte a je ciste na nem, co tam da -- na provoz TeXu to nema vliv.

V MFbooku na strane 320--321 je zminka o tom, ze existuje (existoval?)
nejaky standard od Xeroxu, podle nehoz se zaplni 2. az 11. ctyrbajt
textem a 12. az 16. ctyrbajt fontovym identifikatorem. Dale je tam zminka
o poslednim bajtu posledniho 17. ctyrbajtu, ale JINA, nez v dokumentaci
k tftopl. Knuth tam pise, ze tento bajt obsahuje zakodovanou informaci o
design_size. Jak zakodovanou, se docteme v nasledujicim kodu:

  254 - round 2designsize

coz pro designsize=10 skutecne vychazi onech magickych 234.

Tento kod je pritomen v souborech local.mf nebo modes.mf, kde jsou
mimo jine definice pro ruzna vystupni zarizeni. Vyhledejte si v tomto
souboru vyskyty primitivu "headerbyte" a pripadne makra font_face_byte.
V MF zdrojich fontu CM ani v plain.mf ci cmbase.mf se s primitivem
headerbyte nepracuje. Pouze zprostredkovane se ukladaji informace do
promenne font_identifier a font_coding_scheme a je na souboru local.mf
(modes.mf), jak s temito informacemi nalozi.

Vidime, ze v teto veci je Knuth velmi benevolentni, protoze principialne
na kazde instalaci TeXu muze byt jiny local.mf a tim se bude hlavicka v
TFM plnit jinak a tim budou binarky TFM odlisne. Odlisnost ale nijak
neovlivni beh TeXu.

Vidime tez, ze jak sel cas, Knuth menil texty v dokumentacich. Zrejme
nejprve MFbook a tex.web a pozdeji tftopl.web, kde je kus dokumentace
zcela prekopirovan z tex.web, ovsem o "nepodstatnych ctyrbajtech" je
pridana nova informace.

Petr Olsak

Pouzita literatura: Volume B, C, D, E of Computer & Typesetting a tftopl.web.





More information about the csTeX mailing list