Erro "Exibir matemática deve terminar com $$"

Erro "Exibir matemática deve terminar com $$"

Estou tentando escrever matemática em uma listagem de código, assim:

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

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

\end{document}

Estou tendo o erro a seguir :

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

Responder1

É um argumento para listingsnão\begin

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

A razão pela qual você recebe esse erro é que o TeX permite que você omita as chaves em torno dos argumentos obrigatórios e, nesse caso, pegue o primeiro token. então

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

é

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

Agora, \beginessencialmente \begingroup\csname[\endcsname, isso é

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

então \[inicia a matemática de exibição e mathescape]{lstlisting}é digitado como caracteres no modo de exibição matemática, então o single $é atendido, mas o TeX deseja um duplo $$para terminar a matemática de exibição, então emite um erro primitivo.

Basicamente, a detecção de erros em uma linguagem de processamento de macro geralmente ocorre mais por sorte do que por design.

informação relacionada