LaTeX to MathML Mathematical Equation Plug-in
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
--
JonathanGraehl - 05 Aug 2004
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
Itex.
(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,
%$ put your math here $%
for example:
%$ \frac{\partial u}{\partial x} = U(x) $%
here the opening and closing delimiter must be on the same line.
For equations set on their own line, use the
%\[ put your math here \]%
notation, for example:
%\[ \frac{\partial u}{\partial x} = U(x) \]%
and the font will be slightly larger.
For equations written over several lines in the original TWiki document
you use the
%MATH<nop>MODE{ "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.
%$ \sum_{n=1}^\infty \frac{1}{n} $% is divergent, but %$ \lim_{n \to \infty}\sum_{i=1}^n \frac{1}{i} - \ln n $% exists.
This is an %$\frac{\partial u}{\partial x} = U(x)$% inline equation.
This equation %\[\frac{\partial u}{\partial x} = \pi \int_a^b F(x) dx\]% should be typeset
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.
- 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 by Dr. Paul Gartside at the University of Pittsburgh. This plug-in uses
itex2MML to do the actual translation of the LaTeX equations into 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.)
Plugin settings are stored as preferences variables. To reference a plugin setting write
%<plugin>_<setting>%, i.e.
%INTERWIKIPLUGIN_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)
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
server where TWiki is running.
- Install the program itex2MML on your system. The location must be somewhere that your web server can access.
At the location above I could not find any usable binaries. Had more success here -- RM
- Alter the main
twiki.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. Over-write it with: <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1 plus MathML 2.0//EN" "http://www.w3.org/TR/MathML2/dtd/xhtml-math11-f.dtd">
Sidenote: Why is it necessary to require strict XHTML?
My browser complains vehemently when any user-edited content isn't strict XHTML. That means that you don't even get to click an edit button to fix the problem! However,
W3C gives instructions for using
MathML that don't seem to require this:
http://www.w3.org/Math/XSL/:
<?xml version="1.0"?>
<?xml-stylesheet type="text/xsl" href="http://www.w3.org/Math/XSL/mathml.xsl"?>
<html xmlns="http://www.w3.org/1999/xhtml">
with
MathML elements enclosed by:
<math xmlns="http://www.w3.org/1998/Math/MathML">
<mi>x</mi><mo>+</mo><mn>3</mn>
</math>
update So, I tried it, and it doesn't work

Renaming a test XHTML file to .xml did show
MathML goodness. I did find an interesting javascript solution for displaying
MathML :
http://www1.chapman.edu/~jipsen/mathml/mathhtmltest.phtml and from the same source, a really nice javascript implementation of a plain-text math markup language (also supporting
LaTeX -style input as well):
AsciiMathML
Also, I tried to modify TWiki to output a
<[CODE[ ... ]]>
section so some Javascript didn't trip up the XML parser (when setting doctype to XML); TWiki seems to replace < and > that aren't part of html tags, by their
> <
entity equivalents, which isn't what I want. Where does this happen and how could it be worked around?
--
JonathanGraehl - 04 Aug 2004
- 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);
I have a less drastic alteration than can be made. See the LaTeXToMathMLPluginDev topic, if folks think it's a good idea then I'll upload it.
- Download the ZIP file from the Plugin web (see below)
- Unzip
LaTeXToMathMLPlugin.zip in your twiki installation directory. Content:
|
|
| File: |
Description: |
data/TWiki/LaTeXToMathMLPlugin.txt |
Plugin topic |
data/TWiki/LaTeXToMathMLPlugin.txt,v |
Plugin topic repository |
pub/TWiki/LaTeXToMathMLPlugin/xhtml-math11-f.dtd |
XML DTD for XHTML 1.1 and MathML |
lib/TWiki/Plugins/LaTeXToMathMLPlugin.pm |
Plugin Perl module |
|
|
|
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.
Related Topics: TWikiPreferences,
TWikiPlugins,
TWiki:Plugins/MathModePlugin
--
SimonClift - 22 Apr 2003