DIRECTORY Tfm, Rope; TfmReader: DEFINITIONS = BEGIN Byte: TYPE = [0..377B]; MetricTable: TYPE = REF MetricTableRec; MetricTableRec: TYPE = RECORD [ entry: SEQUENCE length:NAT OF REAL ]; Ref: TYPE = REF Record; Record: TYPE = RECORD [ name: Rope.ROPE, -- name of the Tfm file headerInfo: HeaderInfo, -- information from the header bc: CHAR, -- first character code in font ec: CHAR, -- last character code in font fInfoTable: FInfoTable, widthTable: MetricTable, heightTable: MetricTable, depthTable: MetricTable, charIcTable: MetricTable, ligKernProgram: LigKernProgram, kernTable: MetricTable, extTable: ExtTable, parameters: ParamTable ]; HeaderInfo: TYPE = REF HeaderInfoRec; HeaderInfoRec: TYPE = RECORD [ checkSum: Tfm.Word, -- identifies the version of the font characterCodingScheme: Rope.ROPE, family: Rope.ROPE, designSize: REAL, -- In printer's points (72.27 per inch) face: Byte ]; FInfoTable: TYPE = REF FInfoTableRec; FInfoTableRec: TYPE = RECORD [ entry: SEQUENCE length:NAT OF FInfoEntry ]; FInfoTag: TYPE = Tfm.FInfoTag; FInfoEntry: TYPE = Tfm.FInfoEntry; LigKernProgram: TYPE = REF LigKernProgramRec; LigKernProgramRec: TYPE = RECORD [ step: SEQUENCE length:NAT OF LigKernStep ]; LigOrKern: TYPE = Tfm.LigOrKern; LigKernStep: TYPE = Tfm.LigKernEntry; ExtTable: TYPE = REF ExtTableRec; ExtTableRec: TYPE; -- Extensible characters are not supported. ParamTable: TYPE = REF ParamTableRec; ParamTableRec: TYPE = RECORD [ slantNum, slantDenom: LONG INTEGER, entry: SEQUENCE length:Tfm.ParamIndex OF REAL ]; Load: PROCEDURE [name: Rope.ROPE] RETURNS [Ref]; END. Michael Plass, October 21, 1982 11:17 am. Renamed from TSFontTable. DTfmReader.mesa Definition of font metric table format Last changed by Michael Plass, October 21, 1982 11:16 am These formats echo the Tfm formats, but with everything converted to an internal representation. The LigKern table contains instructions for a simple machine that decides how to treat special letter pairs. ΚΕ– "Mesa" style˜J˜JšΟc™Jš&™&Jš8™8J˜Jš`™`J˜JšΟk œ ˜Jšœ ž œ˜Jšž˜J˜Jšœžœ ˜J˜Jšœ žœžœ˜'šœžœžœ˜Jšœžœžœžœž˜"Jšœ˜J˜—Jšœžœžœ˜šœžœžœ˜Jšœ žœ˜(Jšœ˜6Jšœžœ˜)Jšœžœ˜(J˜J˜J˜J˜J˜J˜J˜J˜J˜J˜J˜—Jšœ žœžœ˜%šœžœžœ˜Jšœ%˜9Jšœžœ˜!Jšœ žœ˜Jšœ žœ)˜9J˜ J˜J˜—Jšœ žœžœ˜%šœžœžœ˜Jšœžœžœžœ ˜(Jšœ˜J˜—Jšœ žœ˜J˜Jšœ žœ˜"J˜Jšl™lJ˜Jšœžœžœ˜-šœžœžœ˜"Jšœžœžœžœ ˜(Jšœ˜J˜—Jšœ žœ˜ J˜Jšœ žœ˜%J˜Jšœ žœžœ ˜!Jšœ žœ+˜>J˜Jšœ žœžœ˜%šœžœžœ˜Jšœžœžœ˜#Jšœžœžœž˜-Jšœ˜J˜—JšΟnœž œ žœžœ˜0J˜Jšžœ˜J˜CJ˜—…—€ ‰