Error "Las matemáticas de visualización deberían terminar con $$"

Error "Las matemáticas de visualización deberían terminar con $$"

Estoy intentando escribir matemáticas en una lista de códigos, así:

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

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

\end{document}

Obtuve el siguiente error :

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

Respuesta1

Es un argumento para listingsno\begin

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

La razón por la que recibe ese error es que TeX le permite omitir las llaves alrededor de los argumentos obligatorios y, de ser así, toma el primer token. entonces

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

es

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

Ahora \beginesencialmente \begingroup\csname[\endcsnamelo hace, esto es

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

entonces \[comienza a mostrar matemáticas y mathescape]{lstlisting}se escribe como caracteres en el modo de visualización matemática, luego $se cumple el sencillo pero TeX quiere un doble $$para finalizar la visualización matemática, por lo que emite un error primitivo.

Básicamente, la detección de errores en un lenguaje de procesamiento de macros suele ser más una cuestión de suerte que de diseño.

información relacionada