TeX-Formelsatz

Integration von TeX-Formelsatz im Online-Übungssystem

Autor: Immo Schulz-Gerlach, ZMI, FeU-Softwaretechnik
Version: 2.0 — 14.02.2017
[PDF-Version] [ePub-Version]

Einleitung

Seit März 2011 bietet das Online-Übungssystem die Möglichkeit, Formeln als Grafik auszugeben, die in TeX-Syntax gespeichert wurden. Das ermöglicht vor allem Aufgabenautoren, in ihren Aufgabenstellungen auf relativ einfache Weise Formeln darzustellen, ohne diese erst z.B. mit externer Software setzen, als Grafik speichern und dann in die HTML-Seite einbinden zu müssen. Aber nicht nur Aufgabenautoren können die neue Funktion nutzen, auch Korrekturkräfte und unter gewissen Voraussetzungen auch Studenten können in ihren Korrekturen bzw. Einsendungen Formeln in TeX-Syntax eingeben, das Übungssystem übernimmt dann den Formelsatz.

Zielgruppen dieses Handbuchs

Dieses Handbuch wendet sich sowohl an Studenten als auch an Aufgabenautoren und Korrektoren. Aber nicht für alle diese Adressaten sind alle Teile des Handbuchs interessant.

Für Studenten kann insb. der nachfolgende Abschnitt zur individuellen Einstellung der Formeldarstellung (für Formeln in Aufgabenseiten oder Korrekturen) interessant sein. Der Abschnitt zur Formelsyntax spielt für Studenten nur eine Rolle, falls diese selbst in einer Einsendung eine Formeln einfügen möchten. Der letzte Abschnitt richtet sich ausschließlich an Aufgabenautoren.

Zwei Formelrenderer

Bisher erfolgte die Darstellung der Formel grundsätzlich als PNG-Grafik (erzeugt per JLaTeXMath). Ab sofort (Februar 2017) wird bevorzugt MathJax als Renderer eingesetzt.

MathJax wird im Browser (per JavaScript) ausgeführt und bietet einige Vorzüge wie insbesondere skalierbare Formeln (die beim Zoomen nicht verpixelt dargestellt werden), Einhaltung der Text-Basislinie bei Inline-Formeln, Barrierefreiheit und in Grenzen Anpassbarkeit durch den Leser. So kann der Leser einer Seite mit MathJax-Formeln über das Kontextmenü z.B. alle Formeln in der Seite vergrößern oder einen Zoom-Effekt bei Anklicken oder „Draufzeigen“ einstellen.

Der alte PNG-Renderer (JLaTeXMath) ist derzeit weiterhin in Betrieb und kommt in zwei Fällen zum Einsatz:

  1. Falls im Browser des Lesers JavaScript abgeschaltet ist und MathJax somit nicht funktioniert.
  2. Falls der Formelautor für eine Formel (wie unten beschrieben) eine bestimmte Schriftgröße voreingestellt hat. Das wird von der derzeitigen MathJax-Einbindung nicht unterstützt, daher wird hier grundsätzlich auf den alten Renderer zurückgegriffen.

Gegenüberstellung der Darstellung beider Renderer

Die folgende Abbildung zeigt einen Beispieltext mit verschiedenen Formeln (sowohl abgesetzte Formeln als auch Inline-Formeln im Fließtext, siehe dazu auch den Abschnitt zur Syntax), und zwar für den Standardfall, dass im Browser JavaScript aktiviert wurde und daher der neue Standardrenderer MathJax verwendet wird:

Beispieltext mit aktiviertem JavaScript (MathJax im SVG-Modus)
Beispieltext mit aktiviertem JavaScript (MathJax im SVG-Modus)

Wird im Browser die Nutzung von JavaScript abgeschaltet, so greift automatisch die Fallback-Darstellung in Form von PNG-Grafiken, die von JLaTeXMath erzeugt werden:

Beispieltext mit deaktiviertem JavaScript (JLaTeXMath, PNG-Grafiken)
Beispieltext mit deaktiviertem JavaScript (JLaTeXMath, PNG-Grafiken)

Benutzerdefinierte Konfiguration der Formeldarstellung

Wenn Sie als Benutzer (z.B. Student) eine Übungssystem-Seite aufrufen, die Formeln enthält, und wenn in Ihrem Browser JavaScript aktiviert ist, so dass für alle Formeln (außer solche mit explizitem Vergrößerungsfaktor) MathJax als Renderer verwendet wird, so können Sie als Leser die Formelansicht über ein Kontextmenü nach Ihren Wünschen anpassen.

