Integre Technical Publishing Co., Inc. Integre Technical Publishing Co. 
   
   
  MathEX Release Notes
Download

The Integre MathEX Equation Editor for Java is delivered as a compressed zip file, and does not employ a separate installation program. The zip file for this release of MathEX contains these Release Notes, a single Java archive file mathex.jar, an example Java Policy file mathex.policy, Java API Documentation for the MathEX Java applet, XSL style sheets that may be used with MathEX web content, and HTML examples demonstrating various elementary uses of the MathEX Java applet.

The Integre MathEX Equation Editor consists of two components, both implemented in Java: a Java renderer component that is responsible for the composition and layout of presentation MathML markup, and a Java editor component that manages the incremental elaboration and editing of content MathML markup.

This version of MathEX has been tested on Windows, Linux, and Macintosh platforms.

Installation

Although MathEX itself does not employ an installation program, both the client browser and the Java Plugin employ their own installation programs that may affect the use of MathEX.

MathEX is supported in any browser that supports the Java Plugin, either versions 1.4 or 1.5. Such browsers include Internet Explorer 6, Netscape 6 and above, Mozilla 1.4 and above, Firefox 1.0, and Safari 1.2 and above.

The installation programs for many browsers will attempt to autodetect the version of the JRE that is installed on your machine. Similarly, the installation programs for recent versions of the JRE will attempt to autodetect the versions of the browsers installed on your machine.

In many cases installing JDK 1.4 and a recent browser is sufficient to run MathEX in that browser. Some platforms require a bit more help with specific browser/JDK combinations. Some items typically handled by the installation programs, but which are useful to verify, are described below.

  • For all recent browsers on the Windows platform, ensure that the Java Plugin is enabled for your browser using the Java Plugin Control Panel, and that the Java Plugin is enabled in the browser options pages.

  • To enable applet support for the Firefox/Mozilla/Netscape browsers on Windows, verify that the installation programs have copied the file NPOJI610.dll into the browser plugin directory.

  • To enable applet support for the Firefox/Mozilla/Netscape browsers on Linux, you will need to create a symbolic link to the Java Plugin shared object from the browser plugins directory. Different browser versions require different versions of the shared object file; please refer to the browser documentation for details.

  • To enable applet support for the Firefox/Mozilla/Netscape browsers on Mac OS/X, you will need to install the latest version of the Java Embedding Plugin for Mac OS X.

Documentation

Please refer to the Users Guide for the MathML Equation Editor for information about MathEX, including basic use of the editor, more advanced examples on the configuration customization framework, scripting examples demonstrating the use of the component edition of the editor, and detailed reference information on the operation of the editor. Virtually all of the information contained in the Users Guide as describing the MathML Equation Editor applies directly to the Java implementation of MathEX.

Customization

The configuration customization framework of the MathML Equation Editor described in the Users Guide is identical to the configuration customization framework for MathEX. Binary configuration files (.zc) created for one product are byte-for-byte compatible with files created for the other, and may be used interchangably.

Scripting

The Java applet edition of MathEX provides an extensive API for invoking the configuration customization capabilities described in the Users Guide for the MathML Equation Editor. The capabilities of the applet API are a strict superset of the scripting API provided by the ActiveX component edition. However, many method names have been renamed or refactored for compatibility with the Java applet context. Please refer to the Users Guide for a conceptual description of the capabilities of the Scripting API, and see the API documentation for exact method names and parameter lists. Each of the scripting examples described in the Users Guide as using the ActiveX component edition should have an analogous implementation using the MathEX Java applet.

Java Archive File—mathex.jar

This release of MathEX is provided as the single Java archive file mathex.jar. When using the applet edition of the editor within a web page, the mathex.jar file must be referenced by the applet tag using the codebase, archive, and code attributes of the applet tag.

<applet width="300" height="100"
    codebase="." archive="mathex.jar"
    code="com.integretechpub.mathex.editor.applet.MathEXApplet">

The MathEX jar file includes a Java manifest that allows the jar file to run the application edition of the editor by launching the jar as if it were a stand-alone executable. The application edition may be launched from a command-line using java -jar mathex.jar.

Java Policy File—mathex.policy

This release of MathEX is provided as a unsigned applet for convenience of delivery. Those features of the editor that rely on additional permissions are enabled or disabled based on the Java security policy file on the client machine. See the file mathex.policy for examples of the policy permissions used by the equation editor. These permissions may be placed in the user's .java.policy file on the client machine. See the Java Platform documentation for details.

MathEX License Key

The MathEX license key entitles one individual to author and publish documents containing math markup to a particular community of users, depending on the license type. An intranet license allows you to publish content from your web site that may be viewed either from your local machine, or from other machines on the same internet subnet as your machine. An academic or professional license allows you to publish content from your web site that anyone may read. The license key you received when you purchased MathEX must appear as the value of the license parameter of the applet tag in the pages you publish.

<applet width="300" height="100"
    codebase="." archive="mathex.jar"
    code="com.integretechpub.mathex.editor.applet.MathEXApplet">
  <param name="license"
    value="302c0214618cc10922a8492c9ac505ff80ee226614160e150 ..." />

