Using MathFlow in XMetaL

XMetaL Author

MathFlow for XMetaL includes the MathFlow Editor, which is a WYSIWYG editor for entering MathML into your XML documents. The MathFlow Editor is integrated with the XMetaL Editor so MathML can be quickly and easily edited in the XMetaL environment. The MathFlow menu provides access to the following MathFlow features:

MathFlow menu in XMetaL Author

  • Refresh Equation Images manually re-synchronizes the preview images in the XMetaL Editor window.
  • Fast Equation Rendering generates equation images using the C++ equation rendering component.
  • MathFlow Help will open a window with the MathFlow documentation. Note this will open the documentation installed onto your computer with XMetaL. We recommend always using the documentation at docs.wiris.com unless you're not connected to the internet. The documentation here is always kept more up-to-date than the copy installed with XMetaL.
  • About MathFlow will open a window with information on the installed MathFlow version, as well as about what features are licensed and available for use.

The basics of using the MathFlow Editor in XMetaL are described in the following topics. For further details on the editor, please refer to the MathFlow Editor and Tutorials sections.

As a general rule, while editing a document not of a MathML-aware doctype, the XMetaL Editor will operate as if MathFlow has not been installed. While all of the above MathFlow enhancements will still be present, only MathFlow Help and About MathFlow will operate as advertised.

XMAX

To illustrate how to use MathFlow with the XMetaL ActiveX control, the XMetaL ActiveX example has been modified to include MathFlow.

MathFlow with XMAX in Internet Explorer

This sample application is located in the <path‑to‑xmetal>\Author\MathFlow\activex\XMActiveX_MathFlowHtmlSample directory. To view this sample, you must have XMetaL ActiveX installed either by installing XMetaL Developer or the XMetaL ActiveX control. If Internet Explorer is your primary browser, simply double-click XMetaLActiveX.html to begin. If another browser is your primary browser, find XMetaLActiveX.html in a File Explorer window and in the contextual menu (right-click), choose Open With > Internet Explorer.

The following modifications are made to the XMetaL menu:

  • There is a new menu item, MathFlow, containing three entries: Insert Equation, MathFlow Help (opens a window with the MathFlow documentation) and About MathFlow for XMetaL (opens a window with information on the installed MathFlow version, as well as what features are licensed and available for use).
  • There is a new Insert Equation icon on the toolbar which opens a MathFlow Editor window.

Please note the MathFlow XMetaL ActiveX example is not a full application. It is simply intended to show how MathFlow can be added to an XMetaL ActiveX application. To create a full ActiveX application, see Create a MathFlow XMAX HTML Application.

The concept of a MathML-aware document type (doctype for short) is important to understand when authoring MathML documents in XMetaL. Most of the components and script code that make up MathFlow's integration with the XMetaL editor do not depend on a specific document type, but your doctype must include MathML to be able to create and edit equations with MathFlow.

There are several considerations in setting up a new math doctype, such as including the MathML 3.0 schema module in your custom schema. Although MathFlow has been designed to help minimize the amount of work required and in some cases setting a few configuration variables will suffice, in most instances much more customization will be needed. For complete details on setting up your own doctype, including discussion of the DTD (Document Type Definition), please refer to the Setting up a custom doctype section later in this documentation.

MathFlow comes with two sample doctypes, which can be used as guidance when setting up MathFlow to work with custom doctypes. The demo files in the sample doctypes can also be used to familiarize yourself with MathFlow's features.

Journalist_math

The Journalist_math doctype is an extension of the XMetaL sample Journalist doctype. The doctype files for journalist_math can be found in the following location:

<path-to-xmetal>\Author\Rules

You can find a sample file to demonstrate how to use MathFlow to include MathML in a document:

<path-to-xmetal>\Author\Samples\Journalist_math\demo.xml

DITA_mathml

The dita_mathml doctype is a MathML domain specialization for DITA. DITA is a public standard maintained by OASIS.

The doctype files for dita_mathml can be found in the following location:

<path-to-xmetal>\Author\DITA\XACs\dita_mathml

The demo files for the dita_mathml doctype include a map file (MathML_Map.ditamap) that references a topic file and a concept file and are located in the following folder:

<path-to-xmetal>\Author\Samples\DITA

For instructions on inserting equations with MathFlow from the DITA sample doctype, see

<path-to-xmetal>\Author\Samples\DITA\MathML_Task.xml

To start creating your own DITA files using the MathML domain specialization, you can use the templates provided in the following location:

<path-to-xmetal>\Author\Template\DITA Topic

