“顯示數學應該以 $$ 結尾”錯誤

“顯示數學應該以 $$ 結尾”錯誤

我正在嘗試在程式碼清單中編寫數學,如下所示:

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

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

\end{document}

我收到以下錯誤:

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

答案1

listings這是不這樣做的論點\begin

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

出現該錯誤的原因是 TeX 允許您省略強制參數周圍的大括號,如果是的話,則採用第一個標記。所以

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

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

現在\begin基本上是\begingroup\csname[\endcsname這樣做的

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

因此\[開始顯示數學並在顯示數學模式下將其排版為字符,然後滿足mathescape]{lstlisting}單精度,但 TeX 想要以雙精度結束顯示數學,因此會發出原始錯誤。$$$

基本上,宏處理語言中的錯誤檢測通常更多的是靠運氣而不是設計。

相關內容