# Math equation formats

I need to store equations in a text file, in a source format that can be converted to something that can be rendered (e.g. mathML). I like the format used in OpenOffice. I don't want to use TeX, or at least I don't want to pull in all the baggage of interpreting TeX. What format does OpenOffice Equation Editor use, and are there 3rd party command-line converters that will process this format? I don't want to have to run OpenOffice every time I need to render/convert my equations.

-
Belong to stackoverflow –  joe Jul 30 '09 at 15:51
Ditto. It has nothing to do with programming. –  Jason S Jul 30 '09 at 15:58

What format does OpenOffice Equation Editor use?

LibreOffice Math (and OpenOffice Math) both use MathML to represent mathematical markup.

Just save any equation using Math and simply unpack it (it is ZIP packed). For example if you create famous [E=mc²] and save it, then in content.xml inside your .odt file you will find something like this:

<?xml version="1.0" encoding="UTF-8"?>
<math xmlns="http://www.w3.org/1998/Math/MathML">
<semantics>
<mfenced open="[" close="]"><mrow>
<mi>E</mi><mo stretchy="false">=</mo><msup><mi mathvariant="italic">mc</mi><mn>2</mn></msup>
</mrow></mfenced>
<annotation encoding="StarMath 5.0">left[ E=mc^2 right]</annotation>
</semantics>
[/itex]


As you see, Math stores equation in own format annotation section, but you can use plain MathML as input format.

… command-line converters that will process this format

I believe, you can use Python API for Libre (Open) Office.

You can put your own equation in annotation (in StarMath's format). Looks like Math builds equation based on how it is represented in annotation and the rest of MathML file is just for representation/compatibility.

If MathML doesn't look like made from StartMath it will propose to "repair" the file and it will work just fine after this.

-
The user interface of the editor does not use MathML. They may store math markup as MathML, but I don't want to use MathML. I want to use the markup language of the user interface (from looking at the "annotation" section of your answer, it must be called "StarMath"). It's much simpler. –  Jason S May 17 '11 at 21:44