-- TSFontTable.mesa -- Definition of font metric table format for the Tioga Typesetter -- Last changed by Michael Plass, May 27, 1982 9:33 am -- These formats echo the Tfm formats, but with everything converted to an internal representation. DIRECTORY TSTypes, Tfm, Rope; TSFontTable: 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: TSTypes.Dimn, face: Byte]; FInfoTable: TYPE = REF FInfoTableRec; FInfoTableRec: TYPE = RECORD [entry: SEQUENCE length:NAT OF FInfoEntry]; FInfoTag: TYPE = Tfm.FInfoTag; FInfoEntry: TYPE = Tfm.FInfoEntry; -- The LigKern table contains instructions for a simple machine that decides how to treat special letter pairs. 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; -- Tioga does not use extensible characters yet. 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.