Since the license key is tied to the internet domain of the page being viewed, the license key also protects your content from being viewed from someone else's web site, unless that web site has also purchased a MathEX license.

MathEX License File—xsl/license.xsl

For the convenience of those publishing a collection of pages containing math markup, an XSLT stylesheet has been provided that incorporates the license key as part of the transformation process. In addition, the stylesheet allows inline math markup to be embedded within HTML markup in a seamless fashion. The top-level stylesheet file xsl/mathml.xsl must be referenced by the HTML page containing the inline markup. It includes the file xsl/license.xsl which can be customized to include the license key you received when you purchased MathEX.

<?xml-stylesheet type="text/xsl" href="mathml.xsl"?>
<html xmlns="http://www.w3.org/1999/xhtml">
...
  <math xmlns="http://www.w3.org/1998/Math/MathML"
	codebase=".">

The example license file xsl/license.xsl contains an example license demonstrating the format of the license file, and the additional parameters that may be supplied.

Editing Issues

MathEX supports all of the content elements from the MathML 2.0 Recommendation, Second Edition, and all of the MathML presentation elements needed to display them, subject to the capabilities of the underlying rendering support. The MathML Reference section of the Users Guide provides detailed instructions that may be used to create any of the standard MathML content elements.

Any outstanding editor issues in the Java implementation of MathEX should involve one of the following areas:

Custom applet methods

The custom COM interface provided by the C++/ActiveX control has been ported to a functionally equivalent collection of public methods provided by the editor applet. This interface will ultimately be redesigned and extended to meet requirements not anticipated by the original C++/ActiveX version.

Focus change tracking

The AWT Focus Subsystem does not provide precise feedback on the opposite component when reporting to a component that it has gained or lost the focus. As a result, the focus handling algorithms used in the C++/ActiveX version of the editor have not yet been fully optimized for interacting with the information provided by the AWT focus events.

Drag and drop support

Drag and drop support is not yet supported in this version. Drag and drop support will be available in a future release.

Saving user preferences

The C++/ActiveX version of the editor uses the Windows registry to save user preferences that are persistent across editing sessions. MathEX supports similar configuration options using Java properties files, but does not yet support changing and saving these options as an updated property file.

Rendering Issues

Outstanding rendering issues in the Java implementation of MathEX should involve one of the following areas:

Entity support

The MathML recommendation defines over 2000 named character entities. A few entries from these tables have been implemented in this version, but substantial updating and implementation of these entity tables remains to be completed.

Font support

The MathML recommendation defines a multi-dimensional font selection model that allows a font to be selected by giving its font family, font size, font shape (normal or italic) and font series (normal or bold). While the basic support for this font model has been implemented in MathEX, exact mappings to the fonts and font metrics provided by the Java font support remain to be extensively tested in this version.

Table elements

The techexplorer renderer implements complete algorithms for table layout for both LaTeX and MathML tables. These algorithms have been substantially ported to the Java implementation of MathEX, but comprehensive testing of the table layout algorithms remains to be completed.

Stretchable operators

The MathML specification provides for operators that stretch to fit the extent of neighboring elements. Support for stretchable operators requires extensive font support, as well as the implementation of the layout algorithms for stretchable operators. These algorithms remain to be ported from the techexplorer renderer.

Miscellaneous elements

A few additional elements remain to be implemented, including <mglyph>, <menclose>, <maction>.

The implementation of these features is in progress and is planned for a future release.

Permissions

The MathEX Java applet is distributed as an unsigned applet in an attempt to simplify the end user experience. However, certain features of the applet require permissions beyond the set of capabilities normally granted to unsigned applets. The following permissions, when granted in the user's .java.policy file, will enhance the capabilities of the applet edition of the editor:

  • The warning banner displayed when a Java applet creates a dialog window may be suppressed by giving permission to do so.

  • Using the clipboard for cut/copy/paste operations requires the applet be given permission to access the clipboard.

  • Customizing the user.home property on the Java Plugin command line requires permission to read the javaplugin.jre.params property.

  • Reading and writing files on the local machine requires permission to read the user.dir property, and permission to navigate the filesystem.

  • Reading the user properties file on the local machine requires permission to read the user.home property, and permission to read the filesystem where the user properties file is located.

  • Using the file chooser dialogs requires permission to modify running threads due to a bug in the Java platform.

  • Using the Crimson XML parser from some versions of JDK 1.4.1 requires permission to read the "entityExpansionLimit" and "disallowDoctypeDecl" system properties, due to a bug in these versions of the Java platform. If these permissions are needed, and are not present, the editor will respond with a user dialog suggesting that they may either supply the permissions, or upgrade their version of the JDK.

Granting the appropriate permissions as described above enables corresponding capabilities in the editor. If the editor finds these permissions have not been granted, it will simply disable those features that require them.

An example policy file is included in the MathEX distribution that illustrates the exact syntax for each of the permissions described above.

Click here for information on our privacy policy.
Copyright © 2005 Integre Technical Publishing Co., Inc.