避免列表内的数学模式

避免列表内的数学模式

我在用着listings突出显示一些 PHP 代码。当要插入的代码包含“$”符号时,我的问题就出现了,例如:

\begin{lstlisting}[style=PHP]
Select * FROM users WHERE user_name = $_POST['user'];
\end{lstlisting}

$ 设置数学模式,列表后的文本包含在内,直到我输入另一个 $。我一直在寻找解决方案,但很不幸。使用“ \$”转义符号 $ 在列表内不起作用(在我的 pdf 中它会显示“ \$”,显然我不希望发生这种情况)。

PHP lst 样式设置如下:

\lstdefinestyle{PHP}{
 frame=tb, to wrap the text with black horizontal lines
 language=php,
 aboveskip=3mm,
 belowskip=3mm,
 showstringspaces=false,
 basicstyle      = \small\ttfamily,
 keywordstyle    = \color{cyan},
 stringstyle     = \color{gray},
 identifierstyle = \color{blue},
 commentstyle    = \color{green},
 emph            =[1]{php},
 emphstyle       =[1]\color{black},
 emph            =[2]{if,and,or,else},
 breaklines=true,
 breakatwhitespace=true,
 tabsize=3,
 %emphstyle       =[2]\color{dkyellow}
}

答案1

如果您使用 TeXnicCenter,并且它只是编辑器内部的颜色:

这是一个列出的错误

该问题还影响环境verbatimhttp://sourceforge.net/p/texniccenter/bugs/318/

一种“不太好的解决方法”:如果它真的很烦人(代码页面以错误的方式着色),你可以把它放在错误verbatimlisting环境之后:\ifx{\verb+$+}!\fi。当你真的需要正确的着色时,它可以提供帮助。

答案2

也许有一个更清楚的解释。

“美元符号后的文字以绿色显示”表示您正在谈论编辑您用来编辑 TeX 源的。这与 TeX 数学模式无关。

TeX 是与编辑器完全不同的软件。TeX 完全没有图形用户界面,而是命令行界面。编辑器在后台运行 TeX,就像您打开命令提示符并输入 一样pdflatex myfile.tex

您在屏幕上看到的彩色内容仅供您自己查看。TeX 并不关心您是否在记事本或其他程序中编辑源代码。

相关内容