To insert an equation, go to the MathFlow menu in XMetal and click Insert Equation…:

Insert an equation by clicking Insert Equation in MathFlow's menu on the ex metal toolbar.

The keyboard shortcut Ctrl+Alt+Q will also insert an equation, as well as clicking the Insert Equation icon on the XMetaL toolbar.

All of these options open an instance of the MathFlow Editor.

Once you have created an equation in the MathFlow Editor, click the OK button to close the Editor and insert the resulting MathML into the document structure. A preview image is also generated for the XMetaL Editor window.

To edit an existing equation, double click on the equation preview in the XMetaL Editor. This will open the equation in the MathFlow editor. Once you have finished editing the equation, click OK to update the equation.

Refresh equation images

To refresh all of the equation images in the current document, go to the MathFlow menu in XMetal and click Refresh Equation Images:

Refresh equation images by clicking the command in the MathFlow menu.

Fast equation rendering

To turn Fast Equation Rendering on or off, go to the MathFlow menu in XMetal and click Fast Equation Rendering...

Speed up equation rendering by clicking the command in the MathFlow menu.

If Fast Equation Rendering is on, the system will use the C++ equation rendering component to generate equation images, rather than the default Java equation image rendering component. The C++ component is optimized for speed, however the image generated may not match the look of the equation in the MathFlow Editor, which is generated by the Java component.

The Fast Equation Rendering option is useful in cases where a document contains greater than 100 equations, since each equation image is rendered when the document is opened.

You can edit MathML Source directly by switching to XMetaL's "Plain Text" option on the View menu. Changes show automatically when switching back to normal view (only if the MathFlow equations are white and not gray; i.e. the MathFlow license is checked out). You can also manually re-synchronize the preview images in the XMetaL Editor window. To do this, select the Refresh Equation Images command from the MathFlow menu, shown in the screen shot above.

As mentioned in Installation, MathFlow installs a stylesheet for XHTML+MathML output. You can generate XHTML+MathML output with this stylesheet by duplicating the output configuration for "Single HTML" and changing the default stylesheet used. To do that:

  1. Open a DITA map file, and in the Resource Manager menu, select File > Generate Output for DITA map or click the icon:
    ""
  2. In the dialog that pops up, click Configure Output…. This will open a new dialog window.
    ""
  3. In the Configure Output Options dialog, select Single HTML file and click Duplicate.
    ""
  4. With Copy of Single HTML file selected, click Edit.
    ""
  5. In the "Edit Deliverable Type" dialog, change the Name to XHTML+MathML, then click Advanced.
    ""
  6. In the Advanced tab, enter the path or browse to the singlexhtml.xsl stylesheet and click OK. Default location for this file depends on your version of XMetaL, but it should be in one of these locations:
    C:\Program Files\Common Files\XMetaL Shared\DITA_OT\demo\xhtmls\xsl
    C:\ProgramData\SoftQuad\XMetaL\Shared\DITA_OT[version]\plugins\com.xmetal.xhtmls\xsl
    ""
  7. Under "Other output parameters", enter: ANT_PARAM_args.grammar.cache="no"
  8. Click OK again.
  9. Back in the "Configure Output Options" dialog, click Advanced. Under "Other output parameters", find cmd_dita_ot_per_user_version, and change the value to 2. Verify the value for DITA_OT_DIR is %XMETAL_SHARED_ALL%\DITA_OT[version]
    ""
  10. Click OK.
  11. From now on, the XHTML+MathML output configuration will show up in the "Generate Output for DITA map" dialog, and can be chosen to generate the output.
    ""

Choose File|Open from the menu and the File dialog will open.

Choose Open from the File menu.
Choose the XML file and the XAC file from the File dialog.

For the XML File, use the Browse button to select the journalist_math sample document (demo.xml). For the XAC File, use the Browse button to select the journalist_math.xac file.

Click OK to open the journalist_math sample document.

Sample document is open in Internet Explorer.

To insert an equation, you can either click the Insert Equation icon on the toolbar, or choose MathFlow|Insert Equation from the menu.

Use the Insert Equation command from the MathFlow menu.

Both of these options open an instance of the MathFlow Editor.

Once you have created an equation in the MathFlow Editor, click OK to close the Editor and insert the resulting MathML into the document structure. A preview image is also generated for the XMetaL Editor window.

Editing an existing equation

To edit an existing equation, double click on the equation preview in the XMetaL Editor. This will reopen the equation in the MathFlow editor. Once you have finished editing the equation, click OK to update the equation.