Am Desktop-Rechner mit Mausunterstützung öffnen Sie das Kontextmenü per Rechtsklick auf eine Formel. Auf Smartphones oder Tablets mit Touchscreen tippen Sie doppelt auf eine Formel und halten Sie den Finger beim zweiten Tipp etwas länger darauf (also schnell hintereinander einmal kurz und einmal lang tippen), um das Kontextmenü zu öffnen.

Kontext-Menü von MathJax (bei aktiviertem JavaScript)
Kontext-Menü von MathJax (bei aktiviertem JavaScript)

In diesem Menü haben Sie unter »Math-Einstellungen« folgende Möglichkeiten, die Formeldarstellung zu verändern:

Die über dieses Menü vorgenommenen Einstellungen werden auf Ihrem Computer in einem Cookie gespeichert, d.h. die Einstellungen bleiben Ihnen erhalten und müssen nicht auf jeder Seite, die Sie aufrufen, immer wieder neu vorgenommen werden.

Einschränkungen

Das Online-Übungssystem greift nicht auf eine vollständige TeX- oder LaTeX-Installation zurück, sondern auf eine Java-Bibliothek (JLaTeXMath) bzw. eine JavaScript-Bibliothek (MathJax), die beide speziell mathematische Formeln rendern. Es steht nicht das gesamte Spektrum von (La)TeX zur Verfügung.

Weiterhin ist zu beachten, dass die Formeln nur dargestellt werden können, wenn der betrachtende Browser mit dem Internet verbunden ist und somit Zugang zum Online-Übungssystem hat. Das gilt für beide Renderer: Im Falle von JLaTeXMath wird der Internetzugang benötigt, um die PNG-Grafik vom Online-Übungssystem erzeugen zu lassen, im Falle von MathJax wird der Internet-Zugang benötigt, um die MathJax-Scripte selbst in den Browser zu laden.

Natürlich besteht bei Nutzung des Online-Übungssystems nahezu immer ein Internetzugang, es gibt jedoch auch Ausnahmefälle:


Syntax zum Einfügen von Formeln

Abgesetzte Formeln

Als „abgesetzte“ Formeln werden relativ großformatig zwischen zwei Absätzen dargestellte Formeln bezeichnet.

Um das Online-Übungssystem anzuweisen, eine Eingabe in TeX-Syntax als Formel zu interpretieren, setzen Sie einfach zwei Dollarzeichen vor und hinter die Eingabe, z.B.:

$$ \lim_{x \to \infty} \prod_{y = 1}^x \sqrt[y]{1} = 1 $$

Eine abgesetzte Formel kann alternativ per $[ eingeleitet und per $] beendet werden:

$[ \lim_{x \to \infty} \prod_{y = 1}^x \sqrt[y]{1} = 1 $]

Beides führt zur Darstellung folgender Formel:

\[ \lim_{x \to \infty} \prod_{y = 1}^x \sqrt[y]{1} = 1 \]

Ein Hinweis: Der Standard-Renderer (MathJax) sorgt automatisch immer für eine abgesetzte Anordnung solcher Formeln: Selbst wenn Sie in Ihrem Text mitten in einem Absatz eine Formel wie oben einbinden, wird in der Darstellung der Absatz an dieser Stelle unterbrochen, mit dem Text nach der Formel ein neuer Absatz begonnen und die Formel zwischen diesen Absätzen zentriert angeordnet.
Der PNG-Renderer (JLaTeXMath) dagegen ändert nichts am Textfluss, sondern wird im abgesetzten Modus lediglich die Formel größer und nicht auf minimale Höhe optimiert rendern.

Damit das Ergebnis in beiden Fällen gut aussieht, sollten Sie in Ihren Textquellen daher solche abgesetzten Formeln nur als alleinstehende Absätze und nicht mitten im Fließtext eines Absatzes anordnen.

Inline-Formeln

Mit „Inline-Formeln“ sind kleinere Formeln gemeint, die mitten im Fließtext, also innerhalb einer Textzeile, angeordnet werden sollen. Die Darstellung solcher Formeln ist kompakter, optimiert insbesondere auf geringere Höhe, um die Zeilenhöhe nicht unnötig zu vergrößern. Außerdem wird versucht, den Formeltext mit der Basislinie der Textzeile abzugleichen. Der standardmäßig verwendete JavaScript-Renderer (MathJax) kann dies optimal, der Grafik-Renderer (JLaTeXMath) versucht nur eine Annäherung.

