Formeln auf Webseiten werden in der Regel in einer speziellen Syntax geschrieben, die dann vom Server oder Browser interpretiert und in Grafik umgewandelt wird. Als Standard hat sich in der Wissenschaft die TeX-Syntax etabliert. Die Wikipedia und diese Website verwenden zum Beispiel diese Art der Formel-Codierung.
Auf meiner Website wird die TeX-Syntax vom frei erhältlichen JavaScript-Paket jsmath interpretiert und über Styles in schöne Formeln umgewandelt. Das folgende Beispiel zeigt, wie die TeX-Eingabe in einer Formel resultiert:
\gamma = { 1 \over \sqrt{ 1 - { v^2 \over c^2 } } } |
Dieses einfache Beispiel zeigt bereits einen Nachteil der TeX-Syntax: Es braucht sehr viele Geschweifte Klammern zur Strukturierung der Formel. Daher ist die Eingabe in einem Text-Editor mühsam und fehleranfällig.
Ein weiteres Problem ist, dass man das Resultat der Eingabe erst dann sehen kann, wenn man die Seite rendern läst. Vom JavaScript gefundene Fehler werden anstelle der Formel ausgegeben. Den bemängelten Fehler im TeX-Code zu finden ist oft nicht einfach. Formeln werden schnell unübersichtlich.
TeX-Syntax kennt viele Konstrukte, die man sich aber kaum alle merken kann. Selbst einfache Konstrukte wie Bruchstriche müssen mühsam eingegeben werden: { oben \over unten } oder \frac{ oben }{ unten }
In Formeln kommen häufig grössere Terme mehrfach vor. Diese müssen in einem Text-Editor mühsam kopiert und an anderer Stelle eingefügt werden. Den Originalterm im TeX-Code zu finden ist nicht immer einfach.
\mathrm{ d } \tilde x^\mu( \alpha, \lambda ) | |
Im UPN TeX Editor können mehrfach benötigte Terme einfach in einem Zwischenspeicher abgelegt und von dort an den gewünschten Stellen in den Code kopiert werden.
Die Formatierung von Schriften (kursiv, aufrecht, fett), Zahlen und Einheiten ist mühsam. So muss man zum Beispiel bei Zahlen Leerzeichen zur Strukturierung selbst einfügen und 10ner-Exponenten sind umständlich zu codieren.
\vec F_{ 1, \mathrm{ max } } | |
1,\!234\,56 \cdot 10^{ -12 } \ \mathrm{ kg \! \cdot \! m / s^2 } |
Im UPN TeX Editor gibt es Operatoren und Spezialzeichen, welche diese Formatierungen vornehmen.
Für das Problem der Klammerung gibt es seit langem ein in HP-Taschenrechnern angewandtes Verfahren: Die Eingabe in Umgekehrter Polnischer Notation UPN. UPN bedeutet, dass Operatoren nicht zwischen Termen eingegeben werden, sondern nach den Termen stehen, auf die sie angewandt werden.
Die UPN Methode arbeitet dazu mit einem sogenannten Stack. Ein Stack ist ein spezieller Zwischenspeicher. Zu speichernde Elemente (z.B. Zahlen) werden immer oben auf den Stack gelegt und von oben vom Stack wieder entfernt. Das funktioniert nach folgendem Prinzip:
Die folgenden Beispiele verdeutlichen die Arbeitsweise des Stacks anhand eines HP-Taschenrechners. Es zeigt, wie Formeln eingegeben werden und wie man komplett auf Klammern verzichten kann. Die Gruppierung der Terme erfolgt alleine durch die Reihenfolge der Eingabe:
Aufgabe | UPN Eingabe |
---|---|
( 3 − √ 2 ) · ( 5 + 42 ) | 3 Enter 2 √x − 5 Enter 4 x2 + × |
3 − √ 2 · 5 + 42 | 3 Enter 2 √x 5 × − 4 x2 + |
Eingabe | Anzeige | Stack | Beschreibung |
---|---|---|---|
3 | 3 | Die Zahl 3 wird in die Eingabezeile des Taschenrechners eingegeben | |
Enter | 3 | 3 | Die Zahl in der Eingabezeile wird auf den Stack gesetzt |
2 | 2 | 3 | Die Zahl 2 wird in die Eingabezeile eingegeben |
√x | 1.4142 | 1.4142 3 | 1. Die Zahl 2 wird auf den Stack gesetzt 2. das oberste Stack-Element (2) wird vom Stack genommen, die Wurzel davon berechnet und das Resultat wird auf den Stack gesetzt |
− | 1.5858 | 1.5858 | Die beiden obersten Zahlen werden vom Stack genommen, voneinander abgezogen und das Resultat wird auf den Stack gesetzt. |
5 | 5 | 1.5858 | Die Zahl 5 wird in die Eingabezeile eingegeben |
Enter | 5 | 5 1.5858 | Die Eingabezeile wird auf den Stack gesetzt |
4 | 4 | 5 1.5858 | Die Zahl 4 wird in die Eingabezeile eingegeben |
x2 | 16 | 16 5 1.5858 | 1. Die Zahl 4 wird auf den Stack gesetzt 2. Die oberste Zahl (4) wird vom Stack genommen und quadriert. Das Resultat (16) wird auf den Stack gesetzt |
+ | 21 | 21 1.5858 | Die beiden obersten Zahlen werden vom Stack genommen, addiert, und das Resultat wird auf den Stack gesetzt |
× | 33.302 | 33.302 | Die beiden obersten Zahlen werden vom Stack genommen, multipliziert, und das Resultat wird auf den Stack gesetzt. |
Zwei Dinge sind zu beachten:
Die UPN hat den grossen Vorteil, dass alle Zwischenergebnisse der Berechungen angezeigt werden. Bei Taschenrechnern mit Klammereingabe wird oft erst bei der letzten schliessenden Klammer die Berechnung gestartet und nur das Endresultat angezeigt. Da bei der UPN Eingabe überhaupt keine Klammern gebraucht werden, müssen meist weniger Tasten gedrückt werden, als bei der sequenziellen Eingabe.
Mir kam die Idee, dass man das UPN-Prinzip auch bei TeX-Formeln anwenden könnte. Dies würde wiefolgt aussehen:
Im Unterschied zu einem Taschenrechner würden Operatoren nicht Berechnungen anstellen, sondern Teile von TeX-Code auf vielfältige Weise miteinander verbinden.
Die TeX-Klammerung wird dabei vollständig vom Editor übernommen.
Der Editor zeigt den ganzen Stack in TeX-Syntax und die obersten vier Stack-Elemente als Formel an. Man sieht sofort das Resultat jedes Schrittes.
Wenn ein Schritt nicht das gewünschte Resultat ergibt, kann man per undo-Operator jeden Schritt rückgängig machen und eine andere Variante probieren.
Eingabe | Stack in TeX-Syntax | Stack als Formel |
---|---|---|
\gamma | \gamma | |
1 | 1 \gamma | |
v | v 1 \gamma | |
x2 | { v }^2 1 \gamma | |
c | c { v }^2 1 \gamma | |
x2 | { c }^2 { v }^2 1 \gamma | |
÷ | { { v }^2 \over { c }^2 } 1 \gamma | |
− | 1 - { { v }^2 \over { c }^2 } \gamma | |
√x | \sqrt{ 1 - { { v }^2 \over { c }^2 } } \gamma | |
1/x | { 1 \over \sqrt{ 1 - { { v }^2 \over { c }^2 } } } \gamma | |
= | \gamma = { 1 \over \sqrt{ 1 - { { v }^2 \over { c }^2 } } } |
Der UPN TeX Editor unterstützt die Formeleingabe noch mit vielen weiteren Möglichkeiten: