MathType 5 SDK
Extracting Baseline Info from a Windows Metafile

Last Update: October 12, 1995

Products: MathType & Equation Editor for Windows

MathType and Equation Editor inserts data describing the distance in points from the bottom of the frame rectangle to the baseline of the equation. For example:

This information can be made use of by word processors and similar applications to ensure proper alignment of the equation baseline with that of a text line in which it is pasted. As of this writing,  Many Windows applications currently support this capability (Microsoft Word & Works, PageMaker, to name a few).

The baseline data is embedded in the metafile as a MFCOMMENT printer escape (using the Escape function described in the Windows SDK). The baseline comment contains the following 12 bytes of data expressed as a C struct:

typedef struct {
    char    signature[8];    // “MathType” (no terminating null character)
    WORD    type;            // MathType’s comment type (0)
    WORD    baseline_delta;  // in 1/16ths of a point (actually whole points)
} MTCommentRec;

When attempting to recognize a baseline comment, it is important to make sure the comment type is zero. Although the baseline comment is the only metafile comment currently generated by MathType/Equation Editor, this may not always be the case.

Applications that support baseline positioning can process all objects at import/editing time by either scanning the metafile as described above or, if the object is an OLE object (Microsoft’s Object Linking and Embedding technology), performance may be increased by checking first to see if the object is a MathType/Equation Editor equation object. The proper way to do this is to check the object’s ProgId character string. All OLE 1.0 equations produced by MathType and Equation Editor have a ProgId of “equation”. All OLE 2.0 equations have a ProgId that begins with “equation.” followed by an arbitrary string that uniquely determines which version of MathType/Equation Editor owns the object. For example, Equation Editor 2.0’s ProgId is “Equation.2”. Code that checks ProgIds should do case-insensitive tests.

See Design Science SDK document Setting EPS Baselines (all platforms) for information on baseline positioning for Encapsulated PostScript files produced by MathType/Equation Editor, and Setting PICT Baselines (Macintosh) for baseline info in Macintosh PICTs.

See also:

Extracting Baseline Info from EPS Files
Extracting Baseline Info from Macintosh PICT Data
Extracting Baseline Info from GIF Image Files

Copyright ©2000-2002 by Design Science, Inc. All rights reserved.