TSFontTable.mesa
Definition of font metric table format for the Tioga Typesetter
Last changed by Michael Plass, November 2, 1982 10:06 am
These formats echo the Tfm formats, but with everything converted to an internal representation.
DIRECTORY TSTypes, Tfm, Rope;
TSFontTable: CEDAR 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.
Michael Plass, November 2, 1982 10:06 am. CEDARized.