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.
|