JEuclid Extensions to MathML

JEuclid Provides some extensions to MathML. These extensions allow you to control the rendering in more detail than allowed by the MathML specification.

The extensions use a special JEuclid namespace, and should therefore just be ignored by other MathML renderers.

Specifying rendering parameters (3.1.2+)

You can add additional attributes to the <math> element to specify JEuclid layout parameters. The attribute names are the same as given in the command line tool, prefixed with the namespace. Example:

Command line argument fontSize becomes:

<math xmlns="" 

Check the command line tool for a list of possible parameters and their values.

Note: Rendering attributes given for the math attribute can not be overwritten by the external context. This means that if one of these attributes is set, it will always overwrite the settings in the MathViewer.

Note: Please note: In JEuclid versions 3.1.2 - 3.1.7 the namespace was called instead of The old namespace is still supported, but should not be used, as it will be removed in a future version.

Note: Please note: In JEuclid versions 3.1.2 - 3.1.5 the attributes where named by the internal name, e.g. MATHSIZE instead of fontSize. The older attribute names are still supported (on the old namespace), but should not be used, as they will be removed in a future version.

Stretchy attribute (3.1.8+)

The stretchy attribute of the mo element is extended to support two new values:

will stretch the operator in both directions
will not stretch the operator
will stretch the operator horizontaly only
will stretch the operator vertically only

To use the new stretchy attribute value, you must put the stretchy attribute in the JEuclid extension namespace (see above). Otherwise you will produce incorrect MathML which will not work with other renderers. If both the JEuclid and the default stretchy attribute are set, the JEuclid stretchy attribute takes precedence.

Example (assuming jeuclid defined as the extension namespace as above):

<mo stretchy="true" jeuclid:stretchy="horizontal">...</mo>

Will stretch the operator on other MathML renderers (depending on their behavior) and horizontally in JEuclid,

Example 2:

<mo jeuclid:stretchy="vertical">...</mo>

Will not stretch the operator on other MathML renderers (unless defined by the operator dictionary) and vertically in JEuclid,