다음과 같이 코드 목록에 수학을 작성하려고 합니다.
\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는 표시 수학을 끝내기 위해 이중을 원 $$
하므로 기본 오류가 발생합니다.
기본적으로 매크로 처리 언어의 오류 감지는 대개 설계보다는 운에 의해 이루어집니다.