Fehler „Anzeigemathematik sollte mit $$ enden“

Fehler „Anzeigemathematik sollte mit $$ enden“

Ich versuche, mathematische Formeln in eine Codeliste zu schreiben, und zwar etwa so:

\documentclass{article}
\usepackage{listings}
\begin{document}

\begin[mathescape]{lstlisting}
$\infty$
\end{lstlisting}

\end{document}

Ich erhalte die folgende Fehlermeldung:

! Display math should end with $$.
<to be read again> 
                   \infty 
l.10 $\infty
            $
? 

Antwort1

Es ist ein Argument, listingsnicht zu\begin

                  %%%%%%%%%%%%
\begin{lstlisting}[mathescape]
$\infty$
\end{lstlisting}

Der Grund für diesen Fehler ist, dass TeX das Weglassen der Klammern um obligatorische Argumente erlaubt und in diesem Fall das erste Token verwendet.

\begin[mathescape]{lstlisting}$\infty$

Ist

\begin{[}mathescape]{lstlisting}$\infty$

Nun \beginim Wesentlichen tut \begingroup\csname[\endcsnamedies also

\begingroup\[mathescape]{lstlisting}$\infty$

also \[startet die Anzeigemathematik und mathescape]{lstlisting}wird als Zeichen im Anzeigemathematikmodus gesetzt, dann $wird die einfache Bedingung erfüllt, aber TeX verlangt eine doppelte Bedingung, $$um die Anzeigemathematik zu beenden und gibt daher einen primitiven Fehler aus.

Grundsätzlich ist die Fehlererkennung in einer Makroverarbeitungssprache meist eher Glückssache als Planungssache.

verwandte Informationen