我正在使用listings
Python 代码包,并且已经设置
otherkeywords={self,__init__}
这样做的一个意想不到的副作用似乎是,在如下字符串中
"self_loathing"
该self
部分被突出显示为关键字,而其余部分则突出显示为字符串。 有办法避免这种情况吗?
答案1
在这里,跟随带列表的彩色单词,我用morekeywords
来代替otherkeywords
,来描述self
。
\documentclass{article}
\usepackage{xcolor}
\definecolor{main-color}{rgb}{0.6627, 0.7176, 0.7764}
\definecolor{back-color}{rgb}{0.1686, 0.1686, 0.1686}
\definecolor{string-color}{rgb}{0.3333, 0.5254, 0.345}
\definecolor{key-color}{rgb}{0.8, 0.47, 0.196}
\usepackage{listings}
\lstdefinestyle{mystyle}
{
language = C++,
basicstyle = {\ttfamily \color{main-color}},
backgroundcolor = {\color{back-color}},
stringstyle = {\color{string-color}},
otherkeywords = {;},
morekeywords = {self},
keywordstyle = {\color{key-color}},
alsoletter = {_},
}
\begin{document}
\begin{lstlisting}[style = mystyle]
#include <iostream>
using namespace std;
int x = 2;
//comment
for (self = 0; self < x; ++self) {
cout << "self_loathing" << endl;
}
\end{lstlisting}
\end{document}
如果我添加self
而otherkeywords
不是morekeywords
,我会得到OP描述的问题: