Markieren von Formeln

Dirk Nitschke

14. Dezember 1993

Der Leserbrief von Herrn Franz Strobl in der Ausgabe 2/1993 von ”Die TEXnische Komödie“ gab den Anstoß zu diesem Artikel. Herr Strobl fragte, wie man Formeln mit Markierungen wie (∗) oder □ versehen kann. Zunächst soll dieses Problem für abgesetzte Formeln behandelt werden. Anschließend wende ich mich der eqnarray-Umgebung zu. Dabei wird der eqmark-Style beschrieben, der zwei Befehle zum Anbringen von Markierungen im eqnarray zur Verfügung stellt.

In LaTEX werden abgesetzte Formeln ohne Nummerierung von \[ und \]

oder — äquivalent hierzu — \begin{displaymath} und \end{displaymath}

eingeschlossen. Man kann aber auch den TEX-Originalbefehl $$ verwenden. Dies hat zum Vorteil, daß die beiden TEX-Befehle \eqno und \leqno benutzt werden dürfen. Diese Befehle stehen für equation number sowie left equation number und erzeugen in einer abgesetzten Formel am rechten bzw. linken Rand eine beliebige Markierung. Der entsprechende Markierungstext wird dabei als Argument (ohne einschließende Klammern { und }) übergeben. Das erste Dollarzeichen des die abgesetzte Formel beendenden $$ kennzeichnet auch das Ende des Arguments. (Siehe hierzu auch [1], pp. 186–187, 189–191, 193, 293.) Daher ist die Verwendung dieser beiden Befehle nur in solchen abgesetzten Formeln möglich, die von $$ beendet werden. Der Quellcode

$$
 a = b + c \eqno (\ast)
$$

hat als Ergebnis

a = b + c  (∗)

und \leqno anstelle von \eqno hätte (∗) am linken Rand ergeben. Als Argument von \eqno und \leqno ist alles erlaubt, was auch im Mathematikmodus gestattet ist. Man beachte, daß die Marke im textstyle gesetzt wird. Dies führt bei Eingabe von (\ast\ast\ast) zu (∗ ∗ ∗) und nicht zu dem wohl gewünschten (∗∗∗). Ebenso liefert \sum_i nicht ∑_{i} sondern ∑_{i}.

Möchte man ähnliches in einem eqnarray erreichen, so muß man zunächst wissen, wie LaTEX die automatische Formelnummerierung vornimmt. Wurde die Nummerierung nicht durch \nonumber abgeschaltet, so wird der Befehl \llap{\@eqnnum} ausgeführt, der die Markierung setzt. Dies ändert sich auch nicht bei der Option leqno. Hier wird lediglich \@eqnnum so verändert, daß die Nummerierung auf der linken Seite erscheint. Der eqmark-Stil definiert ebenfalls den Befehl \@eqnnum um und stellt zusätzlich die beiden Befehle \lmark und \rmark zur Verfügung, die eine Markierung am linken bzw. rechten Rand erzeugen und die standardmäßige Formelnummerierung unterdrücken. Hat man mit \lmark und/oder \rmark eine Markierung der Formel definiert, so wird diese gesetzt, ansonsten die normale Nummerierung (insbesondere keine Nummerierung bei \nonumber). \lmark und \rmark haben als Argument die gewünschte Marke, die dann — genau wie bei \eqno oder \leqno — im textstyle des Mathematikmodus gesetzt wird. Als Beispiel betrachte man den folgenden Quellcode:

\begin{eqnarray}
 a &=& b + c \\
 a &=& b + c \nonumber \\
 a &=& b + c \lmark{(\ast{\ast}\ast)} \\
 a &=& b + c \rmark{\Box} \\
 a &=& b + c \lmark{\bf Hallo}\rmark{\rm Dirk} \\
 a &=& b + c
\end{eqnarray}

Als Ergebnis erhält man:

a = b + c  (1)
a = b + c
(∗∗∗)  a = b + c

a = b + c  □
a = b + c Dirk Hallo
a = b + c  (2)

Als Argument von \lmark und \rmark ist alles erlaubt, was im Mathematikmodus möglich ist. Die Verwendung von \lmark oder \lmark in Verbindung mit \nonumber ist zwar zulässig, führt aber nicht zu dem gewünschten Ergebnis. Man erhält nämlich in dieser Formelzeile keine Markierung (und keine Nummerierung). In der nächsten Formelzeile (das kann auch die erste Zeile eines neuen eqnarray sein) bekommt man dann die aktuell gesetzte Markierung.

Man kann diesen Style mit den Optionen fleqn oder auch leqno verwenden, jedoch darf eqmark erst nach leqno angegeben werden.

Der eqmark.sty kann bei DANTE, Deutschsprachige Anwendervereinigung TEX e.V., oder mir bezogen werden.

Literatur

[1] D.E. Knuth, The TEXbook. Seventeenth printing, Addison Wesley, Januar 1990.