Für die Inline-Darstellung können Sie ebenfalls die $$-Syntax wie oben beschrieben verwenden, müssen dazu aber der Formel vor dem schließenden $$-Token das Suffix @z (steht für „in einer Zeile“) hinzufügen:

$$ \lim_{x \to \infty} \prod_{y = 1}^x \sqrt[y]{1} = 1 @z $$

Alternativ kann eine Inline-Formel per $( eingeleitet und per $) beendet werden, das @z-Suffix entfällt dann:

$( \lim_{x \to \infty} \prod_{y = 1}^x \sqrt[y]{1} = 1 $)

In beiden Fällen sieht erfolgt die Darstellung als \( \lim_{x \to \infty} \prod_{y = 1}^x \sqrt[y]{1} = 1 \) innerhalb des Absatzes, in dem der Formelstring eingefügt wurde. Beachten Sie die kompaktere Darstellung innerhalb des Fließtextes.

Schriftgröße wählen (deprecated)

Hinweis: Dieses Feature ist „deprecated“, d.h. es funktioniert noch, sollte aber zukünftig nach Möglichkeit nicht mehr eingesetzt werden: Es wird nur in Verbindung mit dem pixelbasierten älteren Renderer (JLaTeXMath, siehe Zwei Formelrenderer) angeboten, weshalb bei dessen Nutzung auch die damit skalierten Formeln – abweichend vom Standard – immer (mit JLaTeXMath) als PNG-Grafik gerendert werden.
Die oben beschriebenen Konfigurationsmöglichkeiten für den Leser bestehen dann nicht.

Sollte – z.B. aufgrund technischer Probleme – der JLaTeXMath-Renderer einmal abgeschaltet werden, so werden diese Formeln statt dessen – wie alle anderen auch – mit MathJax gesetzt werden, wobei dann aber die Größenangabe ignoriert werden wird.

Um eine Formel in anderer Schriftgröße als der vom Übungssystem gewählten Standardgröße darzustellen, verwenden Sie die Doppel-Dollar-Schreibweise und geben Sie hinter Ihrem TeX-Ausdruck und vor den schließenden Dollarzeichen das @-Symbol gefolgt von ein bis zwei Ziffern zur Größenangabe ein. Je größer die eingegebene Zahl, desto größer die Schriftart.

Beispiel:

$$ \lim_{x \to \infty} \prod_{y = 1}^x \sqrt[y]{1} = 1 @50$$

Prinzipiell wird auch eine Kombination mit dem Inline-Modus unterstützt, wozu hinter der Größenangabe noch der Buchstabe z anzuhängen ist:

$$\lim_{x \to \infty} \prod_{y = 1}^x \sqrt[y]{1} = 1 @35z$$

Wie schon einleitend gesagt, impliziert dieses Feature die Nutzung des PNG-Formelrenderers. Wenn Sie keine Größenangabe machen, wird (bei im Browser aktiviertem JavaScript) statt dessen der JavaScript-Renderer MathJax verwendet. Bei diesem können Sie als Dokumentautor die Formelgröße nicht beeinflussen, aber dafür kann jeder Leser des Dokuments individuell die Größe aller Formeln nach seinen Vorlieben einstellen (siehe Benutzerdefinierte Konfiguration der Formeldarstellung).


Wer kann Formeln eingeben?

Studenten

Prinzipiell können Studenten Formeln in der oben beschriebenen Syntax in Eingabefelder des Online-Übungssystems eingeben (vgl. Abbildung auf der Titelseite). Diese werden jedoch nur dann interpretiert, wenn die Aufgabe von den Aufgabenautoren darauf ausgelegt wurde. Ist die Aufgabe so konfiguriert, dass studentische Eingaben exakt und unverändert wie eingegeben auch angezeigt werden (insbesondere für Programmcode vorgesehen), so werden auch TeX-Formeleingaben nicht interpretiert, sondern unverändert angezeigt. (Der Abschnitt TeX-Ausdrücke innerhalb studentischer Texteingaben beschreibt, wie Aufgabenautoren die entsprechende Konfiguration vornehmen können.)

