MathType Software Development Kit
The MathType SDK is primarily for developers who want to explore the advanced
capabilities of MathType. The SDK also includes documentation
about equation formats and other related information. The MathType SDK is available to developers who:
- want to customize the special commands that MathType installs into
- want documentation for MathType's DLL interface
- want to modify MathType's translators or create their own translators
- want to extend MathType's knowledge of fonts and characters
- want to make their product "equation-friendly" by aligning imported
equations with the baseline of surrounding text
The MathType SDK is available for both Windows and Macintosh and has been updated to the latest releases, 6.9 for Windows, 6.7 for Macintosh.
The SDK is provided "as is", free of charge, and Design Science does not provide
support for the SDK.
The following documentation is supplied with the SDK:
The following Word Templates are supplied with the SDK:
- MathType Commands.dot
- ConvertEquations (Windows version only)
The MathType API allows you to call functions used by the MathType Commands
For Word. On Windows, this API is split between MathPage.WLL and MT6.DLL.
Additional features and settings for MathPage are described in the following
MathPage Batch Processing
MathPage MathML Targets
MathPage Registry Settings
This manual describes how to modify or create new translators for MathType
4.0 or later. It describe the Translator Definition Language (TDL) used to
specify translators and how to make new or modified translators available to
MathType 6 has much more knowledge of the fonts and
characters it works with than did previous versions. This results in improved
formatting, translation into TeX, EPS, and improvements in many other areas.
Most of this additional knowledge is in the form of tables built into the code.
However, it can be external to the program, allowing it to be expanded and
corrected without having to change the application itself. Also, more
sophisticated users can customize MathType and we (or they) can then make the
results available to other users. This document will show you how to make
MathType aware of your fonts and the characters they contain.
MathType's knowledge of fonts and characters is built around the concept of
character encoding (also called character set). An encoding is simply a mapping
from a set of integers to characters. For example, ASCII is an encoding with
around 200 characters each assigned an integer between 0 and 255. Unicode is
another encoding with thousands of characters, covering all the languages of the
world, each assigned a number between 0 and 65,535.
MathType represents characters internally using the MTCode encoding. MTCode
is a superset of the Unicode encoding that uses Unicode's Private Use Area to
represent mathematical characters that are not part of Unicode proper. MathType
also assigns an encoding to each mathematical font it makes use of. Using a
font's encoding, MathType knows the identity of every character in the font. It
uses this information in many ways: to calculate spacing between characters and
to translate to TeX and MathML, for example.
To view MathType's encoding tables, see the following pages on our website
(not included in SDK due to large number of GIFs):
MTEF is MathType's binary equation format. MTEF is embedded in OLE equation
objects produced by MathType, as well as in all the file formats in which
MathType can save equations.
MTEF is Stored in Files and Objects
MTEF v.3 (Equation Editor 3.x)
MTEF v.4 (MathType 3.5)
MTEF v.5 (MathType 4.0)
MathType 6 introduced a new convention for embedding data in WMF's; dubbed
"Application-specific Metafile Comment Convention", it is used by MathType 6 to
embed both MTEF and MathML.
Although MTEF is not the most friendly medium for defining equations, there
have been so many requests for this information, we decided to publish it
anyway. We must warn the reader that it is not an easy format to understand and,
more importantly, MathType is not at all forgiving in its processing of it. This
means that if you send MathType MTEF with errors, it might crash. At a minimum,
you will get an equation with formatting problems. Also, it is a binary format.
This means that you can't use character strings to represent equations and it
makes creating MTEF a little harder with programming languages like Visual
MathML is the standard XML encoding for mathematical notation. MathType now embeds MathML markup in equation image files. It also makes MathML data available on the clipboard, when an equation object is cut or copied to the clipboard.
MathType and Equation Editor equation objects and files contain information
that word processing, page layout, and other programs can use to automatically
align the baseline of in-line equation objects with their surrounding text. The
following notices will provide you with the information needed to extract this
Extracting Baseline Info from Macintosh PICT Data
Extracting Baseline Info from EPS Files
Extracting Baseline Info from WMF Data
Extracting Baseline Info from GIF Image Files
EGO (Edit Graphic Object) is a Macintosh protocol that employs AppleEvents to
implement editing of graphical objects (e.g. equations) embedded in an
application's documents. It is similar to the object embedding features of
Microsoft's OLE but EGO is much simpler to implement and more broadly supported
among Macintosh applications.
Specification gives a Macintosh programmer the information needed to add EGO
support to their application. It also contains details regarding the EGO support
in MathType and Equation Editor.
The MathType SDK License Agreement covers the use of the SDK on your
computer. It will be presented to you during the installation of the SDK and you
must agree to it to allow the installation to continue.
The MathType SDK Derivative Works Distribution License Agreement describes
the rights and restrictions associated with software you may create using the
Download the MathType Software Development Kit
Before you download the SDK, please complete this form. Your Personal Information Is Protected.
We will not share or sell your information at any time for any reason
whatsoever. View our Privacy
Once you have entered your information, click the Download button for the
appropriate platform. This will start
downloading the SDK, which is around 6MB in size. Please make a note of the folder where you download the SDK.
When the download has finished, either open the SDK if your browser offers you this option,
or open your download folder and run the downloaded file to install the SDK.