# MathParser - parses MathML to LaTeX
Homepage of MathParser, a program that converts MathML to LaTeX
Author: Tilman Walther
Keywords: Mathcad, LaTeX, MathML, konvertieren, MathML2LaTeX
Date: 2004-01-31

## Index

- MathParser starten
- Mit MathParser arbeiten
- Für Fortgeschrittene: Ändern der Ersetzungstabelle und des Standard-Headers von MathParser

## MathParser starten

Wenn Sie die MathParser Programmdatei heruntergeladen haben, können Sie das Programm normalerweise mit einem Doppelklick auf die Datei starten.
Falls dabei Probleme auftreten, obwohl Java auf Ihrem Computer installiert ist (z.B. startet statt MathParser ein Packprogramm, das auf Ihrem Computer installiert ist), müssen Sie das Programm direkt über eine Verknüpfung starten (Windows):

1. Klicken Sie mit der rechten Maustaste auf die Programmdatei und dann auf "Verknüpfung erstellen"
2. Klicken Sie dann mit der rechten Maustaste auf die neue Verknüpfung und dann auf "Eigenschaften"
3. In dem neuen Fenster ändern Sie auf der Registerkarte "Allgemein" den Namen der Verknüpfung von "Verknüpfung mit MathParser..." in "MathParser" und auf der Registerkarte "Verknüpfung" das Ziel in "java -jar MathParser052.jar". Bestätigen Sie mit Klick auf "OK".

## Mit MathParser arbeiten

Um eine MathML-Datei in LaTeX zu konvertieren, befolgen Sie diese Schritte:

1. Geben Sie im "Eingabe"-Kasten die Datei an, die Sie in LaTeX umwandeln möchten. Um die Datei auszuwählen können Sie auch die "Durchsuchen..."-Schaltfläche benutzen.
2. Geben Sie das Format der Eingabe-Datei an. Wenn die Datei aus reinem MathML-Code besteht (in der Regel Dateien mit der Endung '.mml'), wählen Sie MathML.
   Wenn der MathML-Code in HTML integriert ist (i.d.R. Dateien mit der Endung '.html'), wählen Sie HTML/MathML.
   Falls Sie die Datei aus dem Programm Mathcad heraus als "HTML/MathML File for IBM Techexplorer" abgespeichert haben, wählen Sie Mathcad MathML/HTML.
   Neu in Mathcad 11: Wählen Sie in Mathcad im Menü Datei "Als Webseite speichern..." und im Optionenmenü, das sie angezeigt bekommen, wenn Sie "Speichern" anklicken, "MathML" und "Anzeigen mit: IBM Techexplorer".
3. Klicken Sie im "Ausgabe"-Kasten "Datei" oder "Textfeld" an, je nachdem, ob Sie das Ergebnis der Konvertierung speichern oder nur anzeigen lassen möchten.
   Wenn Sie "Datei" wählen, müssen Sie im Eingabefeld daneben den Speicherort angeben.
4. Wählen Sie im "Optionen"-Menü, mit welchen Einstellungen die MathML-Datei übersetzt werden soll:
   - Wählen Sie "LaTeX Header schreiben" aus, wenn Sie ein fertiges LaTeX-Dokument erzeugen möchten. In diesem Fall wird der Standard-Header von MathParser verwendet. (Siehe auch: "Für Fortgeschrittene: Ändern der Ersetzungstabelle und des Standard-Headers von MathParser")
   - Wählen Sie "Unbekannte Entities überspringen", wenn unbekannte MathML-Befehle nicht mit der Bemerkung 'NOT_FOUND' in der Ausgabe auftauchen sollen.
   - Für "Formeln" können Sie angeben, in welcher Weise sie in die Ausgabe eingefügt werden: Eingebettet (im Fließtext), abgesetzt (jede Formel als extra Absatz) oder nummeriert (jede Formel als extra Absatz mit fortlaufender Nummerierung).
5. Sobald Sie alle Optionen festgelegt haben, starten Sie den Umwandlungsvorgang mit einem Klick auf "Konvertieren".
   Wenn der Vorgang durchgeführt wurde, meldet das Programm die erfolgreiche Konvertierung bzw. zeigt den LaTeX-Code in einem neuen Fenster an, in dem Sie die Ausgabe bearbeiten und kopieren können.

## Für Fortgeschrittene: Ändern der Ersetzungstabelle und des Standard-Headers von MathParser

MathParser nutzt zwei Textdateien für die Konvertierung: 'substitutions.txt' legt fest, welcher MathML-Ausdruck mit welchem LaTeX-Befehl ersetzt wird, 'header.txt' beinhaltet den LaTeX-Header der an den Anfang der übersetzten Datei gestellt wird, wenn dies in den Optionen festgelegt wurde.
Beide Dateien können mit einem einfachen Texteditor an eigene Bedürfnisse angepasst werden.
Sie können die Dateien 'substitutions.txt' und 'header.txt' von der MathParser-Homepage herunterladen, oder mit einem ZIP-kompatiblen Packprogramm aus der Programm-Datei extrahieren.

### Editieren der Dateien

Nun können Sie die Dateien mit einem Texteditor bearbeiten. In 'header.txt' schreiben Sie den LaTeX-Header, den ihre konvertierten Dateien haben sollen.
In 'substitutions.txt' können Sie in jede Zeile eine Ersetzungsanweisung von MathML nach LaTeX eintragen.
Es gibt zwei Arten von MathML-Elementen die übersetzt werden: Entities und Tags. Entities sind einfache Anweisungen für Sonderzeichen und Symbole, die direkt übersetzt werden. Tags definieren den logisch-mathematischen Zusammenhang zwischen einzelnen Bereichen in Form von Blöcken.
Eine Entity-Ersetzung trägt man in die Datei 'substitutions.txt' nach folgendem Muster ein:

    [Entity] [Tabulatorschritt(e)] [LaTeX-Übersetzung]

Beispiel:

    ε			\epsilon

(Ersetzung des MathML-Entities für den Buchstaben Epsilon)
Tags haben in der Regel einen oder mehrere Inhalts-Blöcke in der Form <Tag>Block(s)</Tag>. Da sich die Reihenfolge der Blöcke im MathML-Code von dem im LaTeX-Code unterscheidet, muss MathParser die korrekte Reihenfolge für die Blöcke mitgeteilt werden. Hierfür wird das Schlüsselwort %BLOCK[Blocknummer]% verwendet.
Beispiel:

    <mroot>			\sqrt[%BLOCK2%]{%BLOCK1%}

Das Beispiel zeigt die Ersetzungsanweisung für das MathML-Element zur Darstellung von Wurzeln. Da in MathML erst der Radikant und dann der Wurzelexponent angegeben wird (logische Reihenfolge), während es in LaTeX genau umgekehrt ist (Reihenfolge nach Leserichtung), folgt in der Ersetzungsanweisung BLOCK1 nach BLOCK2.

### Die geänderten Dateien mit MathParser einsetzen

Um die von Ihnen geänderten Dateien mit MathParser zu verwenden, müssen Sie die editierte 'substitutions.txt' und/oder 'header.txt' nur in dasselbe Verzeichnis wie MathParser legen und das Programm starten. Findet MathParser im aktuellen Verzeichnis die Textdateien, so werden Sie für die Konvertierung verwendet, ansonsten werden die internen Konfigurationen genutzt.