Weiterhin können Aufgaben spezifische Eingabefelder zur Eingabe genau einer Formel in TeX-Syntax enthalten (vgl. Abschnitt Dedizierte Formel-Eingabefelder in Aufgabenformularen). Darin entfällt die Einfassung in ‚$$‘-Zeichen.

Sobald ein Student seine Einsendung abschickt, bekommt er eine Quittungsseite angezeigt, in der erkennbar ist, ob die Aufgabe das Interpretieren von TeX-Formeln unterstützt, und falls ja, ob der TeX-Ausdruck fehlerfrei interpretiert werden konnte. Im Falle von Fehlern im TeX-Ausdruck kann der Student seine Eingabe korrigieren und die Lösung erneut einsenden.

Korrektoren

Korrekturkräfte können in ihren Korrekturen TeX-Formeln eingeben, egal ob sie die neue In-Browser-Korrektur1 verwenden oder herkömmlich mit einem externen HTML-Editor arbeiten, und egal ob sie online oder offline korrigieren. Eine Möglichkeit zum Test ihrer Eingaben (d.h. zur Erzeugung der grafischen Darstellung ihrer eingegeben Formeln) bekommen Korrektoren jedoch ausschließlich bei der In-Browser-Korrektur: Sobald der Korrektor seine Korrektur speichert, bekommt er eine Vorschau auf die Korrektur angezeigt, wie der Studierende sie sieht, und in dieser werden auch TeX-Eingaben interpretiert. Bei herkömmlicher Korrektur steht dagegen derzeit keine solche Vorschaufunktion zur Verfügung.

Wirklich sinnvoll ist die Verwendung von (zumindest komplexeren) TeX-Ausdrücken in Korrekturen daher nur bei In-Browser-Korrektur.

Aufgabenautoren

Aufgabenautoren können an beliebigen Stellen in Aufgabenstellungen, Musterlösungen sowie Vorlagen für Quittungsseiten und Korrekturen TeX-Formeln eingeben, die den Studierenden später angezeigt werden.

Zum Testen der Eingaben in der Aufgaben- oder Musterlösungsseiten kann der Aufgabenautor eine Vorschau-Ansicht der Seite öffnen. Zum Testen von Formeleingaben in Quittungsseite, Korrekturvorlage muss der Autor die erzeugten Seiten in der Studentenrolle (mit einem Teststudenten-Account) besuchen.


Ermöglichen von Formeln in studentischen Eingaben

Dieser Abschnitt richtet sich gezielt nur auf Aufgabenautoren und ist für Studenten und Korrektoren nicht von Belang.

Wie in Abschnitt Wer kann Formeln eingeben? beschrieben, haben Studenten unter bestimmten Voraussetzungen auch die Möglichkeit, TeX-Formeln in ihren Einsendungen zu verwenden. Dieser Abschnitt beschreibt, wie Aufgabenautoren die entsprechenden Voraussetzungen schaffen.

Das Online-Übungssystem bietet zwei Möglichkeiten an, TeX-Formeln auch in studentischen Einsendungen zu interpretieren:

  1. Es können unter im Folgenden beschriebenen Voraussetzungen Formeln innerhalb von Text erkannt werden, wenn sie wie im Abschnitt Syntax beschrieben mit $$-Paaren oder $[ und $] bzw. $( und $) eingeschlossen werden.
  2. Ein Aufgabenautor kann spezielle Formeleingabe-Felder in Aufgabenformularen vorsehen, in denen der Student aufgefordert wird, genau eine Formel in TeX-Syntax (ohne $$-Begrenzung) einzugeben.

Die folgenden beiden Unterabschnitte behandeln nacheinander diese zwei Möglichkeiten genauer.

TeX-Ausdrücke innerhalb studentischer Texteingaben

Bei Verwendung des Aufgabenerstellungsassistenten

Falls Sie eine Aufgabe mit dem Erstellungsassistenten für handbewertete Aufgaben erstellen, sind TeX-Formeleingaben in allen Freitext-Eingabeboxen möglich, die auf »formatierten Text« eingestellt sind. Falls dagegen »Unformatierter Text« ausgewählt wurde (oder »Standard« ausgewählt wurde und in der Aufgabenseite für keine einzige andere Eingabebox die Option »Formatierter Text, und folgende Optionen als Standard für weitere Freitextfelder festlegen« markiert ist), dann wird die studentische Eingabe wörtlich in die Quittung bzw. Korrektur übernommen, TeX-Formeleingaben also nicht interpretiert.

Bei fortgeschrittener Aufgabenerstellung

