我在用着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,并且它只是编辑器内部的颜色:
这是一个列出的错误。
该问题还影响环境verbatim
:http://sourceforge.net/p/texniccenter/bugs/318/。
一种“不太好的解决方法”:如果它真的很烦人(代码页面以错误的方式着色),你可以把它放在错误verbatim
或listing
环境之后:\ifx{\verb+$+}!\fi
。当你真的需要正确的着色时,它可以提供帮助。
答案2
也许有一个更清楚的解释。
“美元符号后的文字以绿色显示”表示您正在谈论编辑您用来编辑 TeX 源的。这与 TeX 数学模式无关。
TeX 是与编辑器完全不同的软件。TeX 完全没有图形用户界面,而是命令行界面。编辑器在后台运行 TeX,就像您打开命令提示符并输入 一样pdflatex myfile.tex
。
您在屏幕上看到的彩色内容仅供您自己查看。TeX 并不关心您是否在记事本或其他程序中编辑源代码。