LaTeX to MathML Mathematical Equation Plug-in
<--
Contributions to this plugin are appreciated. Please update the plugin page at
http://twiki.org/cgi-bin/view/Plugins/LaTeXToMathMLPlugin or provide feedback at
http://twiki.org/cgi-bin/view/Plugins/LaTeXToMathMLPluginDev.
If you are a TWiki contributor please update the plugin in the SVN repository.
-->
Display LaTeX-like equations in-line using MathML
Overview
This plugin translates embedded LaTeX-like equations into in-line MathML. It requires a MathML enabled browser, such as Mozilla.
See TWiki:Codev.MathMarkup for some Javascript-only client-side alternatives.
Syntax Rules
The syntax rules for embedding equations are identical to those of the TWiki:Plugins.MathModePlugin and are based on LaTeX's own markup for equations. The equations themselves are expressed in a language very, very similar to LaTeX called itex2MML. (Apparently the major differences are in the way equation arrays are handled.)
To put an equation in-line with your text, enclose it with percent signs and
the dollar sign,
for example:
where the opening and closing delimiter must be on the same line.
For equations set on their own line, use the
notation, for example:
and the font will be slightly larger.
For equations written over several lines in the original TWiki document you use the %MATHMODE{ "a=b" }% delimiter. The value in quotes is type set, whether or not it is on a single line. However, unlike the other delimiters, this is also typeset in <pre> environments.
Examples
is divergent, but exists.
This is an inline equation.
This equation should be typset on its own line.
This equation %MATHMODE{"
\frac{\partial u}{\partial x} =
\omega \int_a^b F(x) dx
"}%
is broken over several lines of source text.
Resources for MathML
- Mozilla's MathML Project contains information on how to get started with MathML in Mozilla. A default installation from a major Linux distribution ought to be complete enough to use this plug-in. It is available for free. See notes below.
- The itex2MML program is a FLEX/LEX parser which this plug-in uses to do the actual translation of the LaTeX equations into MathML.
- Use the MathML Torture Test to see if your browser supports MathML.
- At the W3C Math Home Page you can find the DTD for MathML along with authoring information. You can even read the 1993 proposal neglected for so many years. Advocates of the commercialization of the web: please note the delay and feel shame.
- If your organisation does not allow Mozilla then there is a plug-in available at Design Science which may do the trick. (I haven't tried this one.)
LaTeXToMathMLPlugin Global Settings
Plugin settings are stored as preferences variables. To reference a plugin setting write %<plugin>_<setting>% , i.e. %LATEXTOMATHMLPLUGIN_SHORTDESCRIPTION%
- One line description, is shown in the TextFormattingRules topic:
- Set SHORTDESCRIPTION = Display LaTeX-like equations in-line using MathML
- Debug plugin: (See output in
data/debug.txt )
Plugin Installation Instructions
Note: You do not need to install anything on the browser to use this plugin (although your browser must be capable of displaying MathML). The following instructions are for the administrator who installs the plugin on the TWiki server.
- Install the program itex2MML on your system. The location must be somewhere that your web server can access.
- Alter the main
twiki.pattern.tmpl template in the TWiki installation, in the ./templates directory, or in the sub-directory of any Web that will use this plugin. The line <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> must be changed to support the MathML DTD. Replace it with: <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1 plus MathML 2.0//EN" <literal> "http://www.w3.org/Math/DTD/mathml2/xhtml-math11-f.dtd" [ <!ENTITY mathml "http://www.w3.org/1998/Math/MathML"> ]></literal>
<-- * Alter the lib/TWiki.pm file so that the content type is emitted not
as text/html but rather application/xhtml+xml . This is a rather
dire change. If you have done anything on your pages that is not
legal XHTML then your browser may complain mightily.
The change is in sub writeHeader about line 505, where
the statement
writeHeaderFull( $query, 'basic', 'text/html', 0);
needs to become
writeHeaderFull( $query, 'basic', 'application/xhtml+xml', 0);
-->
- Download the ZIP file from the Plugin web (see below)
- Unzip
LaTeXToMathMLPlugin.zip in your twiki installation directory. Content: File: | Description:<-- --> | lib/TWiki/Plugins/LaTeXToMathMLPlugin.pm | Plugin Perl module | data/TWiki/LaTeXToMathMLPlugin.txt | Plugin topic | pub/TWiki/LaTeXToMathMLPlugin/xhtml-math11-f.dtd | XML DTD for XHTML 1.1 and MathML |
- Visit
configure in your TWiki installation, and enable the plugin in the {Plugins} section.
- Test if the installation was successful: the examples above should be rendered as equations, not text.
Notes
- This plug-in conflicts with the TWiki:Plugins.MathModePlugin which will need to be disabled. If you re-enable it later, you may need to re-edit pages to update any graphics of math that it would have otherwise generated. You may wish to clean-up the graphics left by TWiki:Plugins.MathModePlugin in the
pub/ directories.
- Note that documents must be served to Mozilla as
application/xhtml+xml for the MathML portion to be rendered correctly. This can pose some challenges for existing TWiki installations with less than tidy XHTML.
- Mozilla on Linux has a problem with Xft, the FreeType renderer for fonts. This in turn causes problems with
xfs , the X11 font server that uses Xft. For Mozilla versions before 1.4 (assuming this gets fixed in 1.4) you have to set the environment variable setenv GDK_USE_XFT 0 to enable the correct rendering of the TeX Computer Modern fonts. You may also need to install those fonts, as noted on the MathML project fonts page.
Plugin Info
Related Topics: TWikiPreferences, TWikiPlugins,
TWiki:Plugins/MathModePlugin |