TeX-Ausdrücke in studentischen Eingaben (in Textboxen) werden automatisch ausgewertet, sofern die studentische Eingabe über eine Variable ohne Suffix P in die Quittungs- bzw. Korrekturschablone eingefügt wird.

Ein Beispiel: Fügen Sie in der Korrekturseite den Inhalt der ersten Eingabebox zu Teilaufgabe A über die Variable $FeldA1 ein, so werden darin vorkommende TeX-Ausdrücke ebenso interpretiert wie darin vorkommende HTML-Tags. Verwenden Sie dagegen die Variable $FeldA1P, so werden die studentischen Eingaben unverändert in der Quittung bzw. Korrekturseite angezeigt, weder HTML-Tags noch TeX-Formeln werden interpretiert! (Das Suffix P steht für „Programmtexteingaben“. Mehr zum Thema finden Sie im Handbuch zur Aufgabenerstellung.)

Hinweise zur Verwendung von Variablen ohne P-Suffix

Unproblematisch sind Variablen ohne P-Suffix, wenn für Studierende der eingebettete WYSIWYG-Editor aktiviert ist2. Falls Studenten aber in einer einfachen Eingabebox (d.h. ohne WYSIWYG-Funktion) <- oder >-Zeichen außerhalb von TeX-Formeln verwenden, werden diese als Begrenzer von HTML-Tags interpretiert und nicht zuverlässig als Kleiner- oder Größer-Symbole angezeigt. Daher empfehlen wir, grundsätzlich den WYSIWYG-Editor zu aktivieren, wenn TeX-Eingaben für Studierende möglich sein sollen!

Achten Sie beim Einbetten der $Feld…-Variable auch darauf, dass Variablen mit P-Suffix üblicherweise als vorformatierter Text (d.h. in einem <pre>-Element) eingebunden werden, während Variablen ohne P-Suffix als „Body Text“ (d.h. direkt innerhalb des <body>-Elements oder einem <div>-Container, nicht aber in Absatzelementen wie <p> oder <pre>) eingebunden werden sollten.

Dedizierte Formel-Eingabefelder in Aufgabenformularen

Sollen Studenten nicht beliebigen Text ggf. mit eingebetteten Formeln, sondern genau eine Formel in TeX-Syntax eingeben, so kann in der Aufgabe eine einfache Eingabezeile eingefügt und die gesamte Eingabe eines Studenten in dieses Feld später als Formelausdruck interpretiert werden.

Bei Verwendung des Aufgabenerstellungsassistenten

Der Aufgabenerstellungsassistent für handbewertete Aufgaben bietet zu diesem Zweck eine entsprechende Einstellung für das Element »Eingabefeld (einzeilig)« an: Wählen Sie dort als Eingabeformat einfach »Formel in TeX-Syntax« aus. Sobald Sie das ausgewählt haben, können Sie noch optional eine eigene Wunsch-Schriftgröße für die Formeldarstellung eingeben (nicht mehr empfohlen, siehe Schriftgröße wählen (deprecated)).

Bei fortgeschrittener Aufgabenerstellung

Bei manueller Gestaltung der Quittungs- bzw. Korrekturseite ist die $Feld-Variable, mit der die Eingabe in die Quittungs- bzw. Korrekturseite eingebunden wird, um den Zusatz TEX zu ergänzen.

Beispiel: Angenommen, das HTML-Aufgabenformular enthalte folgende Eingabezeile, deren Inhalt als TeX-Formel interpretiert werden soll:

Formel: <input type="text" name="FeldA2">

In der Quittungsseite zu Teilaufgabe A wäre die Eingabe dann per $Feld2TEX, in der Korrekturschablone per $FeldA2TEX einzubinden (siehe auch: Aufgabenerstellungshandbuch).

Weiterhin ist es möglich, die oben im Syntax-Abschnitt für die $$…$$-Notation vorgestellten Suffixe zur Größenangabe oder zur Aktivierung der Inline-Darstellung an den Variablennamen anzuhängen, z.B.:

Die Angabe einer Größe wird jedoch nicht mehr empfohlen, siehe Schriftgröße wählen (deprecated).

Folgende Punkte sind dabei noch zu beachten:


  1. Zur In-Browser-Korrektur vgl. separat verfügbare Dokumentation  ↩

  2. Durch Einbinden des Kommentars <!-- WYSIWYG --> in die Aufgabenseite, siehe auch separate Dokumentation.  ↩