# Blahtex and Blahtexml: Converting TeX equations into MathML

## How to use blahtex(ml)?

The short answer is of course to read the manual, but here is an example to illustrate the use of blahtex.

### Using the --mathml option

With the --mathml option, blahtex(ml) converts one TeX formula into MathML, from standard input to standard output. For instance, typing:

echo '\sqrt{x^2+\alpha}' | blahtex --mathml


produces:

<blahtex>
<mathml>
<markup>
<msqrt>
<msup>
<mi>x</mi>
<mn>2</mn>
</msup>
<mo lspace="0.222em" rspace="0.222em">+</mo>
<mi>α</mi>
</msqrt>
</markup>
</mathml>
</blahtex>


### Using the --png option

With the --png option, blahtex(ml) converts one TeX formula into PNG. The name of the output file is automatically generated and is given as output. For instance, typing:

echo '\sqrt{x^2+\alpha}' | blahtex --png


produces:

<blahtex>
<png>
<md5>068bd5f892d1f87b0371fa570af10712</md5>
</png>
</blahtex>


and the file 068bd5f892d1f87b0371fa570af10712.png: .

### Using the --xmlin option

This is specific to blahtexml. An input file looks like the following example.

<?xml version="1.0"?>
<equations xmlns:b="http://gva.noekeon.org/blahtexml">
<equation b:inline="x+y"/>
<equation b:block="\exp(-\gamma x)"/>
</equations>
</pre>


The equations are given as attributes (inline or block) in the http://gva.noekeon.org/blahtexml namespace. Whenever blahtexml meets such an equation, it expands it into the equivalent MathML code. The output corresponding to the previous example is given below.

<?xml version="1.0" encoding="UTF-8"?>
<equations xmlns:b="http://gva.noekeon.org/blahtexml">
<equation>
<math xmlns="http://www.w3.org/1998/Math/MathML">
<mi>x</mi>
<mo lspace="0.222em" rspace="0.222em">+</mo>
<mi>y</mi>
[/itex]
</equation>
<equation>
<math xmlns="http://www.w3.org/1998/Math/MathML" display="block">
<mstyle displaystyle="true">
<mi>exp</mi>
<mo lspace="0" rspace="0" stretchy="false">(</mo>
<mo lspace="0" rspace="0">-</mo>
<mi>γ</mi>
<mspace width="0"></mspace>
<mi>x</mi>
<mo lspace="0" rspace="0" stretchy="false">)</mo>
</mstyle>
[/itex]
</equation>
</equations>


Blahtexml has command-line options to fine-tune the XML output. One can specify the output document type declaration. Also, the representation of the MathML namespace can be adjusted. Blahtexml can also be used to generate XHTML+MathML. Please refer to the manual for more details.